Kazalo:

Rešite svoje življenje z Monitorjem za zrušitev stavbe: 8 korakov
Rešite svoje življenje z Monitorjem za zrušitev stavbe: 8 korakov

Video: Rešite svoje življenje z Monitorjem za zrušitev stavbe: 8 korakov

Video: Rešite svoje življenje z Monitorjem za zrušitev stavbe: 8 korakov
Video: Джастин Ши: Блокчейн, криптовалюта и ахиллесова пята в разработке программного обеспечения 2024, November
Anonim
Rešite svoje življenje z Monitorjem zrušitve stavbe
Rešite svoje življenje z Monitorjem zrušitve stavbe

Analizirajte betone, kovine, lesene konstrukcije za ovinke in kote ter opozorila, če so odstopili od prvotnega položaja.

1. korak: Uvod

Uvod
Uvod

Z razvojem gradbenega področja lahko povsod prepoznamo veliko konstrukcij. Kovinske konstrukcije, betonski tramovi, zgradbe na več platformah so nekatere izmed njih. Poleg tega je večina od nas navajena večino dneva ostati v stavbi ali doma. Kako pa lahko zagotovimo, da je stavba dovolj varna za bivanje? Kaj pa, če je v vaši stavbi majhna razpoka ali preveč nagnjen žarek? Tvegalo bi na stotine življenj.

Potresi, trdota tal, tornada in še veliko več so lahko dejavniki notranjih razpok in odstopanja struktur ali nosilcev od nevtralnega položaja. Večinoma se ne zavedamo položaja okoliških struktur. Mogoče ima vsak dan, kjer hodimo, razpokane betonske tramove in se lahko kadar koli zruši. Toda ne da bi vedeli, prosto hodimo noter. Kot rešitev za to potrebujemo dobro metodo za nadzor betona, lesa, kovinskih nosilcev konstrukcij, do katerih ne moremo priti.

2. korak: Rešitev

Rešitev
Rešitev
Rešitev
Rešitev

"Strukturni analizator" je prenosna naprava, ki jo je mogoče namestiti na betonski nosilec, kovinsko konstrukcijo, plošče itd. Ta naprava meri kot in analizira ovinke, kjer je nameščena, ter podatke pošlje v mobilno aplikacijo prek Bluetootha. Ta naprava uporablja merilnik pospeška/ žiroskop za merjenje kota v ravninah x, y, z in senzor upogibanja za spremljanje ovinkov. Vsi surovi podatki se obdelujejo in podatki se pošljejo v mobilno aplikacijo.

3. korak: Vezje

Vezje
Vezje
Vezje
Vezje
Vezje
Vezje
Vezje
Vezje

Zberite naslednje komponente.

  • Arduino 101 deska
  • 2 X Flex senzorja
  • 2 X 10k upori

Za zmanjšanje števila komponent se tukaj uporablja plošča Arduino 101, saj vsebuje merilnik pospeška in modul BLE. Upogljivi senzorji se uporabljajo za merjenje količine upogibanja, saj pri upogibanju spremeni odpornost. Vezje je zelo majhno, saj je treba priključiti le 2 upora in 2 upogljiva senzorja. Naslednji diagram prikazuje, kako senzor flex prilagoditi plošči Arduino.

En pin upora je priključen na A0 pin Arduino plošče. Za priključitev drugega senzorja upogibanja sledite enakemu postopku. Za priključitev upora uporabite pin A1.

Zvočni signal priključite neposredno na pin D3 in pin Gnd.

4. korak: Dokončanje naprave

Dokončanje naprave
Dokončanje naprave
Dokončanje naprave
Dokončanje naprave

Po izdelavi vezja ga je treba pritrditi v ohišje. V skladu z zgornjim 3D modelom morata biti na nasprotni strani ohišja nameščena 2 senzorja upogibanja. Naredite prostor za vrata USB za programiranje plošče in napajanje. Ker je treba to napravo uporabljati dlje časa, je najboljši način za napajanje uporaba fiksnega napajalnika.

5. korak: mobilna aplikacija

Mobilna aplikacija
Mobilna aplikacija
Mobilna aplikacija
Mobilna aplikacija
Mobilna aplikacija
Mobilna aplikacija

Prenesite in namestite Blynk iz trgovine Android Play. Začnite nov projekt za Arduino 101. Izberite način komunikacije kot BLE. Vmesniku dodajte 1 terminal, 2 gumba in BLE. Naslednje slike prikazujejo, kako narediti vmesnik.

6. korak: Blynk kodne datoteke

Ko naredite vmesnik na Blynku, boste prejeli kodo za avtorizacijo. To kodo vnesite na naslednje mesto.

#include #include char auth = "**************"; // Blynkova avtorizacijska koda

WidgetTerminal terminal (V2);

BLEPeriferna blePeriferna;

Med postopkom umerjanja se trenutni odčitki senzorja shranijo v EEPROM.

vrednote(); EEPROM.write (0, flx1);

EEPROM.write (1, flx2);

EEPROM.write (2, x);

EEPROM.write (3, y);

EEPROM.write (4, z);

terminal.print ("Umerjanje uspešno");

Po umerjanju bo naprava primerjala odstopanje z mejnimi vrednostmi in oglasila zvočni signal, če presežejo vrednost.

vrednote(); če (abs (flex1-m_flx1)> 10 ali abs (flex2-m_flx2)> 10) {

terminal.println ("Over Bend");

ton (zvonec, 1000);

}

če (abs (x-m_x)> 15 ali abs (y-m_y)> 15 ali abs (z-m_z)> 15) {

terminal.println ("Preveč nagnjen");

ton (zvonec, 1000);

}

7. korak: Funkcionalnost

Funkcionalnost
Funkcionalnost

Napravo prilepite na strukturo, ki jo je treba nadzorovati. Prilepite tudi 2 senzorja upogibanja. Napajajte ploščo s kablom USB.

Odprite vmesnik Blynk. Povežite se z napravo, tako da se dotaknete ikone Bluetooth. Pritisnite gumb za umerjanje. Po umerjanju bo terminal prikazal sporočilo kot "Uspešno kalibrirano." Ponastavite napravo. Zdaj bo spremljal strukturo in vas ob zvočniku obvestil, če odstopa od deformacij. Vrednosti kota in upogibanja lahko kadar koli preverite s pritiskom na gumb Status. Morda je videti kot majhna naprava. Toda njegova uporaba je neprecenljiva. Včasih pozabimo preveriti stanje svojega doma, pisarne itd. Če pa obstaja majhna težava, se lahko konča tako kot na zgornji sliki.

Toda s to napravo lahko z obveščanjem o majhnih, a nevarnih težavah pri gradnji rešite na stotine življenj.

8. korak: Arduino101 kodna datoteka

#define BLYNK_PRINT Serijska številka

#define flex1 A0

#define flex2 A1 // Določite zatiče senzorja upogibanja in zvočnike

#določi zvočni signal 3

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

#include "CurieBLE.h"

#include "Wire.h"

#include "EEPROM.h"

#include "SPI.h"

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

BLEPeriferna blePeriferna;

int m_flx1, m_flx2, m_x, m_y, m_z; // vrednosti shranjene v pomnilniku

int flx1, flx2, x, y, z; // Trenutni odčitki

void values () {for (int i = 0; i <100; i ++) {

flx1 = analogRead (flex1); // Pridobite surove odčitke senzorjev

flx2 = analogRead (flex2);

x = CurieIMU.readAccelerometer (X_AXIS)/100;

y = CurieIMU.readAccelerometer (Y_AXIS)/100;

z = CurieIMU.readAccelerometer (Z_AXIS)/100;

zamuda (2);

}

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

x = x/100; // Pridobite povprečne vrednosti odčitkov

y = y/100;

z = z/100;

}

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

pinMode (flex1, INPUT);

pinMode (flex2, INPUT); // Nastavitev načinov nožic senzorja

Serial.begin (9600);

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

blePeripheral.setAppearance (384);

Blynk.begin (auth, blePeripheral);

blePeripheral.begin ();

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

m_x = EEPROM.preberi (2); // Preberite shranjene vrednosti senzorja iz EEPROM -a

m_y = EEPROM.preberi (3);

m_z = EEPROM.preberi (4);

}

void loop () {Blynk.run ();

blePeripheral.poll ();

vrednote();

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

ton (zvonec, 1000);

}

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

ton (zvonec, 1000);

}

ton (zvonec, 0);

}

/*VO označuje način umerjanja. V tem načinu se vrednosti senzorjev * shranijo v EEPROM

*/

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

if (pinValue == 1) {

vrednote();

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

EEPROM.write (2, x);

EEPROM.write (3, y);

EEPROM.write (4, z);

terminal.print ("Umerjanje uspešno");

}

}

/ * Trenutne vrednosti odstopanj * lahko zahtevamo s pritiskom na gumb V1

*/

BLYNK_WRITE (V1) {

int pinValue = param.asInt ();

if (pinValue == 1) {

vrednote(); terminal.print ("Odmik kota X");

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

terminal.println ();

terminal.print ("Odklon kota Y-");

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

terminal.println ();

terminal.print ("Z odstopanje kota Z");

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

terminal.println ();

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

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

terminal.println ();

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

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

terminal.println ();

}

}

BLYNK_WRITE (V2) {

}

Priporočena: