สารบัญ:
- ขั้นตอนที่ 1: สำรองข้อมูลผ่าน WiFi และ MQTT
- ขั้นตอนที่ 2: รีโมท/ผู้ส่ง
- ขั้นตอนที่ 3: ตัวรับ - ฮาร์ดแวร์ (esp8266 และ Raspberry Pi)
- ขั้นตอนที่ 4: ตัวรับ - ซอฟต์แวร์ (Serial, Node Red, MQTT)
วีดีโอ: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นว่าฉันใช้ ESP-NOW ในระบบอัตโนมัติภายในบ้านของฉันอย่างไร ในแผนผังคุณสามารถดูกระแสการสื่อสาร
ฉันแสดงให้คุณเห็น:
- วิธีการทำงานของผู้ส่ง
- วิธีการทำงานของเครื่องรับ
- การสื่อสารแบบอนุกรมกับ Raspberry Pi ทำงานอย่างไร
ฉันไม่แสดงให้เห็นว่า MQTT และระบบอัตโนมัติภายในบ้านทำงานอย่างไร คุณสามารถหาคำแนะนำที่ดีอื่นๆ สำหรับสิ่งนั้นได้
เครดิต: คำแนะนำนี้ได้รับแรงบันดาลใจจาก:
วิดีโอ #172 โดย Andreas Spiess
www.esploradores.com/practica-6-conexion-es…
ขั้นตอนที่ 1: สำรองข้อมูลผ่าน WiFi และ MQTT
ฉันพบว่า ESP-NOW นั้นรวดเร็วและน่าเชื่อถือมาก แต่บางครั้งก็ล้มเหลว ในโปรแกรมของฉัน ฉันเพิ่มข้อมูลสำรองผ่านการเชื่อมต่อ WiFi และ MQTT ปกติ
ขั้นตอนที่ 2: รีโมท/ผู้ส่ง
ในรูปแบบแรกคุณจะเห็นว่าโปรแกรมของผู้ส่งทำงานอย่างไร:
- esp8266 เริ่มทำงานจากการเปิดเครื่องหรือจากการรีเซ็ต
- เริ่มใช้งาน ESP-NOW แล้ว
- โมดูลส่ง ESP-NOW ตามเวลาที่กำหนด
-
โมดูลตรวจสอบว่าผู้รับได้รับข้อความ ESP-NOW ในฟังก์ชันโทรกลับหรือไม่
- หากได้รับข้อความ ESP-NOW โมดูลจะเข้าสู่โหมดสลีปที่ใช้พลังงานต่ำ
- หากไม่ได้รับข้อความ ESP-NOW โมดูลจะเริ่มการเชื่อมต่อ WiFi และการเชื่อมต่อ MQTT เป็นการเชื่อมต่อสำรอง
โปรแกรมสำหรับผู้ส่งอยู่ใน Github ของฉัน (Master_sender.ino) โปรแกรมจะส่งทั้งหัวข้อและข้อความสำหรับระบบอัตโนมัติภายในบ้าน MQTT ในข้อความ ESP-NOW ที่รวมกันเป็นข้อความเดียว รวมกันที่เครื่องหมาย '&' เพื่อให้ง่ายต่อการแยกที่ผู้รับ
ฉันสร้างรีโมต/ผู้ส่งที่แตกต่างกันสองรายการ:
ผู้ส่ง 1: esp8266 อยู่ในโหมดหลับลึกและเปิดใช้งานโดยการรีเซ็ต ไฟ LED ในปุ่มจะสว่างขึ้นและหรี่ลงเมื่อโมดูลเสร็จสิ้น หากแรงดันไฟฟ้าของแบตเตอรี่ต่ำ ไฟ LED จะกะพริบ หาก ESP-NOW ล้มเหลว ไฟ LED จะกะพริบก่อนเปลี่ยนเป็นการเชื่อมต่อ WiFi/MQTT esp8266 ใช้พลังงานจากแบตเตอรี่ LiPo ที่มีตัวควบคุมแรงดันไฟฟ้า HT7333 ถึง 3.3V
ผู้ส่ง 2: esp8266 ปิดและเปิดเครื่องโดยการกดปุ่ม โดยปกติการเชื่อมต่อ ESP-NOW จะทำหลังจากปุ่ม 'คลิก' esp8266 ใช้พลังงานจากแบตเตอรี่ LiPo โดยตรง ฉันไม่ทราบว่า esp8266 ได้รับความเสียหายจากไฟฟ้าแรงสูงของแบตเตอรี่ที่ชาร์จจนเต็มแล้วหรือไม่ (สูงสุด 4.2 V) เมื่อเปิดเครื่องเพียง 100 มิลลิวินาที สูงกว่าสเปก (3.0 - 3.6V)
หมายเหตุ: หากพลังงานแบตเตอรี่เหลือน้อย ESP-NOW จะล้มเหลว
ขั้นตอนที่ 3: ตัวรับ - ฮาร์ดแวร์ (esp8266 และ Raspberry Pi)
คำอธิบายของผู้รับแบ่งออกเป็นสองส่วน:
- ฮาร์ดแวร์
- ซอฟต์แวร์
ฮาร์ดแวร์
esp-01 ที่รับนั้นเชื่อมต่อกับ Raspberry Pi Zero ของฉันซึ่งใช้งานระบบอัตโนมัติในบ้านของฉัน (Openhab2) และ Node Red
ในแผนผังแสดงการเชื่อมต่ออย่างง่าย:
- RX ของ esp-01 ถึง TX ของ RasPi
- TX ของ esp-01 ถึง RX ของ RasPi
- GND เป็น GND
- esp-01 VCC ใช้พลังงานจากพิน 3.3V ของ Raspi
- ใน esp-01 ทั้ง RST และ CH_PD ถูกดึงขึ้นสูง
ฉันสร้างตัวเชื่อมต่ออินเทอร์เฟซเพื่อให้ติดตั้งได้ง่าย
ในภาพหนึ่ง คุณสามารถเห็นการเชื่อมต่อสายของฉันกับ Raspberry Pi 3 ของฉัน (ซึ่งมีพินเอาต์เหมือนกัน แต่ฉันใช้พิน 3.3V อีกอันเพื่อเชื่อมต่อกับ CH_PD)
esp-01 ได้รับการตั้งโปรแกรมตามที่แสดงใน Instructable อื่นของฉัน (ดูขั้นตอนที่ 3)
ขั้นตอนที่ 4: ตัวรับ - ซอฟต์แวร์ (Serial, Node Red, MQTT)
โปรแกรมบน esp8266
โปรแกรมสำหรับตัวรับ esp-01 อยู่ใน Github ของฉัน (Master_sender.ino) โปรแกรมนี้เรียบง่ายมาก เพียงพิมพ์ข้อความ ESP-NOW ที่ได้รับบนพอร์ตอนุกรมไปยัง Raspberry Pi
พอร์ตอนุกรม
บน Raspberry Pi คุณต้องเปิดใช้งาน Serial Port (บน raspbian ให้เรียกใช้ 'sudo raspi-config') สำหรับการสื่อสารแบบอนุกรมปกติ
ชื่อของพอร์ตอนุกรมคือ:
- Raspberry Pi Zero: /dev/ttyAMA0
- Raspberry Pi 3: /dev/ttyS0
คุณสามารถตรวจสอบพอร์ตอนุกรมได้โดยเรียกใช้ 'dmesg | grep tty' หรือ 'ls /dev'
โหนดแดง
ใน Node Red เลือกโหนดอินพุตแบบอนุกรมและตั้งค่าพอร์ตอนุกรม (ดูภาพที่แนบมา) หมายเหตุ Baudrate ของการเชื่อมต่อแบบอนุกรมต้องตรงกับ Baudrate ตามที่ตั้งโปรแกรมไว้ใน esp8266
เอาต์พุตของโหนดอนุกรมถูกแปลงโดยโหนดฟังก์ชันที่แยกข้อความที่เครื่องหมาย '&' และตั้งค่า msg.topic และ msg.payload เอาต์พุตของฟังก์ชันนำไปสู่โหนดเอาต์พุต mqtt ซึ่งส่งข้อความไปยังเซิร์ฟเวอร์ MQTT หมายเหตุ ฟิลด์หัวข้อของโหนด mqtt ว่างเปล่า เนื่องจากหัวข้อถูกตั้งค่าในข้อความ
แนะนำ:
Google Assistant-Home Automation Iot โดยใช้ Esp8266: 6 ขั้นตอน
Google Assistant | Home Automation Iot โดยใช้ Esp8266: ในคำแนะนำนี้ฉันจะแสดงให้คุณเห็น Google Assistant ควบคุมระบบอัตโนมัติภายในบ้าน
Home Automation WiFi Light Switch พร้อม ESP-01 และโมดูลรีเลย์พร้อมปุ่มกด: 7 ขั้นตอน
Home Automation WiFi Light Switch พร้อม ESP-01 และโมดูลรีเลย์พร้อมปุ่มกด: ดังนั้นในคำแนะนำก่อนหน้านี้ เราตั้งโปรแกรม ESP-01 ด้วย Tasmota โดยใช้ ESP Flasher และเชื่อมต่อ ESP-01 กับเครือข่าย wifi ของเรา ตอนนี้ เราสามารถเริ่มเขียนโปรแกรมได้แล้ว เพื่อเปิด/ปิดสวิตซ์ไฟโดยใช้ WiFi หรือปุ่มกด สำหรับการใช้งานไฟฟ้า
Home Automation WiFi Light Switch พร้อม ESP-01: 8 ขั้นตอน
Home Automation WiFi Light Switch ด้วย ESP-01: ด้วยสิ่งที่ทำลายไม่ได้นี้ ฉันจะแนะนำขั้นตอนต่างๆ ในการสร้างสวิตช์ไฟ wifi ตัวแรกของคุณ ต่อไปเราจะทำเซ็นเซอร์และไปที่การตั้งค่าและการกำหนดค่า Home Assistant ในที่สุด
เริ่มต้นใช้งาน Home Automation: การติดตั้ง Home Assistant: 3 ขั้นตอน
เริ่มต้นใช้งาน Home Automation: การติดตั้ง Home Assistant: ตอนนี้เรากำลังจะเริ่มชุด Home Automation ซึ่งเราสร้างบ้านอัจฉริยะที่จะช่วยให้เราควบคุมสิ่งต่างๆ เช่น ไฟ ลำโพง เซ็นเซอร์ และอื่นๆ โดยใช้ศูนย์กลางร่วมกับ ผู้ช่วยเสียง ในโพสต์นี้ เราจะมาเรียนรู้วิธีอิน
เริ่มต้นใช้งาน Esp 8266 Esp-01 ด้วย Arduino IDE - การติดตั้งบอร์ด Esp ใน Arduino Ide และการเขียนโปรแกรม Esp: 4 ขั้นตอน
เริ่มต้นใช้งาน Esp 8266 Esp-01 ด้วย Arduino IDE | การติดตั้งบอร์ด Esp ใน Arduino Ide และการเขียนโปรแกรม Esp: ในคำแนะนำนี้ เราจะได้เรียนรู้วิธีติดตั้งบอร์ด esp8266 ใน Arduino IDE และวิธีตั้งโปรแกรม esp-01 และอัปโหลดโค้ดในนั้น เนื่องจากบอร์ด esp ได้รับความนิยมอย่างมาก และคนส่วนใหญ่ประสบปัญหา