วิธีการใช้ MQTT บน Arduino ซึ่งใช้ serial com เพื่อส่งคำสั่ง AT ไปยัง ESP8266


10

ฉันเพิ่งเริ่มมองหาโปรโตคอล MQTT

สถานการณ์

ในโครงการวิทยาลัยของฉันในปัจจุบันฉันใช้ Arduino เป็น MCU หลักและทำงานทุกอย่างในนั้นและใช้ Serial Comm เพื่อส่งคำสั่ง AT ไปยัง esp8266 (สำหรับการร้องขอ HTTP เพื่อเรียกใช้สคริปต์บนเซิร์ฟเวอร์ ฯลฯ ) โดยทั่วไปฉันต้องการผลักดันข้อมูลบางอย่าง (จาก Arduino) บนหน้าเว็บ (โฮสต์โดยเซิร์ฟเวอร์ท้องถิ่น) ฉันค้นหาและพบเกี่ยวกับโปรโตคอลMQTTที่ช่วยให้สามารถเผยแพร่และสมัครสมาชิกข้อมูลกับลูกค้า (สิ่งที่ฉันต้องการ) แต่บทเรียนส่วนใหญ่ที่ฉันพบมีทั้งใน Arduino (พร้อม wifi shield) หรือทั้งหมดใน esp8266

สิ่งที่ฉันต้องการทราบคือมีวิธีที่เป็นไปได้ที่จะใช้ MQTT เช่นเดียวกับการกำหนดค่าปัจจุบันของฉัน นั่นคือการใช้ Arduino เพื่อทำงานทั้งหมดและโดยใช้การสื่อสารแบบอนุกรม การเผยแพร่ข้อมูลโดยคำสั่ง AT บน MQTT

ข้อมูลเพิ่มเติมเกี่ยวกับโครงการของฉันถูกกล่าวถึงที่นี่: สับสนเกี่ยวกับเทคโนโลยีที่จะใช้ในระบบสมาร์ทโฮม


คุณสามารถส่ง MQTT ผ่าน wifi ระหว่าง Arduino และ ESP ไม่จำเป็นต้องทำการเชื่อมต่อทางกายภาพ
— Jimmy Westberg

สำหรับสิ่งที่ฉันต้องการ wifi บน Arduino ด้วยใช่ไหม? ฉันไม่จำเป็นต้องส่งข้อมูลระหว่าง Arduino และ ESP ฉันใช้ esp สำหรับส่งข้อมูลจาก arduino ไปยังเซิร์ฟเวอร์ท้องถิ่น arduino ของฉันไม่มี wifi shield
— Salim Shamim

ถ้าคุณมีการเชื่อมต่อทางกายภาพเสร็จแล้วให้ดูที่ FW ESP Easy ซึ่งมีการรวม MQTT ที่แน่นหนาออกมาจากกล่อง
— Jimmy Westberg

sonyarouje.com/2016/03/15/…ฉันพบโพสต์นี้มันเป็นสิ่งที่คุณพูดหรือเปล่า: P เป็นวิธีที่จะไปไหม? ขออภัยฉันเพิ่ง newb super: D
— Salim Shamim

1
ฉันลอง MQTT ผ่านทาง UART (เพื่อส่งคำสั่ง AT ไปที่ esp8266) github.com/nopnop2002/MQTT_UNO
— nopnop2002

คำตอบ:


4

ในที่สุดผมก็พบว่าการกวดวิชาโดย Sony Arouje ตามที่ปรากฎฉันต้องละทิ้งการส่งคำสั่ง esp ด้วยตนเองโดยสมบูรณ์และต้องใช้ไลบรารี (WiFiEsp.h) คำแนะนำ ... มันดีกว่า!

แม้ว่าในตอนแรกมันจะไม่ทำงานกับ esp8266 ของฉันเพราะมันมีเฟิร์มแวร์ที่เก่ากว่าและรายงานข้อผิดพลาด "ไม่รองรับเฟิร์มแวร์" ฉันต้องแฟลชเฟิร์มแวร์ที่ใหม่กว่า (ใช้งานกับรุ่น 1.54 ในกรณีของฉัน) ทุกคนที่มีปัญหาในการกระพริบเฟิร์มแวร์อาจพบกับความช่วยเหลือในการอ้างอิงหัวข้อนี้: Can't Flash ESP8266 เฟิร์มแวร์ล่าสุดพูดว่า "Fast กะพริบข้อผิดพลาด" และ "Invalid head of packet ('')"

นอกจากนี้ฉันได้บันทึกสำเนาของเครื่องมือดาวน์โหลดทั้งหมดและหน้าบทช่วยสอนด้วยตนเองดังนั้นหากในอนาคตโพสต์จะถูกลบออกหรือหากไม่มีใครพบเครื่องมือที่จะใช้แฟลช มาที่ฉันในความคิดเห็นหรือบางสิ่งบางอย่าง (ไม่โพสต์ที่นี่เพราะฉันไม่รู้ว่ามันเป็นการโพสต์เนื้อหาของคนอื่นหรือไม่)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.