- דרישות חומרה
- זרימת פרויקט לנורת LED נשלטת על ידי קול
- הקמת חשבון Adafruit לתקשורת
- קשר את Alexa ל- Adafruit IO באמצעות IFTTT
- הסבר קוד ESP12
- עובד:
בהדרכות קודמות ראינו כיצד נוכל לבנות רמקול של אמזון הד ואז כיצד נוכל לשלוט בכל פטל פי GPIO באמצעות Alexa Voice. כעת אנו מבצעים פרויקט IoT לשליטה במכשירי חשמל ביתיים מכל מקום בעולם באמצעות AlexaPi ו- ESP-12E (או כל לוח ESP).
דרישות חומרה
- Raspberry Pi עם AVS מותקן בתוכו
- מיקרופון USB 2.0 / מצלמת אינטרנט
- ESP-12E
- מודול ממסר
- נורת LED / AC
אתה אמור להכין את ה- Raspberry Pi שלך עם שירות קול Alexa עם חשבון מפתח אמזון מוגדר כהלכה. אז עברו על המדריך הבא כדי להכין שירותי Alexa.
- בנה אמזון הד משלך באמצעות פטל פטל
זרימת פרויקט לנורת LED נשלטת על ידי קול
אנו נעקוב אחר תרשים זרימה זה עבור פרויקט LED מבוקר IoT זה:
אז התהליך הוא משהו כזה. ראשית, קלט ניתן לפטל פיי באמצעות מיקרופון ה- USB. כעת, הקלטה זו נשלחת לשירותי הקול של Alexa ולאחר זיהוי קולי, AVS שלחה את הנתונים ל- IFTTT והיא מפעילה את המצב ב- IFTTT. על פי המתכון, IFTTT ישלח את הפקודה ל- Adafruit IO שהוא המתווך MQTT לבצע פעולה. אז ESP 12e יקבל את הנתונים מ- Adafruit IO דרך פרוטוקול MQTT והנורית תידלק / יכבה בהתאם לפקודה.
כאן השתמשנו ב- USB WebCam למיקרופון. כבר השתמשנו בשירות Alexa Voice להפעלת נורה, אך היא יכולה לטפל רק במכשירים המחוברים באופן מקומי.
כפי שאנו מניחים שכבר מותקנת ב- Raspberry Pi עם שירותי Alexa Voice, אנו נותרים עם שני שלבים מתחת, אותם נסביר בזה אחר זה:
- הקמת חשבון Adafruit לתקשורת
- קשר את Alexa ל- Adafruit IO באמצעות IFTTT
- העלה קוד ב- ESP12
הקמת חשבון Adafruit לתקשורת
ראשית, נכין עדכון ב- Adafruit IO. Feed מאחסן את הנתונים שנשלחו על ידי IFTTT. כדי ליצור עדכון בצע את הצעדים הבאים:
שלב 1: - התחבר ל- Adafruit IO עם האישורים שלך או הירשם אם אין לך חשבון.
שלב 2: - לחץ על החשבון שלי -> לוח המחוונים
שלב 3: - לחץ על פעולות ו ליצור מרכז שליטה חדש .
שלב 4: - תן שם ותיאור לעדכון שלך ולחץ על צור .
שלב 5: - לחץ על מקש הכפתור ורושם את מפתחות AIO, נשתמש במפתח זה בקוד שלנו.
שלב 6: - לחץ על כפתור '+' כדי ליצור בלוק חדש ולחץ על כפתור החלפה.
שלב 7: - כעת, הזן את שם העדכון ולחץ על צור . לאחר מכן בחר את העדכון ולחץ על השלב הבא.
שלב 8: - בהגדרות החסימה, כתוב '1' בשדה הטקסט לחצן מופעל ו'0 ' בשדה הטקסט כפתור .
שלב 9: - העדכון שלך נוצר בהצלחה.
קשר את Alexa ל- Adafruit IO באמצעות IFTTT
בצע את השלבים הבאים כדי ליצור יישומון / מתכון ב- IFTTT:
שלב 1: - התחבר ל- IFTTT עם האישורים שלך או הירשם אם אין לך חשבון עליו.
שלב 2: - ביישומונים שלי, לחץ על יישומון חדש
שלב 3: - לחץ על + זה
שלב 4: - חפש באמזון Alexa ולחץ עליו, היכנס עם פרטי חשבון המפתחים של אמזון שלך.
שלב 5: - בחר את ההדק, אמור ביטוי ספציפי
שלב 6: - ספק " הדליק את האור" כביטוי, לחץ על צור טריגר.
שלב 7: - לחץ על + זה
שלב 8: - חפש ב- Adafruit ולחץ עליו.
שלב 9: - התחבר לחשבון Adafruit באמצעות האישורים שלך. לחץ על שלח נתונים ל- Adafruit .
בחר שם העדכון שיצרת זה עתה ב- Adafruit IO. עכשיו, תן '1' בנתונים כדי לשמור, זה מרמז על כך שהנורית תהיה דולקת. לחץ על צור פעולה .
שלב 10: - בצע את אותם השלבים כדי ליצור יישומונים לכיבוי נורית הנורית . פשוט הכניסו '0' לשדה נתונים לשמירה. כל השלבים נשארים זהים.
עשית מחצית מעבודתך. עכשיו הגיע הזמן לתכנת את ה- ESP-12E.
הסבר קוד ESP12
אנו נתכנת את ESP12 עם Arduino IDE. הקוד השלם ניתן בסוף הדרכה זו.
ראשית, אנו זקוקים לספריית Adafruit Mqtt שניתן להוריד מהקישור הזה. פשוט פתח את Arduino IDE. עבור לדוגמאות -> ספריית mqtt adafruit -> mqtt_esp8266
אנו נערוך קוד זה על פי מפתחות ה- AIO שלנו ואישורי ה- Wi-Fi שלנו.
ראשית, כללנו את כל הספריות עבור ESP8266WIFI ו- Adafruit MQTT .
#לִכלוֹל
אנו הגדרנו את ה- SSID וסיסמה עבור Wi-Fi שלך, שממנו אתה רוצה להתחבר ESP-12E שלך.
#define WLAN_SSID "xxxxxxxx" #define WLAN_PASS "xxxxxxxxxxx"
סעיף זה מגדיר את שרת Adafruit ויציאת השרת המתקנים כ- " io.adafruit.com " ו- " 1883 " בהתאמה.
#define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883
החלף את השדות שלמטה בשם המשתמש שלך ובמפתחות AIO שהעתקת מאתר Adafruit בעת ביצוע הפיד.
#define AIO_USERNAME "********" #define AIO_KEY "*****************************"
לאחר מכן צור מחלקה WiFiClient ESP8266 להתחברות לשרת MQTT.
לקוח WiFiClient;
הגדר את מחלקת הלקוחות MQTT על ידי העברת לקוח ה- WiFi ושרת MQTT ופרטי הכניסה.
Adafruit_MQTT_Client mqtt (& client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
הגדר פיד שנקרא 'אור' למנוי לשינויים.
Adafruit_MQTT_Subscribe light = Adafruit_MQTT_Subscribe (& mqtt, AIO_USERNAME "/ feeds / light");
בשנת התקנת פונקציה, אנו מצהירים PIN של ESP-12E שעליה אתה רוצה לקבל פלט. אני משתמש בסיכת D0 כפלט. לאחר מכן, אנו מחברים את ESP-12e לנקודת גישה של Wi-Fi.
הגדרת חלל () { Serial.begin (115200); עיכוב (10); pinMode (D0, OUTPUT); Serial.println (F ("הדגמת AdQruit MQTT")); // התחבר לנקודת גישה WiFi. Serial.println (); Serial.println (); Serial.print ("מתחבר אל"); Serial.println (WLAN_SSID); WiFi.begin (WLAN_SSID, WLAN_PASS); בעוד (WiFi.status ()! = WL_CONNECTED) { …. …. ...
הגדר מנוי MQTT להזנה קלה.
mqtt.subscribe (& אור); }
בשנת לולאה פונקציה, נוכל להבטיח כי החיבור לשרת MQTT חי באמצעות MQTT_connect (); פוּנקצִיָה.
לולאה בטלה () { MQTT_connect ();
כעת, אנו מנויים על עדכון 'האור' שלנו ומקבלים את המחרוזת מ- Adafruit IO וממירים מחרוזת זו למספר באמצעות atoi (); לתפקד ולכתוב מספר זה ל- PIND0 באמצעות digitalWrite (); פוּנקצִיָה.
Adafruit_MQTT_ מנוי * מנוי; while ((מנוי = mqtt.readSubscription (5000))) { if (מנוי == & אור) { Serial.print (F ("Got_light:")); Serial.println ((char *) light.lastread); uint16_t num = atoi ((char *) light.lastread); digitalWrite (16, num); }
עובד:
חבר את ה- ESP-12E למחשב הנייד והעלה את הקוד למטה (אל תשכח לערוך את האישורים בקוד).
חבר נורית LED או ממסר לסיכה D0. עכשיו, וודא ששירות Alexa שלך פועל ב- RPi שלך.
כדי לתת כל פקודה אתה צריך להעיר את שירות Alexa על ידי קריאת "Alexa" בכל פעם שאתה רוצה לשלוח פקודה. תשמע צליל צפצוף. ברגע שאתה שומע את הצפצוף, אמור “ Alexa Trigger Turn on the Light. "אתה יכול לראות את האור נדלק בתוך רגע. ואז אם אתה אומר " Alexa Trigger לכבות את האור ", האור צריך לכבות.
זהו זה…. ניתן להוסיף מכשירים נוספים בקוד הנ"ל על ידי הוספת סיכות GPIO של ESP-12E ועל ידי יצירת יישומונים שונים עם ביטויים שונים ב- IFTTT.
בדוק את הקוד המלא ואת סרטון ההפגנה למטה. בדוק גם את כל פרויקטי האוטומציה הביתית שלנו כאן