جدول المحتويات:

ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 خطوات
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 خطوات

فيديو: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 خطوات

فيديو: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 خطوات
فيديو: Home Automation without Router, Hotspot & Internet | ESPNOW two way communication | ESP32 & NodeMCU 2024, شهر نوفمبر
Anonim
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT

في Instructable ، أريكم كيف استخدمت ESP-NOW في أتمتة منزلي. في التخطيطي يمكنك أن ترى تدفقات الاتصالات

سأريك:

  • كيف يعمل المرسل
  • كيف يعمل المتلقي
  • كيف يعمل الاتصال التسلسلي مع Raspberry Pi

لا أُظهر كيف يعمل MQTT وأتمتة منزلي ، يمكنك العثور على تعليمات أخرى جيدة لذلك.

ائتمانات: هذا Instructable مستوحى من:

الفيديو رقم 172 بواسطة Andreas Spiess

www.esploradores.com/practica-6-conexion-es…

الخطوة 1: النسخ الاحتياطي عبر WiFi و MQTT

النسخ الاحتياطي عبر WiFi و MQTT
النسخ الاحتياطي عبر WiFi و MQTT

اكتشفت أن برنامج ESP-NOW سريع للغاية وموثوق تمامًا ، لكنه يفشل أحيانًا. أضفت في برنامجي نسخة احتياطية عبر اتصال WiFi عادي واتصال MQTT.

الخطوة 2: جهاز التحكم عن بعد / المرسل

جهاز التحكم عن بعد / المرسل
جهاز التحكم عن بعد / المرسل
جهاز التحكم عن بعد / المرسل
جهاز التحكم عن بعد / المرسل
جهاز التحكم عن بعد / المرسل
جهاز التحكم عن بعد / المرسل
جهاز التحكم عن بعد / المرسل
جهاز التحكم عن بعد / المرسل

في المخطط الأول ترى كيف يعمل برنامج المرسل:

  1. يبدأ esp8266 من التشغيل أو من إعادة التعيين
  2. تم تهيئة ESP-NOW
  3. الوحدة ترسل ESP-NOW لوقت محدد
  4. تتحقق الوحدة مما إذا كان المتلقي قد استقبل رسالة ESP-NOW في وظيفة معاودة الاتصال.

    1. إذا تم استلام رسالة ESP-NOW ، فإن الوحدة تدخل في وضع نوم عميق منخفض الطاقة
    2. إذا لم يتم استلام رسالة ESP-NOW ، تبدأ الوحدة النمطية في اتصال WiFi واتصال MQTT كاتصال احتياطي.

برنامج المرسل موجود في Github الخاص بي (Master_sender.ino). ترسل البرامج كلاً من الموضوع والرسالة لأتمتة المنزل MQTT في رسالة واحدة مدمجة ESP-NOW ، مدمجة في علامة "&" لتقسيم سهل عند جهاز الاستقبال.

لقد صنعت جهازي تحكم / مرسلين مختلفين:

المرسل 1: إن esp8266 في نوم عميق ويتم تنشيطها عن طريق إعادة الضبط. يضيء مصباح LED في الزر ويخفت عند الانتهاء من الوحدة. إذا كان الجهد الكهربي للبطارية منخفضًا ، يومض المصباح. إذا فشل ESP-NOW ، يومض المؤشر قبل التغيير إلى اتصالات WiFi / MQTT. يتم تشغيل esp8266 من بطارية LiPo مع منظم جهد HT7333 إلى 3.3 فولت

المرسل 2: يتم إيقاف تشغيل esp8266 ويتم تشغيله بالضغط على الزر. عادةً ما يتم توصيل ESP-NOW بعد "نقرات" الزر. يتم تشغيل esp8266 مباشرة من بطارية LiPo. لا أعرف ما إذا كان جهاز esp8266 قد تعرض للتلف بسبب الجهد العالي لبطارية مشحونة بالكامل (حتى 4.2 فولت) عندما يتم تشغيله على بضع 100 مللي ثانية. إنه أعلى من المواصفات (3.0 - 3.6 فولت).

ملاحظة: إذا كانت طاقة البطارية منخفضة ، يفشل ESP-NOW.

الخطوة 3: جهاز الاستقبال - الأجهزة (esp8266 و Raspberry Pi)

جهاز الاستقبال - الأجهزة (ESP8266 و Raspberry Pi)
جهاز الاستقبال - الأجهزة (ESP8266 و Raspberry Pi)
جهاز الاستقبال - الأجهزة (ESP8266 و Raspberry Pi)
جهاز الاستقبال - الأجهزة (ESP8266 و Raspberry Pi)
جهاز الاستقبال - الأجهزة (ESP8266 و Raspberry Pi)
جهاز الاستقبال - الأجهزة (ESP8266 و Raspberry Pi)

ينقسم وصف جهاز الاستقبال إلى جزأين:

  1. المعدات
  2. برمجة

الأجهزة

جهاز الاستقبال esp-01 متصل بـ Raspberry Pi Zero الذي يدير نظام التشغيل الآلي للمنزل (Openhab2) و Node Red.

في التخطيطي ، يتم عرض التوصيلات البسيطة:

  • RX من esp-01 إلى TX من RasPi
  • TX من esp-01 إلى RX الخاص بـ RasPi
  • GND إلى GND
  • يتم تشغيل esp-01 VCC بواسطة دبوس 3.3 فولت الخاص بـ Raspi
  • على esp-01 يتم سحب كل من RST و CH_PD عالياً.

لقد صنعت موصل واجهة لتثبيته بسهولة

في إحدى الصور ، يمكنك رؤية اتصالات الأسلاك الخاصة بي بـ Raspberry Pi 3 (الذي له نفس pinout ، لكنني استخدمت دبوسًا آخر 3.3 فولت للاتصال بـ CH_PD).

تمت برمجة esp-01 كما هو موضح في Instructable الأخرى الخاصة بي (انظر الخطوة 3).

الخطوة 4: جهاز الاستقبال - البرنامج (المسلسل ، العقدة الحمراء ، MQTT)

جهاز الاستقبال - البرنامج (المسلسل ، العقدة الحمراء ، MQTT)
جهاز الاستقبال - البرنامج (المسلسل ، العقدة الحمراء ، MQTT)
جهاز الاستقبال - البرنامج (المسلسل ، العقدة الحمراء ، MQTT)
جهاز الاستقبال - البرنامج (المسلسل ، العقدة الحمراء ، MQTT)
جهاز الاستقبال - البرنامج (المسلسل ، العقدة الحمراء ، MQTT)
جهاز الاستقبال - البرنامج (المسلسل ، العقدة الحمراء ، MQTT)

البرنامج على esp8266

برنامج جهاز الاستقبال esp-01 موجود في Github الخاص بي (Master_sender.ino). البرنامج بسيط حقًا ، فهو يطبع فقط رسالة ESP-NOW المستلمة على المنفذ التسلسلي إلى Raspberry Pi.

منفذ تسلسلي

في Raspberry Pi ، يجب عليك تنشيط المنفذ التسلسلي (على raspbian ، تنفيذ sudo raspi-config) للاتصال التسلسلي العادي.

اسم المنفذ التسلسلي هو:

  • Raspberry Pi Zero: / dev / ttyAMA0
  • Raspberry Pi 3: / dev / ttyS0

يمكنك التحقق من المنفذ التسلسلي عن طريق تشغيل 'dmesg | grep tty "أو" ls / dev"

العقدة الحمراء

في Node Red ، حدد عقدة الإدخال التسلسلي وقم بإعداد المنفذ التسلسلي (انظر الصور المرفقة). لاحظ معدل البث بالباود الخاص بالاتصال التسلسلي ، يجب أن يتطابق هذا مع معدل البث بالباود كما هو مبرمج في esp8266.

يتم تحويل إخراج العقدة التسلسلية بواسطة عقدة وظيفية تقسم الرسالة عند علامة "&" وتعيين msg.topic و msg.payload. يتم توجيه إخراج الوظيفة إلى عقدة الإخراج mqtt التي ترسل الرسالة إلى خادم MQTT. لاحظ أن حقل الموضوع الخاص بالعقدة mqtt فارغ ، لأنه تم تعيين الموضوع في الرسالة.

موصى به: