Indholdsfortegnelse:

Red dit liv med Building Collapse Monitor: 8 trin
Red dit liv med Building Collapse Monitor: 8 trin

Video: Red dit liv med Building Collapse Monitor: 8 trin

Video: Red dit liv med Building Collapse Monitor: 8 trin
Video: That is REALLY high up 😱😳 #shorts 2024, November
Anonim
Red dit liv med Building Collapse Monitor
Red dit liv med Building Collapse Monitor

Analyser beton, metal, trækonstruktioner for bøjninger og vinkler og advarsler, hvis de har afveget fra den oprindelige position.

Trin 1: Introduktion

Introduktion
Introduktion

Med udviklingen af civilingeniørfeltet kan vi identificere en masse konstruktioner overalt. Metalkonstruktioner, betonbjælker, multi-platform bygninger er nogle af dem. Ydermere er de fleste af os vant til at blive i en bygning eller et hjem på de fleste tidspunkter af dagen. Men hvordan kan vi sikre, at bygningen er sikker nok til at blive? Hvad nu, hvis der er en lille revne eller en skrå bjælke i din bygning? Det ville risikere flere hundrede liv.

Jordskælv, jordhårdhed, tornadoer og mange flere ting kan være faktorer for interne revner og strukturernes eller bjælkens afvigelse fra den neutrale position. De fleste gange er vi ikke klar over situationen i de omkringliggende strukturer. Måske har det sted, vi går i hver dag, revnet betonbjælker og kan falde sammen når som helst. Men uden at vide det går vi frit indenfor. Som en løsning på dette har vi brug for en god metode til at overvåge beton, træ, metalbjælker af konstruktioner, hvor vi ikke kan nå.

Trin 2: Løsning

Løsning
Løsning
Løsning
Løsning

"Strukturanalysator" er en bærbar enhed, der kan monteres på en betonbjælke, metalstruktur, plader osv. Denne enhed måler vinklen og analyserer bøjninger, hvor den er monteret, og sender dataene til mobilappen via Bluetooth. Denne enhed bruger et accelerometer/ gyroskop til at måle vinklen i x, y, z plan og flex sensor til at overvåge bøjningerne. Alle rådata behandles, og der sendes oplysninger til mobilappen.

Trin 3: Kredsløb

Kredsløb
Kredsløb
Kredsløb
Kredsløb
Kredsløb
Kredsløb
Kredsløb
Kredsløb

Saml følgende komponenter.

  • Arduino 101 Board
  • 2 X Flex -sensorer
  • 2 X 10k modstande

For at reducere antallet af komponenter bruges Arduino 101 board her, da det indeholder et accelerometer og et BLE -modul. Flex -sensorer bruges til at måle bøjningsmængden, da den ændrer dens modstand ved bøjning. Kredsløbet er meget lille, da der kun skulle tilsluttes 2 modstande og 2 flexsensorer. Følgende diagram viser, hvordan du tilslutter en flex -sensor til Arduino -kortet.

En stift af modstanden er forbundet til A0 -stiften på Arduino -kortet. Følg samme procedure for at tilslutte den anden flex -sensor. Brug A1 -pin til at forbinde modstanden.

Tilslut summeren direkte til D3 pin og Gnd pin.

Trin 4: Afslutning af enheden

Afslutning af enheden
Afslutning af enheden
Afslutning af enheden
Afslutning af enheden

Efter at have lavet kredsløbet, skal det fastgøres inde i et kabinet. Ifølge ovenstående 3D -model skal der placeres 2 flexsensorer på den modsatte side af kabinettet. Gør plads til USB -porten til at programmere kortet og levere strøm. Da denne enhed skal bruges i en længere periode, er den bedste metode til at levere strøm ved hjælp af en fast strømforsyning.

Trin 5: Mobilapp

Mobil app
Mobil app
Mobil app
Mobil app
Mobil app
Mobil app

Download og installer Blynk fra Android Play Store. Start et nyt projekt til Arduino 101. Vælg kommunikationsmetoden som BLE. Tilføj 1 terminal, 2 knapper og BLE til grænsefladen. Følgende billeder viser dig, hvordan du laver grænsefladen.

Trin 6: Blynk kodefiler

Efter at have lavet grænsefladen på Blynk modtager du en autorisationskode. Indtast koden på følgende sted.

#include #include char auth = "***************"; // Blynk autorisationskode

WidgetTerminal terminal (V2);

BLEPeripheral blePeripheral;

I kalibreringsprocessen gemmes aktuelle sensoraflæsninger i EEPROM.

værdier (); EEPROM.write (0, flx1);

EEPROM.write (1, flx2);

EEPROM.write (2, x);

EEPROM.write (3, y);

EEPROM.write (4, z);

terminal.print ("Kalibrering succesfuld");

Efter kalibrering vil enheden sammenligne afvigelsen med tærskelværdierne og bippe summeren, hvis de overstiger værdien.

værdier (); hvis (abs (flex1-m_flx1)> 10 eller abs (flex2-m_flx2)> 10) {

terminal.println ("Over Bend");

tone (summer, 1000);

}

hvis (abs (x-m_x)> 15 eller abs (y-m_y)> 15 eller abs (z-m_z)> 15) {

terminal.println ("Over skrå");

tone (summer, 1000);

}

Trin 7: Funktionalitet

Funktionalitet
Funktionalitet

Sæt enheden fast på den struktur, der skal overvåges. Stick også de 2 flex sensorer. Tilfør strøm til kortet ved hjælp af USB -kablet.

Åbn Blynk -grænsefladen. Opret forbindelse til enheden ved at trykke på Bluetooth -ikonet. Tryk på kalibreringsknappen. Efter kalibrering viser terminalen en meddelelse som "Kalibreret med succes". Nulstil enheden. Nu vil den overvåge strukturen og underrette dig gennem summeren, hvis den afviger fra deformationer. Du kan til enhver tid kontrollere værdierne for vinkel og bøjning ved at trykke på knappen Status. Dette ligner måske en lille enhed. Men dets anvendelser er uvurderlige. Nogle gange glemmer vi at kontrollere tilstanden i vores hjem, kontor osv. Med vores travle tidsplaner. Men hvis der er et lille problem, kan det ende som på figuren ovenfor.

Men med denne enhed kan hundredvis af liv reddes ved at informere de små, men farlige problemer i konstruktioner.

Trin 8: Arduino101 kodefil

#define BLYNK_PRINT Serial

#define flex1 A0

#define flex2 A1 // Definer flex sensor og summer stifter

#define summer 3

#include "CurieIMU.h" #include "BlynkSimpleCurieBLE.h"

#include "CurieBLE.h"

#inkluder "Wire.h"

#include "EEPROM.h"

#inkluder "SPI.h"

char auth = "**************"; // Blynk Authorization Code WidgetTerminal terminal (V2);

BLEPerifert blePerifert;

int m_flx1, m_flx2, m_x, m_y, m_z; // værdier gemt i hukommelsen

int flx1, flx2, x, y, z; // Aktuelle aflæsninger

ugyldige værdier () {for (int i = 0; i <100; i ++) {

flx1 = analogRead (flex1); // Få rå aflæsninger fra sensorer

flx2 = analogRead (flex2);

x = CurieIMU.readAccelerometer (X_AXIS)/100;

y = CurieIMU.readAccelerometer (Y_AXIS)/100;

z = CurieIMU.readAccelerometer (Z_AXIS)/100;

forsinkelse (2);

}

flx1 = flx1/100; flx2 = flx2/100;

x = x/100; // Få gennemsnitsværdierne for målingerne

y = y/100;

z = z/100;

}

void setup () {// pinMode (3, OUTPUT);

pinMode (flex1, INPUT);

pinMode (flex2, INPUT); // Indstilling af sensor pin -tilstande

Serial.begin (9600);

blePeripheral.setLocalName ("Arduino101Blynk"); blePeripheral.setDeviceName ("Arduino101Blynk");

blePeripheral.setAppearance (384);

Blynk.begin (auth, blePeripheral);

blePeripheral.begin ();

m_flx1 = EEPROM.read (0); m_flx2 = EEPROM.read (1);

m_x = EEPROM.read (2); // Læs forud gemte sensorværdier fra EEPROM

m_y = EEPROM.read (3);

m_z = EEPROM.read (4);

}

void loop () {Blynk.run ();

blePeripheral.poll ();

værdier ();

hvis (abs (flex1-m_flx1)> 10 eller abs (flex2-m_flx2)> 10) {terminal.println ("Over Bend");

tone (summer, 1000);

}

hvis (abs (x-m_x)> 15 eller abs (y-m_y)> 15 eller abs (z-m_z)> 15) {terminal.println ("Over Inclined");

tone (summer, 1000);

}

tone (summer, 0);

}

/*VO angiver kalibreringstilstanden. I denne tilstand gemmes værdierne for sensorer * i EEPROM

*/

BLYNK_WRITE (V0) {int pinValue = param.asInt ();

hvis (pinValue == 1) {

værdier ();

EEPROM.write (0, flx1); EEPROM.write (1, flx2);

EEPROM.write (2, x);

EEPROM.write (3, y);

EEPROM.write (4, z);

terminal.print ("Kalibrering succesfuld");

}

}

/ * Vi kan anmode om aktuelle afvigelsesværdier * ved at trykke på knappen V1

*/

BLYNK_WRITE (V1) {

int pinValue = param.asInt ();

hvis (pinValue == 1) {

værdier (); terminal.print ("X vinkelafvigelse-");

terminal.print (abs (x-m_x));

terminal.println ();

terminal.print ("Y vinkelafvigelse-");

terminal.print (abs (y-m_y));

terminal.println ();

terminal.print ("Z vinkelafvigelse-");

terminal.print (abs (z-m_z));

terminal.println ();

terminal.print ("Flex 1 afvigelse-");

terminal.print (abs (flx1-m_flx1));

terminal.println ();

terminal.print ("Flex 2 afvigelse-");

terminal.print (abs (flx2-m_flx2));

terminal.println ();

}

}

BLYNK_WRITE (V2) {

}

Anbefalede: