Мазмұны:

Ғимараттың құлау мониторымен өміріңізді сақтаңыз: 8 қадам
Ғимараттың құлау мониторымен өміріңізді сақтаңыз: 8 қадам
Anonim
Ғимараттың құлау мониторымен өміріңізді сақтаңыз
Ғимараттың құлау мониторымен өміріңізді сақтаңыз

Бетоннан, металдан, ағаштан жасалған конструкцияларды иілу мен бұрыштар мен ескертулер бойынша талдаңыз, егер олар бастапқы қалыптан ауытқып кетсе.

1 -қадам: Кіріспе

Кіріспе
Кіріспе

Құрылыс саласының дамуымен біз барлық жерде көптеген құрылыстарды анықтай аламыз. Металл конструкциялар, бетон арқалықтар, көп платформалы ғимараттар-олардың кейбіреулері. Сонымен қатар, көпшілігіміз тәуліктің көп уақытында ғимаратта немесе үйде болуға дағдыланғанбыз. Бірақ бұл ғимарат қауіпсіз қалуға қалай кепілдік бере аламыз? Егер сіздің ғимаратта кішкене жарықшақ немесе көлбеу сәуле болса ше? Бұл жүздеген адамдардың өміріне қауіп төндіруі мүмкін.

Жер сілкінісі, топырақтың қаттылығы, торнадо және басқа да көптеген факторлар ішкі жарықтар мен құрылымдардың немесе сәулелердің бейтарап позициядан ауытқуына әсер етуі мүмкін. Көбінесе біз қоршаған құрылымдардың жағдайын білмейміз. Мүмкін, біз күн сайын кіретін жерде бетон арқалықтар жарылған және кез келген уақытта құлап кетуі мүмкін. Бірақ біз білместен ішке емін -еркін енеміз. Бұл үшін бізге қол жетпейтін конструкциялардың бетон, ағаш, металл арқалықтарын бақылаудың жақсы әдісі қажет.

2 -қадам: Шешім

Шешім
Шешім
Шешім
Шешім

«Құрылым анализаторы» - бұл бетон арқалыққа, металл конструкцияға, плиталарға және т.б. орнатуға болатын портативті құрылғы. Бұл құрылғы бұрышты өлшейді және иілген жерлерді талдайды және Bluetooth арқылы деректерді мобильді қосымшаға жібереді. Бұл құрылғы x, y, z жазықтықтарындағы бұрышты өлшеу үшін акселерометр/ гироскоп пен иілуді бақылау үшін иілгіш сенсорды қолданады. Барлық бастапқы деректер өңделеді және мобильді қосымшаға ақпарат жіберіледі.

3 -қадам: Схема

Схема
Схема
Схема
Схема
Схема
Схема
Схема
Схема

Келесі компоненттерді жинаңыз.

  • Arduino 101 тақтасы
  • 2 X Flex сенсорлары
  • 2 X 10 к резисторлар

Компоненттер санын азайту үшін мұнда Arduino 101 тақтасы қолданылады, себебі оның құрамында акселерометр мен BLE модулі бар. Иілу сенсорлары иілу мөлшерін өлшеу үшін қолданылады, себебі ол иілу кезінде оның қарсылығын өзгертеді. Схема өте кішкентай, тек 2 резистор мен 2 иілгіш сенсорды қосу қажет. Келесі диаграмма икемді сенсорды Arduino тақтасына қалай қосу керектігін көрсетеді.

Резистордың бір штыры Arduino тақтасының A0 түйреуішіне қосылады. Екінші иілгіш сенсорды қосу үшін сол процедураны орындаңыз. Резисторды қосу үшін A1 түйреуішін қолданыңыз.

Дыбыстық сигналды тікелей D3 және Gnd түйреуішіне қосыңыз.

4 -қадам: құрылғыны аяқтау

Құрылғыны аяқтау
Құрылғыны аяқтау
Құрылғыны аяқтау
Құрылғыны аяқтау

Схеманы жасағаннан кейін оны корпустың ішіне бекіту керек. Жоғарыда келтірілген 3D үлгісіне сәйкес, 2 икемді сенсорды корпустың қарама -қарсы жағына қою керек. USB портына тақтаны бағдарламалау және қуат беру үшін орын жасаңыз. Бұл құрылғыны ұзақ уақыт пайдалану қажет болғандықтан, электрмен жабдықтаудың ең жақсы әдісі - тұрақты қуат жинағын пайдалану.

5 -қадам: мобильді қосымша

Мобильді қосымша
Мобильді қосымша
Мобильді қосымша
Мобильді қосымша
Мобильді қосымша
Мобильді қосымша

Android Play дүкенінен Blynk жүктеп алыңыз және орнатыңыз. Arduino 101 үшін жаңа жобаны бастаңыз. BLE ретінде байланыс әдісін таңдаңыз. Интерфейске 1 терминал, 2 түйме және BLE қосыңыз. Келесі суреттер интерфейсті қалай жасау керектігін көрсетеді.

6 -қадам: Blynk код файлдары

Blynk интерфейсін жасағаннан кейін сізге авторизация коды келеді. Бұл кодты келесі жерге енгізіңіз.

#include #include char auth = «**************»; // Blynk авторизация коды

WidgetTerminal терминалы (V2);

BLEPeripheral blePeripheral;

Калибрлеу процесінде ағымдағы сенсор көрсеткіштері EEPROM -де сақталады.

құндылықтар(); EEPROM.write (0, flx1);

EEPROM.write (1, flx2);

EEPROM.write (2, x);

EEPROM.write (3, y);

EEPROM.write (4, z);

terminal.print («Калибрлеу сәтті»);

Калибрлегеннен кейін құрылғы ауытқуды шекті мәндермен салыстырады және егер олар мәннен асып кетсе, дыбыстық сигнал береді.

құндылықтар(); егер (abs (flex1-m_flx1)> 10 немесе abs (flex2-m_flx2)> 10) {

terminal.println («Бұрылу»);

дыбыс (дыбыстық сигнал, 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

#define flex2 A1 // Иілгіш сенсор мен сигналдық түйреуіштерді анықтаңыз

#анықтайтын дыбыстық сигнал 3

#«CurieIMU.h» қосу#«BlynkSimpleCurieBLE.h» қосу

#«CurieBLE.h» қосыңыз

#«Wire.h» қосыңыз

#«EEPROM.h» қосыңыз

#«SPI.h» қосыңыз

char auth = «**************»; // Blynk авторизация коды WidgetTerminal терминалы (V2);

BLEPeripheral blePeripheral;

int m_flx1, m_flx2, m_x, m_y, m_z; // жадта сақталған мәндер

int flx1, flx2, x, y, z; // Ағымдағы көрсеткіштер

void мәндері () {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.оқу (4);

}

void loop () {Blynk.run ();

blePeripheral.poll ();

құндылықтар();

if (abs (flex1-m_flx1)> 10 немесе abs (flex2-m_flx2)> 10) {terminal.println («Over Bend»);

дыбыс (дыбыстық сигнал, 1000);

}

if (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.write (1, flx2);

EEPROM.write (2, x);

EEPROM.write (3, y);

EEPROM.write (4, z);

terminal.print («Калибрлеу сәтті»);

}

}

/ * Біз 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 бұрышының ауытқуы-»);

терминал.баспа (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) {

}

Ұсынылған: