- דיאגרמת מעגלים עבור אוטומציה ביתית נשלטת על ידי Google
- הגדרת יישום Blynk
- הגדרת IFTTT עם Google Assistant ו- Blynk לקריאת מחרוזת
- תכנות Arduino עבור Blynk אוטומציה ביתית
- ייצור PCB באמצעות PCBGoGo
- הרכבת ה- PCB
- חיבור הלוח עם יחידות חשמל / לוחות הארכה
עם ההתקדמות בעוזרים וירטואליים כמו Google Assistant ו- Alexa, אוטומציות ביתיות ויישומים נשלטים על קול הופכים להיות נורמליים. כעת, אנו בעצמנו בנינו פרויקטים רבים של אוטומציה ביתית, החל מאורות מדרגות אוטומטיים פשוטים וכלה באוטומציה ביתית נשלטת באמצעות IoT באמצעות Raspberry Pi. אבל הפרויקט הזה כאן שונה, הרעיון כאן הוא ליצור לוח אוטומציה ביתי מעשי שיכול להתאים ליחידות החשמל שלנו על הקירות ולהישאר מוסתר בתוכו. הלוח לא אמור להפריע לעבודה הרגילה של מתגי יחידת הכוח שלנו, כלומר עליהם להפעיל או לכבות גם באמצעות מתגים ידניים. ומבלי שנאמר, הוא אמור להיות מסוגל לשלוט על אותו עומס באמצעות קול באמצעות Google Assistant וגם להגדיר טיימר כך שכל עומס יכול להפעיל או לכבות באופן אוטומטי בזמן מוגדר מראש של היום.
פרויקט זה דומה מאוד לתקע ה- Wi-Fi החכם ESP8266 שלנו, אך מכיוון שנשתמש ב- ESP12, יהיו לנו יותר סיכות GPIO המאפשרות לנו לשלוט על ארבעה עומסי AC בו זמנית. כמו כן, מכיוון ששילבנו את Blynk ו- Google Assistant, הפרויקט נהיה מעניין ופרקטי לשימוש. לפרויקט זה בנינו את המעגלים באמצעות שירות ייצור PCBGOGO PCB. בחלק המאוחר של המאמר סיפקנו את קובץ גרבר המיועד למעגל והסברנו גם על ההליך המלא להזמנת המעגלים המלאים מ- PCBGOGO.
אזהרה: פרויקט זה כולל עבודה עם מתח החשמל. שים לב שיש לנקוט משנה זהירות בעבודה עם מתח AC גבוה. ודא שאתה מנוהל על ידי אדם מנוסה אם אתה חדש.
דיאגרמת מעגלים עבור אוטומציה ביתית נשלטת על ידי Google
את תרשים המעגלים המלא לאוטומציה ביתית ניתן למצוא להלן.
כפי שאתה יכול לראות, המעגל הוא פשוט מאוד, נתחיל את ההסבר ממודול ה- Wi-Fi ESP12E. תוכלו גם לבדוק את הסרטון למטה לקבלת הסבר מפורט על הפרויקט. ניתן לתכנת את המודול בדיוק כמו לוחות פיתוח של nodeMCU והוא מצמצם מקום רב. כברירת מחדל, כאשר הוא מופעל, ESP12E יעבור למצב פעולה. על מנת לתכנת אותו, עלינו להשתמש בכפתור איפוס ופלאש. כלומר להכניס את ה- ESP12 למצב תכנות, לחץ והחזק את כפתור האיפוס וגם את כפתור הפלאש ואז שחרר את כפתור האיפוס. פעולה זו תאתחל את ה- ESP12E בלחצן הפלאש לחוץ, שחרר כעת את לחצן הפלאש ו- ESP12E יעבור למצב תכנות. לאחר התכנות, עליך ללחוץ שוב על כפתור האיפוס כדי לאתחל את ה- ESP12E במצב פעולה רגיל לביצוע התוכנית שהועלתה. סיכות התכנות Rx, Rx,ו- Ground מורחבים החוצה כדי להיות מסוגלים להתחבר עם לוח FTDI או ממיר USB ל- TTL. הקפד לחבר את סיכת ה- Tx של ESP12 לסיכת ה- Rx של המתכנת ולהפך.
סיכות הדגל האחרות I1 עד I4 ו- R1 ל- R4 משמשות לחיבור המתגים והממסרים. סיכות I1 עד I4 מייצגות סיכות קלט. כל הפינים הללו תומכים בנגר משיכה פנימי ולכן עלינו רק לחבר את המתגים בתיבת ההארכה לסיכת הקלט שלנו באמצעות נגר נפתח כמוצג להלן.
באופן דומה, סיכות הפלט ממסר R1 עד R4 משמשות לשליטה בממסרים. השתמשנו במעגל תקני ממסר רגיל עם דיודות BC547 ו- IN4007 כמוצג להלן. שים לב כי יש להפעיל את הממסרים עם 5 וולט אך סיכות הפלט ESP12E הן 3.3 וולט בלבד. לכן, חובה להשתמש בטרנזיסטור כדי להניע את הממסרים. הצבנו גם נורית בנתיב הבסיסי של הטרנזיסטור, כך שבכל פעם שהטרנזיסטור מופעל, הנורית תידלק גם כן.
לבסוף, כדי להניע את כל המעגלים שלנו, השתמשנו בממיר Hi-Link AC-DC כדי להמיר את 220V AC שלנו ל- 5V DC. זה 5V DC ממיר אז ל 3.3V באמצעות וסת מתח AMS117-3.3V. 5V משמש להפעלת ממסרים ו- 3.3V משמש להפעלת מודול ה- Wi-Fi ESP21.
הגדרת יישום Blynk
בנינו בעבר פרויקטים רבים של Blynk כמו רובוט Arduino נשלט באמצעות Wi-Fi, כך שלא ניכנס לפרטי הגדרת יישום ה- blynk. אבל במילים פשוטות, פשוט התקן את היישום, צור פרויקט חדש עבור NodeMCU והתחל להציב את הווידג'טים שלך כפי שמוצג להלן.
השתמשתי בסיכות וירטואליות V1 עד V4 כדי לשלוט על ממסר 1 עד 4 בפרויקט שלנו. הקפד לשנות את סוג הכפתור להחלפה. ניתן להשתמש באפשרות הטיימר להפעלת הסיכות הווירטואליות באופן אוטומטי למשך הזמן שנקבע, גם אם הטלפון כבוי. השתמשתי בטיימר רק לסיכה וירטואלית V1 כאן, למשל, אך ניתן להשתמש בו לכל ארבעת הסיכות במידת הצורך.
הקפד לקבל את ערך אסימון האימות של blynk מדף הפרויקט שלך. פשוט לחץ על סמל האגוזים (המוקף באדום בתמונה לעיל) והעתק את אסימון האימות באמצעות העתק הכל אפשרות והדבק אותו במקום בטוח, נצטרך בעת תכנות לוח הארדואינו.
הגדרת IFTTT עם Google Assistant ו- Blynk לקריאת מחרוזת
הדרך הקלה ביותר להשתמש ב- Google Assistant לאוטומציה ביתית היא באמצעות IFTTT. בנינו גם פרויקטים רבים של IFTTT בעבר עם NodeMCU ו- Raspberry Pi. בפרויקט זה נשתמש באפליקציית Blynk כדי להפעיל ווהוק באמצעות עוזר גוגל. זה דומה מאוד לפרויקט רדיו FM הנשלט על ידי קול ביתי ולשליטה קולית שלנו. אלא שכאן נשתמש ב- blynk עם IFTTT כדי לשלוח מחרוזת שהופכת את זה להרבה יותר קל ומעניין.
בעיקרון, נשתמש בסיכה וירטואלית V5 ו- V6 ב- blynk כדי לשלוח את פקודת ההדק. V5 ישמש לפקודות הפעלה ו- V6 ישמש לפקודות כיבוי. לדוגמא, אם אנו אומרים להדליק טלוויזיה ומנורה. פקודת המחרוזת כאן "טלוויזיה ומנורה" תישלח ל- NodeMCU באמצעות API. התחביר של ה- API הוא להלן.
http://188.166.206.43//update/V5?value=TV ומנורה
כעת כל שעלינו לעשות ב- IFTTT הוא להשתמש ב- Google Assistant כ- IF ו- webhooks כמו THAT אז הקשיבו לפקודה זו ושלחו את המידע ל- NodeMCU באמצעות ה- API הנ"ל. יישומון ההפעלה זהה מוצג להלן.
שים לב שעליך לבחור לומר ביטוי עם אפשרות לרכיב טקסט בעת יצירת מתכון ל- Google Assistant. באופן דומה, עליך לחזור על אותו דבר כדי שסיכה וירטואלית V6 תכבה את הממסרים. תוכל לבדוק את הסרטון בתחתית עמוד זה למידע מפורט.
תכנות Arduino עבור Blynk אוטומציה ביתית
קוד הארדואינו השלם לפרויקט זה נמצא בתחתית עמוד זה. ההסבר לכך הוא כדלקמן. לפני כן וודא שאתה יכול להשתמש ב- Blynk וב- ProgramMMU מ- Arduino IDE. אם לא עקוב אחר המאמר המתחיל עם ESP12. כמו כן, הוסף את ספריית blynk ל- Arduino IDE באמצעות מנהל הלוח.
כמו תמיד, אנו מתחילים את הקוד שלנו בהגדרת סיכות הקלט והפלט, כאן הקלט יהיה ממתגים והפלט יהיה ממסרים. הגדרנו את שמות הסיכות של כל ארבעת המתגים כ- sw וממסרים כ rel כפי שניתן לראות בהמשך.
#define sw1 13 #define sw2 12 #define sw3 14 #define sw4 16 #define rel1 4 #define rel2 5 #define rel3 9 #define rel4 10
בשלב הבא, עליך להזין כמה אישורים כמו אסימון אימות blynk ואת שם המשתמש והסיסמה עבור נתב ה- Wi-Fi אליו אמור להתחבר ה- nodeMCU שלך. ניתן לקבל את אסימון ה- auth auth מהיישום blynk. נלמד יותר על כך בסעיף הגדרת יישום blynk.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // קבל מ- application blynk char ssid = "home_wifi"; מעבר צ'אר = "fakepass123";
לאחר מכן, נתנו את ההגדרה לפונקציה הנקראת read_switch_toggle () . בפונקציה זו נשווה את המצב הנוכחי ואת המצב הקודם של המתגים שלנו. אם המתג הופעל או כיבה כלומר אם המתג עבר. יחול שינוי במצב המתג, הפונקציה תפקח על שינוי זה ותחזיר את מספר המתג. אם לא יתגלה שום שינוי, הוא יחזיר 0.
int read_switch_toggle () {int result = 0; // שימו לב לכל הערכים הקודמים עבור (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // קרא את המצב הנוכחי של מתגים crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // השווה את המצב הנוכחי ו- pvs עבור (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {result = (i + 1); // אם מתג כלשהו מתחלף נקבל מספר מתג כתוצאה להחזרת התוצאה; } תוצאה אחרת = 0; // אם אין תוצאת שינוי 0} החזרת התוצאה; // להחזיר את התוצאה}
לאחר מכן, יש לנו את הקוד ליישום blynk. נשתמש בסיכה וירטואלית V1 עד V6 כדי לשלוט בתיבת הצומת החכמה שלנו. סיכות V1 עד V4 ישמשו לשליטה בממסרים 1 עד 4 בהתאמה ישירות מיישום ה- blynk. הקוד שלהלן מראה מה קורה כאשר V1 מופעל מיישום blynk. אנו פשוט קוראים את המצב (HIGH או LOW) ושולטים על הממסר בהתאם.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
באופן דומה, בעזרת הפינים הווירטואליים ניתן לקרוא מחרוזת מיישום blynk. נלמד כיצד לשלוח מחרוזת מעוזר גוגל ל- NodeMCU באמצעות IFTTT ועוזר גוגל בהמשך, אך לעת עתה, נראה כיצד קוד NodeMCU קורא מחרוזת זו ומחפש מילת מפתח מסוימת ומפעיל את הממסר בהתאם.
בקוד שלמטה, אתה יכול לראות שכאשר מופעלת סיכה וירטואלית V5, אנו מקבלים את המחרוזת מועברת על ידי אותה למשתנה מחרוזת בשם ON_message . ואז באמצעות משתנה מחרוזת זה ושיטת inderOf, אנו מחפשים אם קיימות מילות מפתח כמו "מנורה", "נורית", "מוסיקה", "טלוויזיה", אם כן, אנו מפעילים את העומס המסוים הזה. אם מתגלה מילת המפתח "הכל", אנו מפעילים הכל. ניתן לעשות את אותו הדבר גם עבור V6 כדי לכבות את הממסרים. נבין יותר על כך כשנכנס לסעיף IFTTT.
BLYNK_WRITE (V5) {מחרוזת ON_message = param.asStr (); Serial.println (ON_message); אם (ON_message.indexOf ("מנורה")> = 0) digitalWrite (rel1, HIGH); אם (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); אם (ON_message.indexOf ("music")> = 0) digitalWrite (rel3, HIGH); אם (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); אם (ON_message.indexOf ("הכל")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
לבסוף, בתוך פונקציית הלולאה, עלינו רק לבדוק אם לחצנים כלשהם מיקום המתג השתנה. אם כן, אנו משתמשים במקרה מתג כמו שמוצג להלן כדי להחליף את המיקום של אותו ממסר מסוים.
switch (toggle_pin) {case 0: break; מקרה 1: Serial.println ("ממסר מתג 1"); digitalWrite (rel1, relay_state); לשבור; מקרה 2: Serial.println ("ממסר מתג 2"); digitalWrite (rel2, relay_state); לשבור; מקרה 3: Serial.println ("ממסר מתג 3"); digitalWrite (rel3, relay_state); לשבור; מקרה 4: Serial.println ("ממסר מתג 4"); digitalWrite (rel4, relay_state); לשבור; }}
ייצור PCB באמצעות PCBGoGo
כעת אנו מבינים כיצד עובדות התרשימים, אנו יכולים להמשיך בבניית ה- PCB לפרויקט האוטומציה הביתית שלנו. פריסת ה- PCB עבור המעגל הנ"ל זמינה להורדה גם כגרבר מהקישור.
- הורד את GERBER לאוטומציה ביתית מבוקרת באמצעות Google Assistant
עכשיו העיצוב שלנו מוכן, הגיע הזמן לייצר אותם באמצעות קובץ גרבר. כדי לעשות את ה- PCB מ- PCBGOGO זה די קל, פשוט בצע את השלבים הבאים-
שלב 1: היכנס ל- www.pcbgogo.com, הירשם אם זו הפעם הראשונה שלך. לאחר מכן, בכרטיסיה אב-טיפוס של PCB, הזן את הממדים של ה- PCB שלך, את מספר השכבות ואת מספר ה- PCB שאתה צריך. בהנחה שה- PCB הוא 80 ס"מ × 80 ס"מ, תוכלו להגדיר את המידות כפי שמוצג להלן.
שלב 2: המשך על ידי לחיצה על כפתור ציטוט עכשיו . תועבר לדף שבו ניתן להגדיר כמה פרמטרים נוספים במידת הצורך, כמו חומר המרווח בין מסלולים וכו '. אך בעיקר, ערכי ברירת המחדל יעבדו בסדר. הדבר היחיד שעלינו לקחת בחשבון כאן הוא המחיר והזמן. כפי שאתה יכול לראות זמן הבנייה הוא רק 2-3 ימים וזה פשוט עולה רק 5 $ עבור ה- PCB שלנו. לאחר מכן תוכל לבחור שיטת משלוח מועדפת על פי דרישתך.
שלב 3: השלב האחרון הוא העלאת קובץ גרבר והמשך התשלום. כדי לוודא שהתהליך חלק, PCBGOGO מאשר אם קובץ הגרבר שלך תקף לפני שתמשיך עם התשלום. בדרך זו, אתה יכול להיות בטוח שה- PCB שלך הוא ידידותי לייצור ויגיע אליך כמחויב.
הרכבת ה- PCB
לאחר הזמנת הלוח, הוא הגיע אלי לאחר מספר ימים באמצעות שליח בתוך קופסה ארוזה היטב, וכמו תמיד, איכות ה- PCB הייתה מדהימה. ה- PCB שהתקבל על ידי מוצג להלן. כפי שאתה רואה, גם השכבה העליונה וגם התחתונה יצאו כצפוי.
הויות והרפידות היו בגודל הנכון. לקח לי בערך 15 דקות להתכנס ללוח PCB כדי לקבל מעגל עבודה. הלוח שהורכב מוצג להלן.
חיבור הלוח עם יחידות חשמל / לוחות הארכה
הלוח נועד להיות קבוע בתוך שקעי החשמל בבתים שלנו. אך לצורך הפרויקט נשתמש בתיבת הרחבה. אם אתה רוצה פתרון קבוע יותר, חבר אותו בתוך שקעי החשמל שלך, כפי שאתה יכול לראות מתחת לאורכו של ה- PCB הוא קומפקטי מספיק כדי להיות ממוקם בתוך שקע חשמל.
הקפד להקפיד על אמצעי בטיחות בזמן העבודה עם חשמל. עקוב אחר דיאגרמת המעגל להלן כדי להבין כיצד לחבר את הממסרים והמתגים שלך ללוח PCB שלנו.
תרשים החיבור נמצא למטה רק עבור ממסר ומתג אחד, אך אתה יכול פשוט לשכפל אותו גם עבור שלושת הנותרים. לאחר סיום החיבורים, הלוח שלך צריך להיראות כך
לאחר ביצוע החיבורים, וודא כי אבטחת אותם היטב באמצעות מסופי בורג והשתמש גם בדבק חם ליתר ביטחון. ארוז הכל חזרה לקופסה ואנחנו אמורים להיות מוכנים לבדיקה. אתה יכול למצוא את העבודה המלאה של פרויקט זה בסרטון להלן.
אני מקווה שנהנית מהמאמר ולמדת משהו שימושי. אם יש לך שאלות, השאר אותן בקטע ההערות שלמטה או השתמש בפורומים שלנו.