สารบัญ:

MQTT บนบอร์ด Armtronix: 3 ขั้นตอน
MQTT บนบอร์ด Armtronix: 3 ขั้นตอน

วีดีโอ: MQTT บนบอร์ด Armtronix: 3 ขั้นตอน

วีดีโอ: MQTT บนบอร์ด Armtronix: 3 ขั้นตอน
วีดีโอ: #Node-Red IOT EP.5 สื่อสารผ่าน MQTT มาเเสดงบน Node-Red Dashboards #HIVEMQ #MQTT 2024, กรกฎาคม
Anonim
MQTT บนบอร์ด Armtronix
MQTT บนบอร์ด Armtronix

ในคำแนะนำนี้เราต้องการแสดงให้คุณเห็นว่าคุณสามารถใช้ระบบที่ใช้ Linux (Debian หรือ Ubuntu) และติดตั้ง Mosquitto (Mqtt Broker) ได้อย่างไรแสดงวิธีใช้ไคลเอ็นต์ Mqtt บนโทรศัพท์ของคุณ (Android) / Linux ระบบการส่งและรับข้อความผ่าน Mqtt หลังจากทำความคุ้นเคยกับสิ่งนี้แล้ว เราต้องการแสดงให้คุณเห็นว่าคุณสามารถกำหนดค่าและเชื่อมต่อบอร์ดของเรากับโบรกเกอร์ Mqtt ที่ติดตั้งนี้ได้อย่างไร ยังต้องการแสดงให้คุณเห็นว่าคุณสามารถเพิ่มการรับรองความถูกต้องให้กับโบรกเกอร์ Mqtt และเคล็ดลับและกลเม็ดพื้นฐานในการดีบักได้อย่างไร ดังนั้นเรามาเริ่มกันเลย ………..

ขั้นตอนที่ 1: การติดตั้งโบรกเกอร์ Mqtt:

การติดตั้งโบรกเกอร์ Mqtt
การติดตั้งโบรกเกอร์ Mqtt
การติดตั้งโบรกเกอร์ Mqtt
การติดตั้งโบรกเกอร์ Mqtt
การติดตั้งโบรกเกอร์ Mqtt
การติดตั้งโบรกเกอร์ Mqtt
การติดตั้งโบรกเกอร์ Mqtt
การติดตั้งโบรกเกอร์ Mqtt

มีโบรกเกอร์ Mqtt หลายตัวที่คุณสามารถติดตั้งได้ บางคนที่รู้จักมีดังต่อไปนี้ บางส่วนเป็นบริการบนคลาวด์

  • HiveMQ
  • ยุงลายเมฆ
  • MQTT
  • Adafruit.io

เราจะแสดงให้คุณเห็นถึงวิธีการติดตั้ง Mosquitto บนระบบที่ใช้ Linux (Ubuntu 18.04) ในการทำเช่นนี้ก่อนอื่นให้เพิ่ม Mosquitto ในรายการแหล่งที่มาของ Ubuntu เมื่อ Mosquitto พร้อมใช้งานในที่เก็บของ Ubuntu คุณจะสามารถติดตั้งได้ด้วย apt-get

เพียงแค่เปิดเทอร์มินัล ในการเปิด Terminal ให้ไปที่มุมล่างซ้ายมือของ Ubuntu Desktop คลิกที่ Show application (ตาราง Doted 3X3) หน้าต่างจะเปิดขึ้น ที่นั่นคุณค้นหา Terminal คลิกที่เทอร์มินัล คุณควรจะเห็นหน้าต่างเปิดดังแสดงในภาพต่อไปนี้

  • แสดงใบสมัคร (ภาพที่ 1)
  • ค้นหา Terminal (ภาพที่ 2)
  • หน้าต่างเทอร์มินัล (ภาพที่ 3)

ป้อนคำสั่งต่อไปนี้หลังจากที่คุณเปิด Terminal

sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa

sudo apt-get update

sudo apt-get ติดตั้งยุง

คุณยังสามารถติดตั้งไคลเอ็นต์ Mqtt คำสั่งให้ทำนั้นคือ

sudo apt-get ติดตั้ง mosquitto-clients

ภาพบางส่วนสำหรับการอ้างอิงของคุณ

  • การเพิ่ม ppa (ภาพที่ 4)
  • กำลังอัปเดต repo (ภาพที่ 5)
  • การติดตั้งยุง (ภาพที่ 6)
  • การติดตั้ง Mosquitto Client (ภาพที่ 7)

ขั้นตอนที่ 2: ทดสอบ MQTT (ยุง)

การทดสอบ MQTT (ยุง)
การทดสอบ MQTT (ยุง)
การทดสอบ MQTT (ยุง)
การทดสอบ MQTT (ยุง)
การทดสอบ MQTT (ยุง)
การทดสอบ MQTT (ยุง)

ในการทดสอบ mqtt ผ่าน ubuntu (ระบบเดียวกันหรือระบบอื่น) คุณต้องติดตั้งไคลเอ็นต์ mqtt ซึ่งได้รับการติดตั้งไว้ก่อนหน้านี้โดยใช้คำสั่ง sudo apt-get install mosquitto-clients ในกรณีที่คุณต้องการทดสอบโดยใช้โทรศัพท์มือถือ (Android) คุณสามารถติดตั้งแอพ MyMqtt จาก play store

Mqtt ทำงานบนสิ่งที่เรียกว่าหัวข้อ เพื่อความสะดวกในการทำความเข้าใจ ให้พิจารณาหัวข้อเหล่านี้เป็นโฟลเดอร์ในฮาร์ดไดรฟ์ของคอมพิวเตอร์ ให้เราปฏิบัติต่อคอมพิวเตอร์เครื่องนี้เป็นเซิร์ฟเวอร์คอมพิวเตอร์ (ซึ่งในโลกของ mqtt คือโบรกเกอร์ Mqtt) ในเซิร์ฟเวอร์นี้ให้เราพิจารณามีหนึ่งโฟลเดอร์

ชื่อโฟลเดอร์: /Folder_one/

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

เราจะตั้งชื่อบุคคล/ระบบสองคนเป็น System X, System Y (นี่คือไคลเอ็นต์ Mqtt ใน Mqtt World)

ทีนี้ สมมติว่า System X ส่ง/ดัมพ์ไฟล์บางไฟล์ (ชื่อไฟล์: temperature) ลงในโฟลเดอร์ “/Folder_one/” ในโลกของ mqtt เราสามารถเรียกการเผยแพร่นี้ได้ (เราส่งข้อความ/เพย์โหลดแทนไฟล์)

ตอนนี้ สมมติว่าระบบ Y ต้องการรับ/อ่านไฟล์นี้หรือไฟล์ใหม่ใดๆ หรือต้องการอัปเดตในโฟลเดอร์นี้ สิ่งแรกที่จำเป็นคือต้องทราบชื่อโฟลเดอร์และเส้นทาง ซึ่งในกรณีของเราคือ "/Folder_one/" ตอนนี้มันจะไปที่โฟลเดอร์นี้และอ่าน/รับไฟล์นั้น (ชื่อไฟล์: อุณหภูมิ) การรู้เส้นทาง/หัวข้อและการตรวจสอบการเปลี่ยนแปลงในไฟล์/ไฟล์ใหม่ในโลก Mqtt เป็นการสมัครสมาชิกหัวข้อนั้น

เมื่อพิจารณาจากตัวอย่างข้างต้น

System X กำลังเผยแพร่ไปยัง "/Folder_one" และระบบ Y ได้สมัครรับข้อมูลจาก "/Folder_one"

นอกจากนี้ โปรดทราบว่า System X ยังสามารถสมัครสมาชิก “/Folder_one” และระบบ Y ยังสามารถเผยแพร่ไปยัง “/Folder_one” ได้อีกด้วย ในทำนองเดียวกัน ระบบเซิร์ฟเวอร์ (โบรกเกอร์ Mqtt) ก็สามารถเผยแพร่/สมัครสมาชิก “/Folder_one” ได้โดยการติดตั้งไคลเอนต์ Mqtt เหมือนกับที่เราทำในปัจจุบัน สิ่งอื่นที่ต้องจำไว้คือการเผยแพร่หรือสมัครรับข้อมูลในหัวข้อที่คุณจำเป็นต้องทราบที่อยู่ IP ของโบรกเกอร์ Mqtt

ขั้นแรกเราจะทดสอบมันผ่านไคลเอนต์อูบุนตูซึ่งติดตั้งอยู่บนระบบเดียวกับที่โบรกเกอร์เป็น เราจะเปิดหน้าต่างเทอร์มินัลสองหน้าต่าง ซึ่งหนึ่งในนั้นจะเผยแพร่และอีกหน้าต่างหนึ่งจะสมัครรับข้อมูล สำหรับตัวอย่าง เราจะใช้ /Folder_one เป็นหัวข้อ ก่อน pub/sub ไปยังหัวข้อ คุณจะต้องค้นหาที่อยู่ IP ของ ubuntu เมื่อต้องการทำสิ่งนี้ ให้คลิกที่มุมบนขวามือของหน้าจอ เลือกการตั้งค่า wifi จากนั้นคุณจะพบที่อยู่ IP ของระบบ Ubuntu (ปัจจุบันคือ IP ของโบรกเกอร์) แชร์ย่อหน้าจอเพื่อการอ้างอิง (ภาพที่ 8)

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

sudo apt ติดตั้ง net-tools

การติดตั้ง net-tools (ภาพที่ 9) หลังจากนั้นเพียงพิมพ์คำสั่ง ipconfig คุณจะได้รับรายการอินเทอร์เฟซเครือข่ายพร้อมที่อยู่ mac และ IP

sudo ipconfig

ที่อยู่ IP ของระบบของฉันคือ 192.168.1.67 (ภาพที่ 10)

เพื่อเผยแพร่

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m pub_to_folderone

ที่นี่ mosquitto_pub คือคำสั่ง ตามด้วยองค์ประกอบตัวระบุพารามิเตอร์ -h ซึ่งเป็นที่อยู่ IP ของโฮสต์/นายหน้า (ในกรณีของเรา 192.168.1.67) ตามด้วย -t ซึ่งเป็นชื่อหัวข้อของผู้เผยแพร่ (ในกรณีของเรา /Folder_one) ตามด้วย -m ซึ่งหมายถึงข้อความ/เพย์โหลดที่จะส่ง (ในกรณีของเราคือ pub_to_folderone)

เพื่อติดตาม

mosquitto_sub -h 192.168.1.67 -t /Folder_one

ข้อความที่ส่งโดยผู้จัดพิมพ์: pub_to_folderone

ตัวอย่างการเผยแพร่

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m “สวัสดี ทดสอบ mqtt”

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m “mqtt ทำงาน”

ตัวอย่างการตอบสนองที่ได้รับในการสมัครหัวข้อ

mosquitto_sub -h 192.168.1.67 -t /Folder_one

ข้อความที่ส่งโดยผู้จัดพิมพ์:

  • pub_to_folderone
  • สวัสดี ทดสอบ mqtt
  • mqtt ทำงาน

Pub Sub ในหน้าต่างเทอร์มินัลสองหน้าต่างแยกกัน (ภาพที่ 11)

ทดสอบ Mqtt บน Android (mqtt ของฉัน)

ติดตั้งแอพ mymqtt จาก play store บนโทรศัพท์ Android ของคุณ (ภาพที่ 12)

เปิดแอพแล้วคลิกที่มุมบนซ้ายมือ (ภาพที่ 13, ภาพที่ 14)

คลิกที่การตั้งค่าและป้อนที่อยู่ IP ของโบรกเกอร์ พอร์ตโดยค่าเริ่มต้นจะเป็น 1883 ขณะนี้เราไม่ได้ใช้โบรกเกอร์ mqtt ที่ตรวจสอบสิทธิ์ ดังนั้นชื่อผู้ใช้และรหัสผ่านจะว่างเปล่า เพียงบันทึกและคลิกอีกครั้งที่มุมบนซ้ายของแอป (< การตั้งค่า) ลิ้นชักจะเปิดขึ้นอีกครั้ง (ภาพที่ 15)

ที่ด้านบนของลิ้นชักจะแสดงที่อยู่ IP ของโบรกเกอร์และพอร์ตที่แอปเชื่อมต่อ (ภาพที่ 16)

เพิ่มหัวข้อที่คุณต้องการสมัครโดยคลิกที่ Subscribe ที่นี่เราจะเพิ่มหัวข้อเป็น /Folder_one (ภาพที่ 17, ภาพที่ 18)

หลังจากทำเช่นนี้จากระบบ Ubuntu โดยใช้เทอร์มินัลเราจะเผยแพร่ไปยังหัวข้อ ในการเผยแพร่ คุณควรได้รับเพย์โหลด/ข้อความที่เผยแพร่บนแอพมือถือนี้ ตัวอย่างเช่น การเผยแพร่เพย์โหลดเป็น “ARM -Automation Robotics & Mechatronics” คำสั่งดังที่กล่าวไว้ก่อนหน้านี้

mosquitto_pub -h 192.168.1.67 -t /Folder_one -m “ARM -Automation Robotics & Mechatronics”

เผยแพร่จากระบบ Ubuntu (ภาพที่ 19)

ได้รับข้อความที่เผยแพร่บนแดชบอร์ด (ภาพที่ 20)

ตอนนี้ให้เราเผยแพร่จากโทรศัพท์ Android (My mqtt) และสมัครสมาชิกบนระบบ Ubuntu สำหรับตัวอย่างนี้ เราใช้หัวข้อ “/mymqtt_to_pub”

ในการดำเนินการนี้ ก่อนอื่นให้เปิดเทอร์มินัลจากระบบ ubuntu ของคุณและสมัครรับหัวข้อ “/mymqtt_to_pub” โดยใช้คำสั่งต่อไปนี้ (ภาพที่ 21)

mosquitto_sub -h 192.168.1.67 -t /mymqtt_to_pub

ไปที่ลิ้นชักของแอป mymqtt แล้วคลิกเผยแพร่ เพิ่มหัวข้อการเผยแพร่ (ในกรณีของเราคือ “/mymqtt_to_pub”) และส่งข้อความเช่นเราจะส่ง “hi Ubuntu” กดปุ่มส่ง (ภาพที่ 22, ภาพที่ 23)

ข้อความควรปรากฏบนหน้าต่างเทอร์มินัลของระบบ ubuntu (ภาพที่ 24)

โปรดทราบว่าทั้งระบบ Ubuntu และโทรศัพท์ Android ควรอยู่ในเครือข่ายเดียวกันหรือควรเปิดพอร์ต 1883 และคุณควรทราบที่อยู่ IP ของเราเตอร์/เกตเวย์เพื่อให้ mqtt ทำงานได้ หากคุณต้องการเพิ่มการรับรองความถูกต้องให้กับโบรกเกอร์ mqtt ของคุณ คุณสามารถทำได้โดยทำตามลิงก์บล็อกที่กล่าวถึงด้านล่าง https://medium.com/@eranda/setting-up-authenticat… ทำตามจากขั้นตอนที่สองของบล็อกนี้ เราได้เปิดใช้งานการรับรองความถูกต้องของนายหน้าของเรา และจะใช้นายหน้าที่ตรวจสอบความถูกต้องสำหรับกระดานของเรา

ขั้นตอนที่ 3: การทำงานกับ Armtronix Board & Mqtt

การทำงานกับ Armtronix Board & Mqtt
การทำงานกับ Armtronix Board & Mqtt
การทำงานกับ Armtronix Board & Mqtt
การทำงานกับ Armtronix Board & Mqtt
การทำงานกับ Armtronix Board & Mqtt
การทำงานกับ Armtronix Board & Mqtt

สำหรับคำแนะนำนี้ เรากำลังใช้ Wifi Single Dimmer Board ซึ่งใช้ Triac เพื่อตัดคลื่นไซน์และหรี่หลอดไฟหรือควบคุมความเร็วของพัดลม นอกจากนี้เรายังเชื่อมต่อผ่านประเภทการพิสูจน์ตัวตน mqtt

เริ่มแรกเราได้กำหนดค่าบอร์ด ขั้นตอนในการกำหนดค่ามีดังต่อไปนี้

เปิดเครื่องบนบอร์ด จะเริ่มโฮสต์จุดเข้าใช้งาน Wifi

การใช้โทรศัพท์หรือแล็ปท็อป Android เชื่อมต่อกับ AP นี้ (ภาพที่ 25)

เมื่อเชื่อมต่อกับ AP ประเภทนี้ 192.168.4.1 โดยเปิดเบราว์เซอร์ (chrome/firefox) จากระบบ/โทรศัพท์ที่เชื่อมต่อ AP ตรวจสอบให้แน่ใจว่าคุณไม่ได้ใช้การเชื่อมต่อข้อมูลของคุณ (3G/4G)

เมื่อพิมพ์ IP หน้าเว็บจะเปิดขึ้นโดยต้องป้อนการติดตาม (ภาพที่ 26)

  • SSID: ชื่อ Wifi AP
  • รหัสผ่าน: รหัสผ่าน SSID
  • โหมด IoT Mqtt หรือ Http (เลือก Mqtt)
  • Mqtt Broker IP (ในกรณีของเราคือ 192.168.1.67)
  • ชื่อผู้ใช้และรหัสผ่าน Mqtt เนื่องจากเราใช้ประเภทการตรวจสอบสิทธิ์ เราใช้ Naren, xxxx
  • Mqtt เผยแพร่หัวข้อ: นี่จะเป็นหัวข้อที่บอร์ดเผยแพร่เช่นกัน เราใช้ /testpub
  • หัวข้อการสมัครสมาชิก Mqtt: นี่จะเป็นหัวข้อที่บอร์ดรับฟังคำสั่งเพื่อกระตุ้น triac เราใช้ /testsub
  • ชื่ออุปกรณ์: เป็นชื่อที่คุณเรียก Alexa เพื่อเรียกบอร์ด เราใช้ corvi

หลังจากป้อนรายละเอียดแล้ว ให้กดปุ่มส่ง ในการทำเช่นนี้คุณจะได้หน้าจอดังแสดงในภาพที่ 27 รอสักครู่จนกว่าบอร์ดจะหยุดโฮสต์ AP

โปรดทราบว่าเราได้เชื่อมต่อบอร์ดของเราผ่าน Uart กับมอนิเตอร์แบบอนุกรมของ Arduino IDE ดังนั้นทางด้านซ้ายมือ คุณจะเห็นข้อความดีบักที่พิมพ์ผ่าน Uart (นี่สำหรับการอ้างอิงของคุณเท่านั้น)

เมื่อเสร็จแล้ว คุณสามารถดูหน้าจอดีบักได้ รายละเอียดส่วนใหญ่จะมองเห็นได้ที่นั่น หลังจากนี้ก็จะเชื่อมต่อกับโบรกเกอร์ได้สำเร็จบนหน้าจอดีบัก (ซีเรียล) ที่คุณเห็นได้

เชื่อมต่อกับโบรกเกอร์ MQTT พร้อมการรับรองความถูกต้อง สมัครตามหัวข้อที่ 1

หลังจากพิมพ์สิ่งนี้ คุณสามารถเริ่มส่งคำสั่งผ่าน mqtt ในหัวข้อที่สมัครรับข้อมูลไว้ เช่น /testsub/

สำหรับคำสั่งของบอร์ดนี้คือ:

  • R13_ON: หากต้องการเปิด triac เป็น 100%
  • R13_OFF: เพื่อปิด triac เป็น 0%
  • Dimmer:xx: โดยที่ xx คือค่าการหรี่แสงและสามารถเปลี่ยนแปลงได้ตั้งแต่ 0 ถึง 99
  • รีเซ็ต: เพื่อล้างการกำหนดค่าของบอร์ด
  • สถานะ: พิมพ์สถานะการหรี่ไฟของบอร์ดในหัวข้อการเผยแพร่ของบอร์ด

หากต้องการส่งคำสั่งนี้จากระบบที่ใช้ Ubuntu ที่ติดตั้งไคลเอ็นต์ mqtt เพียงพิมพ์ตามที่แสดงด้านล่าง มีการเพิ่มพารามิเตอร์เพิ่มเติมสองรายการที่นี่เนื่องจากการพิสูจน์ตัวตน - เช่น -u ซึ่งเป็นชื่อผู้ใช้และ -P คือรหัสผ่าน โปรดทราบว่าพารามิเตอร์เหล่านี้คำนึงถึงขนาดตัวพิมพ์

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m R13_OFF

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m หรี่:50

หมายเหตุ: 50 คือค่าหรี่

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m R13_ON

mosquitto_pub -h 192.168.1.67 -u Naren -P xxxx -t /testsub -m สถานะ

สำหรับสถานะล่าสุด สถานะจะถูกพิมพ์ในหัวข้อการเผยแพร่ของบอร์ด ซึ่งในกรณีของเราคือ /testpub การเปลี่ยนแปลงใดๆ ในอุปกรณ์จะถูกพิมพ์ในหัวข้อการเผยแพร่ของบอร์ดบนกระดาน ตัวอย่างเช่น หากเราส่ง Dimmer:50 ในหัวข้อที่สมัครเป็นสมาชิกของบอร์ดมากกว่าการดำเนินการนี้จริง บอร์ดจะส่งข้อความระบุระดับการหรี่แสงในหัวข้อการเผยแพร่ ตัวอย่างแสดงอยู่ด้านล่าง

ในการสมัครจากระบบ Ubuntu ของคุณไปยังหัวข้อการเผยแพร่ของบอร์ด ให้ป้อนคำสั่งต่อไปนี้

mosquitto_sub -h 192.168.1.67 -u Naren -P xxxx -t /testpub

ข้อความที่เราได้รับคือ

DimmerIS50

หน้าจอสั้นบางส่วนที่เหมือนกันอยู่ด้านล่าง (ภาพที่ 28, ภาพที่ 29)

แนะนำ: