【掌控】mpython-24…光阴的故事,物联光线-1

2018-11-071.2万
AI 快速预览详细 收起
本项目通过掌控板mPython实现光线数据上传至OneNET平台。首先,需要注册OneNET平台并记录设备的MQTT参数。接着,参考提供的代码进行修改并刷入掌控板。代码中添加了显示网络连接状态的功能,使用户可以直观看到WIFI连接过程。最后,在OneNET平台上设置接收端,即可查看上传的数据。该项目适合STEM教育场景,激发孩子对物联网的兴趣。
光阴的故事,物联光线-1
【小提示】本项目要在完成上两个帖子基础上完成。

测试掌控物联网上传功能,做了个光线数据上传ONENET平台的小案例,发布在群里,引起了吴俊杰老师的注意。
吴老师的思维够敏捷,提出了一个好玩的想法,多找一些伙伴来测试全国各地某一天的光线值,看能得到好玩的结果不。
【掌控】mpython-24…光阴的故事,物联光线-1图4
【掌控】mpython-24…光阴的故事,物联光线-1图1
【掌控】mpython-24…光阴的故事,物联光线-1图2
【掌控】mpython-24…光阴的故事,物联光线-1图3
所以呢,我们拉了个小群,打算来做一下这个有趣的事。

这个帖子,当作准备帖……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
看图说话。
【掌控】mpython-24…光阴的故事,物联光线-1图5
【掌控】mpython-24…光阴的故事,物联光线-1图6
【掌控】mpython-24…光阴的故事,物联光线-1图7
【掌控】mpython-24…光阴的故事,物联光线-1图8
预览一下,这时如果已连接,数据已经可以显示了。
保存。
【掌控】mpython-24…光阴的故事,物联光线-1图9
如果要发布,可以在网页,微信等平台分享。
可以填写申请。等待批准。
【掌控】mpython-24…光阴的故事,物联光线-1图10
【掌控】mpython-24…光阴的故事,物联光线-1图11
上面操作可以在平台帮助文档中查找。
我发布的页面如下。
https://open.iot.10086.cn/appview/p/caa5f2d01ef506385fc4fae9c55af484
【掌控】mpython-24…光阴的故事,物联光线-1图12
还可以有二维码分享。
【掌控】mpython-24…光阴的故事,物联光线-1图13

【4】数据查询
中移动的IOT平台不提供数据下载,但可以提供数据查询。
优点是数据不限量,保存一年。
【掌控】mpython-24…光阴的故事,物联光线-1图14
【掌控】mpython-24…光阴的故事,物联光线-1图15

还可以用代码查询。
我还不会,所以就不写了。

OK大伙先玩起来。其它功能自己探索一下吧。





创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
Ryan520
Ryan520
太赞了
- 没有更多了 -