תוכן עניינים:
- שלב 1: חלקים וכלים
- שלב 2: עקרון העבודה
- שלב 3: הרכיב את המכשיר
- שלב 4: העלה את הקוד
- שלב 5: הגדר את HomeAssistant
- שלב 6: הגדרת שרת MQTT משלך [אופציונלי]
- שלב 7: עדכוני OTA (Over the Air) עבור NodeMCU
- שלב 8: מסקנות, עבודה עתידית
וִידֵאוֹ: אינטגרציה של עוזר הבית גייגר: 8 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:12
במדריך זה אני הולך להראות כיצד אתה יכול להוסיף חיישנים מותאמים אישית ל- HASS (עוזר הבית) באופן ספציפי יותר מונה גייגר, אך התהליך דומה גם לחיישנים אחרים.
נשתמש בלוח NodeMCU, דלפק גייגר מבוסס ארדואינו ועוזר בית מותקן כבר.
האינטגרציה תתבסס על שרת MQTT (ציבורי או פרטי) ואני הולך לקחת אותך צעד אחר צעד עם זה.
אם אינך יודע מהו עוזר הבית אנא בקר בדף שלהם https://www.home-assistant.io/. זוהי פלטפורמה ידועה לאוטומציה ביתית המתוחזקת היטב וניתנת להתאמה אישית רבה.
תלמד על:
- תצורה מתקדמת עבור עוזר הבית
- NodeMCU (לוח פיתוח) וכיצד לתכנת אותו עם Arduino IDE
- OTA (עדכוני אוויר) באמצעות ה- Arduino IDE ללוח NodeMCU
- כיצד לחבר התקן סידורי ל- NodeMCU
- התקנה ידנית של שרת MQTT בלינוקס (אופציונלי)
הנחות בסיסיות:
- יש לך את Home Assistant פועל
- אתה יודע קצת על אלקטרוניקה
- יש לך Arduino IDE מותקן
שלב 1: חלקים וכלים
חלקים:
1. לוח NodeMCU
2. לוח לחם
3. חוטי ג'ופר זכר-זכר ונקבה
3. כבל USB למיקרו USB
4. מונה ארדואינו גייגר עם ממשק סידורי
(חפש ב- eBay אחר "arduino geiger couter")
5. חומר רדיואקטיבי (אופציונלי דגימת בדיקה קטנה)
כלים:
1. Arduino IDE
2. עוזר הבית מותקן
שלב 2: עקרון העבודה
המטרה שלנו היא להציג ב- HomeAssistat (HASS) את הקריאות מדלפק הגייגר. בצד אחד יש לנו שרת HASS הפועל במקום שהוא יכול להיות פאי פטל או מכשיר אחר ובצד השני יש לנו את דלפק הגייגר.
לדלפק הגייגר יש יציאה טורית, פתרון אחד יהיה חיבור ישיר של הפורט הטורי ל- RaspberryPi שעליו פועל ה- HASS.
כמה סיבות לכך שזו אולי לא רעיון טוב:
- אין שם מקום פיזי
- יש לנו מכשיר אחר ביציאה הטורית
- אנו רוצים לצרף חיישן סביבתי שיש למקם אותו בחוץ במקום מונה הגייגר
אוקיי אז אנחנו הולכים לבחון אפשרות נוספת ליצור את החיבור באמצעות WIFI:
ה- HASS תומך בקריאת נתוני חיישן ובהצגת דרך שרת MQTT, שרת מסוג זה הוא חיבור משקל קל למכשירים קטנים מכשיר אחד מפרסם הודעה על "נושא" והשני מקשיב בנושא זה כדי לקבל את ההודעה. אז HASS יקשיב, ואנחנו צריכים משהו שיפרסם את המסר.
החיישן שלנו יודע לדבר רק דרך הקו הטורי כך שנשתמש בלוח שיכול לקרוא שורה טורית שיכול להתחבר דרך WIFI ולדבר עם שרת MQTT. לוח זול שעושה זאת הוא NodeMCU.
ניתן לתכנת את NodeMCU עם Arduino IDE. השרטוט די פשוט, הוא עושה את הדברים הבאים:
- מתחבר ל- WIFI
- שומר על חיבור MQTT עם השרת ומנסה שוב את החיבור כאשר הוא נכשל או מנותק
- מקשיב לנתונים נכנסים סדרתיים כסדרה של מספרים שלמים
- ברגע שמגיע מספר שלם הוא שולח אותו דרך MQTT לנושא ספציפי
שלב 3: הרכיב את המכשיר
אנו נשתמש בלוחות ולחוטים כך שזה פשוט למדי, יש לנו כמה שלבים:
- שים את ה- NodeMCU על לוח הלחם
- חבר את צינור הגייגר לדלפק הגייגר (היזהר מהקוטביות)
- VIN הולך לדלפק גייגר +
- GND הולך לדלפק גייגר -
- NodeMCU D7 (סיכה 13) עובר ל- geiger TX
- NodeMCU D8 (סיכה 15) עובר ל- geiger RX
- הפעל את NodeMCU באמצעות מיקרו USB מהמחשב
שלב 4: העלה את הקוד
אנו הולכים להשתמש ב- Arduino IDE ונדאג שהתקנת לוח NodeMCU והספרייה Adafruit_MQTT מותקנת.
1. שיבוט את מאגר github: https://github.com/danionescu0/arduino והעתק את הסקיצה מפרויקטים/HASSGeigerIntegration למיקום שלך בספר הסקיצות של arduino
2. פתח את Arduino IDE והתקן את NodeMCU
- עבור אל קובץ -> העדפות, בכתובות ה- URL של מנהל הלוחות הנוספים הוסף את https://arduino.esp8266.com/stable/package_esp8266com_index.json אם כבר יש לך שם שם תרדמת ולחץ על אישור
-מתוך כלים -> לוח -> מנהל לוח הקלד "nodemcu" ובחר את הערך esp8266 על ידי ESP8266 Community ולחץ על install
3. התקן את Adafruit_MQTT
-עבור אל כלים -> נהל ספריות -> חפש "Adafruit_MQTT" והתקן את "ספריית Arduino MQTT"
4. חבר את כבל ה- USB במחשב והגדר את הלוח:
-עבור אל כלים -> לוח -> בחר NodeMcu 1.0
-כלים -> יציאה -> יציאת ה- USB שלך
- השאר את ההגדרות האחרות ללא שינוי
4. בשרטוט שנה את אישורי ה- WIFI שלך כך שיתאימו לשלך:
#define STASSID "ssid" // החלף ב- WIFI SSID שלך
#define STAPSK "לעבור" // החלף בסיסמת WIFI שלך
5. העלה את הסקיצה ללוח שלך ולאחר ההעלאה אפס את הלוח מהלחצן
6. פתח את הצג הטורי, אם הכל הלך כשורה אתה אמור לראות פלט כזה:
אתחול
כתובת IP: 192.168.1.168 OTA מופעל מתחבר ל- MQTT … MQTT מחובר! {"קרינה": 0.03}..
שלב 5: הגדר את HomeAssistant
אנו נניח שיש לך עוזרת בית פעילה. במערכת שלי יש לי HASSOS גירסה 3.12 על RaspberryPi. אם הגרסה שלך של עוזר הבית ישנה מדי או חדשה מאוד, חלק מהתכונות עשויות להיות שונות. הדרכה זו פועלת בוודאות עם גרסת 3.12.
אם אין לך Home Assistant מותקן, עיין במדריך ההתקנה הרשמי שלהם:
לפני התקדמות ההתקנה וודא ש- NodeMCU מחובר לחשמל ופרסם נתונים.
אוקיי יהיו לנו כאן סדרה של שלבים לתצורה:
1. התקן את "עורך הקבצים" אם אין לך אותו בתפריט, להלן המדריך הרשמי:
2. ערוך את הקובץ "/config/configuration.yaml" והוסף את הדברים הבאים ושמור אותו
- קטע mqtt אם אין לך אותו כבר
mqtt:
מתווך: broker.hivemq.com גילוי: אמת גילוי_קידומת: הא
- קטע החיישנים
חיישן:
- פלטפורמה: שם mqtt: "קרינה" state_topic: "ha/radiation" unit_of_measurement: 'uSv' unique_id: "radiation" value_template: "{{value_json.radiation}}"
3. מתוך תצורה -> פקדי שרת: לחץ על "בדוק את התצורה", בדוק אם קיימות טעויות בקובץ התצורה של yaml ולאחר מכן הקש על "הפעל מחדש" והמתן עד להפעלה מחדש.
4. מתוך סקירה כללית -> תפריט בפינה הימנית העליונה -> הגדרת ממשק משתמש -> לחץ על הלחצן + מצד ימין למטה
5. בחר "חיישן" מהרשימה -> בשדה "ישות" חפש "sensor.radiation", בשדה השם כתוב "קרינה" ולחץ על אישור, זה אמור להיות בדף הראשי עכשיו
שלב 6: הגדרת שרת MQTT משלך [אופציונלי]
בואו נדון קצת על MQTT
MQTT הוא פרוטוקול הובלת הודעות של פרסום/הרשמה של הרשמת לקוחות. הוא קל משקל, פתוח, פשוט ומתוכנן כך שיהיה קל ליישום. מאפיינים אלה הופכים אותו לאידיאלי לשימוש במצבים רבים, כולל סביבות מוגבלות כגון תקשורת בהקשר של Machine to Machine (M2M) ו- Internet of Things (IoT) שבהן נדרשת טביעת רגל קטנה של קוד ו/או רוחב פס של רשת הוא בעלות גבוהה.”
ציטוט מהמפרט הרשמי של MQTT 3.1.1.
אז בעצם אנחנו יכולים לפרסם הודעה איפשהו בצד אחד ובצד השני נוכל להאזין להודעות האלה ולעשות משהו עם הנתונים. MQTT תומך ב"נושאים ", נושאים הם מחרוזות שבהן המתווך משתמש כדי לסנן הודעות עבור כל לקוח, כך שאם נפרסם הודעה לנושא"/קרינה ", המאזין חייב להירשם לאותו נושא כדי לקבל את ההודעות שאנו שולחים.
להלן הדרכה נהדרת על MQTT בפירוט:
שימוש בשרת הכוורת החינמי יש כמה חסרונות כמו:
- כל מי שמקשיב לנושא שלך יקבל את ההודעות שלך
- אם הוא יורד או דורש תשלום מאוחר יותר, לא תוכל להשתמש בו (אלא אם תשלם)
- אם מישהו שמפרסם הודעות לאותו נושא תקבל גם את ההודעות שלו, הוא עשוי לפרסם הודעות לא תואמות ולשבור את תרשימי HASS שלך
שימוש בשרת פרטי
אם אינך רוצה להשתמש בשרת החינמי הציבורי, יש לך אפשרות לשרת פרטי. אנו הולכים להתקין את Mosquitto MQTT בשרת אובונטו / דביאן כמו פי פטל או מחשב.
Mosquitto הוא שרת שמיישם פרוטוקול MQTT וזה בחינם.
כדי להתקין אותו היכנס ל- raspnerry pi או לשרת מבוסס דביאן אחר והפעל:
עדכון sudo apt
sudo apt להתקין -y יתוש יתושים -לקוחות sudo systemctl לאפשר mosquitto.service
פעולה זו תעדכן את המאגר, תתקין את שרת היתושים ואת הלקוח ותאפשר לו להריץ שירות בעת ההפעלה
כדי לגרום ל- ip השרת לבצע:
שם מארח -אני
וזה יפיק משהו כמו:
192.168.1.52 172.17.0.1 172.18.0.1
אז ה- ip שלי הוא 192.168.1.52, בפקודות למטה תחליף אותו ב- ip משלך
אתה יכול לבדוק את שרת MQTT על ידי פרסום הודעה וקבלתה באמצעות כלי הקונסולה, שכן שני מסופים אלה חייבים להיפתח אחד שמקשיב להודעה, אחד שיפרסם את ההודעה.
ראשית במסוף הפעל פקודה זו כדי להאזין להודעה על "/some-topic"
mosquitto_sub -h 192.168.1.52 -t /some -topic
פתח מסוף אחר ופרסם הודעה בנושא זה:
mosquitto_pub -h 192.168.1.52 -t /some -topic -m '{"לחות": 74.0}'
במסוף הראשון אתה אמור לראות את "{" לחות ": 74.0} 'מודפס.
תשומת - לב מיוחדת:
- התקנה זו מניחה כי HASS, Mosquitto ו- NodeMCU מחוברים לאותה רשת WIFI ואין כללי חומת אש והם יכולים לתקשר בחופשיות
-לשרת Mosquitt MQTT אין שם משתמש/סיסמה, אם ברצונך להגדיר אישורים בדוק זאת: https://www.steves-internet-guide.com/mqtt-username-password-example/ כמו כן יהיה עליך להגדיר האישורים ב- Home Assistant ובמערכון הארדואינו
שלב 7: עדכוני OTA (Over the Air) עבור NodeMCU
עדכונים מעל האוויר פירושו שניתן להבהב את לוח הפיתוח באופן אלחוטי ללא צורך בכבל פיזי.
Arduino IDE תומך בפונקציונליות זו עבור סדרות ESP8266 וכמה לוחות אחרים:
- דורש הבזק ראשוני דרך כבל ה- USB
- יוצר יציאה וירטואלית באמצעות WIFI וזה גלוי רק מ- Arduino IDE
- אין מידע זמין לאיתור באגים סדרתי
- תומך בהגנה באמצעות סיסמה
כדי לאפשר OTA בסקיצה של ESP8266 כלול תחילה את הספרייה:
#כלול "ArduinoOTA.h"
הגדר גם קבוע סיסמת סקיצה זה:
#define SKETCHPASS "סיסמה מסוימת"
בקטע ההתקנה הוסף שורות אלה:
בעוד (WiFi.waitForConnectResult ()! = WL_CONNECTED) {
Serial.println ("החיבור נכשל! אתחול מחדש …"); עיכוב (5000); ESP.restart (); } ArduinoOTA.setPassword (SKETCHPASS); ArduinoOTA.onStart ( () {סוג מחרוזת; אם (ArduinoOTA.getCommand () == U_FLASH) {type = "sketch";} אחרת {// U_FS type = "מערכת קבצים";} Serial.println ("התחל בעדכון " + סוג);}); ArduinoOTA.onEnd ( () {Serial.println ("\ nEnd");}); ArduinoOTA.onProgress ( (התקדמות int ללא חתימה, סה"כ int חתומה) {Serial.printf ("התקדמות:%u %% / r", (התקדמות / (סה"כ / 100)));}); ArduinoOTA.onError ( (שגיאה ota_error_t) {Serial.printf ("שגיאה [%u]:", שגיאה); אם (error == OTA_AUTH_ERROR) {Serial.println ("אימות נכשל");} אחרת אם (שגיאה == OTA_BEGIN_ERROR) {Serial.println ("בגין נכשל");} אחרת אם (error == OTA_CONNECT_ERROR) {Serial.println ("חיבור נכשל");} אחרת אם (error == OTA_RECEIVE_ERROR) {Serial.println (" קבל נכשל ");} אחרת אם (error == OTA_END_ERROR) {Serial.println (" סיום נכשל ");}}); ArduinoOTA.begin (); Serial.print ("כתובת IP:"); Serial.println (WiFi.localIP ());
ובקטע הלולאה הוסיפו שורה זו:
ידית ArduinoOTA. ();
לאחר העלאת הקוד הראשוני שלך לאחר שהלוח יתחיל, עליך לראות ב- Arduino IDE בקטע כלים-> יציאה שני סוגים של יציאות:
יציאות סידריות: /dev /ttyUSB0 (למשל)
יציאות רשת: esp8266-xxxxx בכתובת 192.168.1.xxx
כעת תוכל לבחור את יציאת הרשת ולהעלות את שלט הסקיצה, תתבקש להזין את סיסמת הסקיצה (זו שהגדרת בקבוע למעלה)
שלב 8: מסקנות, עבודה עתידית
ניתן לשנות את הדרכה זו בקלות ולשלוח נתונים על סוגים אחרים של חיישנים:
- אם החיישן שלך נתמך ישירות על ידי NodeMCU דרך ספרייה, פשוט צבר נתונים מהחיישן ודחוף אותו ישירות דרך MQTT
- אם ספריית החיישנים אינה פועלת עם NodeMCU אך היא מיועדת רק עבור Arduino, העלה את הקוד שלך ל- arduino, פלט את הערך דרך השורה הטורקית וקרא אותו ב- NodeMCU ודחוף אותו (בדיוק כמו שעשינו עם מונה הגייגר)
אנו יכולים אפילו לשנות אותו כדי לשלוח נתונים ממספר חיישנים כך:
- חבר את החיישנים שלך ל- NodeMCU
- נתוני סקרים מכל חיישן
- עבור כל אחד מהחיישן לפרסם את הנתונים לנושא אחר
- ב- HASS הגדירו מספר חיישנים (כמו שעשינו עם הגייגר) שיקשיבו לנושאים שונים
מוּמלָץ:
פותחן דלת מוסך חכם DIY + שילוב עוזר הבית: 5 שלבים
פותחן דלת מוסך חכם DIY + שילוב עוזר הבית: הפוך את דלת המוסך הרגילה שלך לחכם באמצעות פרויקט עשה זאת בעצמך. אני אראה לך כיצד לבנות אותו ולשלוט בו באמצעות Home Assistant (מעל MQTT) ויהיה לי אפשרות לפתוח ולסגור מרחוק את דלת המוסך שלך. אשתמש בלוח ESP8266 בשם Wemos
שלוט בשער הזזה האוטומטי שלך עם עוזר הבית ו- ESPHome: 5 שלבים (עם תמונות)
שלוט על שער הזזה האוטומטי שלך באמצעות עוזר הבית ו- ESPHome: המאמר הבא הוא מעט משוב על הניסיון האישי שלי בשליטה על שער הזזה האוטומטי שהתקנתי על ביתי. שער זה, ממותג "V2 Alfariss", סופק עם כמה שלטי Phox V2 לשליטה בו. יש לי גם
תחילת העבודה עם אוטומציה ביתית: התקנת עוזר הבית: 3 שלבים
תחילת העבודה עם אוטומציה ביתית: התקנת עוזר הבית: כעת אנו מתחילים את סדרת האוטומציה הביתית, בה אנו יוצרים בית חכם שיאפשר לנו לשלוט בדברים כמו אורות, רמקולים, חיישנים וכן הלאה באמצעות רכזת מרכזית יחד עם עוזר קולי. בפוסט זה נלמד כיצד להכניס
השתמש ב- Adafruit NeoPixels עם עוזר הבית: 7 שלבים
השתמש ב- Adafruit NeoPixels עם עוזר הבית: Adafruit NeoPixels הם טבעות, רצועות ולוחות מעגלים מודפסים אחרים עם פסי LED מסוג RGB. הם ניתנים לשרשרת זה לזה. Adafruit NeoPixels פופולריים במיוחד בקהילת היצרנים ונמצאים בשימוש נרחב בפרויקטים של עשה זאת בעצמך (עשה זאת בעצמך)
הפוך את פעמון הדלת החוטית שלך לפעמון דלת חכם בעזרת עוזר הבית: 6 שלבים
הפוך את פעמון הדלת החוטית שלך לפעמון דלת חכם בעזרת עוזר הבית: הפוך את פעמון הדלת הקווי הקיים שלך לפעמון חכם. קבל הודעה לטלפון שלך או זוג עם מצלמת הדלת הקדמית שלך כדי לקבל התראה על תמונה או וידאו בכל פעם שמישהו מצלצל בפעמון הדלת שלך. למידע נוסף בכתובת: fireflyelectronix.com/pro