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, Novembar
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 prvobitnog položaja.

Korak 1: Uvod

Uvod
Uvod

Razvojem oblasti niskogradnje možemo svuda identifikovati mnoge građevine. Metalne konstrukcije, betonske grede, zgrade na više platformi neke su od njih. Nadalje, većina nas navikla je boraviti u zgradi ili kući u većini doba dana. Ali kako možemo osigurati da je zgrada dovoljno sigurna da ostane? Šta ako u vašoj zgradi postoji mala pukotina ili previše nagnut snop? 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. Ali ne znajući da slobodno ulazimo unutra. Kao rješenje za to potrebna nam je dobra metoda za nadzor betona, drveta, metalnih greda konstrukcija do kojih ne možemo doći.

Korak 2: Rješenje

Rešenje
Rešenje
Rešenje
Rešenje

"Analizator strukture" 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 se montira 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 Arduino 101 ploča jer sadrži mjerač ubrzanja i BLE modul. Savitljivi senzori se koriste 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 flex senzor na Arduino ploču.

Jedan pin otpornika spojen je na A0 pin Arduino ploče. Slijedite istu proceduru za spajanje drugog senzora savijanja. Za povezivanje otpornika upotrijebite pin A1.

Spojite zujalicu direktno 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 stvaranja strujnog kola, 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. Oslobodite prostor za USB port za programiranje ploče i napajanje. Budući da je ovaj uređaj potrebno koristiti duže 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 Android Play trgovine. Pokrenite novi projekt za Arduino 101. Odaberite način komunikacije kao BLE. Dodajte 1 terminal, 2 dugmeta i BLE u interfejs. Sljedeće slike pokazuju vam kako napraviti sučelje.

Korak 6: Blynk kodne datoteke

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

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

WidgetTerminal terminal (V2);

BLEPeripheral blePeripheral;

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

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

EEPROM.write (1, flx2);

EEPROM.write (2, x);

EEPROM.write (3, y);

EEPROM.write (4, z);

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

Nakon kalibracije, uređaj će uporediti odstupanje sa graničnim vrijednostima i oglasiti zvučni signal ako pređu vrijednost.

values (); 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 Blynk interfejs. Povežite se s uređajem dodirom ikone Bluetooth. Pritisnite dugme za kalibraciju. Nakon kalibracije terminal će prikazati poruku kao "Uspješno kalibrirano." Resetujte uređaj. Sada će nadzirati strukturu i obavijestiti vas putem zujalice ako odstupi od deformacije. Vrijednosti kuta i savijanja možete provjeriti u bilo kojem trenutku pritiskom na tipku Status. Ovo može izgledati kao mali uređaj. Ali njegova upotreba nema cenu. Ponekad zaboravimo provjeriti stanje našeg doma, ureda itd., Sa zauzetim rasporedom. Ali ako postoji mali problem, mogao bi završiti kao na gornjoj slici.

Ali 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 fleks senzor i pinove zujalice

#define zujalica 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);

BLEPeripheral blePeripheral;

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

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

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

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

flx2 = analogRead (flex2);

x = CurieIMU.readAccelerometar (X_AXIS)/100;

y = CurieIMU.readAccelerometar (Y_AXIS)/100;

z = CurieIMU.readAccelerometar (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.čitano (0); m_flx2 = EEPROM.čitano (1);

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

m_y = EEPROM.čitati (3);

m_z = EEPROM.čitano (4);

}

void loop () {Blynk.run ();

blePeripheral.poll ();

values ();

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 ("Over Inclined");

ton (zujalica, 1000);

}

ton (zujalica, 0);

}

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

*/

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

if (pinValue == 1) {

values ();

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

EEPROM.write (2, x);

EEPROM.write (3, y);

EEPROM.write (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) {

values (); terminal.print ("Odstupanje ugla 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 ugla-");

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čuje se: