6082| 1
|
[入门教程] 【掌控】mpython-24…光阴的故事,物联光线-1 |
光阴的故事,物联光线-1 【小提示】本项目要在完成上两个帖子基础上完成。 测试掌控物联网上传功能,做了个光线数据上传ONENET平台的小案例,发布在群里,引起了吴俊杰老师的注意。 吴老师的思维够敏捷,提出了一个好玩的想法,多找一些伙伴来测试全国各地某一天的光线值,看能得到好玩的结果不。 所以呢,我们拉了个小群,打算来做一下这个有趣的事。 这个帖子,当作准备帖……1。 【1】注册中国移动oneNET物联网平台,记录自己设备的MQTT参数。 方法参看帖子:https://mc.dfrobot.com.cn/forum.php?mod=viewthread&tid=271896 【2】代码准备代码参考掌控板帮助文档,我稍有改动。 [mw_shl_code=python,true]from simple import MQTTClient from mpython import * from machine import Timer import time, network, json # MQTT服务器地址域名为:183.230.40.39,不变 SERVER = "183.230.40.39" # 设备ID CLIENT_ID = "***" # 产品ID username = '***' # 产品APIKey: password = '***' # wifi参数 SSID = "***" # wifi名称 PASSWORD = "****" # 密码 wlan = None message = {'datastreams':[ { 'id':'sound', 'datapoints':[{'value':0}] }, { 'id':'light', 'datapoints':[{'value':0}] } ]} tim1 = Timer(1) # 创建定时器 # 本函数实现wifi连接 def ConnectWifi(ssid=SSID,passwd=PASSWORD): global wlan wlan=network.WLAN(network.STA_IF) wlan.active(True) wlan.disconnect() wlan.connect(ssid,passwd) while(wlan.ifconfig()[0]=='0.0.0.0'): time.sleep(1) print('Connecting to network...') # 下面四行是我加的,为了显示网络正在连接 display.fill(0) display.DispChar("IOT连接中...", 16, 16) display.show() print('WiFi Connection Successful,Network Config:%s' % str(wlan.ifconfig())) def pubdata(data): j_d = json.dumps(data) j_l = len(j_d) arr = bytearray(j_l + 3) arr[0] = 1 # publish数据类型为json arr[1] = int(j_l / 256) # json数据长度 高位字节 arr[2] = j_l % 256 # json数据长度 低位字节 arr[3:] = j_d.encode('ascii') # json数据 return arr def publishSenser(): #message['datastreams'][0]['datapoints'][0]['value']=sound.read() message['datastreams'][1]['datapoints'][0]['value']=light.read() c.publish('$dp',pubdata(message)) #publish报文上传数据点 print('publish message:',message) # 下面四行是我加的,同步显示上传数据 display.fill(0) display.DispChar("IOT连接成功", 16, 0) display.DispChar("光线值:", 16, 16) display.DispChar(str(light.read()), 16, 32) display.show() ConnectWifi() c = MQTTClient(CLIENT_ID, SERVER, 6002, username, password) c.connect() print("Connected to %s" % SERVER) tim1.init(period=1000, mode=Timer.PERIODIC, callback=lambda _: publishSenser()) # 每隔一秒(可以改变)上传数据点[/mw_shl_code] 代码刷入掌控板,设为默认运行,重启掌控,连接WIFI(信号要好点啊),数据开始上传了。 怎么看到平台上的数据呢,要做下面设置。 【3】平台接收端设置 参考帖子:https://mc.dfrobot.com.cn/forum.php?mod=viewthread&tid=272037 看图说话。 预览一下,这时如果已连接,数据已经可以显示了。 保存。 如果要发布,可以在网页,微信等平台分享。 可以填写申请。等待批准。 上面操作可以在平台帮助文档中查找。 我发布的页面如下。 https://open.iot.10086.cn/appview/p/caa5f2d01ef506385fc4fae9c55af484 还可以有二维码分享。 【4】数据查询 中移动的IOT平台不提供数据下载,但可以提供数据查询。 优点是数据不限量,保存一年。 还可以用代码查询。 我还不会,所以就不写了。 OK大伙先玩起来。其它功能自己探索一下吧。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed