移远EM800M模组使用python连接MQTT服务器测试
使用移远CAT1模组进行服务器MQTT协议测试
(非正式文档,仅供参考)
测试目的:
测试CAT1模组到MQTT服务器。
测试设备:
CAT1通信板 (CAT1通信板 USB接口仅为电脑调试用途)
PC机一台
测试软件:
Mqtt.fx V1.7.1
测试步骤:
1. 打开Mqtt.fx,设置
2. 设置服务器地址参数mq.tongxinmao.com,18830,MQTT_FX_Client
3. 连接服务器
4. 订阅主题/public/eum150s/upload
5. 设备上电插上220V,等待 出现eum150s connect success,表示设备连接成功。
6. 在主题 /public/eum150s/dl 中发布消息 info, 即可查询设备的信息,大约3S延迟,此延迟时间为驱动电源和CAT1交互数据时间,非网络延迟
上图分别是:输入电压和电流,输出电压和电流,调光值,LED输出功率和设备有功功率,输入频率,功率因数,内外部温度,LED亮灯时间,驱动器运行时间
部分MQTT代码:
stagecode, subcode = checknet.wait_network_connected(30) if stagecode == 3 and subcode == 1: uart_log.info("net connect success") # 创建实例 mqtt_server_obj = MQTTClient("umqtt_client_001", "mq.tongxinmao.com", 18830) #设置回调函数 mqtt_server_obj.set_callback(mqtt_sub_cb) #建立连接 mqtt_server_obj.connect() #订阅主题 mqtt_server_obj.subscribe(b"/public/eum150s/dl") utime.sleep(1) mqtt_server_obj.publish(b"/public/eum150s/upload","eum150s connect success") utime.sleep(1) for i in range(1000): while True: mqtt_server_obj.wait_msg() # 阻塞函数,监听消息 #utime.sleep(0.2) if state == 1 or state == 2: break # 4 发送数据 #mqtt_send_to_server utime.sleep(1) # 3 读取数据 uart_test.uart_get_device_info() mqtt_server_obj.publish(b"/public/eum150s/upload", b"vin:{}v,{}mA vout:{}v,{}mA dim:{:.0f} power:{}W,{}W freq:{}Hz pf:{} temp:{},{} on:{}h run:{}h".\ format(uart_test.led_driver_voltage_in, uart_test.led_driver_current_in, \ uart_test.led_driver_voltage_out, uart_test.led_driver_current_out, \ uart_test.led_driver_dimm, uart_test.led_driver_power_in, uart_test.led_driver_power_out, \ uart_test.led_driver_hz, uart_test.led_driver_pfc, uart_test.led_driver_temp_in, uart_test.led_driver_temp_out ,\ uart_test.led_driver_on_timr, uart_test.led_driver_run_time)) # 5 关闭连接 #mqtt_close_server mqtt_server_obj.publish(b"/public/eum150s/upload", b"mqtt closed") mqtt_server_obj.disconnect()