Sadržaj:

Spasite svoj život uz Monitor za urušavanje zgrade: 8 koraka
Spasite svoj život uz Monitor za urušavanje zgrade: 8 koraka

Video: Spasite svoj život uz Monitor za urušavanje zgrade: 8 koraka

Video: Spasite svoj život uz Monitor za urušavanje zgrade: 8 koraka
Video: Стихийные бедствия, требующие чрезвычайных мер 2024, Srpanj
Anonim
Spasite svoj život uz Monitor za urušavanje zgrade
Spasite svoj život uz Monitor za urušavanje zgrade

Analizirajte betonske, metalne, drvene konstrukcije za zavoje i kutove te upozorenja ako su odstupili od izvornog položaja.

Korak 1: Uvod

Uvod
Uvod

Razvojem područja niskogradnje možemo posvuda identificirati mnoge građevine. Metalne konstrukcije, betonske grede, zgrade s više platformi neke su od njih. Nadalje, većina nas navikla je boraviti u zgradi ili kući tijekom većine dana. Ali kako možemo osigurati da je zgrada dovoljno sigurna da ostane? Što ako u vašoj zgradi postoji mala pukotina ili previše nagnuta greda? Rizikovalo bi stotine života.

Potresi, tvrdoća tla, tornada i mnoge druge stvari mogu biti čimbenici unutarnjih pukotina i odstupanja konstrukcija ili greda od neutralnog položaja. U većini slučajeva nismo svjesni situacije u okolnim strukturama. Možda mjesto na kojem svakodnevno hodamo ima napuknute betonske grede i može se srušiti u bilo kojem trenutku. No, ne znajući da slobodno ulazimo unutra. Kao rješenje za to potrebna nam je dobra metoda za nadzor betona, drva, metalnih greda konstrukcija do kojih ne možemo doći.

Korak 2: Rješenje

Riješenje
Riješenje
Riješenje
Riješenje

"Strukturni analizator" je prijenosni uređaj koji se može montirati na betonsku gredu, metalnu konstrukciju, ploče itd. Ovaj uređaj mjeri kut i analizira zavoje gdje je postavljen te šalje podatke u mobilnu aplikaciju putem Bluetootha. Ovaj uređaj koristi akcelerometar/ žiroskop za mjerenje kuta u ravninama x, y, z i senzor savijanja za praćenje zavoja. Svi neobrađeni podaci se obrađuju i informacije šalju u mobilnu aplikaciju.

Korak 3: Krug

Krug
Krug
Krug
Krug
Krug
Krug
Krug
Krug

Prikupite sljedeće komponente.

  • Arduino 101 ploča
  • 2 X Flex senzora
  • 2 X 10k otpornika

Za smanjenje broja komponenti ovdje se koristi ploča Arduino 101 jer sadrži mjerač ubrzanja i BLE modul. Savitljivi senzori koriste se za mjerenje količine savijanja jer mijenja otpor pri savijanju. Krug je vrlo mali jer je potrebno spojiti samo 2 otpornika i 2 senzora savijanja. Sljedeći dijagram prikazuje kako spojiti fleksibilni senzor na Arduino ploču.

Jedan pin otpornika spojen je na A0 pin Arduino ploče. Slijedite isti postupak za spajanje drugog senzora savijanja. Za priključivanje otpornika upotrijebite pin A1.

Spojite zujalicu izravno na D3 pin i Gnd pin.

Korak 4: Dovršavanje uređaja

Dovršavanje uređaja
Dovršavanje uređaja
Dovršavanje uređaja
Dovršavanje uređaja

Nakon izrade strujnog kruga, mora se učvrstiti unutar kućišta. Prema gore navedenom 3D modelu, 2 senzora savijanja moraju biti postavljena na suprotnoj strani kućišta. Napravite mjesta za USB priključak za programiranje ploče i napajanje. Budući da je ovaj uređaj potrebno koristiti dulje vrijeme, najbolji način napajanja je korištenje fiksnog napajanja.

Korak 5: Mobilna aplikacija

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

Preuzmite i instalirajte Blynk iz trgovine Android Play. Pokrenite novi projekt za Arduino 101. Odaberite način komunikacije kao BLE. Na sučelje dodajte 1 terminal, 2 gumba i BLE. Sljedeće slike pokazuju kako napraviti sučelje.

Korak 6: Blynk kodne datoteke

Nakon što napravite sučelje na Blynku, dobit ćete autorizacijski kod. Unesite taj kôd na sljedeće mjesto.

#include #include char auth = "**************"; // Blynk Autorizacijski kod

WidgetTerminal terminal (V2);

BLEPeriferna blePeriferna;

U procesu kalibracije trenutna očitanja senzora spremaju se u EEPROM.

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

EEPROM.write (1, flx2);

EEPROM.pisati (2, x);

EEPROM.pisati (3, y);

EEPROM.pisati (4, z);

terminal.print ("Kalibracija uspješna");

Nakon kalibracije uređaj će usporediti odstupanje s vrijednostima praga i oglasiti zvučni signal ako pređu vrijednost.

vrijednosti (); if (abs (flex1-m_flx1)> 10 ili abs (flex2-m_flx2)> 10) {

terminal.println ("Over Bend");

ton (zujalica, 1000);

}

if (abs (x-m_x)> 15 ili abs (y-m_y)> 15 ili abs (z-m_z)> 15) {

terminal.println ("Preko nagnuto");

ton (zujalica, 1000);

}

Korak 7: Funkcionalnost

Funkcionalnost
Funkcionalnost

Zalijepite uređaj na strukturu koju je potrebno nadzirati. Zalijepite i 2 senzora savijanja. Napajajte ploču napajanjem putem USB kabela.

Otvorite sučelje Blynk. Povežite se s uređajem dodirom ikone Bluetooth. Pritisnite gumb za kalibraciju. Nakon kalibracije terminal će prikazati poruku kao "Uspješno kalibrirano." Resetirajte uređaj. Sada će nadzirati strukturu i obavijestiti vas putem zujalice ako odstupi od deformacije. Vrijednosti kutova i savijanja možete provjeriti u bilo kojem trenutku pritiskom na tipku Status. Ovo bi moglo izgledati kao mali uređaj. Ali njegova upotreba nema cijenu. Ponekad zaboravimo provjeriti stanje svog doma, ureda itd., Sa zauzetim rasporedom. No, ako postoji mali problem, mogao bi završiti kao na gornjoj slici.

No, s ovim uređajem, stotine života može se spasiti informiranjem o malim, ali opasnim problemima u konstrukcijama.

Korak 8: Arduino101 kodna datoteka

#define BLYNK_PRINT Serijski

#define flex1 A0

#define flex2 A1 // Definirajte igle osjetnika savijanja i zujalice

#definiraj zujalicu 3

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

#include "CurieBLE.h"

#include "Wire.h"

#include "EEPROM.h"

#include "SPI.h"

char auth = "**************"; // Blynk Autorizacijski kod WidgetTerminal terminal (V2);

BLEPeriferna blePeriferna;

int m_flx1, m_flx2, m_x, m_y, m_z; // vrijednosti spremljene u memoriji

int flx1, flx2, x, y, z; // Trenutna očitanja

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

flx1 = analogRead (flex1); // Dobijte neobrađena očitanja sa senzora

flx2 = analogno čitanje (flex2);

x = CurieIMU.readAccelerometer (X_AXIS)/100;

y = CurieIMU.čitani akcelerometar (Y_AXIS)/100;

z = CurieIMU.čitani akcelerometar (Z_AXIS)/100;

kašnjenje (2);

}

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

x = x/100; // Dobijte prosječne vrijednosti očitanja

y = y/100;

z = z/100;

}

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

pinMode (flex1, INPUT);

pinMode (flex2, INPUT); // Postavljanje načina rada senzora

Serial.begin (9600);

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

blePeripheral.setAppearance (384);

Blynk.begin (auth, blePeripheral);

blePeripheral.begin ();

m_flx1 = EEPROM.čitaj (0); m_flx2 = EEPROM.čitaj (1);

m_x = EEPROM.čitaj (2); // Očitavanje prethodno spremljenih vrijednosti senzora iz EEPROM -a

m_y = EEPROM.čitaj (3);

m_z = EEPROM.čitaj (4);

}

void loop () {Blynk.run ();

blePeripheral.poll ();

vrijednosti ();

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

ton (zujalica, 1000);

}

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

ton (zujalica, 1000);

}

ton (zujalica, 0);

}

/*VO označava način kalibracije. U ovom načinu rada vrijednosti senzora * spremaju se u EEPROM

*/

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

if (pinValue == 1) {

vrijednosti ();

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

EEPROM.pisati (2, x);

EEPROM.pisati (3, y);

EEPROM.pisati (4, z);

terminal.print ("Kalibracija uspješna");

}

}

/ * Trenutne vrijednosti odstupanja možemo zatražiti * pritiskom na tipku V1

*/

BLYNK_WRITE (V1) {

int pinValue = param.asInt ();

if (pinValue == 1) {

vrijednosti (); terminal.print ("Odstupanje kuta X-");

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

terminal.println ();

terminal.print ("Odstupanje kuta Y-");

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

terminal.println ();

terminal.print ("Z odstupanje kuta-");

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

terminal.println ();

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

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

terminal.println ();

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

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

terminal.println ();

}

}

BLYNK_WRITE (V2) {

}

Preporučeni: