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

חיישן רמות אספן מים המופעל באמצעות סוללה: 7 שלבים (עם תמונות)
חיישן רמות אספן מים המופעל באמצעות סוללה: 7 שלבים (עם תמונות)

וִידֵאוֹ: חיישן רמות אספן מים המופעל באמצעות סוללה: 7 שלבים (עם תמונות)

וִידֵאוֹ: חיישן רמות אספן מים המופעל באמצעות סוללה: 7 שלבים (עם תמונות)
וִידֵאוֹ: חדשות שבועיות מוזרות - עב"מים - פאראנורמלי - חלל - מדע שוליים 2024, נוֹבֶמבֶּר
Anonim
חיישן רמות אספן מים המופעל באמצעות סוללות
חיישן רמות אספן מים המופעל באמצעות סוללות
חיישן רמות אספן מים המופעל באמצעות סוללות
חיישן רמות אספן מים המופעל באמצעות סוללות

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

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

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

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

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

חלקים:

  • 1x ESP8266 ESP-12F.
  • 1x צלחת מתאם ESP-12F.
  • 1x FT232RL FTDI: מתאם USB לטורי.
  • 1x HC-SR04-P: מודול מדידת מרחק קולי. שים לב שה- P חשוב, מכיוון שזו הגרסה בעלת מתח הפעלה מינימלי נמוך של 3V.
  • גרסת BME280 3.3V 1x: חיישן טמפרטורה, לחץ ולחות.
  • 1x IRL2203N: טרנזיסטור MOSFET בערוץ n.
  • 1x גרסת 3.3V MCP1700-3302E: ווסת מתח.
  • 3x סוללת AA נטענת, למשל 2600mAh.
  • 1x מחזיק סוללה ל -3 סוללות.
  • 1x קרש לחם.
  • נגדים: 1x 470K, 1x 100K, 4x 10K.
  • קבלים: 2x קרמיקה 1uF.
  • מתג מתג 3x.
  • חוטי קרש לחם בצורת U.
  • חוטי מגשר.
  • מיכל מרק פלסטיק 1 ליטר.
  • טבעת חיבור למיכל.

הפכתי את הקוד לזמין ב- GitHub.

שלב 1: היכרות עם חיישן המרחק הקולי

היכרות עם חיישן המרחק הקולי
היכרות עם חיישן המרחק הקולי
היכרות עם חיישן המרחק הקולי
היכרות עם חיישן המרחק הקולי

נמדוד את המרחק אל פני המים בעזרת חיישן קולי, HC-SR04-P. בדיוק כמו עטלף, חיישן זה משתמש בסונאר: הוא שולח דופק צליל בתדירות גבוהה מדי עבור האוזן האנושית, ומכאן קולי, ומחכה שהוא יפגע באובייקט, ישקף ויחזור. לאחר מכן ניתן לחשב את המרחק מהזמן שלוקח לקבל את ההד ומהירות הקול.

באופן קונקרטי, אם סיכת הטריג נמשכת גבוה למשך 10 מיקרומטר לפחות החיישן שולח פרץ של 8 פולסים בתדירות של 40 הרץ. התשובה מתקבלת לאחר מכן על סיכת ההד בצורה של דופק עם משך שווה לזמן שבין שליחה וקבלה של הדופק הקולי. לאחר מכן עלינו לחלק ב -2, מכיוון שהדופק הקולי עובר הלוך ושוב ואנו זקוקים לזמן הנסיעה בכיוון אחד, ולהכפיל את מהירות הקול, שהיא כ -340 מ '/שניות.

אבל חכה רגע! למעשה, מהירות הקול תלויה בטמפרטורה ובמידה פחותה בלחות. האם אני מנקה או שזה רלוונטי? בעזרת כלי חישוב אנו מוצאים שבחורף (לוקח -5 מעלות צלזיוס) יכול להיות לנו 328.5 מ '/ש, ובקיץ (לוקח 25 מעלות צלזיוס) 347.1 מ'/ש. אז נניח שנמצא זמן נסיעה חד כיווני של 3 אלפיות השנייה. בחורף המשמעות היא 98.55 ס"מ ובקיץ 104.13 ס"מ. זה די הבדל! אז כדי להשיג דיוק מספיק לאורך כל העונות ואפילו ביום ובלילה עלינו להוסיף מד חום להתקנה שלנו. החלטתי לכלול את BME280, שמודד טמפרטורה, לחות ולחץ. בקוד שהשתמשתי בו בפונקציה speedOfSound נוסחה המחשבת את מהירות הקול במונחים של כל שלושת הפרמטרים, אם כי הטמפרטורה היא באמת הגורם החשוב ביותר. ללחות עדיין יש השפעה קטנה יותר, אך השפעת הלחץ זניחה. נוכל להשתמש בנוסחה פשוטה יותר בהתחשב רק בטמפרטורה שיישמתי ב- speedOfSoundSimple.

יש נקודה חשובה נוספת בנושא HC-SR04. ישנן שתי גרסאות זמינות: הגרסה הסטנדרטית פועלת על 5V, בעוד שה- HC-SR04-P יכול לפעול בטווח מתח בין 3V ל- 5V. מכיוון ש -3 סוללות ה- AA הנטענות מספקות בערך 3x1.25V = 3.75V, חשוב להשיג את גרסת ה- P. כמה מוכרים עשויים לשלוח את המכשיר הלא נכון. אז תסתכל על התמונות אם אתה קונה אחת. שתי הגרסאות נראות שונות הן מאחור והן מלפנים כפי שהוסבר בדף זה. מאחור בגרסת P כל שלושת השבבים אופקיות ואילו בגרסה הסטנדרטית אחד אנכי. בחזית הגרסה הסטנדרטית כוללת רכיב כסוף נוסף.

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

שלב 2: בחירת לוח ESP8266

בחירת לוח ESP8266
בחירת לוח ESP8266

כדי להפעיל את החיישן זמן רב ככל האפשר על סוללה עלינו לחסוך בצריכת החשמל. למרות שה- Wifi של ה- ESP8266 מספק דרך נוחה מאוד לחבר את החיישן שלנו לענן, הוא גם די רעב. במבצע ה- ESP8266 צורך כ- 80mA. אז עם סוללות של 2600 מיליאמפר / שעה נוכל להפעיל את המכשיר שלנו לכל היותר 32 שעות לפני שהם ריקים. בפועל, זה יהיה פחות מכיוון שלא נוכל לנצל את מלוא קיבולת 2600 מיליאמפר / שעה לפני שהמתח יירד לרמה נמוכה מדי.

למרבה המזל ל- ESP8266 יש גם מצב שינה עמוקה, שבו כמעט הכל כבוי. אז התוכנית היא להכניס את ה- ESP8266 לישון עמוק רוב הזמן ולהעיר אותו לעתים קרובות מדי כדי לבצע מדידה ולשלוח את הנתונים דרך ה- Wifi ל- ThingSpeak. על פי דף זה זמן השינה המקסימלית המקסימלית היה בעבר כ 71 דקות, אך מאז הליבה של ארדואינו ESP8266 2.4.1 הוא גדל לכ -3.5 שעות. בקוד שלי הסתפקתי לשעה אחת.

ניסיתי לראשונה את לוח הפיתוח הנוח NodeMCU, אבל יותר גרוע, בשינה עמוקה הוא עדיין צרך כ -9 mA, מה שנותן לנו לכל היותר 12 ימים של שינה עמוקה טהורה מבלי להתחשב אפילו במרווחי ההשכמה. אשם חשוב הוא ווסת המתח AMS1117, שמשתמש בחשמל גם אם מנסים לעקוף אותו על ידי חיבור הסוללה ישירות לסיכה 3.3V. דף זה מסביר כיצד להסיר את ווסת המתח ואת ה- USB UART. עם זאת, מעולם לא הצלחתי לעשות זאת מבלי להרוס את הלוח שלי. יתר על כן, לאחר הסרת USB UART לא תוכל להתחבר יותר ל- ESP8266 כדי להבין מה השתבש.

נראה כי רוב לוחות הפיתוח של ESP8266 משתמשים בווסת המתח הבזבוז AMS1117. יוצא מן הכלל אחד הוא ה- WEMOS D1 mini (התמונה משמאל) שמגיע עם ה- ME6211 החסכוני יותר. אכן, גיליתי כי ה- WEMOS D1 mini משתמש בכ -150 מיקרו -א 'בשינה עמוקה, וזה יותר דומה לזה. רובו כנראה נובע מ- USB UART. עם הלוח הזה אתה צריך להלחם את הכותרות לפינים בעצמך.

עם זאת, אנו יכולים לעשות הרבה יותר טוב באמצעות לוח חשוף כמו ה- ESP-12F (התמונה מימין), שאין בו UART USB או ווסת מתח. בהזנת הסיכה 3.3V מצאתי צריכת שינה עמוקה של 22 µA בלבד!

אבל כדי לגרום ל- ESP-12F לעבוד התכונן לקראת הלחמה וקצת יותר טרחה לתכנת אותו! יתר על כן, אלא אם הסוללות מספקות ישירות את המתח הנכון, שהוא בין 3V ל- 3.6V, עלינו לספק ווסת מתח משלנו. בפועל, מסתבר שקשה למצוא מערכת סוללות המספקת מתח בטווח זה לאורך מחזור הפריקה המלא שלה. זכור שעלינו להפעיל גם את חיישן HC-SR04-P, שתאורטית יכול לתפקד במתח נמוך ככל 3V, אך אכן מתפקד בצורה מדויקת יותר אם המתח גבוה יותר. יתר על כן בתרשים שלי HC-SR04-P מופעל על ידי טרנזיסטור, מה שגורם לירידת מתח נוספת קטנה. נשתמש בווסת המתח MCP1700-3302E. מתח הכניסה המרבי הוא 6V ולכן אנו מאכילים אותו בעד 4 סוללות AA. החלטתי להשתמש ב -3 סוללות AA.

שלב 3: צור ערוץ ThingSpeak

אנו נשתמש ב- ThingSpeak, שירות ענן IoT, לאחסון הנתונים שלנו. עבור אל https://thingspeak.com/ וצור חשבון. לאחר שנכנסת ללחוץ על הכפתור ערוץ חדש ליצירת ערוץ. בהגדרות הערוץ מלא את השם והתיאור כרצונך. לאחר מכן אנו נותנים את שמות הערוצים ומפעילים אותם על ידי לחיצה על תיבות הסימון מימין. אם אתה משתמש בקוד שלי ללא שינוי השדות הם כדלקמן:

  • שדה 1: מפלס מים (ס"מ)
  • שדה 2: רמת הסוללה (V)
  • שדה 3: טמפרטורה (° C)
  • שדה 4: לחות (%)
  • שדה 5: לחץ (אבא)

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

אתה יכול לקרוא את נתוני ThingSpeak בסמארטפון שלך באמצעות אפליקציה. בטלפון האנדרואיד שלי אני משתמש בווידג'ט IoT ThingSpeak Monitor. עליך להגדיר אותו עם מזהה הערוץ ומפתח ה- Read API.

שלב 4: כיצד לתכנת את ESP-12F

כיצד לתכנת את ESP-12F
כיצד לתכנת את ESP-12F
כיצד לתכנת את ESP-12F
כיצד לתכנת את ESP-12F

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

נשתמש ב- IDE של Arduino. ישנם מדריכים אחרים המסבירים כיצד להשתמש בו, כך שאקצר כאן. השלבים להכנתו ל- ESP8266 הם:

  • הורד את Arduino IDE.
  • התקן תמיכה בלוח ESP8266. בתפריט קובץ - העדפות - הגדרות הוסף את כתובת האתר https://arduino.esp8266.com/stable/package_esp8266com_index.json לכתובות URL נוספות של מנהל הלוח. הבא בתפריט כלים - לוח - מנהל לוחות התקן esp8266 על ידי esp8266 קהילה.
  • בחר בלוח: מודול ESP8266 גנרי.

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

הפתרון עליו הלכתי הוא להשתמש בחוטים בצורת U ולחבר אותם כמו בתמונה מימין לפני הנחת ה- ESP8266 עם לוח המתאם על לוח הלחם. אז GND ו- VCC מחוברים למסילות לוח הלחם והסיכות הנותרות זמינות בהמשך לוח הלחם. החיסרון הוא שקרש הלחם שלך יהיה די עמוס בחוטים ברגע שתסיים את המעגל השלם. פתרון נוסף הוא להתאים שני לוחות לחם יחד כפי שמוצג בסרטון זה.

לאחר מכן, כדי לתכנת את ESP-12F דרך יציאת ה- USB של המחשב שלך, אנו זקוקים למתאם USB לטורי. השתמשתי במתכנת FT232RL FTDI. למתכנת יש מגשר לבחירה בין 3.3V או 5V. יש לשים אותו על 3.3V עבור ESP8266. אל תשכח את זה מכיוון ש 5V עשוי לטגן את השבב שלך! התקנת מנהלי ההתקן צריכה להיות אוטומטית, אך אם התכנות אינו פועל תוכל לנסות להתקין אותם ידנית מדף זה.

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

  • תכנות: GPIO0: נמוך, CH-PD: גבוה, GPIO2: גבוה, GPIO15: נמוך
  • פלאש: GPIO0: גבוה, CH-PD: גבוה, GPIO2: גבוה, GPIO15: נמוך

לוח המתאם כבר דואג למשוך את CH-PD כלפי מעלה ולמשוך את GPIO15 כלפי מטה עם נגדים של 10K.

אז במעגל האלקטרוני שלנו אנחנו עדיין צריכים למשוך את GPIO2. אנו מספקים גם מתג להכניס את ESP8266 לתכנות או למצב פלאש ומתג לאפס אותו, דבר המתבצע על ידי חיבור RST לקרקע. עוד וודא שאתה מחבר את סיכת TX של ה- FT232RL לסיכה RXD של ה- ESP8266 ולהיפך.

רצף התכנות הוא כדלקמן:

  • הגדר את GPIO2 לנמוך על ידי סגירת מתג התכנות.
  • אפס את ESP8266 על ידי סגירה ולאחר מכן פתיחה מחדש של מתג האיפוס. ה- ESP8266 מופעל כעת במצב תכנות.
  • החזר את GPIO2 לגובה על ידי פתיחת מתג התכנות.
  • העלה את הקושחה החדשה מ- Arduino IDE.
  • אפס את ESP8266 שוב על ידי סגירה ופתיחה מחדש של מתג האיפוס. ה- ESP8266 מופעל כעת במצב פלאש ומריץ את הקושחה החדשה.

עכשיו אתה יכול לבדוק אם התכנות עובד על ידי העלאת הסקיצה המפורסמת של בלינק.

אם כל זה עובד, סיכות GND, VCC, GPIO2, RST, TXD ו- RXD לפחות מולחמות ומחוברות כראוי. איזו הקלה! אבל לפני שתמשיך אני ממליץ לבדוק גם את הסיכות האחרות עם המולטימטר שלך. הייתה לי בעיה בעצמי עם אחד מהסיכות. אתה יכול להשתמש בסקיצה הזו, שמציבה את כל הסיכות לגובה אחת אחת למשך 5 שניות, ולאחר מכן מכניסה את ה- ESP8266 לשינה עמוקה למשך 20 שניות. כדי לאפשר ל- ESP8266 להתעורר לאחר שינה עמוקה עליך לחבר RST ל- GPIO16, שנותן את אות ההתעוררות.

שלב 5: העלאת הסקיצה

הפכתי את הקוד לזמין ב- GitHub, זה רק קובץ אחד: Level-Sensor-Deepsleep.ino. פשוט הורד אותו ופתח אותו ב- Arduino IDE. או שאתה יכול לבחור קובץ - חדש ופשוט להעתיק/להדביק את הקוד.

יש קצת מידע שעליך למלא בתחילת הקובץ: השם והסיסמה של ה- WLAN לשימוש, פרטי IP סטטיים ומפתח ה- ID של ערוץ ו- Write API של ערוץ ThingSpeak.

בעקבות הטיפ בבלוג זה, במקום DHCP שבו הנתב מקצה IP באופן דינמי, אנו משתמשים ב- IP סטטי, שם אנו קובעים את כתובת ה- IP של ה- ESP8266 בעצמנו. מסתבר שזה הרבה יותר מהיר, כך שאנו חוסכים בזמן פעיל ובכך באנרגיית הסוללה. אז עלינו לספק כתובת IP סטטית זמינה כמו גם את ה- IP של הנתב (שער), מסכת רשת המשנה ושרת DNS. אם אינך בטוח מה למלא, קרא על הגדרת כתובת IP סטטית במדריך הנתב שלך. במחשב Windows המחובר דרך Wifi לנתב שלך, הפעל מעטפת (לחצן r-cm, Windows) והזן ipconfig /all. תוכלו למצוא את רוב המידע הדרוש לכם בקטע ה- Wi-Fi.

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

להלן התכונות הבולטות של הקוד:

  • לאחר השכמה הקוד מגדיר את switchPin (ברירת מחדל GPIO15) לגבוה. זה מפעיל את הטרנזיסטור, אשר בתורו מפעיל את החיישן HC-SR04-P. לפני השינה העמוקה הוא מחזיר את הסיכה לשפל, מכבה את הטרנזיסטור ואת ה- HC-SR04-P ומוודא שהוא לא צורך יותר סוללה יקרה.
  • אם modePIN (ברירת המחדל GPIO14) נמוך הקוד עובר למצב OTA במקום למדוד מדידה. בעזרת OTA (עדכון אוויר) אנו יכולים לעדכן את הקושחה באמצעות Wifi במקום היציאה הטורית. במקרה שלנו זה די נוח מכיוון שאיננו צריכים יותר לחבר את הסדרה למתאם USB לעדכונים נוספים. פשוט הגדר את GPIO14 לנמוך (עם מתג OTA במעגל האלקטרוני), אפס את ESP8266 (עם מתג האיפוס) והוא אמור להיות זמין ב- Arduino IDE להעלאה.
  • לפי ה- PIN האנלוגי (A0) אנו מודדים את המתח של הסוללה. זה מאפשר לנו לכבות את המכשיר שלנו, הלא הוא שינה עמוקה קבועה, אם המתח נמוך מדי, מתחת לדקה מתח, כדי להגן על הסוללות מפני פריקה יתר. המדידה האנלוגית אינה מדויקת במיוחד, אנו מבצעים מדידות numMeasuresBattery (ברירת מחדל 10) ולוקחים את הממוצע כדי לשפר את הדיוק.
  • מדידת המרחק של חיישן HC-SR04-P מתבצעת במרחק הפונקציה מדידה. כדי לשפר את הדיוק המדידה חוזרת על עצמה מספר פעמים מרחק (ברירת מחדל 3).
  • ישנו פונקציה לחישוב speedOfSound מהטמפרטורה, הלחות והלחץ על ידי חיישן BME280. כתובת ברירת המחדל של I2C של BME280 היא 0x76, אך אם היא לא עובדת ייתכן שיהיה עליך לשנות אותה ל 0x77: bool bme280Started = bme280.begin (0x77);
  • נשתמש ב- BME280 במצב מאולץ, מה שאומר שהוא לוקח מדידה אחת וחוזר לישון כדי לחסוך בחשמל.
  • אם אתה מגדיר קיבולת (l), fullDistance (cm) ושטח (m2), הקוד מחשב את נפח המים הנותר של מיכל המים ממדידת המרחק: restvolume double = קיבולת+10.0*(fullDistance-distance)*שטח; ותעלה את זה ל- ThingSpeak. אם אתה שומר על ערכי ברירת המחדל הוא מעלה את המרחק אל פני המים בסנטימטרים.

שלב 6: בניית המעגל האלקטרוני

בניית המעגל האלקטרוני
בניית המעגל האלקטרוני

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

להלן המאפיינים החשובים של המעגל:

  • ישנם שני מתח שמשחקים תפקיד: מתח הכניסה מהסוללה (בסביבות 3.75V) וה 3.3V שמזין את ה- ESP8266 ו- BME280. שמתי את ה 3.3V על המעקה השמאלי של לוח השעונים ואת ה -3.75V על המעקה הימני. ווסת המתח ממיר את 3.75V ל -3.3V. בעקבות ההוראות בגיליון הנתונים הוספתי 1 קבלים μF לכניסה ולפלט של ווסת המתח כדי להגביר את היציבות.
  • GPIO15 של ה- ESP8266 מחובר לשער הטרנזיסטור. זה מאפשר ל- ESP8266 להפעיל את הטרנזיסטור ובכך את החיישן האולטראסוני כאשר הוא פעיל ולכבות אותו בעת שינה עמוקה.
  • GPIO14 מחובר למתג, מתג OTA. סגירת המתג נותנת את האות ל- ESP8266 שאנו רוצים להתחיל במצב OTA לאחר מכן, כלומר לאחר לחיצה (סגירה ופתוחה) על מתג האיפוס, והעלאת סקיצה חדשה באוויר.
  • סיכות RST ו- GPIO2 מחוברות כמו בתרשים התכנות. סיכת RST מחוברת כעת גם ל- GPIO16 כדי לאפשר ל- ESP8266 להתעורר משינה עמוקה.
  • סיכות TRIG ו- ECHO של החיישן הקולי מחוברות ל- GPIO12 ו- GPIO13, בעוד שהסיכות SCL ו- SDA של BME280 מחוברות ל- GPIO5 ו- GPIO4.
  • לבסוף, הסיכה האנלוגית ADC היא באמצעות מחלק מתח המחובר למתח הכניסה. זה מאפשר למדוד את מתח הכניסה כדי לבדוק את טעינת הסוללות. סיכת ה- ADC יכולה למדוד מתח בין 0V ל- 1V. עבור מחלק המתח בחרנו נגדים של 100K ו- 470K. המשמעות היא שהמתח בסיכת ה- ADC ניתן על ידי: V_ADC = 100K/(100K+470K) V_in.נטילת V_ADC = 1V זה אומר שנוכל למדוד מתח כניסה עד V_in = 570/100 V_ADC = 5.7V. באשר לצריכת החשמל יש גם דליפה של זרם דרך מחלק המתח. כאשר V_in = 3.75V מהסוללות אנו מוצאים I_leak = 3.75V/570K = 6.6 μA.

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

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

גיליתי שזמן הפעילות הכולל הוא כ -7 שניות, מתוכן 4.25 שניות להתחבר ל- Wifi ו -1.25 שניות לשליחת הנתונים ל- ThingSpeak. אז עם זרם פעיל של 80mA מצאתי 160 μAh לשעה במשך הזמן הפעיל. הוספת 50 μAh לשעה למצב שינה עמוקה שיש לנו בסך הכל 210 μAh לשעה. המשמעות היא שסוללות 2600 מיליאמפר / שעה מחזיקות תאורטית 12400 שעות = 515 ימים. זהו המקסימום המוחלט אם נוכל לנצל את מלוא הקיבולת של הסוללות (וזה לא המקרה) ואין דליפות שלא מצאתי עם המדידות הנוכחיות שלי. אז עדיין לא ראיתי אם זה באמת מתגלה.

שלב 7: סיום החיישן

סיום החיישן
סיום החיישן
סיום החיישן
סיום החיישן
סיום החיישן
סיום החיישן

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

תהנה עם הפרויקט!

מוּמלָץ: