فهرست مطالب:

با مانیتور سقوط ساختمان جان خود را نجات دهید: 8 مرحله
با مانیتور سقوط ساختمان جان خود را نجات دهید: 8 مرحله

تصویری: با مانیتور سقوط ساختمان جان خود را نجات دهید: 8 مرحله

تصویری: با مانیتور سقوط ساختمان جان خود را نجات دهید: 8 مرحله
تصویری: لزبازی لیلا اوتادی چه لبی میگیره (نبینی از دستت رفته) 2024, جولای
Anonim
با مانیتور سقوط ساختمان جان خود را نجات دهید
با مانیتور سقوط ساختمان جان خود را نجات دهید

سازه های بتنی ، فلزی ، چوبی را از نظر خم و زاویه و هشدارها در صورت انحراف از موقعیت اصلی تجزیه و تحلیل کنید.

مرحله 1: مقدمه

معرفی
معرفی

با توسعه رشته مهندسی عمران ، می توانیم بسیاری از سازه ها را در همه جا شناسایی کنیم. سازه های فلزی ، تیرهای بتنی ، ساختمانهای چند سکو برخی از آنها هستند. علاوه بر این ، اکثر ما عادت داریم در بیشتر ساعات روز در یک ساختمان یا خانه بمانیم. اما چگونه می توانیم اطمینان دهیم که ساختمان به اندازه کافی ایمن است تا بتواند بماند؟ اگر یک شکاف کوچک یا تیر بیش از حد در ساختمان شما وجود داشته باشد ، چطور؟ جان صدها نفر را به خطر خواهد انداخت.

زمین لرزه ها ، سختی خاک ، گردبادها و موارد دیگر ، می توانند عواملی برای ترک های داخلی و انحراف ساختارها یا تیرها از موقعیت خنثی باشند. اغلب ما از وضعیت سازه های اطراف آگاه نیستیم. شاید جایی که هر روز در آن قدم می زنیم تیرهای بتنی ترک خورده و در هر زمان ممکن است فرو ریزد. اما بدون اطلاع از آن ، ما آزادانه به داخل می رویم. به عنوان راه حلی برای این امر ، ما نیاز به یک روش خوب برای نظارت بر بتن ، چوب ، تیرهای فلزی سازه هایی داریم که نمی توانیم به آنها برسیم.

مرحله 2: راه حل

راه حل
راه حل
راه حل
راه حل

"تجزیه و تحلیل ساختار" یک دستگاه قابل حمل است که می تواند بر روی تیر بتنی ، سازه فلزی ، اسلب و غیره نصب شود. این دستگاه زاویه را اندازه گیری کرده و خم های محل نصب را تجزیه و تحلیل کرده و داده ها را از طریق بلوتوث به برنامه تلفن همراه ارسال می کند. این دستگاه از شتاب سنج/ ژیروسکوپ برای اندازه گیری زاویه در سطوح x ، y ، z و سنسور فلکس برای نظارت بر خم ها استفاده می کند. همه داده های خام پردازش می شوند و اطلاعات به برنامه تلفن همراه ارسال می شود.

مرحله 3: مدار

جریان
جریان
جریان
جریان
جریان
جریان
جریان
جریان

اجزای زیر را جمع آوری کنید.

  • برد آردوینو 101
  • 2 سنسور Flex
  • 2 مقاومت 10k 10k

برای کاهش تعداد قطعات از برد Arduino 101 در اینجا استفاده می شود زیرا حاوی شتاب سنج و ماژول BLE است. سنسورهای فلکس برای اندازه گیری میزان خم شدن استفاده می شود زیرا مقاومت آن را در هنگام خم شدن تغییر می دهد. این مدار بسیار کوچک است زیرا فقط 2 مقاومت و 2 سنسور فلکس برای اتصال نیاز دارند. نمودار زیر نحوه اتصال سنسور فلکس به برد آردوینو را نشان می دهد.

یک پین مقاومت به پین A0 برد آردوینو وصل شده است. برای اتصال دومین سنسور فلکس ، همین روش را دنبال کنید. برای اتصال مقاومت از پین A1 استفاده کنید.

زنگ را مستقیماً به پایه D3 و پایه Gnd وصل کنید.

مرحله 4: اتمام دستگاه

در حال اتمام دستگاه
در حال اتمام دستگاه
در حال اتمام دستگاه
در حال اتمام دستگاه

پس از ایجاد مدار ، باید در داخل یک محفظه ثابت شود. با توجه به مدل سه بعدی فوق ، 2 سنسور فلکس باید در طرف مقابل محفظه قرار گیرد. برای درگاه USB فضایی برای برنامه ریزی برد و تامین برق ایجاد کنید. از آنجایی که این دستگاه برای استفاده طولانی مدت مورد نیاز است ، بهترین روش برای تأمین برق استفاده از یک پک برق ثابت است.

مرحله 5: برنامه تلفن همراه

برنامه موبایل
برنامه موبایل
برنامه موبایل
برنامه موبایل
برنامه موبایل
برنامه موبایل

Blynk را از Android Play Store بارگیری و نصب کنید. یک پروژه جدید برای Arduino 101 شروع کنید. روش ارتباطی را به عنوان BLE انتخاب کنید. 1 ترمینال ، 2 دکمه و BLE به رابط اضافه کنید. تصاویر زیر نحوه ایجاد رابط را نشان می دهد.

مرحله 6: فایل های کد Blynk

پس از ایجاد رابط کاربری در Blynk ، یک کد مجوز دریافت خواهید کرد. آن کد را در محل زیر وارد کنید.

#include #incar char char = "**************"؛ // کد مجوز Blynk

پایانه ویجت ترمینال (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 ("Calibration Succesful") ؛

پس از کالیبراسیون ، دستگاه انحراف را با مقادیر آستانه مقایسه می کند و در صورت فراتر رفتن از مقدار ، زنگ می زند.

ارزش های()؛ 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) ؛

}

مرحله 7: عملکرد

عملکرد
عملکرد

دستگاه را به ساختار مورد نیاز برای نظارت بچسبانید. 2 سنسور فلکس را نیز بچسبانید. برق را با استفاده از کابل USB به برد وصل کنید.

رابط Blynk را باز کنید. با لمس نماد بلوتوث با دستگاه ارتباط برقرار کنید. دکمه کالیبراسیون را فشار دهید. پس از کالیبراسیون ترمینال ، پیامی با عنوان "با موفقیت کالیبراسیون" نشان داده می شود. دستگاه را ریست کنید. اکنون ساختار را زیر نظر دارد و در صورت انحراف از تغییر شکل ، از طریق زنگ به شما اطلاع می دهد. با فشار دادن دکمه وضعیت می توانید مقادیر زاویه و خم را در هر زمان بررسی کنید. این ممکن است شبیه یک دستگاه کوچک به نظر برسد. اما استفاده از آن بی ارزش است. گاهی اوقات فراموش می کنیم که وضعیت خانه ، دفتر و غیره را با برنامه های شلوغ خود بررسی کنیم. اما اگر مشکل کوچکی وجود داشته باشد ، ممکن است مانند شکل بالا پایان یابد.

اما با استفاده از این دستگاه می توان صدها نفر را با اطلاع از مشکلات کوچک و در عین حال خطرناک ساختمان ها نجات داد.

مرحله 8: فایل کد Arduino101

#تعریف BLYNK_PRINT سریال

#تعریف flex1 A0

#تعریف flex2 A1 // سنسور فلکس و پین های زنگ را تعریف کنید

#زنگ را تعریف کنید 3

#شامل "CurieIMU.h"#شامل "BlynkSimpleCurieBLE.h"

#شامل "CurieBLE.h"

#شامل "Wire.h"

#شامل "EEPROM.h"

#شامل "SPI.h"

char auth = "**************"؛ // ترمینال ویجت ترمینال کد مجوز Blynk (V2) ؛

BLEPeripheral blePeripheral؛

int m_flx1 ، m_flx2 ، m_x ، m_y ، m_z ؛ // مقادیر ذخیره شده در حافظه

int flx1 ، flx2 ، x ، y ، z ؛ // قرائت های کنونی

void values () {for (int i = 0؛ i <100؛ i ++) {

flx1 = analogRead (flex1) ؛ // خواندن خام از حسگرها را دریافت کنید

flx2 = analogRead (flex2) ؛

x = CurieIMU.readAcuslerometer (X_AXIS)/100؛

y = CurieIMU.readAcuslerometer (Y_AXIS)/100 ؛

z = CurieIMU.readAcuslerometer (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 (auth، 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) ؛

}

حلقه خالی () {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 ()؛

if (pinValue == 1) {

ارزش های()؛

EEPROM.write (0 ، flx1) ؛ EEPROM.write (1 ، flx2) ؛

EEPROM.write (2 ، x) ؛

EEPROM.write (3 ، y) ؛

EEPROM.write (4 ، z) ؛

terminal.print ("Calibration Succesful") ؛

}

}

/ * ما می توانیم با فشار دادن دکمه V1 مقادیر انحراف فعلی * را درخواست کنیم

*/

BLYNK_WRITE (V1) {

int pinValue = param.asInt ()؛

if (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) {

}

توصیه شده: