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

מיקרו: ביט Dive-O-Meter: 8 שלבים (עם תמונות)
מיקרו: ביט Dive-O-Meter: 8 שלבים (עם תמונות)

וִידֵאוֹ: מיקרו: ביט Dive-O-Meter: 8 שלבים (עם תמונות)

וִידֵאוֹ: מיקרו: ביט Dive-O-Meter: 8 שלבים (עם תמונות)
וִידֵאוֹ: OUKITEL WP19: Smartphone With The Biggest Battery EVER!!! // Complete Review 2024, נוֹבֶמבֶּר
Anonim
מיקרו: ביט Dive-O-Meter
מיקרו: ביט Dive-O-Meter
מיקרו: ביט Dive-O-Meter
מיקרו: ביט Dive-O-Meter
מיקרו: ביט Dive-O-Meter
מיקרו: ביט Dive-O-Meter

הקיץ הגיע, הגיע הזמן לבריכה!

הזדמנות טובה לקחת את עצמך ואת המיקרו שלך: קצת החוצה, ובמקרה הזה אפילו לתוך, בריכת השחייה.

מיקרו: ביט צלילה-או-מטר המתואר כאן הוא מד עומק פשוט DIY המאפשר לך למדוד עד כמה אתה צולל או היית צולל. הוא מורכב רק ממיקרו: ביט, מארז סוללות או LiPo, מחבר קצה למיקרו: ביט, חיישן לחץ ברומטרי BMP280 או BME280 וכמה כבלי מגשר. השימוש ב- Pimoroni enviro: bit עושה את הדברים פשוטים יותר ויותר. כל זה ארוז לשתי שכבות של שקיות פלסטיק שקופות או סיליקון שקוף למים, עם כמה משקולות שנוספו כדי לפצות את הכוח הצף.

זהו יישום של מכשיר חיישן הלחץ של מיקרו: ביט שתיארתי בהוראה קודמת.

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

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

עדכון 27 במאי: כעת תוכל למצוא סקריפט HEX של MakeCode שתוכל לטעון ישירות למיקרו: ביט שלך. ראה שלב 6. עדכן 13 ביוני: סיבית Enviro: ונוספה גרסת כבלים. עיין בשלבים 7 ו -8

שלב 1: התיאוריה מאחורי המכשיר

אנו חיים על קרקעית אוקיינוס של אוויר. הלחץ כאן למטה הוא כ 1020 hPa (hectoPascal) מכיוון שמשקלו של עמוד האוויר שנוצר כאן לחלל הוא כ -1 ק ג לסנטימטר מרובע.

צפיפות המים גבוהה בהרבה, שכן ליטר אחד של משקל משקל כ -1.2 גרם וליטר מים 1 ק ג, כלומר בערך פי 800. כך שהירידה בלחץ הברומטרי היא בערך 1 hPa לכל 8 מטר גובה, עליית הלחץ היא 1 hPa לכל סנטימטר מתחת לפני המים. בעומק של כ -10 מ 'הלחץ הוא 2000 hPa, או שתי אטמוספרות.

לחיישן הלחץ המשמש כאן יש טווח מדידה בין 750 ל- 1500 hPa ברזולוציה של כ- hPa אחד. המשמעות היא שנוכל למדוד עומקים של עד 5 מטרים ברזולוציה של כ -1 סנטימטר.

המכשיר יהיה מד עומק מסוג Boyle Marriotte. הרכבה פשוטה למדי ומתוארת בשלב מאוחר יותר. החיישן משתמש בפרוטוקול I2C, כך שמחבר קצה עבור המיקרו: ביט שימושי. החלק הקריטי ביותר הוא השקיות אטומות למים, שכן כל לחות תפגע במיקרו: ביט, בחיישן או בסוללה. מכיוון שאוויר ייכלא בתוך השקיות, תוספת המשקולות עוזרת לפצות את הכוח הצף.

שלב 2: שימוש במכשיר

שימוש במכשיר
שימוש במכשיר
שימוש במכשיר
שימוש במכשיר
שימוש במכשיר
שימוש במכשיר
שימוש במכשיר
שימוש במכשיר

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

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

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

אתה יכול להשתמש בזה או לראות עד כמה אתה צולל, או כדי להקליט כמה עמוק צללת.

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

שלב 3: חומרים דרושים

חומרים דרושים
חומרים דרושים
חומרים דרושים
חומרים דרושים
חומרים דרושים
חומרים דרושים

מיקרו: ביט. לְמָשָׁל. במחיר 13 ליש ט/16 יורו ב- Pimoroni UK/DE.

מחבר קצה (קיטרוניק או פימורוני), 5 ליש ט. השתמשתי בגרסת קיטרוניק.

חיישן BMP/BME280. השתמשתי בחיישן BMP280 מבית Banggood, 4.33 יורו לשלוש יחידות.

כבלי מגשר לחיבור חיישן ומחבר קצה.

אלטרנטיבה מצוינת לשילוב מחבר/חיישן הקצה למעלה יכולה להיות Pimoroni enviro: bit (לא נבדק עד עכשיו, ראה שלב אחרון).

מארז סוללות או LiPo למיקרו: ביט.

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

כמה משקולות. השתמשתי בחתיכות במשקל עופרת המשמשות לדוג.

Arduino IDE, וכמה ספריות.

שלב 4: הרכבה

הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה

התקן את Arduino IDE ואת הספריות הנדרשות. פרטים מתוארים כאן.

(לא נדרש עבור סקריפט MakeCode.) בהתחשב בשימוש במחבר הקצה של Kitronik, סיכות הלחמה ליציאות I2C 19 & 20. זה לא נדרש עבור מחבר הקצה של Pimoroni. הלחם הכותרת לחיישן פורץ וחבר חיישן ומחבר קצה באמצעות כבלי מגשר. חבר VCC ל- 3V, GND ל- 0 V, SCL ליציאה 19 ו- SDA ליציאה 20. לחלופין, הלחם את הכבלים ישירות לפריצה. חבר את המיקרו: ביט למחשב שלנו באמצעות כבל USB. פתח את התסריט שסופק והבהב אותו ל- micro: bit. השתמש במסך הטרי או בפלוטר, בדוק אם החיישן מספק נתונים סבירים. נתק את המיקרו: ביט מהמחשב שלך. חבר את הסוללה או LiPo למיקרו: ביט. לחץ על כפתור B, קרא את הערך לחץ על לחצן A. לחץ על לחצן B, קרא את הערך. הנח את המכשיר בשתי שכבות של שקיות אטומות והשאיר מעט מאוד אוויר בשקיות. במקרה, הניחו משקל כדי לפצות את כוח הציפה. בדוק אם הכל אטום למים. לך לבריכה ותשחק.

שלב 5: סקריפט ה- MicroPython

התסריט פשוט לוקח את ערך הלחץ מהחיישן, משווה אותו לערך ההתייחסות ולאחר מכן מחשב את העומק מההפרש. להצגת הערכים כגרף עמוד, המספר השלם והשארית של ערך העומק נלקחים. הראשון אכן מגדיר את גובה הקו. השאר נחלק לחמישה פחים, שאכן מגדירים את אורך הסורגים. המפלס העליון הוא 0 - 1 מ ', הנמוך ביותר 4 - 5 מ' כפי שצוין קודם, לחיצה על כפתור A קובעת את לחץ ההתייחסות, כפתור B מציג את "העומק היחסי" במטר, המוצג כערך מספרי. עד כה, ערכים שליליים וחיוביים מוצגים כברף על מטריצת ה- LED באותו אופן. אל תהסס לייעל את התסריט לצרכיך. תוכל לבטל השתקה של שורות מסוימות כדי להציג את הערכים על הצג הטריאלי או הקושר של ה- Arduino IDE. כדי לחקות את הפונקציה, תוכל לבנות את המכשיר שתיארתי בהוראה קודמת.

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

#לִכלוֹל

#כלול מיקרוביט Adafruit_Microbit_Matrix; #define BME280_ADDRESS 0x76 ללא חתום ארוך int hum_raw, temp_raw, pres_raw; חתום ארוך t_fine; uint16_t dig_T1; int16_t dig_T2; int16_t dig_T3; uint16_t dig_P1; int16_t dig_P2; int16_t dig_P3; int16_t dig_P4; int16_t dig_P5; int16_t dig_P6; int16_t dig_P7; int16_t dig_P8; int16_t dig_P9; int8_t dig_H1; int16_t dig_H2; int8_t dig_H3; int16_t dig_H4; int16_t dig_H5; int8_t dig_H6; לחיצה כפולה_נורמה = 1015; // ערך התחלתי כפול עומק; // עומק מחושב // -------------------------------------------- -------------------------------------------------- ---------------------- הגדרת void () {uint8_t osrs_t = 1; // דגימת יתר של טמפרטורה x 1 uint8_t osrs_p = 1; // דגימת יתר של לחץ x 1 uint8_t osrs_h = 1; // דגימות יתר של לחות x 1 מצב uint8_t = 3; // מצב רגיל uint8_t t_sb = 5; // Tstandby 1000ms uint8_t filter = 0; // סנן uint8_t spi3w_en = 0; // 3-wire SPI השבת uint8_t ctrl_meas_reg = (osrs_t << 5) | (osrs_p << 2) | מצב; uint8_t config_reg = (t_sb << 5) | (מסנן << 2) | spi3w_en; uint8_t ctrl_hum_reg = osrs_h; pinMode (PIN_BUTTON_A, INPUT); pinMode (PIN_BUTTON_B, INPUT); Serial.begin (9600); // הגדר מהירות יציאה טורית Serial.print ("לחץ [hPa]"); // כותרת לפלט סידורי Wire.begin (); writeReg (0xF2, ctrl_hum_reg); writeReg (0xF4, ctrl_meas_reg); writeReg (0xF5, config_reg); readTrim (); // microbit.begin (); // microbit.print ("x"); עיכוב (1000); } // ----------------------------------------------- ---------------------------------------------- לולאת חלל () {כפול temp_act = 0.0, press_act = 0.0, hum_act = 0.0; חתום long int temp_cal; press_cal, hum_cal; int N; int M; לחץ כפול_דלתא; // לחץ יחסי int depth_m; // עומק במטר, חלק שלם עומק_ס"מ כפול; // שארית ב- cm readData (); // temp_cal = כיול_ט (temp_raw); press_cal = כיול_פ (pres_raw); // hum_cal = כיול_ה (hum_raw); // temp_act = (כפול) temp_cal / 100.0; press_act = (כפול) press_cal / 100.0; // hum_act = (כפול) hum_cal / 1024.0; microbit.clear (); // איפוס מטריצת LED // לחצן A קובע את הערך האמיתי כנקודת התייחסות (אפס P) // לחצן B מציג את הערך הנוכחי כעומק במטר (מחושב מהפרש לחץ) אם (! digitalRead (PIN_BUTTON_A)) {// הגדר לחץ אוויר רגיל כאפס press_norm = press_act; // microbit.print ("P0:"); // microbit.print (press_norm, 0); // microbit.print ("hPa"); microbit.fillScreen (LED_ON); // למצמץ פעם אחת לאישור העיכוב (100); } אחרת אם (! digitalRead (PIN_BUTTON_B)) {// עומק תצוגה במטר microbit.print (עומק, 2); microbit.print ("m"); // Serial.println (""); } אחר {// לחשב עומק מהפרש לחץ press_delta = (press_act - press_norm); // לחשב עומק לחץ יחסי = (press_delta/100); // עומק במטר deep_m = int (abs (עומק)); // עומק im מטר deep_cm = (abs (עומק) - עומק_m); // שארית /* // משמש לפיתוח Serial.println (עומק); Serial.println (עומק_מ); Serial.println (עומק_ס"מ); */ // שלבים לבראגרף אם (עומק_ס"מ> 0.8) {// אורך הגדרת הסורגים (N = 4); } אחרת אם (עומק_ס"מ> 0.6) {(N = 3); } אחרת אם (עומק_ס"מ> 0.4) {(N = 2); } אחרת אם (עומק_ס"מ> 0.2) {(N = 1); } אחר {(N = 0); }

if (depth_m == 4) {// set level == מטר

(M = 4); } אחרת אם (עומק_מ == 3) {(M = 3); } אחרת אם (עומק_מ == 2) {(M = 2); } אחרת אם (עומק_מ == 1) {(M = 1); } אחר {(M = 0); // שורה עליונה} /* // משמש למטרות פיתוח Serial.print ("m:"); Serial.println (עומק_מ); Serial.print ("ס"מ:"); Serial.println (עומק_ס"מ); Serial.print ("M:"); Serial.println (M); // למטרות פיתוח Serial.print ("N:"); Serial.println (N); // לצורכי פיתוח עיכוב (500); */ // לצייר microbit.drawLine (0, M, N, M, LED_ON); }

// שלח ערך ליציאה טורית לפוטר

Serial.print (press_delta); // צייר קווי חיווי ותקן את הטווח המוצג Serial.print ("\ t"); Serial.print (0); Serial.print ("\ t"); Serial.print (-500); Serial.print ("\ t"); Serial.println (500); עיכוב (500); // למדוד פעמיים בשנייה} // ----------------------------------------- -------------------------------------------------- -------------------------------------------------- -------- // יש צורך בחיישן bmp/bme280 כדלקמן: שמור כפי שהוא בטל readTrim () {uint8_t data [32], i = 0; // תיקון 2014/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0x88); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 24); // תקן את 2014/while (Wire.available ()) {data = Wire.read (); i ++; } שידור Wire.beginTransmission (BME280_ADDRESS); // הוסף 2014/Wire.write (0xA1); // הוסף 2014/Wire.endTransmission (); // הוסף 2014/Wire.requestFrom (BME280_ADDRESS, 1); // הוסף 2014/data = Wire.read (); // הוסף 2014/i ++; // הוסף 2014/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xE1); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 7); // תקן את 2014/while (Wire.available ()) {data = Wire.read (); i ++; } dig_T1 = (נתונים [1] << 8) | נתונים [0]; dig_P1 = (נתונים [7] << 8) | נתונים [6]; dig_P2 = (נתונים [9] << 8) | נתונים [8]; dig_P3 = (נתונים [11] << 8) | נתונים [10]; dig_P4 = (נתונים [13] << 8) | נתונים [12]; dig_P5 = (נתונים [15] << 8) | נתונים [14]; dig_P6 = (נתונים [17] << 8) | נתונים [16]; dig_P7 = (נתונים [19] << 8) | נתונים [18]; dig_T2 = (נתונים [3] << 8) | נתונים [2]; dig_T3 = (נתונים [5] << 8) | נתונים [4]; dig_P8 = (נתונים [21] << 8) | נתונים [20]; dig_P9 = (נתונים [23] << 8) | נתונים [22]; dig_H1 = נתונים [24]; dig_H2 = (נתונים [26] << 8) | נתונים [25]; dig_H3 = נתונים [27]; dig_H4 = (נתונים [28] << 4). (0x0F ונתונים [29]); dig_H5 = (data [30] 4) & 0x0F); // תיקון 2014/dig_H6 = נתונים [31]; // תקן 2014/} void writeReg (uint8_t reg_address, uint8_t נתונים) {Wire.beginTransmission (BME280_ADDRESS); Wire.write (reg_address); Wire.write (נתונים); Wire.endTransmission (); } voD readData () {int i = 0; uint32_t נתונים [8]; שידור Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xF7); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 8); while (Wire.available ()) {data = Wire.read (); i ++; } pres_raw = (נתונים [0] << 12) | (נתונים [1] 4); temp_raw = (נתונים [3] << 12) | (נתונים [4] 4); hum_raw = (נתונים [6] 3) - ((חתום long int) dig_T1 11; var2 = (((((adc_T >> 4) - ((חתום long int) dig_T1)) * ((adc_T >> 4) - ((חתום ארוך int) dig_T1))) >> 12) * ((חתום ארוך) dig_T3)) >> 14; t_fine = var1 + var2; T = (t_fine * 5 + 128) >> 8; החזר T; } כיול לא מבוטל long int_p (חתום long int adc_P) {חתום long int var1, var2; uns sign long int P; var1 = (((sign long int) t_fine) >> 1) - (חתום long int) 64000; var2 = (((var1 >> 2) * (var1 >> 2)) >> 11) * ((חתום long int) dig_P6); var2 = var2 + ((var1 * ((sign long int) dig_P5)) 2) + (((חתום long int) dig_P4) 2) * (var1 >> 2)) >> 13)) >> 3) + (((((int sign long) dig_P2) * var1) >> 1)) >> 18; var1 = ((((32768+var1))*((חתום ארוך int) dig_P1)) >> 15); אם (var1 == 0) {החזרה 0; } P = (((int sign long long) (((sign int long) 1048576) -adc_P)-(var2 >> 12))))*3125; אם (P <0x80000000) {P = (P << 1) / ((int sign long long) var1); } אחרת {P = (P / (int sign long int) var1) * 2; } var1 = (((חתום long int) dig_P9) * ((חתום long int) (((P >> 3) * (P >> 3)) >> 13))) >> 12; var2 = (((חתום ארוך) (P >> 2)) * ((חתום ארוך) dig_P8)) >> 13; P = (int sign long long) ((sign long long) P + ((var1 + var2 + dig_P7) >> 4)); החזר P; } כיול לא מבוטל long int_h (חתום long int adc_H) {חתום long int v_x1; v_x1 = (t_fine - ((חתום ארוך) 76800)); v_x1 = (((((adc_H << 14) -(((חתום ארוך int) dig_H4) 15) * ((((((v_x1 * ((חתום ארוך int) dig_H6)) >> 10) * ((* + 8192) >> 14)); v_x1 = (v_x1 - ((((v_x1 >> 15) * (v_x1 >> 15)) >> 7) * ((חתימה ארוכה חתומה) dig_H1)) >> 4)); v_x1 = (v_x1 419430400? 419430400: v_x1); return (int sign long long) (v_x1 >> 12);

שלב 6: פישוט מרכזי: קוד MakeCode/JavaScript

פישוט מרכזי: קוד MakeCode/JavaScript
פישוט מרכזי: קוד MakeCode/JavaScript
פישוט מרכזי: קוד MakeCode/JavaScript
פישוט מרכזי: קוד MakeCode/JavaScript

במאי 2018, פימורוני פרסמה את הסביבה: bit, המגיעה עם חיישן לחץ/לחות/טמפרטורה BME280, חיישן אור וצבע TCS3472 ומיקרופון MEMS. בנוסף הם מציעים ספריית JavaScript לעורך MakeCode וספריית MicroPython לחיישנים אלה.

השתמשתי בספריית MakeCode שלהם כדי לפתח סקריפטים למכשיר שלי. מצורף אתה מוצא את קבצי ה- hex לפי, אותם תוכל להעתיק ישירות ל- micro: bit שלך.

למטה תמצא את קוד ה- JavaScript המתאים. הבדיקה בבריכה עבדה היטב עם גרסה קודמת של התסריט, אז אני מניח שגם הם יעבדו. בנוסף לגרסה הבסיסית, ברגרף, קיימת גם גרסת שיער (X) וגרסת L, שנועדה להקל על הקריאה, במיוחד בתנאי תאורה נמוכה. בחר את זה שאתה מעדיף.

תן טור = 0

תן מטר = 0 תן להישאר = 0 תן שורה = 0 תן דלתא = 0 תן Ref = 0 תן Is = 0 Is = 1012 basic.showLeds (` # # # # # #.. # #. #. # #… # # # # # # `) Ref = 1180 basic.clearScreen () basic.forever (() => {basic.clearScreen () אם (input.buttonIsPressed (Button. A)) {Ref = envirobit.getPressure () basic.showLeds (` # # # # # # # # # # # # # # # # # # # # # ') basic.pause (1000)} אחר אם (input.buttonIsPressed (Button. B)) {basic.showString ("" + שורה + "." + נשאר + "מ") basic.pause (200) basic.clearScreen ()} אחר {Is = envirobit.getPressure () Delta = Is - Ref Meter = Math.abs (דלתא) אם (מטר> = 400) {שורה = 4} אחרת אם (מטר> = 300) {שורה = 3} אחרת אם (מטר> = 200) {שורה = 2} אחרת אם (מטר> = 100) {שורה = 1} אחר {שורה = 0} נשאר = מטר - שורה * 100 אם (נשאר> = 80) {טור = 4} אחר אם (נשאר> = 60) {עמודה = 3} אחר אם (נשאר> = 40) {Column = 2} else if (נשאר> = 20) {Column = 1} else {Column = 0} for (let ColA = 0; ColA <= Column; ColA ++) {led.plot (C olA, Row)} basic.pause (500)}})

שלב 7: גירסת Enviro: bit

גירסת Enviro: bit
גירסת Enviro: bit
גירסת Enviro: bit
גירסת Enviro: bit
גירסת Enviro: bit
גירסת Enviro: bit

בינתיים קיבלתי את הסביבה: bit (20 GBP) ואת ההספק: bit (6 GBP), שניהם מפימורוני.

כפי שצוין קודם, ה- enviro: bit מגיע עם חיישן הלחץ, הלחות והטמפרטורה BME280, אך גם חיישן אור וצבע (ראו יישום כאן) ומיקרופון MEMS.

Power: bit הוא פתרון נחמד להפעלת המיקרו: bit ומגיע עם מתג הפעלה/כיבוי.

הדבר הגדול הוא ששניהם פשוט קליקים ושימוש, ללא הלחמה, כבלים, לוחות לחם. הוסף את enviro: bit למיקרו: bit, טען את הקוד שלך ב- micro: bit, השתמש בו.

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

הוא נבדק במים, עבד היטב. בעומק של כ -1.8 מ 'הערך הנמדד היה כ -1.7 מ'. לא נורא לפתרון מהיר וזול, אבל רחוק מלהיות מושלם.לוקח זמן להתאים את עצמך, כך שתצטרך להישאר בעומק מסוים במשך כ-10-15 שניות.

שלב 8: גרסת בדיקת כבלים וחיישנים

גרסת כבל וחיישן
גרסת כבל וחיישן
גרסת כבל וחיישן
גרסת כבל וחיישן

זה בעצם היה הרעיון הראשון שהיה למד עומק מיקרו: ביט, האחרון שנבנה.

כאן הלחמתי את חיישן BMP280 עד 5 מ 'של כבל בעל 4 חוטים והנחתי מגשר נקבה בקצה השני. כדי להגן על החיישן מפני מים, הכבל הועבר דרך פקק יין משומש. קצות הפקק נאטמו בדבק חם. לפני שחתכתי שני חריצים לתוך הפקק, שניהם הסתובבו סביבו. אחר כך ארזתי את החיישן לכדור ספוג, הנחתי בלון סביבו וסידרתי את קצה הבלון על הפקק (חריץ תחתון). לאחר מכן הנחתי 3 חתיכות של 40 גרם משקולות עופרת לבלון שני, עטפתי אותו סביב הראשון, משקולות שהונחו בצד החיצוני ותיקן את קצה הבלון בחריץ השני. האוויר הוסר מהבלון השני, ואז הכל תוקן בעזרת סרט דביק. צפה בתמונות, תמונות מפורטות יותר עשויות להופיע בהמשך.

המגשרים חוברו למיקרו: ביט באמצעות מחבר קצה, המכשיר נדלק ולחץ ההתייחסות נקבע. אחר כך שוחרר ראש החיישן לאט לתחתית הבריכה (מגדל קפיצה בגובה 10 מ ', עומק של כ -4.5 מ').

תוצאות:

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

יישומים אפשריים:

עם כמה תיקוני שגיאות, המכשיר עשוי לשמש למדידת עומק של כ -4 מ '.

בשילוב עם Arduino או Raspberry Pi, זה יכול לשמש למדידה ובקרה של נקודת המילוי של בריכה או מיכל מים, למשל. לעורר אזהרה אם מפלסי המים עולים על או מתחת לספים מסוימים.

אתגר כושר חיצוני
אתגר כושר חיצוני
אתגר כושר חיצוני
אתגר כושר חיצוני

סגנית השנייה באתגר הכושר החיצוני

מוּמלָץ: