สารบัญ:

วิธีใช้ MQTT กับ Raspberry Pi และ ESP8266/sonoff: 4 ขั้นตอน
วิธีใช้ MQTT กับ Raspberry Pi และ ESP8266/sonoff: 4 ขั้นตอน

วีดีโอ: วิธีใช้ MQTT กับ Raspberry Pi และ ESP8266/sonoff: 4 ขั้นตอน

วีดีโอ: วิธีใช้ MQTT กับ Raspberry Pi และ ESP8266/sonoff: 4 ขั้นตอน
วีดีโอ: สาธิตการเชื่อมต่อ MQTT กับอุปกรณ์วัดอุณหภูมิ DHT11 และควบคุมเปิดปิดหลอด LED จากที่ไหนก็ได้ 2024, พฤศจิกายน
Anonim
วิธีใช้ MQTT กับ Raspberry Pi และ ESP8266/sonoff
วิธีใช้ MQTT กับ Raspberry Pi และ ESP8266/sonoff

สวัสดีทุกคน!

วันนี้ฉันจะแสดงวิธีกำหนดค่าสวิตช์รีเลย์ sonoff wifi ที่ใช้ราสเบอร์รี่ pi และ ESP8266 เพื่อควบคุมเครื่องใช้ในบ้านของคุณจากทุกที่ในโลก

ในตอนท้ายของคำแนะนำนี้ หากคุณปฏิบัติตามคำแนะนำของฉันอย่างระมัดระวัง คุณจะสามารถควบคุมเครื่องใช้ในบ้านของคุณจากเทอร์มินัล Raspberry Pi หรือโดยใช้ python shell

เตรียมพร้อมที่จะสร้างตัวควบคุมอุปกรณ์ Sonoff Wifi ที่ใช้ MQTT และ Rpi ของคุณเอง!

ก่อนเริ่มคำแนะนำนี้ ฉันต้องการพูดถึงสิ่งที่สำคัญมากสองสามอย่าง

  1. สวิตช์รีเลย์ wifi sonoff มาพร้อมกับเฟิร์มแวร์ควบคุมของตัวเอง เมื่อคุณตั้งโปรแกรมใหม่ เฟิร์มแวร์เดิมจะถูกลบออกอย่างถาวร เพื่อให้แน่ใจว่า
  2. สวิตช์รีเลย์ wifi sonoff นั้นจ่ายไฟโดยตรงผ่านแรงดันไฟฟ้ากระแสสลับ 230V ดังนั้น หากคุณไม่ใช่ผู้เชี่ยวชาญในการจัดการกับไฟฟ้าแรงสูงเช่นนี้ ให้ขอความช่วยเหลือจากผู้ปกครองหรือผู้เชี่ยวชาญของคุณ
  3. สวิตช์รีเลย์ sonoff wifi นั้นใช้ชิปเซ็ต wifi esp8266-01 ซึ่งเป็นชิป 3.3V โดยไม่ได้ตั้งใจ หากคุณใช้ 5V กับพิน +V โดยไม่ได้ตั้งใจ คุณจะเสียหายอย่างแน่นอน
  4. ที่นี่สำหรับคำแนะนำนี้ ฉันได้พิจารณาแล้วว่าคุณมีราสเบอร์รี่ pi ที่ตั้งค่าทั้งหมดและเปิดใช้งาน wifi พร้อมที่อยู่ IP เพื่อเรียกใช้คำสั่ง mosquitto และ MQTT ในเทอร์มินัล

**หากคุณพร้อม 4 ขั้นตอนข้างต้นทั้งหมด ก็ลุยเลย!!

ขั้นตอนที่ 1: บทนำ + วัสดุสิ้นเปลือง

บทนำ + อุปกรณ์
บทนำ + อุปกรณ์
บทนำ + อุปกรณ์
บทนำ + อุปกรณ์

สวัสดีทุกคน! วันนี้เราจะสร้างโครงการที่น่าสนใจมาก ในโครงการนี้ เราจะควบคุมอุปกรณ์โฮมของเรา เช่น ไฟ AC โดยใช้โบรกเกอร์ MQTT

หมายเหตุ: นี่เป็นโครงการ IOT ดังนั้นคุณจึงสามารถควบคุมอุปกรณ์ AC ได้จากทุกที่ในโลก

MQTT (Massage Que Telemetry Transport) เป็นโปรโตคอลการถ่ายโอนข้อมูลแบบง่ายที่ใช้ในโครงการบนเว็บ Facebook Messenger ยังใช้ MQTT Protocol อีกด้วย บทนำที่เพียงพอให้เริ่มต้นด้วยโครงการ

เราต้องการอะไรสำหรับโครงการนี้?

1) การเชื่อมต่อ Active Wifi (ควรใช้เราเตอร์)

2) รุ่น Raspberry Pi3 ที่เปิดใช้งาน wifi

3) สวิตช์ Sonoff Wifi IOT พร้อม 10A 220V

4) สายเชื่อมต่อบางส่วน

5) สายจัมเปอร์

6) CP2102 ตัวแปลง USB เป็น TTL

  • หมายเหตุ: สำหรับโปรเจ็กต์นี้ คุณต้องติดตั้ง raspberry pi ทั้งหมดด้วยการเชื่อมต่อแป้นพิมพ์บนจอภาพหรือในโหมด headless กับแล็ปท็อปของคุณ (การเชื่อมต่อ VNC)
  • หากคุณไม่ได้ตั้งค่า raspberry pi ด้วยจอภาพหรือโหมด headless คุณต้องทำตามบทช่วยสอนอื่น ๆ ของฉันเกี่ยวกับวิธีเชื่อมต่อ raspberry pi ในโหมด headless

ขั้นตอนที่ 2: การตั้งค่า Raspberry Pi

การตั้งค่า Raspberry Pi
การตั้งค่า Raspberry Pi

ในขั้นตอนนี้ เราจะตั้งค่า raspberry pi สำหรับโครงการ

ในบทช่วยสอนนี้ เราใช้ sonoff ESP8266 เป็นลูกค้า และ raspberry pi เป็นนายหน้าป้องกันยุง

  1. เปิดเทอร์มินัลราสเบอร์รี่ pi ของคุณและพิมพ์

    1. sudo apt-get update
    2. sudo apt-get upgrade เมื่อ raspberry Pi ของคุณได้รับการอัพเดตด้วยเฟิร์มแวร์ล่าสุด คุณก็พร้อมสำหรับโปรเจ็กต์ใดๆ บน pi ของคุณ
  2. ตอนนี้พิมพ์คำสั่งต่อไปนี้เพื่อติดตั้ง Mosquitto

    1. wget
    2. sudo apt-key เพิ่ม mosquitto-repo.gpg.key
    3. cd /etc/apt/sources.list.d/
    4. sudo wget
    5. sudo -i
    6. apt-get update
    7. apt-get ติดตั้งยุง
    8. apt-get ติดตั้ง mosquitto-clients
  3. เมื่อคุณปฏิบัติตามคำแนะนำข้างต้นเรียบร้อยแล้ว แสดงว่าเครื่องของคุณพร้อมแล้วกับการตั้งค่าโบรกเกอร์ mosquitto และคุณพร้อมที่จะไปยังขั้นตอนต่อไป
  4. อีกครั้งในเทอร์มินัลของคุณให้พิมพ์คำสั่งต่อไปนี้:
    1. sudo pip ติดตั้ง paho-mqtt
    2. sudo pip3 ติดตั้ง paho-mqtt
  5. ตอนนี้เพื่อตรวจสอบว่าไคลเอนต์ mosquitto ของคุณติดตั้งสำเร็จหรือไม่เปิดเปลือก python2 หรือ python3 แล้วพิมพ์คำสั่งต่อไปนี้

    1. นำเข้า paho.mqtt.client
    2. นี้ไม่ควรส่งคืนสิ่งใด หากส่งคืนบรรทัดหรือข้อผิดพลาดใด ๆ ให้ตรวจสอบขั้นตอนข้างต้นอีกครั้งและทำตามขั้นตอนอย่างระมัดระวังอีกครั้ง
  6. ตอนนี้ Raspberry Pi Part ของคุณใกล้เสร็จแล้ว และคุณก็พร้อมสำหรับ Sonoff และ Arduino part แล้ว

ขั้นตอนที่ 3: การตั้งค่าอุปกรณ์ Sonoff Esp8266 สำหรับ MQTT

การตั้งค่าอุปกรณ์ Sonoff Esp8266 สำหรับ MQTT
การตั้งค่าอุปกรณ์ Sonoff Esp8266 สำหรับ MQTT
การตั้งค่าอุปกรณ์ Sonoff Esp8266 สำหรับ MQTT
การตั้งค่าอุปกรณ์ Sonoff Esp8266 สำหรับ MQTT
การตั้งค่าอุปกรณ์ Sonoff Esp8266 สำหรับ MQTT
การตั้งค่าอุปกรณ์ Sonoff Esp8266 สำหรับ MQTT

ในขั้นตอนนี้ เราจะตั้งค่าอุปกรณ์ไคลเอ็นต์ของเราซึ่งก็คือ Sonoff

sonoff เป็นอุปกรณ์อัตโนมัติภายในบ้าน wifi ซึ่งมาพร้อมกับเฟิร์มแวร์ที่ติดตั้งไว้ล่วงหน้าสำหรับระบบอัตโนมัติภายในบ้านที่ใช้ wifi และแอปพลิเคชัน android/ios เพื่อควบคุมอุปกรณ์ผ่าน wifi

ต่อไปนี้คือแฮ็กง่ายๆ ในการตั้งโปรแกรมใหม่ในแบบที่เราต้องการ เมื่อทำการตั้งโปรแกรมใหม่ด้วย Arduino ide คุณจะสูญเสียเฟิร์มแวร์ดั้งเดิมที่ติดตั้งไว้ล่วงหน้าบน sonoff

  1. ขั้นแรก เปิดอุปกรณ์ sonoff อย่างระมัดระวัง และมองหาพินที่แสดงในภาพ อันตราย: อุปกรณ์ sonoff ทำงานบนไฟ AC 220V โดยตรง คุณต้องเสียบปลั๊กก่อนเปิดหรือตั้งโปรแกรม
  2. ตอนนี้ ดูภาพด้านล่างสำหรับพินเอาต์ ที่ด้านล่างของ PCB มีชิป esp8266 ที่คุณพบว่าคล้ายกับโมดูล esp8266-01 ของคุณ
  3. ตอนนี้เปิด Arduino IDE และเพิ่มไลบรารี Zip ที่จำเป็น ห้องสมุด PUBSUB_client
  4. นอกจากนี้ คุณต้องเพิ่มบอร์ด esp8266 ใน Arduino ide ของคุณ หากยังไม่ได้เพิ่มให้ทำตามขั้นตอน

    1. เปิด Arduino IDE ของคุณและคลิกที่ "ไฟล์ -> การตั้งค่า"
    2. "https://arduino.esp8266.com/stable/package_esp8266com_index.json"
    3. ใน "Aditional Boards Manager URLs" ให้เพิ่มลิงก์ด้านบนนี้แล้วคลิก "ตกลง"
    4. ไปที่ "เครื่องมือ -> บอร์ด -> ตัวจัดการบอร์ด" พิมพ์ "ESP8266" และติดตั้ง
    5. ไปที่ "เครื่องมือ -> บอร์ด" อีกครั้งและเลือก "โมดูล ESP8266 ทั่วไป"
    6. ตอนนี้คุณได้เพิ่มบอร์ดลงใน Arduino IDE เรียบร้อยแล้ว
  5. ตอนนี้คุณต้องบัดกรีขั้วต่อตัวเมียหนึ่งตัวกับอุปกรณ์ sonoff ตามที่แสดงในภาพ
  6. ตอนนี้ใช้ USB กับบอร์ด TTL CP2102 หรือ FTDI และทำการเชื่อมต่อต่อไปนี้ตามภาพที่แสดงด้านบน

    1. RX ของ FTDI เป็น TX ของ Sonoff
    2. TX ของ FTDI เป็น RX ของ Sonoff
    3. GND ของ FTDI เป็น GND ของ Sonoff
    4. 3.3V ของ FTDI ถึง 3.3V ของ Sonoff
  7. หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณไม่ได้จัดหาบอร์ด sonoff ด้วย 5V มันเข้ากันได้ 3.3V ถ้าคุณเชื่อมต่อ 5V กับพินพาวเวอร์ของมัน คุณอาจเบิร์นอุปกรณ์ sonoff ของคุณ ดังนั้นควรใช้บอร์ด FTDI 3.3v เท่านั้น
  8. ตอนนี้ทำการเชื่อมต่อตามที่แสดงในภาพ
  9. หนึ่งของคุณเสร็จสิ้นด้วยขั้นตอนข้างต้น เชื่อมต่อ FTDI/USB เข้ากับบอร์ด TTL กับแล็ปท็อป/พีซี และเปิด Arduino IDE
  10. คัดลอกรหัส

11. ตอนนี้เลือกพอร์ต COM ที่เหมาะสมจากเมนูเครื่องมือและเลือกอุปกรณ์เป็นอุปกรณ์ ESP8266 ทั่วไป ตอนนี้กดปุ่มอัปโหลด การอัปโหลดโค้ดไปยังชิป esp8266 ของอุปกรณ์ sonoff จะใช้เวลาประมาณหนึ่งนาทีหรือน้อยกว่านั้น

12. ตอนนี้คุณพร้อมแล้วกับการเขียนโปรแกรม sonoff และ Arduino และตอนนี้คุณควรเห็นไฟ LED บนบอร์ด sonoff กะพริบ // ตามที่เราเขียนไว้ 5 ครั้งกะพริบในตอนเริ่มต้น

13. คุณพร้อมแล้วที่จะไปยังขั้นตอนต่อไป

ขั้นตอนที่ 4: ควบคุม Sonoff ของคุณจากเว็บ

ควบคุม Sonoff ของคุณจากเว็บ
ควบคุม Sonoff ของคุณจากเว็บ

นี่คือขั้นตอนสุดท้ายสำหรับโครงการของเรา

  1. ตอนนี้เปิดการเชื่อมต่อเดสก์ท็อประยะไกล VNC ของ raspberry pi โดยป้อนที่อยู่ IP สำหรับ Pi. ของคุณ
  2. ตอนนี้เปิดเทอร์มินัลแล้วเริ่มพิมพ์คำสั่งต่อไปนี้
  3. นี่คือหัวข้อและ "0" คือ payload
  4. เปลี่ยนที่อยู่ IP ในคำสั่งด้วยที่อยู่ Rpi IP ของคุณ
  5. และแทนที่จะเขียน "0" ให้เขียน "1" ซึ่งจะเปิดรีเลย์ของคุณบนสวิตช์ sonoff wifi

mosquitto_pub -h 192.168.0.104 -t led -m "0"

คำแนะนำข้างต้นจะปิดรีเลย์ของคุณ

mosquitto_pub -h 192.168.0.104 -t led -m "1"

คำแนะนำนี้จะเปิดรีเลย์ของคุณ

ตอนนี้คุณควบคุม sonoff ของคุณจากเทอร์มินัล Rpi เสร็จแล้ว

คุณสามารถตรวจสอบได้โดยเชื่อมต่อสวิตช์ sonoff wifi กับเครือข่าย wifi อื่น และ raspberry pi กับการเชื่อมต่อ wifi อื่น คุณควรจะสามารถควบคุมรีเลย์ได้จากทุกที่ในโลก

ยิ่งไปกว่านั้น คุณต้องการทดสอบการเปิด/ปิด sonoff ของคุณโดยอัตโนมัติ ฉันได้เขียนสคริปต์หลามขนาดเล็กแล้ว

ซึ่งส่ง "1" ก่อนและหลังจาก 6 วินาที จะส่ง "0" และกระบวนการนี้จะทำซ้ำในลูป

นำเข้า paho.mqtt.publish เป็น publishimport time

ในขณะที่จริง:

print("กำลังส่ง 1…") publish.single("ledStatus", "1", hostname="Your Broker IP") time.sleep(6) print("Sending 0…") publish.single("ledStatus", "0", hostname="IP นายหน้าของคุณ") time.sleep(3)

รหัสด้านบนเพียงแค่เปิดและปิดรีเลย์บนสวิตช์รีเลย์ sonoff wifi

อย่าลืมแทนที่ที่อยู่ IP ของ RaspberryPi ในรหัสหลามด้านบน ตอนนี้เรียกใช้สคริปต์นี้โดยคลิกที่ตัวเลือกเรียกใช้โมดูลและคุณควรเห็นบนเชลล์

ส่ง "1"..

ส่ง "0"..

ส่ง "1"..อะไรแบบนี้

แค่นั้นแหละสำหรับคำแนะนำนี้ เจอกันใหม่ตอนหน้าค่ะ

ลาก่อน!!!!

และอย่าลืมติดตามและแบ่งปันคำแนะนำนี้และลองด้วยตัวคุณเอง!

ข้อสงสัยใด ๆ โพสต์ในส่วนความคิดเห็นยินดีต้อนรับ!

แนะนำ: