สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
เราจะตั้งค่าเซิร์ฟเวอร์และไคลเอนต์ MQTT บน Raspberry Pi โดยใช้ไลบรารี Mosquitto และ paho-mqtt เราจะอ่านปุ่มและถ้ากดเราจะสลับ LED ที่ด้าน Arduino
ในขณะที่บน Arduino เราจะใช้ไลบรารี Adafruit MQTT เราจะใช้เซ็นเซอร์เช่น LDR (คุณสามารถใช้เซ็นเซอร์อื่น ๆ ได้) อ่านและเผยแพร่ทันทีที่เปลี่ยนเป็น Raspberry Pi
พวกเราต้องการ:
ราสเบอร์รี่ปี่
NodeMCU
ขั้นตอนที่ 1: การเพิ่มไลบรารีสำหรับ Esp8266
ไปที่ "จัดการไลบรารี…" โดยใช้ Arduino IDE ของคุณและค้นหา "MQTT" โดย Adafruit
หลังจากติดตั้งสำเร็จ ให้เพิ่ม "MQTT_NodeMCU.ino" จากลิงก์ต่อไปนี้:
รหัส Arduino
ทำการเปลี่ยนแปลงต่อไปนี้โดยแทนที่ wifi ssid, รหัสผ่าน และ RPi IP Address
#define WLAN_SSID "#397" #define WLAN_PASS "farmhouse397" #define MQTT_SERVER "192.168.0.108" #define "led_pin" #define "sensor_input"
อัปโหลดภาพร่างและเปิด Serial Monitor ที่ 115200
ขั้นตอนที่ 2: ติดตั้ง MQTT Sever และไคลเอนต์บน Raspberry Pi
ขั้นแรก ติดตั้งเซิร์ฟเวอร์ Mosquitto โดยใช้:
sudo apt-get ติดตั้งยุง
ติดตั้ง Mosquitto Client โดยใช้:
sudo apt-get ติดตั้ง mosquitto-clients
คุณสามารถตรวจสอบการติดตั้งโดยใช้:
สถานะ systemctl mosquitto.service
ตอนนี้ เราจะติดตั้ง paho-MQTT โดยใช้:
sudo apt-get ติดตั้ง python python-pipsudo pip ติดตั้ง RPi. GPIO paho-mqtt
ใช้คำสั่งเหล่านี้เพื่อเผยแพร่ -messages จาก raspberry pi (-hostname) ถึง esp8266-leds (-topic)
mosquitto_pub -h raspberrypi -t "/ leds/esp8266" -m "เปิด"
mosquitto_pub -h raspberrypi -t "/ leds/esp8266" -m "ปิด"
-h == > ชื่อโฮสต์ ==> raspberrypi (เว้นแต่คุณจะเปลี่ยน)
-t == > หัวข้อ
-m == > ข้อความ
ขั้นตอนที่ 3: เรียกใช้ Python Script
คุณสามารถดาวน์โหลด MQTT_Pi จาก
github.com/anuragvermaa/MQTT_NodeMCU
หากทุกอย่างเรียบร้อยดี คุณควรจะสามารถเห็นข้อมูลเซ็นเซอร์ในเทอร์มินัลได้
กด Ctrl+C เพื่อออก