Mundarija:

Bino qulashi monitor bilan hayotingizni saqlang: 8 qadam
Bino qulashi monitor bilan hayotingizni saqlang: 8 qadam

Video: Bino qulashi monitor bilan hayotingizni saqlang: 8 qadam

Video: Bino qulashi monitor bilan hayotingizni saqlang: 8 qadam
Video: Masonlar dunyoni boshqarayotgan xufiya tashkilot 2024, Iyul
Anonim
Bino qulashi monitor bilan hayotingizni saqlang
Bino qulashi monitor bilan hayotingizni saqlang

Beton, metall, yog'och konstruktsiyalarni burilishlar va burchaklar va ogohlantirishlar uchun tahlil qiling, agar ular asl holatidan chetga chiqsa.

1 -qadam: kirish

Kirish
Kirish

Fuqarolik muhandislik sohasining rivojlanishi bilan biz hamma joyda ko'plab inshootlarni aniqlay olamiz. Metall konstruktsiyalar, beton nurlar, ko'p platformali binolar shular jumlasidandir. Bundan tashqari, ko'pchiligimiz kunning ko'p vaqtlarida bino yoki uyda qolishga odatlanganmiz. Lekin qanday qilib biz bino xavfsiz qolish uchun kafolat bera olamiz? Agar sizning binoingizda kichik yoriq yoki haddan tashqari moyil nur bo'lsa nima bo'ladi? Bu yuzlab odamlarning hayotini xavf ostiga qo'yadi.

Zilzilalar, tuproqning qattiqligi, tornadolar va boshqa ko'p narsalar ichki yoriqlar va inshootlar yoki nurlarning neytral pozitsiyadan chiqib ketishiga sabab bo'lishi mumkin. Ko'pincha biz atrofdagi inshootlarning ahvolidan xabardor emasmiz. Balki har kuni biz kiradigan joy beton nurlar bilan yorilib ketgan va istalgan vaqtda qulashi mumkin. Ammo biz bilmay turib, ichkariga bemalol kirmoqdamiz, buning uchun biz erisha olmaydigan konstruktsiyalarning beton, yog'och, metall nurlarini kuzatishning yaxshi usuli kerak.

2 -qadam: Yechim

Yechim
Yechim
Yechim
Yechim

"Struktura analizatori" - bu beton nurga, metall konstruktsiyaga, plitalarga va boshqalarga o'rnatiladigan ko'chma qurilma. Bu qurilma burchakni o'lchaydi va burilishlarni tahlil qiladi va ma'lumotlarni Bluetooth orqali mobil ilovaga yuboradi. Bu qurilma x, y, z tekislikdagi burchakni o'lchash uchun akselerometr/ giroskop va burilishlarni kuzatish uchun egiluvchan sensordan foydalanadi. Barcha ma'lumotlar qayta ishlanadi va ma'lumotlar mobil ilovaga yuboriladi.

3 -qadam: O'chirish

O'chirish
O'chirish
O'chirish
O'chirish
O'chirish
O'chirish
O'chirish
O'chirish

Quyidagi komponentlarni yig'ing.

  • Arduino 101 taxtasi
  • 2 ta Flex sensorlari
  • 2 x 10k rezistorlar

Komponentlar sonini kamaytirish uchun bu erda Arduino 101 taxtasi ishlatiladi, chunki unda akselerometr va BLE moduli mavjud. Moslashuvchan sensorlar bükme miqdorini o'lchash uchun ishlatiladi, chunki u egilganda qarshilikni o'zgartiradi. O'chirish juda kichik, chunki faqat 2 ta rezistor va 2 ta moslashuvchan sensorni ulash kerak. Quyidagi diagrammada egiluvchan sensorni Arduino kartasiga qanday ulash mumkinligi ko'rsatilgan.

Rezistorning bitta pimi Arduino kartasining A0 piniga ulangan. Ikkinchi moslashuvchan sensorni ulash uchun xuddi shu tartibni bajaring. Rezistorni ulash uchun A1 pinidan foydalaning.

Zilzilani to'g'ridan -to'g'ri D3 va Gnd pinlariga ulang.

4 -qadam: Qurilmani tugatish

Qurilmani tugatish
Qurilmani tugatish
Qurilmani tugatish
Qurilmani tugatish

O'chirish tugagandan so'ng, uni korpus ichiga mahkamlash kerak. Yuqoridagi 3D modelga ko'ra, korpusning qarama -qarshi tomoniga 2 ta egiluvchi datchik qo'yilishi kerak. Kengashni dasturlash va quvvat bilan ta'minlash uchun USB portiga joy ajratib qo'ying. Ushbu qurilmadan uzoq vaqt foydalanish kerak bo'lganligi sababli, quvvat bilan ta'minlashning eng yaxshi usuli - bu qattiq quvvat to'plamidan foydalanish.

5 -qadam: Mobil ilova

Mobil ilova
Mobil ilova
Mobil ilova
Mobil ilova
Mobil ilova
Mobil ilova

Android Play do'konidan Blynk -ni yuklab oling va o'rnating. Arduino 101 uchun yangi loyihani boshlang. BLE sifatida aloqa usulini tanlang. Interfeysga 1 terminal, 2 tugma va BLE qo'shing. Quyidagi rasmlar interfeysni qanday yaratishni ko'rsatadi.

6 -qadam: Blynk kodli fayllar

Blynk -da interfeysni yaratgandan so'ng, sizga avtorizatsiya kodi keladi. Kodni quyidagi joyga kiriting.

#include #include char auth = "**************"; // Blynk avtorizatsiya kodi

Vidjet terminal terminali (V2);

BLEPeriferik blePeriferik;

Kalibrlash jarayonida joriy sensor ko'rsatkichlari EEPROMda saqlanadi.

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

EEPROM.write (1, flx2);

EEPROM.write (2, x);

EEPROM.write (3, y);

EEPROM.write (4, z);

terminal.print ("Kalibrlash muvaffaqiyatli");

Kalibrlashdan so'ng, qurilma og'ishlarni chegara qiymatlari bilan taqqoslaydi va agar ular qiymatdan oshsa, signal signalini beradi.

qiymatlar(); agar (abs (flex1-m_flx1)> 10 yoki abs (flex2-m_flx2)> 10) {

terminal.println ("Haddan tashqari egilish");

ohang (signal, 1000);

}

agar (abs (x-m_x)> 15 yoki abs (y-m_y)> 15 yoki abs (z-m_z)> 15) {

terminal.println ("Haddan tashqari moyil");

ohang (signal, 1000);

}

7 -qadam: Funktsionallik

Funktsionallik
Funktsionallik

Qurilmani kuzatilishi kerak bo'lgan tuzilishga yopishtiring. 2 ta moslashuvchan datchikni ham joylashtiring. USB kabelidan foydalanib, taxtani quvvat bilan ta'minlang.

Blynk interfeysini oching. Bluetooth belgisini bosib, qurilmaga ulaning. Kalibrlash tugmachasini bosing. Kalibrlashdan so'ng terminalda "Muvaffaqiyatli kalibrlangan" degan xabar paydo bo'ladi. Qurilmani qayta o'rnating. Endi u strukturani kuzatib boradi va agar u deformatsiyadan chetga chiqsa, sizni signalli signal orqali xabardor qiladi. Vaziyat tugmachasini bosib istalgan vaqtda burchak va burilish qiymatlarini tekshirishingiz mumkin. Bu kichik qurilmaga o'xshab ko'rinishi mumkin. Ammo uning qo'llanilishi bebahodir. Ba'zan biz bandligimiz bilan uyimiz, ofisimiz va boshqalarning holatini tekshirishni unutamiz. Agar kichik muammo bo'lsa, u yuqoridagi rasmda bo'lgani kabi tugashi mumkin.

Ammo bu qurilma yordamida inshootlardagi kichik, ammo xavfli muammolarni xabar qilish orqali yuzlab odamlarning hayotini saqlab qolish mumkin.

8 -qadam: Arduino101 kodli fayl

#blynk_print seriyasini aniqlang

#fleksni belgilang1 A0

#define flex2 A1 // Moslashuvchan sensori va signal signallarini aniqlang

#signalni belgilang 3

#"CurieIMU.h" ni kiriting#"BlynkSimpleCurieBLE.h" ni qo'shing

#"CurieBLE.h" ni qo'shing

#"Wire.h" ni qo'shing

#"EEPROM.h" ni qo'shing

#"SPI.h" ni qo'shing

char auth = "**************"; // Blynk avtorizatsiya kodi WidgetTerminal terminali (V2);

BLEPeriferik blePeriferik;

int m_flx1, m_flx2, m_x, m_y, m_z; // xotirada saqlangan qiymatlar

int flx1, flx2, x, y, z; // Hozirgi o'qishlar

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

flx1 = analogRead (flex1); // Sensorlardan xom o'qishni oling

flx2 = analogRead (flex2);

x = CurieIMU.readAccelerometer (X_AXIS)/100;

y = CurieIMU.readAccelerometer (Y_AXIS)/100;

z = CurieIMU.readAccelerometer (Z_AXIS)/100;

kechikish (2);

}

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

x = x/100; // O'qishning o'rtacha qiymatlarini oling

y = y/100;

z = z/100;

}

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

pinMode (flex1, INPUT);

pinMode (flex2, INPUT); // Sensor pin rejimlarini sozlash

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. o'qish (2); // EEPROM -dan oldindan saqlangan sensor qiymatlarini o'qing

m_y = EEPROM.read (3);

m_z = EEPROM.read (4);

}

void loop () {Blynk.run ();

blePeripheral.poll ();

qiymatlar();

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

ohang (signal, 1000);

}

if (abs (x-m_x)> 15 yoki abs (y-m_y)> 15 yoki abs (z-m_z)> 15) {terminal.println ("Over eğimli");

ohang (signal, 1000);

}

ohang (signal, 0);

}

/*VO kalibrlash rejimini ko'rsatadi. Ushbu rejimda sensorlar * qiymatlari EEPROMda saqlanadi

*/

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

agar (pinValue == 1) {

qiymatlar();

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

EEPROM.write (2, x);

EEPROM.write (3, y);

EEPROM.write (4, z);

terminal.print ("Kalibrlash muvaffaqiyatli");

}

}

/ * V1 tugmachasini bosib, biz joriy og'ish qiymatlarini so'rashimiz mumkin *

*/

BLYNK_WRITE (V1) {

int pinValue = param.asInt ();

agar (pinValue == 1) {

qiymatlar(); terminal.print ("X burchak burilish-");

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

terminal.println ();

terminal.print ("Y burchagi burilishi-");

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

terminal.println ();

terminal.print ("Z burchagi burilishi-");

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

terminal.println ();

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

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

terminal.println ();

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

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

terminal.println ();

}

}

BLYNK_WRITE (V2) {

}

Tavsiya: