สารบัญ:

NodeMCU - ตัวอย่างพื้นฐาน MQTT: 4 ขั้นตอน
NodeMCU - ตัวอย่างพื้นฐาน MQTT: 4 ขั้นตอน

วีดีโอ: NodeMCU - ตัวอย่างพื้นฐาน MQTT: 4 ขั้นตอน

วีดีโอ: NodeMCU - ตัวอย่างพื้นฐาน MQTT: 4 ขั้นตอน
วีดีโอ: EP.5 สร้าง Mqtt Server ใช้เอง และนำมาประยุกต์ใช้ควบคุม nodemcu esp8266 ด้วยแอพ Smart Home ผ่าน WIFI 2024, กรกฎาคม
Anonim
Image
Image

บทเรียนนี้จะแสดงการใช้โปรโตคอล MQTT พื้นฐานบนบอร์ด NodeMCU เราใช้ MQTTBox เป็นไคลเอ็นต์ MQTT ที่นี่ และเราจะใช้ NodeMCU เพื่อดำเนินการต่อไปนี้ให้เสร็จสิ้น:

เผยแพร่ "hello world" ในหัวข้อ "outTopic" ทุก ๆ สองวินาที สมัครรับข้อมูลในหัวข้อ "inTopic" พิมพ์ข้อความที่ได้รับ โดยถือว่า payloads ที่ได้รับเป็นสตริงไม่ใช่ไบนารี หากข้อความที่สมัครเป็น "1" ให้จุดไฟ LED onboards ปิด LED onboard หากข้อความให้สมัครเป็น "0"

การจัดเตรียม:Osoyoo NodeMCU x1

สาย USB x1

พีซี x1

Arduino IDE (เวอร์ชั่น 1.6.4+)

เชื่อมต่อ NodeMCU กับพีซีผ่านสาย USB

ขั้นตอนที่ 1: การติดตั้งไลบรารี

การติดตั้งห้องสมุด
การติดตั้งห้องสมุด
การติดตั้งห้องสมุด
การติดตั้งห้องสมุด

ติดตั้ง PubSubClientlibrary

เราจำเป็นต้องติดตั้งไลบรารีปลายทาง MQTT (PubSubClient) เพื่อสื่อสารกับโบรกเกอร์ MQTT โปรดดาวน์โหลดไลบรารีจากลิงก์ต่อไปนี้:

แตกไฟล์ด้านบน ย้ายโฟลเดอร์ที่คลายซิปไปยังโฟลเดอร์ไลบรารี Arduino IDE

เปิด Arduino IED คุณจะพบ "pubsubclient" ในคอลัมน์ "ตัวอย่าง"

ติดตั้งไคลเอนต์ MQTT:

เราจะใช้ MQTTBox เป็นไคลเอนต์ MQTT โปรดดาวน์โหลดจาก:

ขั้นตอนที่ 2: รหัส

รหัส
รหัส
รหัส
รหัส

เปิด Arduino IDE–>File–>Example–>pubsubclient–>mqtt esp8266 คุณจะได้รับโค้ดตัวอย่าง

แก้ไขรหัสให้พอดีกับการตั้งค่า WiFi และ MQTT ของคุณเองตามการดำเนินการต่อไปนี้:1)การกำหนดค่าฮอตสปอต: ค้นหาบรรทัดโค้ดด้านล่าง ใส่ ssid และรหัสผ่านของคุณเองที่นั่น

const char* ssid = “your_hotspot_ssid”;const char* รหัสผ่าน = “your_hotspot_password”;

2) การตั้งค่าที่อยู่เซิร์ฟเวอร์ MQTT ที่นี่เราใช้นายหน้า MQTT ฟรี "broker.mqtt-dashboard.com" คุณสามารถใช้ URL นายหน้า MQTT หรือที่อยู่ IP ของคุณเพื่อตั้งค่าให้สูงกว่าค่า mqtt_server คุณยังสามารถใช้เซิร์ฟเวอร์ MQTT ฟรีที่มีชื่อเสียงเพื่อทดสอบโครงการ เช่น “broker.mqtt-dashboard.com”, “iot.eclipse.org” เป็นต้น

const char* mqtt_server = “นายหน้า.mqtt-dashboard.com”;

3)การตั้งค่าไคลเอนต์ MQTTหากโบรกเกอร์ MQTT ของคุณต้องการการตรวจสอบรหัสลูกค้า ชื่อผู้ใช้และรหัสผ่าน คุณต้อง

เปลี่ยน

ถ้า (client.connect(clientId.c_str()))

ถึง

if (client.connect(clientId, userName, passWord)) //ใส่ clientId/userName/passWord ของคุณที่นี่

หากไม่เป็นเช่นนั้น ให้เก็บไว้เป็นค่าเริ่มต้น หลังจากนั้น เลือกประเภทบอร์ดและประเภทพอร์ตที่เกี่ยวข้องตามด้านล่าง จากนั้นอัปโหลดภาพร่างไปยัง NodeMCU

  • บอร์ด:”NodeMCU 0.9 (โมดูล ESP-12)”
  • ความถี่ของ CPU:”80MHz”ขนาดแฟลช:”4M (3M SPIFFS)”
  • ความเร็วในการอัพโหลด:”115200″
  • พอร์ต: เลือกพอร์ตอนุกรมของคุณเองสำหรับ NodeMCU. ของคุณ

ขั้นตอนที่ 3: กำหนดค่าไคลเอนต์ MQTT (MQTTBOX)

กำหนดค่าไคลเอนต์ MQTT (MQTTBOX)
กำหนดค่าไคลเอนต์ MQTT (MQTTBOX)
กำหนดค่าไคลเอนต์ MQTT (MQTTBOX)
กำหนดค่าไคลเอนต์ MQTT (MQTTBOX)
กำหนดค่าไคลเอนต์ MQTT (MQTTBOX)
กำหนดค่าไคลเอนต์ MQTT (MQTTBOX)
กำหนดค่าไคลเอนต์ MQTT (MQTTBOX)
กำหนดค่าไคลเอนต์ MQTT (MQTTBOX)

ในขั้นตอนนี้ เราจะแสดงวิธีสร้างไคลเอ็นต์ MQTT บน MQTTBox

เปิด MQTTBox ของคุณแล้วคลิกปุ่มสีน้ำเงินเพื่อเพิ่มไคลเอ็นต์ MQTT ใหม่

กำหนดค่า MQTT CLIENT SETTINGS ดังต่อไปนี้:

  • MQTT Client Name -- เลือกชื่อที่ต้องการ
  • โปรโตคอล -- เลือก "mqtt/tcp"
  • โฮสต์ - พิมพ์ “mqtt_server” ของคุณในคอลัมน์นี้ ตรวจสอบให้แน่ใจว่าเหมือนกับแบบร่างของคุณ (เราใช้ “broker.mqtt-dashboard.com” ที่นี่)
  • ให้การตั้งค่าอื่นๆ เป็นค่าเริ่มต้น
  • คลิกเพื่อบันทึกการเปลี่ยนแปลงของคุณ

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

การตั้งค่าหัวข้อ: ตรวจสอบให้แน่ใจว่าหัวข้อการเผยแพร่ไคลเอ็นต์ MQTT ของคุณเหมือนกับหัวข้อการสมัครรับข้อมูล Arduino Sketch (ในหัวข้อที่นี่) ตรวจสอบให้แน่ใจว่าหัวข้อการสมัครไคลเอนต์ MQTT ของคุณเหมือนกับหัวข้อการเผยแพร่ร่าง Arduino ของคุณ (ออกจากหัวข้อที่นี่)

ขั้นตอนที่ 4: ผลการรันโปรแกรม

ผลการรันโปรแกรม
ผลการรันโปรแกรม
ผลการรันโปรแกรม
ผลการรันโปรแกรม
ผลการรันโปรแกรม
ผลการรันโปรแกรม
ผลการรันโปรแกรม
ผลการรันโปรแกรม

เมื่ออัปโหลดเสร็จแล้ว หากชื่อฮอตสปอต wifi และการตั้งค่ารหัสผ่านใช้ได้ และโบรกเกอร์ MQTT เชื่อมต่อแล้ว ให้เปิด Serial Monitor คุณจะเห็นข้อความเผยแพร่ "hello world" บนจอภาพแบบอนุกรม

จากนั้นเปิดไคลเอ็นต์ MQTT และเผยแพร่เพย์โหลด "1" ไปยังหัวข้อ NodeMCU นี้จะได้รับข้อความเหล่านี้โดยสมัครรับ "inTopic" และไฟ LED จะติดสว่าง

เผยแพร่เพย์โหลด “0” ไปยังหัวข้อนี้ LED ของ NodeMCU จะถูกปิด

แนะนำ: