Mục lục:

Cứu mạng bạn với Màn hình thu gọn tòa nhà: 8 bước
Cứu mạng bạn với Màn hình thu gọn tòa nhà: 8 bước

Video: Cứu mạng bạn với Màn hình thu gọn tòa nhà: 8 bước

Video: Cứu mạng bạn với Màn hình thu gọn tòa nhà: 8 bước
Video: Làm Thí Nghiệm Tàng Hình Trên Người Và Cái Kết || Review Phim 2024, Tháng bảy
Anonim
Cứu mạng bạn với màn hình thu gọn tòa nhà
Cứu mạng bạn với màn hình thu gọn tòa nhà

Phân tích kết cấu bê tông, kim loại, gỗ để biết các chỗ uốn cong và góc cạnh và cảnh báo nếu chúng đã lệch khỏi vị trí ban đầu.

Bước 1: Giới thiệu

Giới thiệu
Giới thiệu

Với sự phát triển của lĩnh vực xây dựng dân dụng, chúng ta có thể xác định được rất nhiều công trình xây dựng ở khắp mọi nơi. Kết cấu kim loại, Dầm bê tông, Tòa nhà nhiều nền là một số trong số đó. Hơn nữa, hầu hết chúng ta thường ở trong một tòa nhà hoặc nhà trong hầu hết thời gian trong ngày. Nhưng làm thế nào chúng ta có thể đảm bảo rằng tòa nhà đủ an toàn để ở? Điều gì sẽ xảy ra nếu có một vết nứt nhỏ hoặc dầm nghiêng quá mức trong tòa nhà của bạn? Nó sẽ nguy hiểm đến hàng trăm mạng sống.

Động đất, độ cứng của đất, Lốc xoáy và nhiều thứ khác, có thể là các yếu tố gây ra các vết nứt bên trong và độ lệch của kết cấu hoặc dầm khỏi vị trí trung tính. Hầu hết các lần chúng ta không nhận thức được tình hình của các cấu trúc xung quanh. Có thể nơi hàng ngày chúng ta đi qua có những dầm bê tông bị nứt và có thể sập bất cứ lúc nào. Nhưng nếu không biết, chúng ta vẫn tự do đi vào bên trong. Để giải quyết vấn đề này, chúng ta cần một phương pháp tốt để giám sát bê tông, gỗ, dầm kim loại của các công trình xây dựng mà chúng ta không thể tiếp cận.

Bước 2: Giải pháp

Dung dịch
Dung dịch
Dung dịch
Dung dịch

“Máy phân tích kết cấu” là một thiết bị di động có thể được gắn trên dầm bê tông, kết cấu kim loại, tấm sàn, v.v. Thiết bị này đo góc và phân tích các khúc cua nơi nó được gắn và gửi dữ liệu đến ứng dụng di động thông qua Bluetooth. Thiết bị này sử dụng gia tốc kế / Con quay hồi chuyển để đo góc trong các mặt phẳng x, y, z và cảm biến flex để theo dõi các khúc cua. Tất cả dữ liệu thô được xử lý và thông tin được gửi đến ứng dụng dành cho thiết bị di động.

Bước 3: Mạch

Mạch điện
Mạch điện
Mạch điện
Mạch điện
Mạch điện
Mạch điện
Mạch điện
Mạch điện

Thu thập các thành phần sau đây.

  • Bảng Arduino 101
  • 2 cảm biến Flex
  • Điện trở 2 X 10k

Để giảm số lượng thành phần, bảng Arduino 101 được sử dụng ở đây vì nó chứa một gia tốc kế và một mô-đun BLE. Cảm biến uốn cong được sử dụng để đo lượng uốn cong vì nó thay đổi lực cản khi uốn cong. Mạch là một mạch rất nhỏ chỉ cần 2 điện trở và 2 cảm biến uốn cong để được kết nối. Sơ đồ sau đây cho thấy cách kết nối cảm biến flex với bảng Arduino.

Một chân của điện trở được kết nối với chân A0 của bảng Arduino. Thực hiện theo quy trình tương tự để kết nối cảm biến flex thứ hai. Sử dụng chân A1 để nối điện trở.

Kết nối trực tiếp bộ rung với chân D3 và chân Gnd.

Bước 4: Hoàn thiện thiết bị

Hoàn thiện thiết bị
Hoàn thiện thiết bị
Hoàn thiện thiết bị
Hoàn thiện thiết bị

Sau khi tạo mạch, nó phải được cố định bên trong một vỏ bọc. Theo mô hình 3D ở trên, 2 cảm biến flex phải được đặt ở phía đối diện của vỏ máy. Tạo khoảng trống cho cổng USB để lập trình bo mạch và cấp nguồn. Vì thiết bị này cần được sử dụng trong thời gian dài, phương pháp tốt nhất để cung cấp điện là sử dụng bộ nguồn cố định.

Bước 5: Ứng dụng di động

Ứng dụng di động
Ứng dụng di động
Ứng dụng di động
Ứng dụng di động
Ứng dụng di động
Ứng dụng di động

Tải xuống và cài đặt Blynk từ Cửa hàng Play của Android. Bắt đầu một dự án mới cho Arduino 101. Chọn phương thức giao tiếp là BLE. Thêm 1 thiết bị đầu cuối, 2 nút và BLE vào giao diện. Hình ảnh sau đây hướng dẫn bạn cách làm giao diện.

Bước 6: Tệp mã Blynk

Sau khi làm giao diện trên Blynk bạn sẽ nhận được mã ủy quyền. Nhập mã đó vào vị trí sau.

#include #include char auth = "**************"; // Mã ủy quyền Blynk

Thiết bị đầu cuối WidgetTerminal (V2);

BLEPeriotic blePeripheral;

Trong quá trình hiệu chuẩn, các giá trị đọc của cảm biến hiện tại được lưu trong EEPROM.

giá trị (); EEPROM.write (0, flx1);

EEPROM.write (1, flx2);

EEPROM.write (2, x);

EEPROM.write (3, y);

EEPROM.write (4, z);

terminal.print ("Hiệu chỉnh thành công");

Sau khi hiệu chỉnh, thiết bị sẽ so sánh độ lệch với các giá trị ngưỡng và phát ra tiếng bíp nếu chúng vượt quá giá trị.

giá trị (); if (abs (flex1-m_flx1)> 10 hoặc abs (flex2-m_flx2)> 10) {

terminal.println ("Qua Bend");

âm báo (buzzer, 1000);

}

nếu (abs (x-m_x)> 15 hoặc abs (y-m_y)> 15 hoặc abs (z-m_z)> 15) {

terminal.println ("Nghiêng");

âm báo (buzzer, 1000);

}

Bước 7: Chức năng

Chức năng
Chức năng

Dán thiết bị vào cấu trúc cần giám sát. Dán cả 2 cảm biến flex. Cấp nguồn cho bo mạch bằng cáp USB.

Mở giao diện Blynk. Kết nối với thiết bị bằng cách chạm vào biểu tượng Bluetooth. Nhấn nút hiệu chuẩn. Sau khi hiệu chỉnh thiết bị đầu cuối sẽ hiển thị thông báo "Đã hiệu chỉnh thành công". Đặt lại thiết bị. Bây giờ nó sẽ theo dõi cấu trúc và thông báo cho bạn thông qua bộ rung nếu nó bị lệch các biến dạng. Bạn có thể kiểm tra các giá trị góc và uốn cong bất kỳ lúc nào bằng cách nhấn nút Trạng thái. Đây có thể giống như một thiết bị nhỏ. Nhưng công dụng của nó là vô giá. Đôi khi chúng ta quên kiểm tra tình trạng của ngôi nhà, văn phòng, v.v. với lịch trình bận rộn của chúng ta. Nhưng nếu có một vấn đề nhỏ, nó có thể kết thúc như hình trên.

Nhưng với thiết bị này, hàng trăm sinh mạng có thể được cứu bằng cách thông báo những sự cố nhỏ nhưng nguy hiểm trong các công trình xây dựng.

Bước 8: Tệp mã Arduino101

#define BLYNK_PRINT Sê-ri

#define flex1 A0

#define flex2 A1 // Xác định chân cảm biến flex và bộ rung

#define buzzer 3

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

#include "CurieBLE.h"

#include "Wire.h"

#include "EEPROM.h"

#include "SPI.h"

char auth = "**************"; // Mã ủy quyền Blynk WidgetTerminal terminal (V2);

BLEPeriotic blePeripheral;

int m_flx1, m_flx2, m_x, m_y, m_z; // giá trị được lưu trong bộ nhớ

int flx1, flx2, x, y, z; // Các bài đọc hiện tại

void giá trị () {for (int i = 0; i <100; i ++) {

flx1 = analogRead (flex1); // Nhận các bài đọc thô từ các cảm biến

flx2 = analogRead (flex2);

x = CurieIMU.readAccelerometer (X_AXIS) / 100;

y = CurieIMU.readAccelerometer (Y_AXIS) / 100;

z = CurieIMU.readAccelerometer (Z_AXIS) / 100;

chậm trễ (2);

}

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

x = x / 100; // Lấy giá trị trung bình của các lần đọc

y = y / 100;

z = z / 100;

}

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

pinMode (flex1, INPUT);

pinMode (flex2, INPUT); // Đặt chế độ chân cảm biến

Serial.begin (9600);

blePeri Foreign.setLocalName ("Arduino101Blynk"); blePeri Foreign.setDeviceName ("Arduino101Blynk");

blePeri Foreign.setAppearance (384);

Blynk.begin (auth, blePeri ngoại vi);

blePeri Foreign.begin ();

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

m_x = EEPROM.read (2); // Đọc các giá trị cảm biến đã lưu trước từ EEPROM

m_y = EEPROM.read (3);

m_z = EEPROM.read (4);

}

void loop () {Blynk.run ();

blePeri Foreign.poll ();

giá trị ();

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

âm báo (buzzer, 1000);

}

if (abs (x-m_x)> 15 hoặc abs (y-m_y)> 15 hoặc abs (z-m_z)> 15) {terminal.println ("Over nghiêng");

âm báo (buzzer, 1000);

}

âm báo (buzzer, 0);

}

/ * VO cho biết chế độ hiệu chuẩn. Trong chế độ này, các giá trị của cảm biến * được lưu trong EEPROM

*/

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

if (pinValue == 1) {

giá trị ();

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

EEPROM.write (2, x);

EEPROM.write (3, y);

EEPROM.write (4, z);

terminal.print ("Hiệu chỉnh thành công");

}

}

/ * Chúng tôi có thể yêu cầu các giá trị độ lệch hiện tại * bằng cách nhấn nút V1

*/

BLYNK_WRITE (V1) {

int pinValue = param.asInt ();

if (pinValue == 1) {

giá trị (); terminal.print ("Độ lệch góc X-");

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

terminal.println ();

terminal.print ("Độ lệch góc Y-");

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

terminal.println ();

terminal.print ("Độ lệch góc Z-");

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

terminal.println ();

terminal.print ("Độ lệch Flex 1-");

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

terminal.println ();

terminal.print ("Độ lệch Flex 2-");

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

terminal.println ();

}

}

BLYNK_WRITE (V2) {

}

Đề xuất: