-- 1.Setup the device ID and access credential. -- Device ID.It is a random string for each device. -- But, it should match the device ID set up on Watson IoTP. device_id = "random_string" -- The access token Watson IoTP assigned for the device. access_token = "assigned_by_Watson" |
-- 2.Connect to the MQTT service. -- Init MQTT client with keepalive timer 120s m = mqtt.Client(device_id, 120, "use-token-auth", access_token) -- setup Last Will and Testament (optional) -- Broker will publish a message "offline" to topic "dw/lwt" -- if client doesn't send keepalive packet m:lwt("dw/lwt", "offline", 0, 0) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | -- 3.Send data to the MQTT server. m:connect("host.iotp.mqtt.bluemix.com", 1883, 0, function(client) print("connected") -- subscribe topic with QoS = 0 client:subscribe("dw/air", 0, function(client) print("subscribe success") end) -- publish a message with QoS = 0, retain = 0 client:publish("dw/air", pm25, 0, 0, function(client) print("sent") end) end, function(client, reason) print("failed reason: " .. reason) end ) m:close(); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | -- In the m:connect loop client:subscribe("dw/control", 0) -- ...... mn("message", function(client, topic, data) if topic == "dw/control" then print(data) t = {} for k, v in string.gmatch(data, "[^%s]+") do t[k] = v end if t[0] == device_id then -- Change the main loop interval to t[1] end end) |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |