รีวิวเกตเวย์ BLE <-> MQTT GL.inet GL-S10 พร้อมซอฟแวร์ MQTT X

ฉันเริ่มรีวิวเกตเวย์ ESP32 BLE <-> MQTT (GL.inet GL-S10) ในเดือนธันวาคมโดยแกะกล่องและแยกส่วนประกอบของเกตเวย์ ESP32 และอุปกรณ์เสริม BLE beacon  ตอนนี้ฉันได้เล่นกับอุปกรณ์และแอพพลิเคชั่นและซอฟต์แวร์ที่แนะนำ และใช้เวลานานกว่าที่คาดไว้ เนื่องจากฉันพบปัญหาหลายอย่างในระหว่างการทดสอบ ซึ่งส่วนใหญ่ควรได้รับการแก้ไขด้วยเฟิร์มแวร์ใหม่และเอกสารจะได้รับการอัปเดตอีกไม่นาน

รีวิว-GL.inet-GL-S10
BLE beacon, GL-S10 Tool App สำหรับ Android และเกตเวย์ GL-S10

ฉันทำตามขั้นตอนจากคู่มือผู้ใช้โดยละเอียด ฉันเริ่มจากติดตั้ง GL-S10 Tool App สำหรับ Android จากนั้นเปิดเครื่องเกตเวย์ แล้วกดปุ่มเพื่อเข้าสู่โหมดการจับคู่อุปกณ์ และในไม่นานก็พบเกตเวย์

GL-S10-Tool-App-Scan

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

GL-S10-Configure-WiFi

คุณจะสามารถกำหนดการตั้งค่าเครือข่าย เช่น ข้อมูลประจำตัว DHCP/FIxed IP และ WiFi ตลอดจนการตั้งค่าเซิร์ฟเวอร์ MQTT และกำหนเขตเวลา ฉันสามารถเชื่อมต่อกับจุดเชื่อมต่อ WiFi ได้ แต่เพียงช่วงเวลาสั้นๆ เท่านั้น และได้รับข้อความ “Device Disconnected” (ไม่มีการเชื่อมต่อกับอุปกรณ์)

GL-S10-อุปกรณ์-ขาดการเชื่อมต่อ

สิ่งนี้จะเกิดขึ้นทุกครั้งในขณะที่ฉันเข้าสู่โหมดการจับคู่เพื่อกำหนดค่าในแอป และเข้าได้แค่ระยะเวลาไม่ถึง 1 นาที ฉันจึงพยายามรีเซ็ตเกตเวย์เป็นการตั้งค่าจากโรงงานโดยกดปุ่มเป็นเวลา 10 วินาที และแม้กระทั่งล้างข้อมูลและถอนการติดตั้งแอปในโทรศัพท์เพื่อลองอีกครั้ง แต่ฉันมีปัญหาเดียวกัน หลังจากติดต่อบริษัทและแชร์ข้อมูล พวกเขาพบว่าฮาร์ดแวร์อาจมีข้อบกพร่องและจะส่งอุปกรณ์ให้ใหม่

โปรดทราบว่าฉันใช้ฮอตสปอต “โมเด็ม 4G LTE WiFi” เพื่อติดตั้งซิมการ์ดที่มีบริการข้อมูล 10 Mbps และเมื่อกลับบ้านฉันใช้อินเทอร์เน็ตบรอดแบนด์ ฉันได้ทดสอบอีกครั้งโดยใช้เกตเวย์ GL-S10 “เก่า” แล้วปัญหาก็หายไป… การเชื่อมต่อเกตเวย์กับเราเตอร์ของฉันก็ไม่มีปัญหา

WPA-WPA2-PSK

นั่นเป็นเพราะเราเตอร์ WiFi ของที่กำหนดค่าด้วยวิธีการเข้ารหัส “WPA WPA2-PSK” เราเตอร์นั้นจะแสดงเป็นสีเทาเพราะ GL-S10 ไม่รองรับ การเปลี่ยนการตั้งค่าในเราเตอร์ WiFi เป็นทางออกเดียว แม้แต่เฟิร์มแวร์ล่าสุด (v2.3.1) เมื่อสิ่งนี้ได้รับการแก้ไข ฉันมีการเชื่อมต่อที่เสถียรแล้ว

ขั้นตอนต่อไปคือการติดตั้ง MQTT X MQTT 5.0 ไคลเอ็นต์เดสก์ท็อปแบบโอเพ่นซอร์ส  สำหรับระบบปฏิบัติการ Windows, Mac OS และ Linux ฉันติดตั้งบนโน๊ตบุ๊ค Ubuntu 20.04 ได้อย่างรวดเร็ว:


MQTTX-Ubuntu

มาสร้างการเชื่อมต่อใหม่กับ Beta Test Server (เป็นเซิร์ฟเวอร์ที่ไว้ใช้ทดสอบระบบต่างๆก่อนนำเข้าสู่เซิร์ฟเวอร์หลัก) ของ GL.inet ที่ “iot-s10-test.gl-inet.cn” บนพอร์ต 1884

MQTTX-การเชื่อมต่อ-GL-Inet-ทดสอบ-เซิร์ฟเวอร์

แอป Android ทดสอบบนเซิร์ฟเวอร์เดียวกัน แต่ใช้ที่อยู่ IP (134.175.4.252) แทน URL

MQTT-การกำหนดค่า

การกำหนดค่า MQTT ด้านบนยังรวมถึงคำสั่งของหัวข้อและสตริงตอบกลับสำหรับเกตเวย์ รายงานการกำหนดค่าจากอุปกรณ์ BLE ที่มี RSSI threshold และกฎตัวกรอง (filter rules) เพื่อส่งข้อมูลที่เกี่ยวข้องเท่านั้น หากไม่มีการเลือกตัวกรองข้อมูลเกี่ยวกับอุปกรณ์ BLE อื่น ๆ จะถูกส่งไปเช่นเดียวกับที่เราจะเห็นด้านล่าง

กลับไปที่ MQTT X ฉันสามารถเชื่อมต่อกับเซิร์ฟเวอร์ GL.inet MQTT ได้อย่างง่ายดาย…

MQTT-การเชื่อมต่อ-สำเร็จ

 

และสมัครสมาชิกใหม่กับ GL-IoT/rspTopic/<GL-S10 MAC> เพื่อรับการตอบสนองต่อคำสั่ง MQTT ที่ฉันส่ง

MQTT-X-สมัครสมาชิกใหม่

เมื่อส่งคำสั่งโดยใช้ GL-IoT/comTopic/<GL-S10 MAC> ด้วยข้อมูล JSON ที่จัดรูปแบบอย่างเหมาะสม ฉันไม่ได้รับคำตอบเหมือนว่าเกตเวย์ออฟไลน์อยู่

MQTTX-ไม่ตอบสนอง

แต่สิ่งที่เกิดขึ้นคือที่อยู่ IP ของเวอร์ชันทดสอบเปลี่ยนไป:


หลังจากเปลี่ยนการตั้งค่าในแอพ android ด้วยที่อยู่ IP ใหม่…

GL-S10-Tool-App-mqtt-ip-address

ฉันยังไม่สามารถได้รับคำตอบจากคำสั่งหัวข้อได้ แต่หลังจากสมัคร GL-IoT/dataTopic/<GL-S10 Mac> ฉันได้รับข้อมูลจาก BLE beacon ทุกวินาทีตามที่กำหนดค่า

MQTT-X-data-repoting-BLE-beacons

ในที่สุดก็บอกว่าไม่มีเฟิร์มแวร์ล่าสุดและถูกขอให้อัพเกรดเป็น http://iot-s10-test.gl-inet.cn/s10/ota/gl_s10_v2.3.1.bin ซึ่งต้องพิมพ์ด้วยตนเองในแอพก่อนที่จะดำเนินการอัปเดต

GL-S10-OTA-อัพเกรด

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

ตอนนี้ที่ทุกอย่างใช้งานได้ แสดงว่ามันใช้ได้ผล GL-S10 Config API แสดงรายการคำสั่งที่อนุญาตให้ผู้ใช้ทำทุกอย่างที่สามารถทำได้ในแอปพลิเคชันมือถือที่ใช้ MQTT แบบไคลเอนต์ ด้วยคำสั่งรูปแบบ JSON ไปที่คำสั่งเพื่อกำหนดค่า WiFi และเรียกข้อมูลรับรอง WiFi เนื่องจากเป็นคำสั่งสองคำสั่งแรก

GL-S10-API-SET_WIFI_CONFIG

หลังจากสร้างการสมัครสมาชิกใหม่ด้วย GL-IoT/rspTopic/<GL-S10 MAC> ให้สร้างคำสั่ง (ดูส่วนด้านล่างขวา) ด้วย GL-IoT/comTopic/<GL-S10 MAC> และข้อมูล JSON ดังต่อไปนี้:


เมื่อ type เท่ากับ 0, SSID, สามารถตั้งค่า PASSWORD เมื่อเท่ากับ 1 SSID, USERNAME, USERPASSWORD สามารถตั้งค่าได้ ssid คือชื่อจุดเชื่อมต่อ p ถึง 32 อักขระ pwd รหัสผ่านสูงสุด 64 อักขระ และ id คือหมายเลขคำสั่ง (0x01) สำหรับ SET_WIFI_CONFIG

หากทุกอย่างใช้งานได้ เราควรได้รับข้อมูล JSON ต่อไปนี้เป็นการตอบกลับ:


0x00 แสดงถึงความสำเร็จในการดำเนินการ และ 0x01 แสดงถึงความล้มเหลวในการดำเนินการ

แต่เราสามารถส่งคำสั่ง GET_WIFI_CONFIG เพื่อตรวจสอบอีกครั้ง:

GL-S10-API-GET_WIFI_CONFIG

ทั้งหมดคือดี. ดังที่ได้กล่าวไปแล้ว คุณยังสามารถกำหนดค่า/ตรวจสอบพารามิเตอร์เกตเวย์อื่นๆ ด้วย API เช่น DHCP/Fixed IP, เซิร์ฟเวอร์ MQTT, topic, timer interval (จับเวลา), Bluetooth filter และอื่นๆ

มาเปิด BLE beacon ที่มาพร้อมกับ GL-S10 โดยสมัครสมาชิกใหม่ให้กับ GL-IoT/dataTopic/<GL-S10 MAC> และรับข้อมูลทุกวินาทีหรือทุกช่วงเวลาที่กำหนดค่าในแอปหรือผ่าน MQTT ไคลเอนต์

MQTT-X-BLE-Beacon-data

ข้อมูลมีลักษณะดังนี้:


ด้านบนเป็นข้อมูลบางส่วนเกี่ยวกับเกตเวย์ และ dev_list รายงานข้อมูลเกี่ยวกับ BLE beacon รวมถึง MAC, RSSI, ad (ข้อมูลออกอากาศ advData ) และ ts (timestamp) หาก BLE beacon มีชื่อก็จะมีฟิลด์ “n” พร้อมข้อมูลด้วย

ที่นี่เรามีอุปกรณ์ 2 อัน แต่เห็นได้ชัดว่า BLE beacon ของเราส่งข้อความสองข้อความ RSSI อยู่ที่ประมาณ -43 ถึง -45 dBm โดยมี beacon อยู่ห่างจากเกตเวย์ประมาณห้าเซนติเมตร มาดูกันว่าจะเกิดอะไรขึ้นถ้าฉันย้าย BLE beacon ไปจากเกตเวย์ประมาณ 9 เมตร (ระดับสายตา):


ความแรงของสัญญาณลดลงอย่างมากเป็น -65 dBm และข้อมูลประเภทนี้สามารถช่วยเราประเมินระยะห่างจากเกตเวย์ภายในห้องได้ เช่นเดียวกับการใช้ beacon หลายตัวแม้แต่ตำแหน่งในอาคาร ฉันทำสิ่งนี้ด้วยการ MAC filter เพื่อแสดงข้อมูลจาก beacon เท่านั้น มาลบการ MAC filter :


มีอุปกรณ์ใหม่ที่มี “697E44B45AE0” Bluetooth MAC ฉันหาแบรนด์ไม่เจอแต่เมื่อวานฉันสังเกตเห็นอุปกรณ์อื่นที่มี MAC A4E22988ED6F ซึ่งมีลักษณะเป็น “Qingdao Haier Technology Co.,Ltd” อืม.. บ้านนี้มีอุปกรณ์ Haier บ้างไหม? …ใช่, สัปดาห์นี้ฉันติดตั้งเครื่องปรับอากาศในห้องนอน และแน่นอนว่ามีจุดเชื่อมต่อ WiFi แบบเปิดสำหรับเครื่องปรับอากาศด้วย แอร์ของฉันกำลังส่งข้อความ BLE…

เกตเวย์สามารถใช้เป็นอุปกรณ์ติดตาม (แฟนของฉันที่บ้านหรือไม่) … เนื่องจากสามารถติดตาม Amazfit Bip Watch ของเธอได้:


ซึ่งจะต้องมีการทดสอบความปลอดภัยที่ดีขึ้นอย่างเห็นได้ชัดด้วยชื่อผู้ใช้ รหัสผ่าน และการเชื่อมต่อ SSL/TLS แต่ฉันหมดเวลาสำหรับการทดสอบแล้ว

ฉันขอขอบคุณ GL.inet ที่ส่ง GL-S10 เกตเวย์ BLE <-> MQTT เพื่อทดสอบ คุณสามารถซื้อพร้อมกับ beaconได้ในราคา $29.90 (~970฿) ที่ร้านค้าGL.Inet

แปลจากบทความภาษาอังกฤษ : Review of GL.inet GL-S1ทด0 BLE to MQTT gateway with MQTT X open-source client

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
โฆษณา