Spisu treści:

Ratuj swoje życie dzięki monitorowi zawalania budynku: 8 kroków
Ratuj swoje życie dzięki monitorowi zawalania budynku: 8 kroków

Wideo: Ratuj swoje życie dzięki monitorowi zawalania budynku: 8 kroków

Wideo: Ratuj swoje życie dzięki monitorowi zawalania budynku: 8 kroków
Wideo: marzenia jednak sie spelniaja #genzie #shorts 2024, Lipiec
Anonim
Ratuj swoje życie dzięki monitorowi zawalania budynku
Ratuj swoje życie dzięki monitorowi zawalania budynku

Analizuj konstrukcje betonowe, metalowe, drewniane pod kątem zagięć i kątów oraz ostrzeżeń, jeśli odbiegają od pierwotnej pozycji.

Krok 1: Wprowadzenie

Wstęp
Wstęp

Wraz z rozwojem dziedziny budownictwa lądowego, wszędzie możemy zidentyfikować wiele konstrukcji. Konstrukcje metalowe, belki betonowe, budynki wieloplatformowe to tylko niektóre z nich. Co więcej, większość z nas jest przyzwyczajona do przebywania w budynku lub domu przez większość dnia. Ale jak możemy zapewnić, że budynek jest wystarczająco bezpieczny, aby pozostać? Co zrobić, jeśli w twoim budynku jest małe pęknięcie lub zbyt nachylona belka? Zaryzykowałoby to setki istnień.

Trzęsienia ziemi, twardość gleby, tornada i wiele innych rzeczy mogą być czynnikami powodującymi pęknięcia wewnętrzne i odchylenia konstrukcji lub belek od pozycji neutralnej. W większości przypadków nie jesteśmy świadomi sytuacji otaczających nas konstrukcji. Może miejsce, do którego codziennie chodzimy, ma popękane betonowe belki i w każdej chwili może się zawalić. Ale nie zdając sobie z tego sprawy swobodnie wchodzimy do środka. Jako rozwiązanie tego problemu potrzebujemy dobrej metody monitorowania betonu, drewna, metalowych belek konstrukcji, do których nie możemy dotrzeć.

Krok 2: Rozwiązanie

Rozwiązanie
Rozwiązanie
Rozwiązanie
Rozwiązanie

„Analizator struktury” to przenośne urządzenie, które można zamontować na betonowej belce, konstrukcji metalowej, płytach itp. Urządzenie to mierzy kąt i analizuje zagięcia w miejscu jego zamontowania oraz przesyła dane do aplikacji mobilnej przez Bluetooth. To urządzenie wykorzystuje akcelerometr/żyroskop do pomiaru kąta w płaszczyznach x, y, z oraz czujnik ugięcia do monitorowania zakrętów. Wszystkie surowe dane są przetwarzane, a informacje przesyłane do aplikacji mobilnej.

Krok 3: Obwód

Okrążenie
Okrążenie
Okrążenie
Okrążenie
Okrążenie
Okrążenie
Okrążenie
Okrążenie

Zbierz następujące elementy.

  • Płytka Arduino 101
  • 2 X czujniki Flex
  • Rezystory 2X10k

W celu zmniejszenia liczby komponentów zastosowano tutaj płytkę Arduino 101, która zawiera akcelerometr i moduł BLE. Czujniki Flex służą do pomiaru wielkości zginania, ponieważ zmienia on jego opór podczas zginania. Obwód jest bardzo mały, ponieważ wymagały podłączenia tylko 2 rezystorów i 2 czujników giętkich. Poniższy schemat pokazuje, jak podłączyć czujnik flex do płytki Arduino.

Jeden pin rezystora jest podłączony do pinu A0 płytki Arduino. Wykonaj tę samą procedurę, aby podłączyć drugi czujnik flex. Użyj pinu A1 do podłączenia rezystora.

Podłącz brzęczyk bezpośrednio do pinu D3 i pinu Gnd.

Krok 4: Wykończenie urządzenia

Wykończenie urządzenia
Wykończenie urządzenia
Wykończenie urządzenia
Wykończenie urządzenia

Po wykonaniu obwodu należy go zamocować w obudowie. Zgodnie z powyższym modelem 3D, 2 czujniki flex muszą być umieszczone po przeciwnej stronie obudowy. Zrób miejsce na port USB, aby zaprogramować płytkę i zapewnić zasilanie. Ponieważ urządzenie to musi być używane przez długi czas, najlepszą metodą zasilania jest użycie zasilacza stacjonarnego.

Krok 5: Aplikacja mobilna

Aplikacja mobilna
Aplikacja mobilna
Aplikacja mobilna
Aplikacja mobilna
Aplikacja mobilna
Aplikacja mobilna

Pobierz i zainstaluj Blynk ze sklepu Android Play. Rozpocznij nowy projekt dla Arduino 101. Wybierz metodę komunikacji jako BLE. Dodaj 1 terminal, 2 przyciski i BLE do interfejsu. Poniższe obrazy pokazują, jak zrobić interfejs.

Krok 6: Pliki z kodem Blynk

Po wykonaniu interfejsu na Blynk otrzymasz kod autoryzacyjny. Wpisz ten kod w następującym miejscu.

#include #include char auth = "***************"; //Kod autoryzacji Blynk

Terminal WidgetTerminal (V2);

BLEPeripheral blePeripheral;

W procesie kalibracji aktualne odczyty czujnika są zapisywane w pamięci EEPROM.

wartości(); EEPROM.write(0, flx1);

EEPROM.write(1, flx2);

EEPROM.zapis(2, x);

EEPROM.zapis(3, y);

EEPROM.write(4, z);

terminal.print("Kalibracja powiodła się");

Po kalibracji urządzenie porówna odchylenie z wartościami progowymi i wyda sygnał dźwiękowy, jeśli przekroczą wartość.

wartości(); if(abs(flex1-m_flx1)>10 lub abs(flex2-m_flx2)>10){

terminal.println("Zagięcie");

ton (brzęczyk, 1000);

}

if(abs(x-m_x)>15 lub abs(y-m_r)>15 lub abs(z-m_z)>15){

terminal.println("Zbyt pochylony");

ton (brzęczyk, 1000);

}

Krok 7: Funkcjonalność

Funkcjonalność
Funkcjonalność

Przyklej urządzenie do konstrukcji, która ma być monitorowana. Przyklej również 2 elastyczne czujniki. Doprowadź zasilanie do płytki za pomocą kabla USB.

Otwórz interfejs Blynk. Połącz się z urządzeniem, dotykając ikony Bluetooth. Naciśnij przycisk kalibracji. Po kalibracji terminal wyświetli komunikat „Successfully Calibrated”. Zresetuj urządzenie. Teraz będzie monitorować konstrukcję i powiadamiać przez brzęczyk, jeśli odbiega od deformacji. Możesz sprawdzić wartości kąta i zagięcia w dowolnym momencie, naciskając przycisk Stan. To może wyglądać na małe urządzenie. Ale jego zastosowania są bezcenne. Czasami zapominamy sprawdzić stan naszego domu, biura itp., mając napięte harmonogramy. Ale jeśli jest mały problem, może się skończyć tak, jak na powyższym rysunku.

Ale dzięki temu urządzeniu można uratować setki istnień ludzkich, informując o małych, ale niebezpiecznych problemach w konstrukcjach.

Krok 8: Plik kodu Arduino101

#define BLYNK_PRINT Serial

#definiuj flex1 A0

#define flex2 A1 //Define flex sensor i buzzer piny

#define brzęczyk 3

#include "CurieIMU.h"#include "BlynkSimpleCurieBLE.h"

#include "CurieBLE.h"

#include "Drut.h"

#zawiera "EEPROM.h"

#include "SPI.h"

char auth = "***************"; //Blynk Kod autoryzacji WidgetTerminal terminal(V2);

BLPeripheral blePeripheral;

int m_flx1, m_flx2, m_x, m_y, m_z; //wartości zapisane w pamięci

int flx1, flx2, x, y, z; //Aktualne odczyty

void wartości(){ for(int i=0;i<100;i++){

flx1 = odczyt analogowy (flex1); //Pobierz surowe odczyty z czujników

flx2 = odczyt analogowy (flex2);

x = CurieIMU.odczyt Akcelerometr(X_AXIS)/100;

y = CurieIMU.odczyt Akcelerometr(Y_AXIS)/100;

z = CurieIMU.odczyt Akcelerometr(Z_AXIS)/100;

opóźnienie(2);

}

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

x = x/100; //Uzyskaj średnie wartości odczytów

r = r/100;

z = z/100;

}

void setup(){ //pinMode(3, WYJŚCIE);

pinMode(flex1, WEJŚCIE);

pinMode(flex2, WEJŚCIE); //Ustawianie trybów pinów czujnika

Serial.początek(9600);

blePeripheral.setLocalName("Arduino101Blynk"); blePeripheral.setDeviceName("Arduino101Blynk");

blePeripheral.setAppearance(384);

Blynk.begin(auth, blePeripheral);

blePeripheral.początek();

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

m_x = EEPROM.odczyt(2); //Odczytaj wstępnie zapisane wartości czujników z EEPROM

m_y = EEPROM.odczyt(3);

m_z = EEPROM.odczyt(4);

}

void loop(){ Blynk.run();

blePeripheral.poll();

wartości();

if(abs(flex1-m_flx1)>10 lub abs(flex2-m_flx2)>10){ terminal.println("Zagięcie");

ton (brzęczyk, 1000);

}

if(abs(x-m_x)>15 lub abs(y-m_y)>15 lub abs(z-m_z)>15){ terminal.println("Znacznie nachylony");

ton (brzęczyk, 1000);

}

ton (brzęczyk, 0);

}

/*VO wskazuje tryb kalibracji. W tym trybie wartości czujników * są zapisywane w pamięci EEPROM

*/

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

jeśli (PinValue == 1){

wartości();

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

EEPROM.zapis(2, x);

EEPROM.zapis(3, y);

EEPROM.write(4, z);

terminal.print("Kalibracja powiodła się");

}

}

/*Możemy zażądać aktualnych wartości odchyleń *, naciskając przycisk V1

*/

BLYNK_WRITE(V1){

int pinValue = param.asInt();

jeśli (PinValue == 1){

wartości(); terminal.print("Odchylenie kąta X- ");

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

terminal.println();

terminal.print("Odchylenie kąta Y- ");

terminal.print(abs(rr-m_r));

terminal.println();

terminal.print("Odchylenie kąta Z- ");

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

terminal.println();

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

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

terminal.println();

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

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

terminal.println();

}

}

BLYNK_WRITE(V2){

}

Zalecana: