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

מערכת אוטומציה ביתית עצמאית ורבת עוצמה - Pi, Sonoff, ESP8266 ו- Node -Red: 9 שלבים (עם תמונות)
מערכת אוטומציה ביתית עצמאית ורבת עוצמה - Pi, Sonoff, ESP8266 ו- Node -Red: 9 שלבים (עם תמונות)

וִידֵאוֹ: מערכת אוטומציה ביתית עצמאית ורבת עוצמה - Pi, Sonoff, ESP8266 ו- Node -Red: 9 שלבים (עם תמונות)

וִידֵאוֹ: מערכת אוטומציה ביתית עצמאית ורבת עוצמה - Pi, Sonoff, ESP8266 ו- Node -Red: 9 שלבים (עם תמונות)
וִידֵאוֹ: התקנת מערכת סולארית לבית מכולה ברחובות 2024, נוֹבֶמבֶּר
Anonim
מערכת אוטומציה ביתית עצמאית ורבת עוצמה - Pi, Sonoff, ESP8266 ו- Node -Red
מערכת אוטומציה ביתית עצמאית ורבת עוצמה - Pi, Sonoff, ESP8266 ו- Node -Red

מדריך זה אמור להביא אותך לבסיס הראשון שבו תוכל להדליק/לכבות נורה או מכשיר באמצעות כל מכשיר שיכול להתחבר לרשת המקומית שלך, ועם ממשק אינטרנט נהדר להתאמה אישית. היקף הרחבה/ הוספת תכונות הוא עצום, כולל שליחת מיילים, הודעות טוויטר, קריאת חיישנים (למשל טמפרטורה). אתה יכול להגדיר כללים בקלות למשל - אם הטמפרטורה מתחת 15C בשעה 23:00 הפעל את השמיכה החשמלית למשך 30 דקות. המערכת משתמשת בפרוטוקול MQTT עם TCP שהוא הרבה יותר אמין מ- UDP - המשמש באופן מפתיע כמה מכשירי אוטומציה ביתיים מסחריים. לאחר שהעבודה הקשה של הגדרת המערכת, המתוארת כאן, נעשית, הכיף יכול להתחיל. Node Red מספק ממשק משתמש פנטסטי שהוא אינטואיטיבי, מהיר וקל להתקנה ומספק יכולת מדהימה.

התוצאה היא מערכת אוטומציה ביתית עוצמתית שנמצאת בשליטה מלאה של עצמה ונמצאת כולה ברשת מקומית. רבות מהמערכות המוצגות ב- Instructables פועלות עם שרתים מבוססי ענן ומכאן שהן מהוות סיכון אבטחה ויכולות לדרוש הרשמה. אלה קלים יותר להתקנה אך יש להם סיכון אבטחה גבוה יותר ועלות גבוהה יותר. עלי להוסיף שאפשר להגדיר VPN (רשת פרטית וירטואלית) ל- Pi כדי לאפשר חיבור מאובטח לרשת/המערכת הביתית אם הגישה מבחוץ תהיה שימושית (Google Pi OpenVPN להוראות).

מערכת זו דורשת תכנות מחדש של מכשירי Sonoff עם מערכת קוד פתוח נהדרת בשם Sonoff-Tasmoda. ניתן לעשות זאת באמצעות התקנה מיוחדת של Arduino וממיר USB לטורי. מכשירי Sonoff משתמשים בשבב ה- Wi-Fi ESP8266 כך שתוכלו גם ליצור מכשירים משלכם באמצעות מודולי ESP8266 או להתאים אותם לפריטים אחרים כדי לספק קישוריות אלחוטית.

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

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

השלבים הם:

  • טען פי עם מתיחה רסבית
  • עדכן והוסף תכונות ל- Node-Red
  • התקן את מתווך Mosquitto MQTT
  • הגדר את סביבת Arduino להעלאת קושחת Sonoff-Tasmota
  • תכנות מחדש מתג Sonoff
  • הגדר את ממשק הצומת-אדום
  • תבדוק הכל עובד.

חומרה שתזדקק לה:

  • פטל פאי ואספקת חשמל (ומקלדת וצג להגדרה ראשונית) (דגם B משמש כאן)
  • מתג Sonoff
  • ממיר סידורי USB
  • אופציונלי - לוח פיתוח ESP כגון NodeMCU.

הניסיון שלי עם ה- Raspberry Pi הוא שההקמה של כל דבר כרוכה בהרבה יותר כאב מכפי שאפשר היה לדמיין שאפשר כאשר דברים לא עובדים או נתקעים בשלב כלשהו טריוויאלי שבו ההסבר היה יכול להיות טוב יותר. הפורומים לא תמיד מקבלים עצות שעובדות! מצאתי כמה מסלולים שפשוט לא עבדו מסיבה כזו או אחרת. זה עלה 3 ימים! לאחר מכן ניגבתי הכל והתחלתי מחדש והשלמתי תוך פחות מיום (ארוך). אולם זה השתמש בג'סי הראפסית הישנה יותר. לאחר מכן מצאתי דרך להשתמש בגרסה הנוכחית והמשוחררת (Stretch) ועשיתי הכל שוב. מדריך זה מאפשר להעתיק ולהדביק את ההוראות לתוך ה- Pi. אז אתה צריך להסתיים תוך כמה שעות. בכל מקרה אני מקווה שזה יעלה אותך מהר יותר בעקומת הלמידה ועם הרבה פחות כאב. האמן לי שזה שווה את התוצאה הסופית.

שלב 1: טען פי עם מתיחה רסבית

זה צריך להיות די פשוט. התחל עם כרטיס SD של 8 ג'יגה או 16 ג'יגה. הורד את הגרסה האחרונה מ:

www.raspberrypi.org/downloads/

השרשור הראשי כאן מניח שהגרסה המלאה נטענת. עם זאת אתה יכול להשתמש בגרסת הלייט כדי לחסוך מקום. אם אתה משתמש ב- Raspbian Stretch Lite המשך בשלב זה ולאחר מכן עבור לשלב 9 בסוף.

ביטול רחיצת הקובץ שהורדת נותן תיקייה עם קובץ ה- img. 7Zip מומלץ עבור Windows (ו- The Unarchiver Mac). יש לצרוב את התמונה על כרטיס ה- SD - אך יש להשתמש בתוכנית מיוחדת מכיוון שמערכת הקבצים אינה תואמת ל- Windows. התוכנה המומלצת נקראת Etcher וניתן להוריד אותה מ:

etcher.io/

ההוראות לאצ'ר נמצאות באתר שלהן ובקושי יכולות להיות פשוטות יותר. בחר את התמונה ואת הכונן ולחץ על Flash.

עכשיו עם כרטיס ה- SD המהבהב שלנו עם יכול להפעיל את ה- Pi.

אם אתה יודע את כתובת ה- IP שבה פי שלך משתמש או שאתה שמח למצוא אותה על ידי כניסה לנתב שלך, תוכל להימנע מהצורך במקלדת ובניטור ולהשתמש ב- SSH באופן מיידי. פשוט הוסף קובץ ריק בשם SSH לכרטיס ה- SD, הכנס, התחבר ל- Ethernet והפעל אותו. אחרת פעל על פי המדריך להלן.

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

יש מדריך להרבה עבודה על סרטון יוטיוב. כאן התחלתי. אתה יכול להריץ את הסרטון לצד ההנחיות הבאות. אולם כאשר עברתי את התהליך שוב בעת כתיבת זה מצאתי שקל יותר פשוט לעקוב אחר ההוראות כאן. יש כמה סטיות משמעותיות. ישנם גם חלקים שבהם המלצתי לעקוב אחר הסרטון במקום לפרט את השלבים כאן. עם זאת, אני ממליץ להסתכל על זה כדי להבין את MQTT, Node-Red ואת תהליך ההתקנה הרחב. אורך הסרטון 38 דקות אז תרגיש בנוח. הסרטון מתחיל בהצגת מה Node Red יכול לעשות, ולאחר מכן מכסה את ההתקנה וההגדרה של Pi, ואחריו שדרוג Node Red ולבסוף התקנת Mosquitto. תזמוני מפתח למקרה שתרצו לחזור לקטע:

00:00 היכרות עם וידאו

03:00 הפגנת צומת אדום

14:14 ייבוא פריטי לוח מחוונים לצומת אדום

21:05 ההתקנה הראשונית של Pi, כולל SSH

23:35 התקנת קוד תומך Node Red

27:00 היכרות עם MQTT

29:12 התקנת Mosquitto (MQTT) (ההערה עובדת רק על ג'סי Raspian)

33:00 דוגמאות צומת אדום

אפרט את הפקודות באותיות נטויות (ולא באמצעות ""). עיצוב זה מתעלם כאשר אתה מעתיק ומדביק אותם לתוך ה- Pi.

ההיכרות עם Node Red תיתן לך מושג מה המערכת יכולה לעשות ותספק תמונה לאן נגיע.

סרטון YouTube נמצא בכתובת:

בצע את הליך ההתקנה מהשעה 21:05 עד 23:35. שים לב שכניסה ברירת המחדל היא user: pi וסיסמה: פטל. לפני הפעלה מחדש מצא את כתובת ה- IP של ה- pi. או לחץ על סמל 'למעלה+חץ למטה' בסרגל השולחן העליון או הזן את ההוראה הבאה בחלון מסוף/מסוף:

sudo ifconfig כתובת

לאחר מכן ציין את כתובת ה- IP לאחר: inet addr:. זה יהיה בצורה 192.168.x.y

שים לב לכתובת זו והפעל מחדש (הזן: כיבוי sudo –r עכשיו)

המפתח בשלב זה הוא ש- SSH הופעל ואפשר להגדיר קישור ל- Pi ממחשב (Mac ו- Linux כוללים ממשקי SSH). תוכנית טובה לעשות זאת היא הורדה בחינם בשם PuTTY שיכולה לשמש גם כממשק טורי ויכולה לעשות Telnet. מרק זמין מ:

www.chiark.greenend.org.uk/~sgtatham/putty…

הורד והתקן את PuTTY.

כעת, לאחר הפעלה מחדש של Pi, הפעל את PuTTY והזן את כתובת ה- IP שציינה קודם לכן. ראה דוגמה למטה:

כעת לחץ על פתח

לאחר הכניסה כ: הזן pi

לאחר מכן הזן את הסיסמה שלך.

כעת עקוב אחר ההוראות כאן והפעל את הסרטון החל מהשעה 23:35. ברוב המקרים ניתן להעתיק ולהדביק. סמנו את הטקסט והשתמשו ב- ctrl+C כדי להעתיק. לאחר מכן לחץ באמצעות לחצן העכבר הימני ב- PuTTY להדבקה. לפעמים הטקסט לא מופיע מיד אז המתן מספר שניות. אם אתה מזין פעמיים השתמש באחור כדי למחוק את הערך השני. הקש enter כדי לבצע כל הוראה.

sudo raspi-update

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

כיבוי sudo -r עכשיו

עדכון sudo apt -get -y

sudo apt -get -y שדרוג

זה לוקח זמן…..

sudo apt-get autoremove

עדכון sudo apt -get -y

כיבוי sudo -r עכשיו

בשלב זה מערכת ההפעלה Pi טעונה ומעודכנת, מוכנה לשלב הבא.

שלב 2: עדכן והוסף תכונות לצומת אדום

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

עברתי לשיטה פשוטה ואמינה יותר לטעון Node-Red-בעקבות הגישה בכתובת https://nodered.org/docs/hardware/raspberrypi. זה משתמש בסקריפט ויתקין או ישדרג את Node-Red-כך שהגישה פועלת זהה לגרסאות המלאות או הלייט של Raspbian Stretch. אז הכנס:

bash <(curl -sL

הזן Y כאשר תתבקש (פעמיים). סקריפט זה גם טוען קבצים הדרושים כדי לאפשר הפעלה אוטומטית של Node-Red.

אז בשלב זה הטעינו והעדכנו את ה- pi שלנו ועם העדכונים הדרושים ל- Node Red. לא מזיק לבצע הפעלה מחדש לפני השלב הבא.

כיבוי sudo -r עכשיו

שלב 3: התקנת Mosquitto MQTT

אם עדיין לא עשית זאת כדאי לצפות בהקדמת הווידאו ל- MQTT בסרטון החל מהשעה 27:00.

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

אז היכנס באמצעות PuTTY והזן את הדברים הבאים:

עדכון sudo apt-get

sudo apt-get להתקין לקוחות יתושים

י

sudo /etc/init.d/mosquitto לעצור

sudo /etc/init.d/mosquitto להתחיל

שתי ההוראות האחרונות עוצרות ומתחילות את היתוש ומראות כי מתווך MQTT שלנו עובד.

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

כעת תדע כי MQTT פועל לפי המכשיר את נתוני הצרכים המנויים ל'נושא '. הברוקר ישלח כל נתונים עם אותו 'נושא'. לאחר מכן המכשיר שרוצה לשלוח נתונים/הוראות מפרסם זאת לברוקר באמצעות אותו 'נושא'.

אז בפגישה אחת של PuTTY הזן:

mosquitto_sub -d -t שלום/עולם

זוהי הוראה להירשם לנושא: שלום/עולם.

בשני הכנס:

mosquitto_pub -d -t hello/world -m "שלום מחלון מסוף 2!"

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

כל הכבוד להגיע עד כאן. כעת יש לנו את ה- Pi נטען ומעודכן בעדכונים הדרושים עבור Node-Red ועם מתווך MQTT המתווך. מעכשיו החיים נעשים קלים קצת יותר מהנים. סגור את שתי הפעלות PuTTY המשמשות לבדיקת MQTT.

שלב 4: הגדרת הממשק האדום של הצומת

ראשית עלינו להפעיל את Node Red. הכנס את ההוראה:

node-red-pi --max-old-space-size = 256

המתן עד שהוא יתחיל ותראה את הטקסט 'התחיל זורם'.

עכשיו פתח דפדפן, אני משתמש ב- Chrome והזן את כתובת ה- IP של pi שצוינה קודם לכן ואחריה: 1880 כלומר משהו כמו 192.168.0.8:1880

כעת אמור להיות לך דף התכנות Node Red כפי שמוצג להלן:

כעת תוכל לעקוב אחר הדוגמאות של Node Red החל מהשעה 33:00 או לעבור ישר למעט התקנה נוספת וטעינת הזרימה הראשונה שתציג את הקישור ל- MQTT ותהיה מוכנה להניע את המתג שלנו.

ההגדרה הנוספת הדרושה היא הוספת פריטי לוח המחוונים המאפשרים ממשק אינטרנט.

אלה מוצגים בסרטון בשעה 14:14.

בצע את ההוראות כדי לטעון את לוח המחוונים הצומת-אדום.

עכשיו נוכל לשחק קצת ולהראות את MQTT עובד ומונע על ידי Node-Red. זה לא מופיע בסרטון אבל הוא המפתח לפרויקט הזה. תוכל לעקוב אחר ההוראות שלי ו/או לייבא את הזרמים מהקובץ NRtest1.txt המצורף.

ראשית הוסף צומת הזרקה קלט וצומת mqtt פלט וקשר אותם יחד.

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

כעת לחץ פעמיים על צומת MQTT. לחץ על סמל העיפרון מימין לקטע השרת. פעולה זו פותחת דיאלוג חדש. הזן: localhost בקטע שרת. לחץ על הוסף. כעת, בחזרה בצומת עריכת mqtt out, הזן את הנושא שלנו בקטע הנושא: שלום/עולם. הגדר את ה- QoS ל -1. לחץ על בוצע. כעת לחץ על הפרוס. אתה אמור לראות כתם ירוק ו'מחובר 'מתחת לצומת mqtt.

כעת הוסף עוד שני צמתים - קלט mqtt וניקוי באגים בפלט, וחבר אותם יחד. כעת לחץ פעמיים על צומת mqtt הקלט והזן שלום/עולם בקטע הנושאים. השרת אמור להציג כבר מארח מקומי: 1883. הגדר את ה- QoS ל -1. לחץ על בוצע. לאחר מכן לחץ על פריסה ולחץ על הכרטיסייה באגים בחלונית הימנית. כעת לחץ על הריבוע האפור בצד שמאל של צומת ההזרקה 'שלום ממני'. זה שולח את מטען הטקסט לברוקר MQTT עם הנושא שלום/עולם. הברוקר יודע שצומת הקלט mqtt נרשם לאותו נושא ולכן מעביר את המטען. צומת הקלט mqtt שולח את זה ללשונית איתור באגים (RHS) והטקסט 'שלום ממני' אמור להופיע.

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

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

אז מחק את צומת הזרקת הקלט (לחץ כדי להדגיש ולחץ על מקש המחיקה). כעת הוסף מתג ממקטע לוח המחוונים וחבר אותו לפלט mqtt. מתג לחיצה כפולה. לחץ על העיפרון מימין לקבוצה. הזן בשם: אור. לאחר מכן לחץ על העיפרון מימין לכרטיסייה והזן בקטע שם: טרקלין. לחץ על הוסף/עדכן והוסף/עדכן שוב. כעת, בחזרה בצומת הבורר עריכה, הגדר את מטען ההפעלה והכיבוי. השתמש בשניים כדי לבחור מחרוזת והזן ON עבור המטען On ו- OFF עבור המטען OFF. לחץ על בוצע

כעת עבור לכל אחד מצמתי mqtt ושנה את הנושא ל- cmnd/sonoff/POWER. אם אתה מעתיק ומדביק, בדוק שלא כללת רווח בסוף. זהו נושא אחר והוא לא יעבוד עם Sonoff. מציאת מקום תועה יכולה לקחת כשעה - תאמין לי! הלכתי גם ללוח המחוונים> ערכת נושא ובחרתי: כהה. לחץ על פריסה ובחר בכרטיסייה באגים.

כעת פתח הפעלת דפדפן חדשה בחלון חדש וגודל אותו כמו טלפון נייד מעל הפעלת הצומת האדומה. הזן את הכתובת: כתובת ה- IP של Pi שלך: 1880/ui/#/0 כלומר משהו כמו 192.168.0.8:1880/ui/#/0. אתה אמור לראות מסך עם טרקלין ואור ומתג. לחץ על המתג ואז כבה אותו. חלון הבאגים צריך להציג את המטען ON ו- OFF. עכשיו אם תרצה היכנס גם דרך נייד. שים לב כי מיקום המתג מסונכרן. זה לא משנה ש- Sonoff שלנו עדיין לא מחובר. כשהוא כן, על ידי הרשמה לנושא, הוא יקלוט את ההודעה/המטען ויפעל על פיו.

שלב קטן אחרון הוא לגרום לצומת אדום להתחיל באופן אוטומטי לאחר האתחול של ה- Pi.

ל- Node Red יש מדריך בכתובת:

אולם הקבצים הדרושים כבר נטענו ולכן אין צורך בהתקנה.

לאחר מכן כדי לאפשר ל- Node-RED לפעול באופן אוטומטי בכל אתחול ולאחר קריסה להיכנס (פתיחת הפעלה PuTTY):

sudo systemctl אפשר nodered.service

אם אי פעם תצטרך להשבית את הכניסה הזו:

sudo systemctl השבת את nodered.service

כעת כבה את ה- pi עם כיבוי סודו כעת והסר את החשמל.

כעת הנעול והטעינה של ה- Pi שלנו מוכנה לפעולה. יש לנו את המחשב האישי/הטלפון הנייד שלנו מתחבר ל- Node Red וזה מדבר לשרת MQTT שלנו. זו הייתה דרך ארוכה ושווה טפיחה גדולה על השכם. כל הכבוד. מצאתי את הבא קצת Arduino, הרבה יותר קל!

שלב 5: הגדרת מערכת Arduino לתכנות מחדש של התקני Sonoff

כל המידע לעשות זאת הוא ב- GitHub Sonoff-Tasmota. החלק היחיד שהתקשיתי איתו היה הטקסט של הנושא - אבל כבר הכרחתי אותך להזין את זה בערמומיות!

עבור אל

תוכל למצוא את הוראות ההתקנה בכרטיסייה Wiki בקטע כלי העלאה:

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

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

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

הורד את ה- Arduino IDE העדכני ביותר מ- https://www.arduino.cc/en/Main/Software. פתח את הקובץ לתיקייה החדשה שלך.

ההוראות כוללות הורדה של מערכת Sonoff-Tasmoda מה https://github.com/arendst/Sonoff-Tasmota דף ראשי באמצעות: שיבוט או הורדה> הורד ZIP. פתח את הקובץ לתיקייה החדשה שלך.

בצע את ההוראות בזהירות. לא עשיתי את הקטע אופציונלי: התכונן להעלאת OTA. נשאיר זאת ליום נוסף.

כעת הפעל את Arduino IDE (לחץ לחיצה כפולה על arduino.exe). טען את מערכון Sonoff-Tasmota באמצעות קובץ> ספר רישומים> sonoff. אין צורך לבצע עריכות. כל ההגדרות מתבצעות באמצעות חיבור טורי לאחר טעינת הקושחה. אלה מאוחסנים ב- EEPROM. מכאן שניתן לעדכן את הקושחה ולשמור על כל ההגדרות. זה חומר די חכם. עם זאת, תוכל להימנע מהצורך במספר שלבים כאן על ידי מעבר לקובץ user-config.h והזנת ה- SSID והסיסמה של ה- wifi שלך ו- MQTT_HOST (החלף את 'domus1'– הפניה שנייה, עם כתובת ה- IP שלך ב- Pi).מאוחר יותר ייתכן שתרצה להזין גם משתמש וסיסמה של MQTT. לפני ההורדה בדוק את הגדרות הלוח תחת כלים. אלה יצטרכו כמה שינויים כדי להתאים לדרישות המפורטות בוויקי. כעת לחץ על הידור (סמל סמן). זה צריך לקמפל בסדר. אם לא או אם הגדרות הלוח הנדרשות אינן זמינות, חזור ובדוק כל שלב בהגדרה.

שלב 6: תכנות מחדש של מתג Sonoff

כעת אנו מוכנים להורדה. בשלב זה אפשר ללכת ישר קדימה ולהבהב מתג Sonoff או שניתן להבהב תחילה מודול ESP8266. עשיתי את זה, בין היתר מכיוון שהמתגים שלי עדיין לא הגיעו (רק הגיעו בזמן שאני מקליד את זה!) אבל גם כאמצעי זהירות מכיוון שהבהוב של מתג Sonoff הוא צעד חד כיווני מכיוון שהקושחה המקורית אינה זמינה לציבור עד כמה אני מודע. יש לי כמה לוחות NodeMCU. אלה קלים לחיבור, כאשר יש להם ממיר USB-on-board סידורי. אולם שיטת איפוס nodemcu אינה פועלת עם מערכת זו. אז השאר את הכלים> איפוס שיטה מוגדרים כ- "ck". בצע את הגדרת הפלאש הידנית הרגילה על ידי לחיצה ממושכת על לחצן הבזק (GPIO 0 לקרקע) תוך לחיצה ושחרור איפוס (איפוס לקרקע). אני לא בטוח אם יש לזה פסק זמן או שאולי לא החזקתי את ה- GPIO 0 מספיק זמן אבל הייתי צריך כמה ניסיונות, כולל לעשות את זה בזמן שה- Arduino IDE אוסף!

אם אתה רוצה לבדוק את התגובות - פלט הממסר הוא D6 בלוחות NodeMCU. ב- ESP12 זהו GPIO 12. פלט ה- LED הוא D7 (NodeMCU) או GPIO 13 (ESP12).

מתג Sonoff.

אזהרה: אני חייב לומר "אין להתחבר לרשת בשום מקרה שבו המתחם פתוח". שים לב של- PCB (לפחות על Sonoff Basic (מתג בשורה) יש רק מרחקים של 'בידוד יחיד' בין קטע המתח הנמוך לרשת החשמל. לכן יש להתייחס לכל חלק במעגל Sonoff כאל מתח רשת. ה- Sonoff- Tasmota GitHub אכן מראה חיבור של חיישן טמפרטורה ולחות ל- Sonoff S20. לא הייתי עושה זאת בגלל חששות לבידוד - אז אם אתה רוצה לעשות זאת, קנה מודול ESP12 או NodeMCU והגדר זאת בנפרד עם בידוד כפול מתאים. או ספק כוח מוארק.

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

ממיר סדרתי USB

הממיר האהוב עלי הוא גרסת FTDI. עם זאת אין לכך יכולת מספקת לספק את צרכי Sonoff 3.3v. מפרט FTDI אומר מקסימום 50ma. החלופה הטובה ביותר הבאה היא אחת באמצעות שבב CP2102. עם זאת יש לזה גבול של 100ma זה עדיין לא מספיק. ברור שרבים משתמשים בממיר זה ישירות אך ישנם גם דיווחים על כשל בטעינה. הייתי מגביל את הזמן שהוא מחובר מכיוון שהוא יתחמם מתחת לעומס. עשה זאת על אחריותך בלבד. הפתרון האידיאלי הוא שיהיה גם רגולטור 3.3v, למשל AMS1117 3.3. בניתי PCB קטן כדי לאפשר זאת. ראה מתכנת התקני Sonoff.

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

פתח את ה- IDE של Arduino.

תחת כלים בדוק את ההגדרות כמו ב- Wiki.

בצע את כל העריכות הנדרשות ב- user_config.h. הגדרתי את ה- SSID והסיסמה של Wifi ואת כתובת המתווך MQTT ופרטי אזור הזמן/חיסכון בקיץ.

לחץ על 'אמת' כדי לבדוק אם הוא מתאסף.

חבר את ממיר ה- USB הטורי (בכוחות עצמו) למחשב האישי. שים לב למספר הנמל.

כעת נתק את הכבל הטורי USB מהמחשב וחבר אותו למתג Sonoff. בדוק אם חיבורי הקרקע ו -3 v3 הם הדרך הנכונה (הקרקע מחוברת למישור הקרקע במעגל הלוח של Sonoff).

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

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

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

בסיום אתה אמור לראות מסך להלן:

תמונה
תמונה

Sonoff זקוק לכמה פיסות מידע כדי להתחבר למערכת שלנו: רשת ה- WiFi המקומית SSID והסיסמה וכתובת ה- IP של Pi. ישנן מספר דרכים לעשות זאת, אחת מהן היא לשנות את קובץ config.ino כפי שצוין קודם לכן. אם יש לך סמארטפון אתה יכול (לאחר הרכבה מחדש של המתג) ללחוץ על כפתור Sonoff 4 פעמים די מהר כדי להכניס אותו למצב שרת אינטרנט. הנורית מהבהבת. הייתי צריך לנסות כמה פעמים כדי שזה יעבוד. לאחר מכן, בסמארטפון שלך חפש את רשת Sonoff החדשה והתחבר. יופיע דף אינטרנט שבו תוכל להגדיר את הנתונים הנדרשים. כתובת ה- IP של Pi נכנסת לשם מארח. שיניתי גם את ה- SSID השני והסיסמה למשהו ארוך ובעצם לא ניתן לשימוש.

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

פקודות להיכנס:

SSId yourWiFiSSID

סיסמה סיסמת ה- WiFi שלך

MqttHost 192.168.x.y (כתובת IP PI)

תוכל גם להזין SSId1 ו- Password1 ואחריו משהו ארוך ובלתי שמיש כדי להשבית אותו ביעילות.

כעת תוכל לסגור את מתג Sonoff, לפתוח את Node-Red ואת לוח המחוונים Node-Red וללחוץ על כפתור המתג ולהסתכל בכרטיסייה באגים שאמורה לכלול כעת את התגובות מה- Sonoff. אז יש לנו צעד מרכזי נוסף שהושג - המתג הראשון שלנו מונע ממחשב/סמארטפון.

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

שלב 7: אבטחה

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

הפעל את ה- pi ולאחר מספר שניות פתח דפדפן ל- Node-Red (כתובת IP: 1880).

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

הזן את רצף ההגדרות הבא בצומת ההזרקה.

בדוק תחילה את הקישוריות עם

נושא: cmnd/sonoff/סטטוס

הודעה: 6

לחץ על 'הזרק פעם אחת בהתחלה'. לפרוס. עלינו לראות באגים הכוללים 7 שורות נתונים מ- stat/sonoff/STATUS6

הזן נושא: cmnd/sonoff/Topic andMessage: אור לאונג '. לפרוס. זה משנה את שם המתג מ- sonoff לאור אור

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

נושא: cmnd/loungelight/MqttUser

הודעה: אור לאונג '

לחץ על הפרוס. יש לראות באגים מ- stat/loungelight/RESULT עם {“MtqqUser”: “loungelight”}

נושא: cmnd/loungelight/MqttPassword

הודעה: loungelightPW (שים לב להיות יותר דמיוני מזה!)

נקה את הכרטיסייה באגים ופריס.

יש לראות תשובה מ- stat/loungelight/RESULT עם {"MqttPassword": "loungelightPW"}

כעת הזן את NodeRed ו- NodeRedPW כשם משתמש וסיסמה בצומת mqtt out. זאת באמצעות סמל עיפרון השרת וכרטיסיית האבטחה בחלון שנפתח. זה מועתק אוטומטית לצמתי MQTT האחרים.

בדוק שוב עם

נושא: cmnd/loungelight/סטטוס והודעה: 6. לפרוס.

ושהתגובה נשלחת.

אז בשלב זה שמנו את שם מכשיר Sonof שלנו כך שהוא יקשיב לנושאים cmnd/loungelight/…… ויכנס למנתק MQTT עם שם המשתמש loungelight וסיסמת loungelightPW. הגדרנו גם שם משתמש וסיסמה עבור Node-Red.

בשלב הבא עלינו לומר לשרת MQTT היתוש לקבל רק לקוחות עם שמות משתמש ולרשום את שמות המשתמש והסיסמאות שיתקבלו.

ההליך הוא:

  • תפסיק את היתוש
  • צור קובץ config משלו
  • ערוך קובץ תצורה
  • צור קובץ סיסמה
  • הוסף משתמשים/סיסמאות.

אז היכנס עם הפעלת PuTTY חדשה והפעל באמצעות הפקודות הבאות:

sudo /etc/init.d/mosquitto לעצור

cd /etc/mosquitto/conf.d/

sudo nano mosquitto.conf פעולה זו מפעילה את העורך.

הוסף שורות:

allow_anonymous false

password_file /etc/mosquitto/conf.d/passwd

דרישה_אישור שקר

שמור ויצא (Ctrl+X), Y, הזן.

sudo touch passwd פעולה זו יוצרת קובץ סיסמה וההוראות הבאות מוסיפות שמות וסיסמאות.

sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd light loungelight PW

sudo mosquitto_passwd -b /etc/mosquitto/conf.d/passwd NodeRed NodeRedPW

sudo /etc/init.d/mosquitto להפעלה מחדש

שים לב בעת הוספת מכשיר חדש יהיה עליך להזין את המשתמש והסיסמה דרך היציאה הטורית ולהוסיף אותם לקובץ הסיסמה או לשנות באופן זמני את קובץ התצורה של היתוש ולהגיב (הוסף # בתחילת השורה) את השורות "allow_anonymous false "ו-" password_file /etc/mosquitto/conf.d/passwd "ולאחר מכן אפס אותם כאשר הפרטים נשלחו למכשיר והוספו לקובץ הסיסמה כמפורט לעיל.

שינינו את שם sonoff ל- loungelight ולכן עדכנו את צומת הפלט mqtt (מחובר למתג) כדי להשתמש בנושא cmnd/loungelight/POWER.

לחץ על פריסה ובדוק את הצמתים mqtt המראה 'מחובר'.

לאחר מכן נסה את כפתור המתג וחפש את איתור באגים המציג את מתג Sonoff המגיב. תבחין כי המכשיר מציג את השינוי בנושא: stat/loungelight/POWER. אז עכשיו שנה את צומת הקלט שהוגדר ל- cmnd/sonoff/POWER ל- stat/loungelight/POWER. אנו יכולים להשתמש בכיסוי זה בפער בפונקציונליות שלנו. המערכת כפי שהוקמה בתחילה תסונכרן עם כל המשתמשים המחוברים אך לא תסונכרן עם שינויים במתגים שנעשו על ידי לחיצה על הכפתור שבמתג Sonoff. אז עכשיו חבר את הפלט של צומת הכניסה stat/loungelight/POWER mqtt לכניסת המתג (LHS). כעת לחץ לחיצה כפולה על המתג ובטל את הסימון "אם הודעה מגיעה לקלט, עברו לפלט". זה מעלה כמה אפשרויות חדשות - בחר 'סמל המתג מציג את מצב הקלט'. לפרוס. אז עכשיו יש לנו לולאת משוב טובה. מיקום מתג לוח המחוונים תמיד ישתנה כאשר מתג Sonoff ישתנה, ללא קשר למקום בו בוצע השינוי.

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

שלב 8: צעדים ראשוניים להרחבה

יש לי עוד לוח אוטומציה של חיישני LED של פיתוח חיישני Sonoff-Tasmota, המציג חלק מהיכולות הנוספות של הקושחה Sonoff-Tasmota:

מדידת טמפרטורה ולחות

זיהוי פולש (קלט מתג)

שלט IR (לטלוויזיות וכו ')

מחרוזות LED - הן RGB והן NeoPixel (ניתן להתייחסות בנפרד)

חיישני I2C

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

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

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

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

דרך נוספת היא הוספת תצוגה ל- pi להצגת לוח המחוונים. זוהי 'עבודה בעיצומה' - או במילים אחרות אני לא מאושר מדי. את המסך שקיבלתי קשה לסובב למצב דיוקן ודפדפן ה- Chromium איטי עד כאב. אלטרנטיבה תהיה להרים טאבלט ישן ב- eBay ולהשתמש בו. אני יכול לנסות עם Pi 2 ולראות אם זה מספק מספיק שיפור (דגם B המשמש לפיתוח זה).

אני מקווה שזה יניע אותך ושהדמיון שלך יזעזע. ההיקף הפוטנציאלי הוא עצום. אפשר אפילו לשנות את קוד Sonoff עבור חיישנים אחרים במידת הצורך.

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

מִיקרוֹפוֹן

שלב 9: תוספת - טעינה מ- Raspbian Stretch Lite

אפשרות זו נמנעת מ- bloatware שמגיעה עם גרסת ה- Raspbian Stretch המלאה. רוב זה לא יהיה נחוץ בעת שימוש ב- Pi לאוטומציה ביתית. עם זאת, Node-Red אכן חייב להיות מותקן.

המשך כמו בשלב 1 אך השתמש ב- Raspbian Stretch Lite במקום ב- Raspbian Stretch.

במקום שלב 2 בצע את הפעולות הבאות:

sudo apt -y התקן npm

npm -v אמור לחזור: 1.4.21 ואילך

sudo npm להתקין -g n

sudo n 8.9.0

כעת נוכל להשתמש במנהל חבילות הצמתים כדי להתקין את הצומת האדום:

sudo npm להתקין צומת אדום-גלובלי-לא בטוח

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

כעת מותקן לנו Node-Red וחבילות התמיכה שלו ויכולים לעבור לשלב 3, טוען יתוש.

תחרות אלחוטית
תחרות אלחוטית
תחרות אלחוטית
תחרות אלחוטית

מקום שני בתחרות האלחוטית

מוּמלָץ: