فهرست مطالب:

ESP-NOW Automation Home Esp8266 Raspberry Pi MQTT: 4 مرحله
ESP-NOW Automation Home Esp8266 Raspberry Pi MQTT: 4 مرحله

تصویری: ESP-NOW Automation Home Esp8266 Raspberry Pi MQTT: 4 مرحله

تصویری: ESP-NOW Automation Home Esp8266 Raspberry Pi MQTT: 4 مرحله
تصویری: MQTT ESP8266 NodeMCU Home Automation System with cheapest Cloud MQTT broker Reyax RYC1001 - IoT 2021 2024, نوامبر
Anonim
ESP-NOW Automation Home Esp8266 Raspberry Pi MQTT
ESP-NOW Automation Home Esp8266 Raspberry Pi MQTT

در این دستورالعمل به شما نشان می دهم که چگونه از ESP-NOW در اتوماسیون خانه خود استفاده کردم. در شماتیک می توانید جریانهای ارتباطی را مشاهده کنید

به شما نشان می دهم:

  • نحوه کار فرستنده
  • گیرنده چگونه کار می کند
  • نحوه ارتباط سریال با رزبری پای چگونه کار می کند

من نحوه عملکرد MQTT و اتوماسیون خانه را نشان نمی دهم ، شما می توانید دستورالعمل های خوب دیگری برای آن پیدا کنید.

اعتبار: این دستورالعمل با الهام از:

فیلم شماره 172 توسط آندریاس اسپیس

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 در خواب عمیق است و با تنظیم مجدد فعال می شود. چراغ در دکمه روشن می شود و هنگامی که ماژول تمام می شود ، کم نور می شود. اگر ولتاژ باتری پایین باشد ، چراغ چشمک می زند. اگر ESP-NOW شکست خورد ، led قبل از تغییر به اتصالات WiFi/MQTT چشمک می زند. esp8266 از باتری LiPo با تنظیم کننده ولتاژ HT7333 تا 3.3V تغذیه می کند

فرستنده 2: esp8266 خاموش است و با فشار دادن دکمه تغذیه می شود. معمولاً اتصال ESP-NOW پس از کلیک روی دکمه انجام می شود. منبع تغذیه esp8266 مستقیماً از باتری LiPo است. من نمی دانم که آیا esp8266 در ولتاژ بالای باتری کاملاً شارژ (تا 4.2 ولت) هنگامی که فقط 100 میلی ثانیه کار می کند آسیب می بیند یا خیر. بالاتر از مشخصات (3.0 - 3.6V) است.

توجه: اگر قدرت باتری کم است ، 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 مشابه است ، اما من برای اتصال به CH_PD از پین 3.3V دیگر استفاده کردم) مشاهده کنید.

esp-01 طبق دستورالعمل دیگر من برنامه ریزی شده بود (مرحله 3 را ببینید).

مرحله 4: گیرنده - نرم افزار (سریال ، Node Red ، MQTT)

گیرنده - نرم افزار (سریال ، Node Red ، MQTT)
گیرنده - نرم افزار (سریال ، Node Red ، MQTT)
گیرنده - نرم افزار (سریال ، Node Red ، MQTT)
گیرنده - نرم افزار (سریال ، Node Red ، MQTT)
گیرنده - نرم افزار (سریال ، Node Red ، MQTT)
گیرنده - نرم افزار (سریال ، Node Red ، MQTT)

برنامه روی esp8266

برنامه گیرنده esp-01 در Github من (Master_sender.ino) است. این برنامه واقعاً ساده است ، فقط پیام دریافتی ESP-NOW را بر روی پورت سریال به رزبری پای چاپ می کند.

درگاه سریال

در Raspberry Pi ، شما باید Serial Port (در raspbian ، اجرای sudo raspi-config) را برای ارتباط سریال معمولی فعال کنید.

نام پورت سریال:

  • Raspberry Pi Zero: /dev /ttyAMA0
  • رزبری پای 3: /dev /ttyS0

با اجرای 'dmesg |. می توانید پورت سریال را بررسی کنید grep tty 'یا' ls /dev '

گره قرمز

در Node Red ، Node ورودی سریال را انتخاب کرده و پورت سریال را تنظیم کنید (تصاویر پیوست را ببینید). به Baudrate اتصال سریال توجه کنید ، این باید با baudrate مطابق برنامه در esp8266 مطابقت داشته باشد.

خروجی گره سریال توسط یک گره تابع تبدیل می شود که پیام را در علامت '&' تقسیم می کند و msg.topic و msg.payload را تنظیم می کند. خروجی تابع به گره خروجی mqtt منتقل می شود که پیام را به سرور MQTT ارسال می کند. توجه داشته باشید که زمینه موضوع گره mqtt خالی است ، زیرا موضوع در پیام تنظیم شده است.

توصیه شده: