Բովանդակություն:

Պահպանեք ձեր կյանքը շենքի փլուզման մոնիտորի միջոցով `8 քայլ
Պահպանեք ձեր կյանքը շենքի փլուզման մոնիտորի միջոցով `8 քայլ

Video: Պահպանեք ձեր կյանքը շենքի փլուզման մոնիտորի միջոցով `8 քայլ

Video: Պահպանեք ձեր կյանքը շենքի փլուզման մոնիտորի միջոցով `8 քայլ
Video: Prolonged Field Care Podcast 150: ETCO2 Deep Dive 2024, Դեկտեմբեր
Anonim
Պահպանեք ձեր կյանքը շենքի փլուզման մոնիտորի միջոցով
Պահպանեք ձեր կյանքը շենքի փլուզման մոնիտորի միջոցով

Վերլուծեք բետոնի, մետաղի, փայտի կառուցվածքները թեքությունների և անկյունների և ազդանշանների համար, եթե դրանք շեղվել են սկզբնական դիրքից:

Քայլ 1: Ներածություն

Ներածություն
Ներածություն

Քաղաքացիական ճարտարագիտության ոլորտի զարգացման հետ մեկտեղ մենք կարող ենք ամենուր հայտնաբերել բազմաթիվ շինություններ: Մետաղական կոնստրուկցիաներ, Բետոնի ճառագայթներ, Բազմահարթակ շենքեր դրանցից մի քանիսն են: Ավելին, մեզանից շատերը սովոր են օրվա մեծ մասում շենքում կամ տանը մնալ: Բայց ինչպե՞ս կարող ենք վստահեցնել, որ շենքը բավական անվտանգ է մնալու համար: Ի՞նչ կլինի, եթե ձեր շենքում մի փոքր ճեղք կամ գերլարված ճառագայթ լինի: Դա հարյուրավոր կյանքեր կվտանգեր:

Երկրաշարժերը, հողի կարծրությունը, պտտահողմերը և շատ այլ բաներ կարող են լինել ներքին ճաքերի և չեզոք դիրքից կառույցների կամ ճառագայթների շեղման գործոններ: Շատ դեպքերում մենք տեղյակ չենք շրջակա կառույցների վիճակի մասին: Գուցե այն վայրը, որտեղ մենք ամեն օր քայլում ենք, ճեղքված է բետոնե ճառագայթներից և կարող է փլուզվել ցանկացած պահի: Բայց առանց դա իմանալու, մենք ազատորեն ներս ենք մտնում: Որպես դրա լուծում, մեզ պետք է լավ մեթոդ ՝ մոնիտորինգի ենթարկելու բետոնի, փայտի, մետաղական ճառագայթների կոնստրուկցիաները, որտեղ մենք չենք կարող հասնել:

Քայլ 2: Լուծում

Լուծում
Լուծում
Լուծում
Լուծում

«Կառուցվածքի անալիզատոր» -ը շարժական սարք է, որը կարող է տեղադրվել բետոնե ճառագայթների, մետաղական կառուցվածքի, սալերի վրա և այլն: Այս սարքը օգտագործում է արագացուցիչ/ գիրոսկոպ ՝ x, y, z հարթություններում անկյունը չափելու և ճկման սենսոր ՝ թեքումները վերահսկելու համար: Բոլոր չմշակված տվյալները մշակվում են, և տեղեկատվությունն ուղարկվում է բջջային հավելվածին:

Քայլ 3: Շղթա

Շրջան
Շրջան
Շրջան
Շրջան
Շրջան
Շրջան
Շրջան
Շրջան

Հավաքեք հետևյալ բաղադրիչները.

  • Arduino 101 տախտակ
  • 2 X Flex տվիչներ
  • 2 X 10k դիմադրիչներ

Բաղադրիչների քանակը նվազեցնելու համար այստեղ օգտագործվում է Arduino 101 տախտակը, քանի որ այն պարունակում է արագացուցիչ և BLE մոդուլ: Flex սենսորները օգտագործվում են ճկման չափը չափելու համար, քանի որ այն փոխում է իր դիմադրությունը թեքվելիս: Շղթան շատ փոքր է, քանի որ միացման համար անհրաժեշտ էր ընդամենը 2 դիմադրություն և 2 ճկուն տվիչ: Հետևյալ դիագրամը ցույց է տալիս, թե ինչպես միացնել ճկուն սենսորը Arduino տախտակին:

Ռեզիստորի մեկ քորոց միացված է Arduino տախտակի A0 կապին: Հետևեք նույն ընթացակարգին ՝ երկրորդ ճկվող սենսորը միացնելու համար: Ռեզիստորը միացնելու համար օգտագործեք A1 կապը:

Միացրեք ազդանշանը անմիջապես D3 և Gnd կապում:

Քայլ 4: Սարքի ավարտում

Սարքի ավարտում
Սարքի ավարտում
Սարքի ավարտում
Սարքի ավարտում

Շղթան կատարելուց հետո այն պետք է ամրացվի պարիսպի ներսում: Ըստ վերը նշված 3D մոդելի, պատյանների հակառակ կողմում պետք է տեղադրվեն 2 ճկուն տվիչներ: Տեղ ազատեք USB պորտի համար ՝ տախտակը ծրագրավորելու և սնուցելու համար: Քանի որ այս սարքը պետք է երկար ժամանակ օգտագործվի, էներգիա մատակարարելու լավագույն մեթոդը ֆիքսված էներգիայի տուփի օգտագործումն է:

Քայլ 5: Բջջային հավելված

Բջջային հավելված
Բջջային հավելված
Բջջային հավելված
Բջջային հավելված
Բջջային հավելված
Բջջային հավելված

Ներբեռնեք և տեղադրեք Blynk- ը Android Play Store- ից: Սկսեք նոր նախագիծ Arduino 101 -ի համար: Ընտրեք հաղորդակցության եղանակը որպես BLE: Ինտերֆեյսին ավելացրեք 1 տերմինալ, 2 կոճակ և BLE: Հետևյալ պատկերները ցույց են տալիս, թե ինչպես կատարել ինտերֆեյսը:

Քայլ 6: Blynk կոդի ֆայլեր

Blynk- ում ինտերֆեյսը կատարելուց հետո դուք կստանաք թույլտվության կոդ: Մուտքագրեք այդ կոդը հետևյալ վայրում:

#ներառել #ներառել char author = "**************"; // Բլինկի թույլտվության ծածկագիր

WidgetTerminal տերմինալ (V2);

BLEPeripheral blePeripheral;

Կալիբրացիայի գործընթացում ընթացիկ սենսորների ընթերցումները պահվում են EEPROM- ում:

արժեքներ (); EEPROM.write (0, flx1);

EEPROM. գրել (1, flx2);

EEPROM.write (2, x);

EEPROM. գրել (3, y);

EEPROM. գրել (4, z);

terminal.print («Calibration Succesful»);

Կալիբրացումից հետո սարքը համեմատելու է շեղումը շեմի արժեքների հետ և ազդանշան է տալիս ազդանշանին, եթե դրանք գերազանցում են արժեքը:

արժեքներ (); եթե (abs (flex1-m_flx1)> 10 կամ abs (flex2-m_flx2)> 10) {

terminal.println («Over Bend»);

տոն (ազդանշան, 1000);

}

եթե (abs (x-m_x)> 15 կամ abs (y-m_y)> 15 կամ abs (z-m_z)> 15) {

terminal.println («Ավելի թեքված»);

տոն (ազդանշան, 1000);

}

Քայլ 7: Գործունակություն

Ֆունկցիոնալություն
Ֆունկցիոնալություն

Կպչեք սարքը այն կառույցի վրա, որն անհրաժեշտ է վերահսկել: Կպչեք նաև 2 ճկուն տվիչներին: Էլեկտրամատակարարում տախտակին USB մալուխի միջոցով:

Բացեք Blynk ինտերֆեյսը: Միացեք սարքին ՝ հպելով Bluetooth պատկերակին: Սեղմեք ստուգաչափման կոճակը: Տերմինալը կալիբրացնելուց հետո հաղորդագրությունը կցուցադրվի որպես «Հաջողությամբ չափագրված»: Վերագործարկեք սարքը: Այժմ այն կհսկի կառուցվածքը և ազդանշանի միջոցով ձեզ կտեղեկացնի, եթե այն շեղվի դեֆորմացիաներից: Դուք ցանկացած պահի կարող եք ստուգել անկյունի և թեքության արժեքները ՝ սեղմելով «Կարգավիճակ» կոճակը: Սա կարող է փոքր սարքի տեսք ունենալ: Բայց դրա օգտագործումը անգին է: Երբեմն մենք մոռանում ենք ստուգել մեր տան, գրասենյակի և այլնի վիճակը ՝ մեր զբաղված գրաֆիկով: Բայց եթե կա մի փոքր խնդիր, այն կարող է ավարտվել այնպես, ինչպես վերը նշված պատկերն է:

Բայց այս սարքի շնորհիվ հարյուրավոր կյանքեր կարող են փրկվել `տեղեկացնելով շինությունների փոքր, բայց վտանգավոր խնդիրների մասին:

Քայլ 8: Arduino101 կոդի ֆայլ

#սահմանել BLYNK_PRINT Սերիա

#սահմանել flex1 A0- ը

#սահմանեք flex2 A1 // Սահմանեք ճկման տվիչ և ազդանշանային կապում

#սահմանեք ազդանշանը 3

#ներառել «CurieIMU.h»#ներառել «BlynkSimpleCurieBLE.h»

#ներառել «CurieBLE.h»

#ներառել «Wire.h»

#ներառել «EEPROM.h»

#ներառել «SPI.h»

char author = "**************"; // Blynk Authorization Code WidgetTerminal տերմինալ (V2);

BLEPeripheral blePeripheral;

int m_flx1, m_flx2, m_x, m_y, m_z; // հիշողության մեջ պահված արժեքներ

int flx1, flx2, x, y, z; // Ընթացիկ ընթերցումներ

անվավեր արժեքներ () {for (int i = 0; i <100; i ++) {

flx1 = analogRead (flex1); // Ստացեք սենսորներից հում ընթերցումներ

flx2 = analogRead (flex2);

x = CurieIMU.readAccelerometer (X_AXIS)/100;

y = CurieIMU.readAccelerometer (Y_AXIS)/100;

z = CurieIMU.readAccelerometer (Z_AXIS)/100;

ուշացում (2);

}

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

x = x/100; // Ստացեք ընթերցումների միջին արժեքները

y = y/100;

z = z/100;

}

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

pinMode (flex1, INPUT);

pinMode (flex2, INPUT); // Սենսորի քորոցային ռեժիմների կարգավորում

Serial.begin (9600);

blePeripheral.setLocalName («Arduino101Blynk»); blePeripheral.setDeviceName («Arduino101Blynk»);

blePeripheral.setAppearance (384);

Blynk.begin (հեղինակ, blePeripheral);

blePeripheral.begin ();

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

m_x = EEPROM.read (2); // Կարդացեք EEPROM- ից նախապես պահպանված տվիչների արժեքները

m_y = EEPROM.read (3);

m_z = EEPROM.read (4);

}

void loop () {Blynk.run ();

blePeripheral.poll ();

արժեքներ ();

եթե (abs (flex1-m_flx1)> 10 կամ abs (flex2-m_flx2)> 10) {terminal.println ("Over Bend");

տոն (ազդանշան, 1000);

}

եթե (abs (x-m_x)> 15 կամ abs (y-m_y)> 15 կամ abs (z-m_z)> 15) {terminal.println ("Ավելի թեքված");

տոն (ազդանշան, 1000);

}

տոն (ազդանշան, 0);

}

/*VO- ն ցույց է տալիս ստուգաչափման ռեժիմը: Այս ռեժիմում * տվիչների արժեքները պահպանվում են EEPROM- ում

*/

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

եթե (pinValue == 1) {

արժեքներ ();

EEPROM.write (0, flx1); EEPROM. գրել (1, flx2);

EEPROM.write (2, x);

EEPROM. գրել (3, y);

EEPROM. գրել (4, z);

terminal.print («Calibration Succesful»);

}

}

/ * Մենք կարող ենք պահանջել ընթացիկ շեղման արժեքներ * ՝ սեղմելով V1 կոճակը

*/

BLYNK_WRITE (V1) {

int pinValue = param.asInt ();

եթե (pinValue == 1) {

արժեքներ (); terminal.print ("X անկյան շեղում-");

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

terminal.println ();

terminal.print ("Y անկյան շեղում-");

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

terminal.println ();

terminal.print («Z անկյան շեղում-»);

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

terminal.println ();

terminal.print («Flex 1 շեղում-»);

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

terminal.println ();

terminal.print («Flex 2 շեղում-»);

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

terminal.println ();

}

}

BLYNK_WRITE (V2) {

}

Խորհուրդ ենք տալիս: