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

חיישן דליפת מים ב- ESP8266 + Micropython + Domoticz: 16 שלבים (עם תמונות)
חיישן דליפת מים ב- ESP8266 + Micropython + Domoticz: 16 שלבים (עם תמונות)

וִידֵאוֹ: חיישן דליפת מים ב- ESP8266 + Micropython + Domoticz: 16 שלבים (עם תמונות)

וִידֵאוֹ: חיישן דליפת מים ב- ESP8266 + Micropython + Domoticz: 16 שלבים (עם תמונות)
וִידֵאוֹ: איתור פיצוץ מים בגינה באמצעות חיישן גז 2024, יולי
Anonim
חיישן דליפת מים ב- ESP8266 + Micropython + Domoticz
חיישן דליפת מים ב- ESP8266 + Micropython + Domoticz
חיישן דליפת מים ב- ESP8266 + Micropython + Domoticz
חיישן דליפת מים ב- ESP8266 + Micropython + Domoticz

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

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

שלב 1: חומרה

חוּמרָה
חוּמרָה

לפרויקט זה אנו צריכים:

1. מודול ESP8266 - 01

2. אספקת חשמל לינארית רגולטור לינארית 3.3V MS 3.3V MS

אנו זקוקים למודול זה כדי להפחית את המתח מהסוללה לרמה המקובלת עבור ESP8266. על פי גליון הנתונים צריכה להיות כניסה של 3V עד 3.6V. מודול זה נותן לנו 3.3V.

3. סוללה.אני משתמשת בסוללת 3, 7V Li-ion 400mAh. למעשה אתה יכול להשתמש בכל מקור חשמל מתאים אחר. סוללת 18650 היא גם בחירה טובה. כאשר אתה בוחר סוללה זכור ש- ESP "אוכל" כ- 200mA תוך חיבור לרשת WiFi, וכ- 60mA משמש כאשר הלוח מעלה נתונים לשרת.

4. לוח טעינת סוללת ליפו TP4056.

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

6. דיור 7. מתג מיקרו כפול ON-OFF. שורה אחת משמשת להפעלת המכשיר. השורה השנייה מיועדת לבדיקה - היא מכווצת במעגל ללא מים, רק כדי ליידע אותנו שהמכשיר עובד או לא.

8. מחשב מיקרו פטל פטל

אני משתמש ב- Raspberry Pi Zero. הוא מספיק חזק להפעלת שרת Domoticz.

שלב 2: תוכנה

במחשב האישי שלך:

1. esptool מותקן, למחיקת מודולים וקושחה מהבהבת

2. אמפי מותקן, להבהב את התוכנית שלך

3 פייתון 3.6 ומעלה מומלץ

4. כל עורך קוד שאתה רוצה. הפשוט ביותר - Python IDLE שבדרך כלל מותקן עם Python. אני משתמש ב- Pycharm / Atom או Anaconda Spyder ב- Raspberry Pi

5. שרת Domoticz מותקן ב- Raspberry Pi (או מחשב נפוץ תחת Windows או Linux)

שלב 3: הכינו את Raspberry Pi - התקינו את Domoticz

אז קח את ה- RPi שלך והתקן את מערכת ההפעלה המתאימה להפעלת שרת Domoticz.

תוכל לבצע את ההוראות הבאות.

אני משתמש ב- Raspbian Stretch עם שולחן העבודה מכאן:

השלב הבא הוא התקנת שרת Domoticz במחשב האישי שלך. אתה יכול להשתמש בהוראות כאן או כאן:). אל תפחד, זה לא כל כך קשה. ברור שאתה צריך לרוץ במסוף שלך:

curl -L install.domoticz.com | sudo bash

וזהו:) פחות או יותר. הגדרת Domoticz

כעת, כשהשרת שלנו מוכן, אנו יכולים לגשת אליו מכל דפדפן אינטרנט, כולל מטאבלט, על ידי הזנת כתובת האתר הבאה: https:// IP_domoticz: 8080

שלב 4: התקנת Domoticz

התקנת Domoticz
התקנת Domoticz

כעת, כשהשרת שלנו מוכן, אנו יכולים לגשת אליו מכל דפדפן אינטרנט, כולל מטאבלט, על ידי הזנת כתובת האתר הבאה: https:// IP_domoticz: 8080

שלב 5: התאם את הגדרות היישום

התאם את הגדרות היישום
התאם את הגדרות היישום
התאם את הגדרות היישום
התאם את הגדרות היישום

ישנן הגדרות יישומים שונות שניתן להגדיר באמצעות ההתקנה | תפריט הגדרות.

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

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

שלב 6: התקנת הודעות

התקנת התראות
התקנת התראות

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

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

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

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

ברגע שהחיישן מרגיש מים, ESP נדלק ושולח בקשה לשרת Domoticz בפורמט JSON. אם אם מתקיימים התנאים להפעלת אירוע (שליחת הודעה לפלאפון), Domoticz שולח את ההודעה.

בהמשך אחזור ל"אירועים ".

שלב 7: הגדר את התקשורת להתקני חומרה

הגדר את התקשורת להתקני חומרה
הגדר את התקשורת להתקני חומרה
הגדר את התקשורת להתקני חומרה
הגדר את התקשורת להתקני חומרה
הגדר את התקשורת להתקני חומרה
הגדר את התקשורת להתקני חומרה

לפני שתוכל להשתמש ביישום Domoticz לשליטה במכשירים או לקרוא חיישנים עליך להתקין את התקשורת להתקני חומרה. בחר התקנה | חומרה להוספת חומרה. התקנים לא יופיעו עד להוספת החומרה המתאימה.

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

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

החומרה החדשה צריכה להיות ברשימה וצריך להיות כפתור "צור חיישנים וירטואליים".

לחץ על כפתור זה ובחר סוג חיישן "התראה". כעת עלינו להוסיף את המכשיר ב- Domoticz כדי להפוך לפעיל.

שלב 8: הוסף את המכשיר ב- Domoticz כדי להיות פעיל

הוסף את המכשיר ב- Domoticz כדי להיות פעיל
הוסף את המכשיר ב- Domoticz כדי להיות פעיל
הוסף את המכשיר ב- Domoticz כדי להיות פעיל
הוסף את המכשיר ב- Domoticz כדי להיות פעיל
הוסף את המכשיר ב- Domoticz כדי להיות פעיל
הוסף את המכשיר ב- Domoticz כדי להיות פעיל

אנא שים לב למספר למטה "IDX". זוהי ההתייחסות הייחודית למכשיר זה ואנו זקוקים לה בהמשך סקריפט ה- Python שלנו כדי לטפל בהודעות. במקרה זה מספר ה- IDX הוא 1.

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

מלא את שם המכשיר ולחץ על "הוסף".

נווט לתפריט "כלי עזר" וההתקן שלך צריך להיות רשום שם.

כעת עלינו לתכנת "אירוע" עבור החיישן שלנו. זה אומר שאנחנו צריכים להגיד לשרת מה לעשות במקרה שהוא קיבל הודעה מחיישן. וזה היה המקום הקשה ביותר בשבילי:).

שלב 9: זה לא עובד בצורה כזו …

זה לא עובד בצורה כזו…
זה לא עובד בצורה כזו…

התחלתי בניסיון לתכנת אירוע ב / device / page. זה למטה אינו שלי, אבל זה בסדר להמחיש.

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

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

שלב 10: בניית אירוע בצורה נכונה 1

בניית אירוע בצורה נכונה 1
בניית אירוע בצורה נכונה 1

1. בצע קובץ חיצוני באמצעות "אירועים", באמצעות הודעת Blockly "התחל סקריפט"

זה עובד בשבילי במחשב Windows באופן מושלם. אבל לא הצלחתי עם זה ב- Raspbian ב- Raspberry Pi שלי. אני חושד שיש בעיה בהרשאות.

שלב 11: בניית אירוע בצורה נכונה 2

בניית אירוע בצורה נכונה 2
בניית אירוע בצורה נכונה 2

2. השתמש בהודעת "שלח הודעה בנושא". זה עובד על Raspbian. אפשרות זו תומכת בשליחת התראות ל- Pushsafe ו- Pushover.

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

לאחר מכן, בואו לתכנת מודול ESP.

שלב 12: תכנות מודול ESP8266-01

מודול תכנות ESP8266-01
מודול תכנות ESP8266-01

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

לשם כך נשתמש ב- esptool. עלינו לחבר את המודול שלנו למחשב כדי למחוק את הקושחה. לשם כך צריך ממיר TTL + כמה רכיבים נוספים. אבל יש דרך קלה יותר:). פשוט קנה ב- aliexpress או ebay USB ל- ESP8266 ESP-01 מודול מתאם Wi-Fi w/ נהג CH340G.

חבר את מודול ESP8266 לממיר TTL כפי שמוצג בתמונה, וחבר אותו ליציאת ה- USB.

אם יש לך את אותו ממיר כמוני, כשלעצמו אתה צריך לשנות את המתג למיקום "Prog". מצא היכן מותקן esptool (בדרך כלל איפשהו כמו C: / Program Files (x86) Python36-32 / Scripts. עבור לתיקייה זו, הפעל שם את שורת הפקודה. סוג: python esptool.exe-port COM5 erase_flash

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

התקן את הקושחה (לקחתי אותה מכאן: https://micropython.org/download#esp8266) על ידי הקלדה:

python esptool.exe-port COM5 --baud 460800 write_flash --flash_size = לזהות 0 C: / path_to_firmware / esp8266-20180511-v1.9.4.bin

אוקיי, עכשיו אנחנו מוכנים להעלות את סקריפטים המיקרופייתון ל- ESP8266.

אני משתמש בכלי MicroPython של Adafruit (אמפי) לשם כך.

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

תוכל למצוא הוראות להתקנת אמפי כאן. לכן, שימו את המתג על ממיר TTL למצב "UART". נצטרך להעלות קבצים:

  • wifimgr.py - מנהל wifi לחיבור לרשת wifi
  • main.py - התסריט העיקרי שלנו

בסוג שורת הפקודה: ampy --port COM5 שים C: / נתיב לקובץ שלך

לחץ על "enter". לאחר מספר שניות אתה אמור לראות שורת פקודה ריקה. זה אומר שהקובץ הועלה. אתה יכול לבדוק את רשימת הקבצים ב- ESP לפי הפקודה ampy:

ampy --port COM5 ls

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

כל הקבצים לפרויקט זה זמינים מכאן:

שלב 13: התחבר לרשת ה- WiFi שלך. קבל הודעה

התחבר לרשת ה- WiFi שלך. קבל הודעה
התחבר לרשת ה- WiFi שלך. קבל הודעה
התחבר לרשת ה- WiFi שלך. קבל הודעה
התחבר לרשת ה- WiFi שלך. קבל הודעה

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

לאחר הפעלת ESP, מצא רשת WiFi חדשה בשם "Wifimanager". התחבר אליו באמצעות המחשב האישי או הטלפון שלך, ולאחר מכן עבור אל כתובת ה- IP 192.168.4.1.. כאן תוכל לחבר את ה- ESP שלך לרשת WiFi מקומית. בחר רשת WiFi שבה אתה עומד להשתמש, הקלד את הסיסמה ולחץ על "שלח".

אם הכל נכון, תראה את ההודעה "ESP מחובר בהצלחה לרשת XXXX". ה- ESP שלך כעת מחובר לרשת ה- WiFi שלך ומוכן. ברגע שהוא מתחבר ל- WiFi הוא יתחבר לשרת Domoticz. שורטי אתה צריך לקבל הודעה על הטלפון הסלולרי שלך.

אתה יכול לעקוב אחר התהליך ב"הגדרה "/" יומן ".

Vua lia!:) זה עובד. כעת נוכל להמשיך להרכיב את כל החלקים יחד, על פי תרשים הבלוקים שלהלן.

שלב 14: תרשים בלוק

תרשים בלוקים
תרשים בלוקים

אין הרבה מה להגיד על התרשים הזה. פשוט מאוד. העבר את המתח באמצעות מתג S1. המכשיר עומד במצב כבוי עד שקצרים מים "סיכות חיישן". ואז "לוח פולולו" נדלק ונותן כוח לממיר המתח. מודול כוח זה המבוסס על שבב HT7333, ממיר מתח ליציבות 3.3V עבור ESP8266. ה- ESP הבא מופעל ושולח הודעה לשרת Domoticz.

שלב 15: תוצאה ומסקנות

תוצאה ומסקנות
תוצאה ומסקנות
תוצאה ומסקנות
תוצאה ומסקנות
תוצאה ומסקנות
תוצאה ומסקנות
תוצאה ומסקנות
תוצאה ומסקנות

זה עובד. שליחת ההודעה ארכה עד 10 שניות: חיבור ל- WiFi, שליחת התראה, קבלת הודעת אזעקה לטלפון שלך.

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

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

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

המשתמש יצטרך ללחוץ על כפתור ורמת הסוללה תוצג.

מוּמלָץ: