Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Analysoi betoni-, metalli-, puurakenteita mutkien ja kulmien varalta ja varoitukset, jos ne ovat poikkeaneet alkuperäisestä asennosta.
Vaihe 1: Johdanto
Rakennustekniikan kehityksen myötä voimme tunnistaa paljon rakenteita kaikkialla. Metallirakenteet, betonipalkit, monitasoiset rakennukset ovat joitakin niistä. Lisäksi useimmat meistä ovat tottuneet pysymään rakennuksessa tai kotona suurimman osan vuorokaudesta. Mutta miten voimme taata, että rakennus on riittävän turvallinen pysyäkseen? Entä jos rakennuksessa on pieni halkeama tai liian kalteva palkki? Se vaarantaisi satoja ihmisiä.
Maanjäristykset, maaperän kovuus, tornadot ja monet muut asiat voivat vaikuttaa sisäisiin halkeamiin ja rakenteiden tai palkkien poikkeamiseen neutraalista asennosta. Useimmiten emme ole tietoisia ympäröivien rakenteiden tilanteesta. Ehkä paikka, jossa kävelemme päivittäin, on halkeillut betonipalkit ja voi romahtaa milloin tahansa. Mutta tietämättämme menemme vapaasti sisälle. Ratkaisuna tähän tarvitsemme hyvän menetelmän betonin, puun ja metallipalkkien valvontaan rakenteissa, joihin emme pääse.
Vaihe 2: Ratkaisu
"Rakenneanalysaattori" on kannettava laite, joka voidaan asentaa betonipalkkiin, metallirakenteisiin, laattoihin jne. Tämä laite mittaa kulman ja analysoi mutkia, joissa se on asennettu, ja lähettää tiedot mobiilisovellukseen Bluetoothin kautta. Tämä laite käyttää kiihtyvyysanturia/ gyroskooppia kulman mittaamiseen x-, y-, z -tasoissa ja flex -anturia mutkien seurantaan. Kaikki raakatiedot käsitellään ja tiedot lähetetään mobiilisovellukseen.
Vaihe 3: Piiri
Kerää seuraavat komponentit.
- Arduino 101 Board
- 2 X Flex -anturia
- 2 x 10k vastukset
Komponenttien määrän vähentämiseksi tässä käytetään Arduino 101 -korttia, koska se sisältää kiihtyvyysmittarin ja BLE -moduulin. Flex -antureita käytetään taivutuksen mittaamiseen, koska se muuttaa sen vastusta taivutettaessa. Piiri on hyvin pieni, koska vain 2 vastusta ja 2 flex -anturia on liitettävä. Seuraavassa kaaviossa näytetään, kuinka flex -anturi liitetään Arduino -korttiin.
Yksi vastuksen nasta on kytketty Arduino -kortin A0 -nastaan. Liitä toinen flex -anturi samalla tavalla. Liitä vastus A1 -nastalla.
Kytke summeri suoraan D3- ja Gnd -nastaan.
Vaihe 4: Laitteen viimeistely
Piirin tekemisen jälkeen se on kiinnitettävä kotelon sisään. Yllä olevan 3D -mallin mukaan kaksi flex -anturia on sijoitettava kotelon vastakkaiselle puolelle. Jätä tilaa USB -portille kortin ohjelmoimiseksi ja virran saamiseksi. Koska tätä laitetta on käytettävä pitkään, paras tapa syöttää virtaa on käyttää kiinteää virtalähdettä.
Vaihe 5: Mobiilisovellus
Lataa ja asenna Blynk Android Play Kaupasta. Aloita uusi projekti Arduino 101: lle. Valitse viestintämenetelmäksi BLE. Lisää 1 pääte, 2 painiketta ja BLE käyttöliittymään. Seuraavat kuvat osoittavat käyttöliittymän tekemisen.
Vaihe 6: Blynk -kooditiedostot
Kun olet tehnyt käyttöliittymän Blynkissä, saat valtuutuskoodin. Kirjoita koodi seuraavaan kohtaan.
#include #include char auth = "**************"; // Blynk -valtuutuskoodi
WidgetTerminal -pääte (V2);
BLEPeripheral blePeripheral;
Kalibrointiprosessissa anturin nykyiset lukemat tallennetaan EEPROMiin.
arvot (); EEPROM.write (0, flx1);
EEPROM.write (1, flx2);
EEPROM.write (2, x);
EEPROM.write (3, y);
EEPROM.write (4, z);
terminal.print ("Kalibrointi onnistunut");
Kalibroinnin jälkeen laite vertaa poikkeamaa kynnysarvoihin ja antaa äänimerkin, jos ne ylittävät arvon.
arvot (); jos (abs (flex1-m_flx1)> 10 tai abs (flex2-m_flx2)> 10) {
terminal.println ("Over Bend");
ääni (summeri, 1000);
}
jos (abs (x-m_x)> 15 tai abs (y-m_y)> 15 tai abs (z-m_z)> 15) {
terminal.println ("Yli kalteva");
ääni (summeri, 1000);
}
Vaihe 7: Toimivuus
Kiinnitä laite kiinnitettävään rakenteeseen. Kiinnitä myös 2 flex -anturia. Syötä kortille virta USB -kaapelilla.
Avaa Blynk -käyttöliittymä. Muodosta yhteys laitteeseen koskettamalla Bluetooth -kuvaketta. Paina kalibrointipainiketta. Kalibroinnin jälkeen pääte näyttää viestin "Kalibroitu onnistuneesti". Nollaa laite. Nyt se seuraa rakennetta ja ilmoittaa summerin kautta, jos se poikkeaa muodonmuutoksista. Voit tarkistaa kulma- ja taivutusarvot milloin tahansa painamalla Tila -painiketta. Tämä saattaa näyttää pieneltä laitteelta. Mutta sen käyttö on korvaamatonta. Joskus unohdamme tarkistaa kotimme, toimistomme jne. Kunnon kiireisillä aikatauluillamme. Mutta jos on pieni ongelma, se saattaa päättyä kuten yllä oleva kuva.
Mutta tällä laitteella voidaan pelastaa satoja ihmishenkiä ilmoittamalla pienistä mutta vaarallisista ongelmista rakenteissa.
Vaihe 8: Arduino101 -kooditiedosto
#define BLYNK_PRINT -sarja
#define flex1 A0
#define flex2 A1 // Määritä flex -anturi ja summerin nastat
#määritä summeri 3
#Sisällytä "CurieIMU.h"#Sisällytä "BlynkSimpleCurieBLE.h"
#include "CurieBLE.h"
#sisältää "Wire.h"
#include "EEPROM.h"
#include "SPI.h"
char auth = "**************"; // Blynk Authorization Code WidgetTerminal terminal (V2);
BLEPeripheral blePeripheral;
int m_flx1, m_flx2, m_x, m_y, m_z; // muistiin tallennetut arvot
int flx1, flx2, x, y, z; // Nykyiset lukemat
void arvot () {for (int i = 0; i <100; i ++) {
flx1 = analoginen luku (flex1); // Hanki raakalukemat antureista
flx2 = analoginen luku (flex2);
x = CurieIMU.readAcecelerometer (X_AXIS)/100;
y = CurieIMU.readAcecelerometer (Y_AXIS)/100;
z = CurieIMU.readAcececelerometer (Z_AXIS)/100;
viive (2);
}
flx1 = flx1/100; flx2 = flx2/100;
x = x/100; // Saat lukemien keskiarvot
y = y/100;
z = z/100;
}
void setup () {// pinMode (3, OUTPUT);
pinMode (flex1, INPUT);
pinMode (flex2, INPUT); // Anturin nastatilojen asettaminen
Sarja.alku (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); // Lue valmiiksi tallennetut anturien arvot EEPROMista
m_y = EEPROM.read (3);
m_z = EEPROM.read (4);
}
tyhjä silmukka () {Blynk.run ();
blePeripheral.poll ();
arvot ();
if (abs (flex1-m_flx1)> 10 tai abs (flex2-m_flx2)> 10) {terminal.println ("Over Bend");
ääni (summeri, 1000);
}
jos (abs (x-m_x)> 15 tai abs (y-m_y)> 15 tai abs (z-m_z)> 15) {terminal.println ("Over Included");
ääni (summeri, 1000);
}
ääni (summeri, 0);
}
/*VO ilmaisee kalibrointitilan. Tässä tilassa anturien * arvot tallennetaan EEPROMiin
*/
BLYNK_WRITE (V0) {int pinValue = param.asInt ();
jos (pinValue == 1) {
arvot ();
EEPROM.write (0, flx1); EEPROM.write (1, flx2);
EEPROM.write (2, x);
EEPROM.write (3, y);
EEPROM.write (4, z);
terminal.print ("Kalibrointi onnistunut");
}
}
/ * Voimme pyytää nykyisiä poikkeama -arvoja * painamalla painiketta V1
*/
BLYNK_WRITE (V1) {
int pinValue = param.asInt ();
jos (pinValue == 1) {
arvot (); terminal.print ("X-kulmapoikkeama");
terminaali.print (abs (x-m_x));
terminaali.println ();
terminal.print ("Y-kulmapoikkeama");
terminaali.jälki (abs (y-m_y));
terminaali.println ();
terminal.print ("Z-kulmapoikkeama");
terminaali.print (abs (z-m_z));
terminaali.println ();
terminal.print ("Flex 1 poikkeama-");
terminaali.print (abs (flx1-m_flx1));
terminaali.println ();
terminal.print ("Flex 2 -poikkeama");
terminaali.print (abs (flx2-m_flx2));
terminaali.println ();
}
}
BLYNK_WRITE (V2) {
}