- متطلبات الأجهزة
- تدفق المشروع لـ Alexa Voice Control LED
- إنشاء حساب Adafruit للتواصل
- اربط Alexa بـ Adafruit IO باستخدام IFTTT
- شرح كود ESP12
- العمل:
في البرامج التعليمية السابقة ، رأينا كيف يمكننا بناء مكبر صوت Amazon Echo ثم كيف يمكننا التحكم في أي Raspberry Pi GPIO باستخدام Alexa Voice. نحن الآن نصنع مشروع إنترنت الأشياء للتحكم في الأجهزة المنزلية من أي مكان في العالم باستخدام AlexaPi و ESP-12E (أو أي لوحة ESP).
متطلبات الأجهزة
- Raspberry Pi مثبت عليه AVS
- USB 2.0 ميكروفون / كاميرا ويب
- ESP-12E
- وحدة التتابع
- لمبة LED / AC
يجب أن يكون لديك Raspberry Pi جاهزًا مع خدمة Alexa الصوتية المثبتة فيه مع حساب Amazon Developer تم تكوينه بشكل صحيح. لذا انتقل إلى البرنامج التعليمي أدناه للحصول على خدمات Alexa جاهزة.
- قم ببناء Amazon Echo الخاص بك باستخدام Raspberry Pi
تدفق المشروع لـ Alexa Voice Control LED
سوف نتبع هذا المخطط الانسيابي لمشروع LED الذي يتم التحكم فيه بإنترنت الأشياء:
لذا ، فإن العملية شيء من هذا القبيل. أولاً ، يتم إدخال الإدخال إلى Raspberry Pi من خلال USB Mic. الآن ، يتم إرسال هذا التسجيل إلى خدمات Alexa الصوتية وبعد التعرف على الصوت ، أرسل AVS البيانات إلى IFTTT ويقوم بتشغيل الحالة في IFTTT. وفقًا للوصفة ، سيرسل IFTTT الأمر إلى Adafruit IO وهو وسيط MQTT لتنفيذ إجراء ما. ثم سيتلقى ESP 12e البيانات من Adafruit IO عبر بروتوكول MQTT وسيتم تشغيل / إيقاف LED وفقًا للأمر.
هنا استخدمنا USB WebCam للميكروفون. لقد استخدمنا بالفعل خدمة Alexa Voice لتشغيل لمبة ، ولكن يمكنها فقط التعامل مع الأجهزة المتصلة محليًا.
نظرًا لأننا نفترض أنك قمت بالفعل بتثبيت Raspberry Pi مع خدمات Alexa Voice ، فإننا لا نزال نتبع خطوتين أدناه ، والتي سنشرحها واحدة تلو الأخرى:
- إنشاء حساب Adafruit للتواصل
- اربط Alexa بـ Adafruit IO باستخدام IFTTT
- تحميل الكود في ESP12
إنشاء حساب Adafruit للتواصل
أولاً ، سنقوم بعمل تغذية في Adafruit IO. يخزن العلف البيانات المرسلة بواسطة IFTTT. لعمل تغذية اتبع الخطوات التالية:
الخطوة 1: - قم بتسجيل الدخول إلى Adafruit IO باستخدام بيانات اعتمادك أو قم بالتسجيل إذا لم يكن لديك حساب.
الخطوة 2: - انقر فوق حسابي -> لوحة المعلومات
الخطوة 3: - اضغط على تطبيقات و إنشاء لوحة القيادة الجديدة .
الخطوة 4: - أعط اسمًا ووصفًا لخلاصةك وانقر على إنشاء .
الخطوة 5: - انقر فوق الزر Key وقم بتدوين مفاتيح AIO ، سنستخدم هذا المفتاح في الكود الخاص بنا.
الخطوة 6: - انقر فوق الزر "+" لإنشاء كتلة جديدة وانقر فوق الزر "تبديل".
الخطوة 7: - الآن ، أدخل اسم الخلاصة وانقر على إنشاء . ثم حدد الخلاصة وانقر على الخطوة التالية.
الخطوة 8: - في إعدادات الحظر ، اكتب "1" في حقل نص Button ON و "0" في حقل Button OFF Text .
الخطوة 9: - تم إنشاء خلاصتك بنجاح.
اربط Alexa بـ Adafruit IO باستخدام IFTTT
اتبع هذه الخطوات لعمل تطبيق صغير / وصفة في IFTTT:
خطوة 1: - الدخول إلى إفتتت مع بيانات الاعتماد الخاصة بك أو تسجيل لأعلى إذا لم يكن لديك حساب على ذلك.
الخطوة 2: - في تطبيقاتي الصغيرة ، انقر فوق تطبيق صغير جديد
الخطوة 3: - اضغط على + this
الخطوة 4: - ابحث في Amazon Alexa وانقر فوقه ، وقم بتسجيل الدخول باستخدام تفاصيل حساب مطور أمازون الخاص بك.
الخطوة 5: - اختر المشغل ، قل عبارة محددة
الخطوة 6: - قم بتوفير " turn on the light" مثل العبارة ، انقر فوق Create Trigger.
الخطوة السابعة: - الضغط على + ذلك
الخطوة 8: - ابحث عن Adafruit وانقر عليها.
الخطوة 9: - قم بتسجيل الدخول إلى حساب Adafruit باستخدام بيانات الاعتماد الخاصة بك. انقر فوق إرسال البيانات إلى Adafruit .
حدد اسم الخلاصة الذي أنشأته للتو في Adafruit IO. الآن ، أعط "1" في البيانات لحفظها ، وهذا يعني أن LED سيكون قيد التشغيل. انقر فوق إنشاء إجراء .
الخطوة 10: - اتبع نفس الخطوات لعمل تطبيقات صغيرة لإيقاف تشغيل LED . فقط ضع "0" في حقل البيانات لحفظها. كل الخطوات تبقى كما هي.
لقد أنجزت نصف عملك. حان الوقت الآن لبرمجة ESP-12E.
شرح كود ESP12
سنبرمج ESP12 مع Arduino IDE. يتم تقديم الرمز الكامل في نهاية هذا البرنامج التعليمي.
أولاً ، نحتاج إلى مكتبة Adafruit Mqtt والتي يمكن تنزيلها من هذا الرابط. فقط افتح Arduino IDE. انتقل إلى الأمثلة -> مكتبة adafruit mqtt -> 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" # تعريف AIO_SERVERPORT 1883
استبدل الحقول أدناه باسم المستخدم ومفاتيح AIO التي نسختها من موقع Adafruit أثناء إنشاء الخلاصة.
#define AIO_USERNAME "********" #define AIO_KEY "******************************"
ثم قم بإنشاء فئة ESP8266 WiFiClient للاتصال بخادم MQTT.
عميل WiFiClient ؛
قم بإعداد فئة عميل MQTT عن طريق تمرير تفاصيل تسجيل الدخول وعميل WiFi وخادم MQTT.
Adafruit_MQTT_Client mqtt (والعميل ، AIO_SERVER ، AIO_SERVERPORT ، AIO_USERNAME ، AIO_KEY) ؛
قم بإعداد موجز يسمى "light" للاشتراك في التغييرات.
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 ، الإخراج) ؛ Serial.println (F ("Adafruit MQTT demo")) ؛ // الاتصال بنقطة وصول WiFi. Serial.println () ، Serial.println () ، Serial.print ("الاتصال بـ") ؛ Serial.println (WLAN_SSID) ، WiFi.begin (WLAN_SSID، WLAN_PASS) ، بينما (WiFi.status ()! = WL_CONNECTED) { …. …. ...
إعداد اشتراك MQTT لتغذية الضوء.
mqtt.subscribe (& light) ؛ }
في وظيفة الحلقة ، سنضمن أن الاتصال بخادم MQTT على قيد الحياة باستخدام MQTT_connect () ؛ وظيفة.
حلقة باطلة () { MQTT_connect () ،
الآن ، اشتركنا في خلاصتنا "الخفيفة" ونحصل على السلسلة من adafruit IO ونحول هذه السلسلة إلى رقم باستخدام atoi () ؛ وظيفة وكتابة هذا الرقم إلى PIND0 باستخدام digitalWrite () ؛ وظيفة.
Adafruit_MQTT_Subscribe * الاشتراك ؛ while ((subscription = mqtt.readSubscription (5000))) { if (subscription == & light) { Serial.print (F ("Got_light:")) ؛ Serial.println ((char *) light.lastread) ؛ uint16_t num = atoi ((char *) light.lastread) ؛ digitalWrite (16 ، الأسطوانات) ؛ }
العمل:
قم بتوصيل ESP-12E بجهاز الكمبيوتر المحمول وقم بتحميل الكود أدناه (لا تنس تحرير بيانات الاعتماد الخاصة بك في الكود).
قم بتوصيل مؤشر LED أو مرحل بالدبوس D0. الآن ، تأكد من تشغيل خدمة Alexa على RPi الخاص بك.
لإعطاء أي أمر ، تحتاج إلى إيقاظ خدمة Alexa عن طريق الاتصال بـ "Alexa" في كل مرة تريد فيها إرسال أمر. سوف تسمع صوت صفير. بمجرد سماع الصفارة ، قل " Alexa Trigger Turn on the Light. يمكنك أن ترى الضوء يتم تشغيله في غضون لحظة. ثم إذا قلت " Alexa Trigger Turn off the Light " ، يجب أن ينطفئ الضوء .
هذا هو…. يمكنك إضافة المزيد من الأجهزة في الكود أعلاه عن طريق إضافة دبابيس GPIO الخاصة بـ ESP-12E وعن طريق إنشاء تطبيقات صغيرة بعبارات مختلفة في IFTTT.
تحقق من الكود الكامل وفيديو العرض أدناه. تحقق أيضًا من جميع مشاريع أتمتة المنزل هنا