תוכן עניינים:

הצילו את חייכם בעזרת צג התמוטטות הבניין: 8 שלבים
הצילו את חייכם בעזרת צג התמוטטות הבניין: 8 שלבים

וִידֵאוֹ: הצילו את חייכם בעזרת צג התמוטטות הבניין: 8 שלבים

וִידֵאוֹ: הצילו את חייכם בעזרת צג התמוטטות הבניין: 8 שלבים
וִידֵאוֹ: כריס לאנגן: מנת משכל, רצון חופשי, פסיכדליה, CTMU ואלוהים 2024, נוֹבֶמבֶּר
Anonim
הצילו את חייכם בעזרת מוניטור קריסת הבניין
הצילו את חייכם בעזרת מוניטור קריסת הבניין

נתח מבני בטון, מתכת, עץ לעיקולים וזוויות והתראות אם הם חרגו מהעמדה המקורית.

שלב 1: מבוא

מבוא
מבוא

עם התפתחות תחום ההנדסה האזרחית, אנו יכולים לזהות הרבה מבנים בכל מקום. מבני מתכת, קורות בטון, בניינים מרובי פלטפורמות הם חלקם. יתר על כן, רובנו רגילים לשהות בבניין או בבית במשך רוב שעות היום. אך כיצד נוכל להבטיח שהבניין בטוח מספיק כדי להישאר? מה אם יש בבניין שלך סדק קטן או קורות נוטות יתר? זה יסכן מאות חיים.

רעידות אדמה, קשיות הקרקע, טורנדו ועוד הרבה דברים יכולים להוות גורמים לסדקים פנימיים ולסטיית המבנים או הקורות מהמיקום הניטרלי. ברוב הפעמים איננו מודעים למצב המבנים שמסביב. אולי המקום בו אנו נכנסים כל יום כולל קורות בטון סדוקות והוא יכול להתמוטט בכל עת. אך מבלי לדעת זאת אנו נכנסים פנימה בחופשיות. כפתרון לכך, אנו זקוקים לשיטה טובה לניטור קורות בטון, עץ, מתכת של מבנים אליהם איננו יכולים להגיע.

שלב 2: פתרון

פִּתָרוֹן
פִּתָרוֹן
פִּתָרוֹן
פִּתָרוֹן

"מנתח מבנים" הוא מכשיר נייד הניתן להתקנה על קורת בטון, מבנה מתכת, לוחות וכו 'מכשיר זה מודד את הזווית ומנתח עיקולים היכן שהוא מותקן ושולח את הנתונים לאפליקציה לנייד באמצעות בלוטות'. מכשיר זה משתמש במד תאוצה/ ג'ירוסקופ למדידת הזווית במטוסים x, y, z וחיישן גמישות לניטור העיקולים. כל הנתונים הגולמיים מעובדים ומידע נשלח לאפליקציה לנייד.

שלב 3: מעגל

מעגל חשמלי
מעגל חשמלי
מעגל חשמלי
מעגל חשמלי
מעגל חשמלי
מעגל חשמלי
מעגל חשמלי
מעגל חשמלי

אסוף את הרכיבים הבאים.

  • לוח ארדואינו 101
  • 2 X חיישני Flex
  • 2 X 10k נגדים

כדי לצמצם את מספר הרכיבים לוח Arduino 101 משמש כאן מכיוון שהוא מכיל מד תאוצה ומודול BLE. חיישני גמישות משמשים למדידת כמות הכיפוף מכיוון שהיא משנה את ההתנגדות שלה בעת כיפוף. המעגל קטן מאוד מכיוון שצריך לחבר רק 2 נגדים ושני חיישני גמישות. התרשים הבא מראה כיצד לחבר חיישן גמישה ללוח Arduino.

סיכה אחת של הנגד מחוברת לסיכה A0 של לוח הארדואינו. בצע את אותו הליך לחיבור חיישן הגמישות השני. השתמש בסיכה A1 לחיבור הנגד.

חבר את הזמזם ישירות לסיכה D3 ולסיכת Gnd.

שלב 4: סיום המכשיר

סיום המכשיר
סיום המכשיר
סיום המכשיר
סיום המכשיר

לאחר ביצוע המעגל, יש לתקן אותו בתוך מארז. על פי המודל התלת ממדי לעיל, יש להציב 2 חיישני גמישות בצד הנגדי של המתחם. פנה מקום ליציאת ה- USB לתכנת הלוח ואספקת החשמל. מכיוון שיש צורך להשתמש במכשיר זה לתקופה ארוכה, השיטה הטובה ביותר לאספקת חשמל היא באמצעות מארז חשמל קבוע.

שלב 5: אפליקציה לנייד

אפליקציה לנייד
אפליקציה לנייד
אפליקציה לנייד
אפליקציה לנייד
אפליקציה לנייד
אפליקציה לנייד

הורד והתקן את Blynk מחנות Android Play. התחל פרויקט חדש עבור Arduino 101. בחר את שיטת התקשורת כ- BLE. הוסף ממשק אחד, 2 כפתורים ו- BLE לממשק. התמונות הבאות מראות לך כיצד ליצור את הממשק.

שלב 6: קבצי קוד Blynk

לאחר ביצוע הממשק ב- Blynk תקבל קוד הרשאה. הזן את הקוד במקום הבא.

#include #include char auth = "***************"; // קוד הרשאה של Blynk

WidgetTerminal terminal (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 ("כיול מצליח");

לאחר הכיול, המכשיר ישווה את הסטייה לערכי הסף ויצפצף על הבאזר אם הם חורגים מהערך.

ערכים (); if (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

#define flex1 A0

#define flex2 A1 // הגדר חיישן גמישות וסיכות זמזם

#מגדיר זמזם 3

#כלול "CurieIMU.h"#כולל "BlynkSimpleCurieBLE.h"

#כלול "CurieBLE.h"

#כלול "Wire.h"

#כלול "EEPROM.h"

#כלול "SPI.h"

char auth = "**************"; // Blynk קוד הרשאה Widget מסוף מסוף (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 () {// 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 ();

אם (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-");

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

}

מוּמלָץ: