9265| 29
|
[MP动手做] MicroPython动手做(26)——物联网之OneNET |
1、物联网(Internet of Things,缩写:IoT) 是基于互联网、传统电信网等信息承载体,让所有能行使独立功能的普通物体实现互联互通的网络。其应用领域主要包括运输和物流、工业制造、健康医疗、智能环境(家庭、办公、工厂)等,具有十分广阔的市场前景。 物联网的概念最早是在1999年由Kevin Ashton在一次演讲中提出来的,当时他是一个RFID研究机构的执行主任,这家研究机构是在宝洁公司和吉列公司的赞助下成立的。而他本人也因此被称为物联网之父。随后麻省理工学院的Neil Gershenfeld教授出版了一本名为《When things Start to Think》的书。以这些为标志,正式揭开了物联网的序幕。 物联网的英文是Internet of Things,缩写为IoT。这里的“物”指的是我身边一切能与网络联通的物品。例如你带的手表、你骑的共享单车、马路上的汽车、家里的冰箱、路边的路灯、甚至是一棵树。只要一件物品能够与网络相连,它就都是物联网中的“物”。而所谓物联网,就是“物”与人,以及“物”与“物”之间,通过网络来传递和处理信息。 |
6、通过OneNET平台控制小车的进退左右 [mw_shl_code=python,false]#MicroPython动手做(26)——物联网之OneNET #通过OneNET平台控制小车的进退左右 from mpython import * import network my_wifi = wifi() my_wifi.connectWiFi('zh', 'zy1567') import music import time from umqtt.simple import MQTTClient from machine import Timer import machine import ubinascii def OneNET_recv(_msg):pass _OneNET_msg_list = [] def OneNET_callback(_topic, _msg): global _OneNET_msg_list try: _msg = _msg.decode('utf-8', 'ignore') except: print(_msg);return OneNET_recv(_msg) if _msg in _OneNET_msg_list: eval('OneNET_recv_' + bytes.decode(ubinascii.hexlify(_msg)) + '()') tim14 = Timer(14) _iot_count = 0 def timer14_tick(_): global _iot, _iot_count _iot_count = _iot_count + 1 if _iot_count == 1000: _iot.ping(); _iot_count = 0 try: _iot.check_msg() except: machine.reset() _iot = None def OneNET_setup(): global _iot _iot = MQTTClient('600999469', '183.230.40.39', 6002, '350265', 'l6S0BsjGXsQACV3hBhml7=3pwCo=', keepalive=300) _iot.set_callback(OneNET_callback) if 1 == _iot.connect(): print('Successfully connected to MQTT server.') tim14.init(period=200, mode=Timer.PERIODIC, callback=timer14_tick) import parrot def forward(): parrot.set_speed(parrot.MOTOR_1, 80) parrot.set_speed(parrot.MOTOR_2, 80) oled.fill(0) oled.blit(image_picture.load('face/Information/Forward.pbm', 0), 32, 0) oled.show() def retreat(): parrot.set_speed(parrot.MOTOR_1, -80) parrot.set_speed(parrot.MOTOR_2, -80) oled.fill(0) oled.blit(image_picture.load('face/Information/Backward.pbm', 0), 32, 0) oled.show() def right(): parrot.set_speed(parrot.MOTOR_1, 80) parrot.set_speed(parrot.MOTOR_2, -0) oled.fill(0) oled.blit(image_picture.load('face/Information/Right.pbm', 0), 32, 0) oled.show() def Left(): parrot.set_speed(parrot.MOTOR_1, -0) oled.fill(0) oled.blit(image_picture.load('face/Information/Left.pbm', 0), 32, 0) oled.show() _OneNET_msg_list.append('进') def OneNET_recv_e8bf9b(): rgb.fill((int(0), int(102), int(0))) rgb.write() time.sleep_ms(1) forward() _OneNET_msg_list.append('退') def OneNET_recv_e98080(): rgb.fill((int(51), int(102), int(255))) rgb.write() time.sleep_ms(1) retreat() _OneNET_msg_list.append('左') def OneNET_recv_e5b7a6(): rgb[0] = (int(0), int(102), int(0)) rgb.write() time.sleep_ms(1) Left() _OneNET_msg_list.append('右') def OneNET_recv_e58fb3(): rgb[2] = (int(0), int(102), int(0)) rgb.write() time.sleep_ms(1) right() image_picture = Image() oled.fill(0) oled.DispChar(' 请准备好物联网控制', 0, 16, 1) oled.show() music.play('G5:1') rgb[1] = (int(255), int(0), int(0)) rgb.write() time.sleep_ms(1) OneNET_setup() while True: oled.fill(0) parrot.set_speed(parrot.MOTOR_1, 0) parrot.set_speed(parrot.MOTOR_2, 0) rgb.fill( (0, 0, 0) ) rgb.write() time.sleep_ms(1) oled.show() time.sleep(2)[/mw_shl_code] |
5、在电脑查看掌控板实时的光线值 掌控板上显示电脑上发送的命令(字符串),并点亮红色灯;当发送“open”命令时,掌控板传送“光线值”的数据流到电脑,并点亮蓝色灯,发送“close”,蓝灯熄灭。 [mw_shl_code=python,false]#MicroPython动手做(26)——物联网之OneNET #在电脑查看掌控板实时的光线值 from mpython import * import network from umqtt.simple import MQTTClient from machine import Timer import machine import ubinascii import time import json my_wifi = wifi() my_wifi.connectWiFi("zh", "zy1567") def OneNET_recv(_msg):pass _OneNET_msg_list = [] def OneNET_callback(_topic, _msg): global _OneNET_msg_list try: _msg = _msg.decode('utf-8', 'ignore') except: print(_msg);return OneNET_recv(_msg) if _msg in _OneNET_msg_list: eval('OneNET_recv_' + bytes.decode(ubinascii.hexlify(_msg)) + '()') tim14 = Timer(14) _iot_count = 0 def timer14_tick(_): global _iot, _iot_count _iot_count = _iot_count + 1 if _iot_count == 1000: _iot.ping(); _iot_count = 0 try: _iot.check_msg() except: machine.reset() _iot = None def OneNET_setup(): global _iot _iot = MQTTClient("600844609", "183.230.40.39", 6002, "350265", "l6S0BsjGXsQACV3hBhml7=3hgCo=", keepalive=300) _iot.set_callback(OneNET_callback) if 1 == _iot.connect(): print('Successfully connected to MQTT server.') tim14.init(period=200, mode=Timer.PERIODIC, callback=timer14_tick) def pubdata(_dic): print(_dic) _list = [] for _key in list(_dic.keys()): _d = {'id':_key,'datapoints':[{'value':_dic[_key]}]} _list.append(_d) _data = {'datastreams': _list} j_d = json.dumps(_data) j_l = len(j_d) arr = bytearray(j_l + 3) arr[0] = 1 arr[1] = int(j_l / 256) arr[2] = j_l % 256 arr[3:] = j_d.encode('ascii') return arr def OneNET_recv(_msg): oled.fill(0) oled.DispChar(_msg, 0, 0, 1) oled.show() if _msg.isdigit(): rgb.fill( (int((int(_msg))), int(0), int(0)) ) rgb.write() time.sleep_ms(1) _OneNET_msg_list.append('open') def OneNET_recv_6f70656e(): rgb.fill((int(0), int(0), int(153))) rgb.write() time.sleep_ms(1) _OneNET_msg_list.append('close') def OneNET_recv_636c6f7365(): rgb.fill( (0, 0, 0) ) rgb.write() time.sleep_ms(1) OneNET_setup() while True: _iot.publish('$dp', pubdata({"light":light.read()})) time.sleep(3)[/mw_shl_code] |
4、OneNET平台控制远程RGB灯 服务器地址不用修改,按照上述查看设备ID、产品ID、产品APIKey的方式找到这三项,并将其粘贴到对应程序位置。 当OneNET收到特定消息“开灯”时,3个LED灯显示红色;当OneNET收到特定消息 “关灯”时,3个LED灯显示熄灭。 [mw_shl_code=python,false]#MicroPython动手做(26)——物联网之OneNET #OneNET平台控制远程RGB灯 from mpython import * import network from umqtt.simple import MQTTClient from machine import Timer import machine import ubinascii import time my_wifi = wifi() my_wifi.connectWiFi("zh", "zy1567") def OneNET_recv(_msg):pass _OneNET_msg_list = [] def OneNET_callback(_topic, _msg): global _OneNET_msg_list try: _msg = _msg.decode('utf-8', 'ignore') except: print(_msg);return OneNET_recv(_msg) if _msg in _OneNET_msg_list: eval('OneNET_recv_' + bytes.decode(ubinascii.hexlify(_msg)) + '()') tim14 = Timer(14) _iot_count = 0 def timer14_tick(_): global _iot, _iot_count _iot_count = _iot_count + 1 if _iot_count == 1000: _iot.ping(); _iot_count = 0 try: _iot.check_msg() except: machine.reset() _iot = None def OneNET_setup(): global _iot _iot = MQTTClient("192156", "183.230.40.39", 6002, "350146", "ZoSC5kM1oKqM7P6oCvbsaNOkDhg=", keepalive=300) _iot.set_callback(OneNET_callback) if 1 == _iot.connect(): print('Successfully connected to MQTT server.') tim14.init(period=200, mode=Timer.PERIODIC, callback=timer14_tick) _OneNET_msg_list.append('开灯') def OneNET_recv_e5bc80e781af(): rgb.fill((int(204), int(0), int(0))) rgb.write() time.sleep_ms(1) _OneNET_msg_list.append('关灯') def OneNET_recv_e585b3e781af(): rgb.fill( (0, 0, 0) ) rgb.write() time.sleep_ms(1) OneNET_setup()[/mw_shl_code] |
物联网的基本特征从通信对象和过程来看,物与物、人与物之间的信息交互是物联网的核心。物联网的基本特征可概括为整体感知、可靠传输和智能处理 。整体感知—可以利用射频识别、二维码、智能传感器等感知设备感知获取物体的各类信息。可靠传输—通过对互联网、无线网络的融合,将物体的信息实时、准确地传送,以便信息交流、分享。 智能处理—使用各种智能技术,对感知和传送到的数据、信息进行分析处理,实现监测与控制的智能化。根据物联网的以上特征,结合信息科学的观点,围绕信息的流动过程,可以归纳出物联网处理信息的功能: (1)获取信息的功能。主要是信息的感知、识别,信息的感知是指对事物属性状态及其变化方式的知觉和敏感;信息的识别指能把所感受到的事物状态用一定方式表示出来。 (2)传送信息的功能。主要是信息发送、传输、接收等环节,最后把获取的事物状态信息及其变化的方式从时间(或空间)上的一点传送到另一点的任务,这就是常说的通信过程。 (3)处理信息的功能。是指信息的加工过程,利用已有的信息或感知的信息产生新的信息,实际是制定决策的过程。 (4)施效信息的功能。指信息最终发挥效用的过程,有很多的表现形式,比较重要的是通过调节对象事物的状态及其变换方式,始终使对象处于预先设计的状态 。 |
2、OneNET平台 是由中国移动打造的PaaS物联网开放平台。平台能够帮助开发者轻松实现设备接入与设备连接,快速完成产品开发部署,为智能硬件、智能家居产品提供完善的物联网解决方案。OneNET平台作为连接和数据的中心,能适应各种传感网络和通信网络,将面向智能家居、可穿戴设备、车联网、移动健康、智能创客等多个领域开放。 中移OneNET,将数据传输协议、数据储存格式等中间层的东西标准化,形成一个统一、开源的设备云平台,标准化、简约化、集成化,减少企业负担的同时为下一阶段的大数据分析提供基础条件。 核心能力输出 OneNET作为设备连接和数据的中心,面向物联网产业上下游企业提供标准化接入和定制化开发,具体能力输出包含2个方面: 1. 硬件侧:平台适配各种网络环境、兼容国内外主流通信协议,定制化支撑私有通信协议,以及完备的SDK包,可支持各类传感器和智能硬件的快速接入和可控触发控制;还提供对智能硬件的网络状态、终端状态、流量情况、位置信息进行全面的管理和监控; 2. 软件侧:平台通过丰富的API、应用孵化器、轻应用行业模板支持各类智能硬件和行业应用的图形化展示、SaaS层软件开发,满足物联网领域数据存储、数据安全、大数据分析等平台级服务需求。 OneNET平台在提供设备连接服务和数据中心服务的基础上进行开放合作,面向智能硬件创客和创业型企业推出硬件社区服务(包括硬件集市、双创云等),以及数据展现、数据分析和应用生成服务;面向重点行业领域/大客户推出行业PaaS服务和提供行业应用定制化开发服务。 IoT PaaS基础能力:提供智能设备自助开发工具、后台技术支持服务、物联网专网、短彩信、位置定位、设备管理、消息分发、远程升级等基础服务 SaaS业务服务:提供第三方应用开发平台,快速实现不同业务需求,借助轻应用孵化器快速搭建Web和APP应用 IoT数据云:提供高扩展的数据库、实时数据处理、智能预测离线数据分析、数据可视化展示等多维度的业务运营服务 开发者社区:高频的开发者社区,汇聚着不同的知识源,集合更多的物联网爱好者,让项目与开发成果开始传播 |
OneNET八大功能 专网专号:中国移动基于物联网特点打造的专业化网络通道,提供“云-管-端”一体化的智能管道和支撑系统,支持工业级、车规级的专网卡和通信模组; 海量连接:基于多类型标准协议和API开发满足海量设备的高并发快速接入; 在线监控:实现终端设备的监控管理、在线调试、实时控制功能; 数据存储:基于分布式云存储、消息对象结构、丰富的数据调用接口实现数据高并发读、写库操作,有效保障数据的安全; 消息分发:将采集的各类数据通过消息转发、短彩信推送、APP信息推送方式快速告知业务平台、用户手机、APP客户端,建立双向通信的有效通道; 能力输出:汇聚中国移动短彩信、位置服务、视频服务、公有云等核心能力,提供标准API接口,缩短终端与应用的开发周期; 事件告警:打造事件触发引擎,用户可以基于引擎快速实现应用逻辑编排; 数据分析:基于Hadoop等提供统一的数据管理与分析能力。 OneNET应用领域 OneNET物联网专网已经应用于环境监控、远程抄表、智慧农业、智能家电、智能硬件、节能减排、车联网、工业控制、物流跟踪等多种商业领域。 物联网开放平台OneNET通过打造接入平台、能力平台、大数据平台能力满足物联网领域设备连接、协议适配、数据存储、数据安全、大数据分析等平台级服务需求。 |
烧入程序之后,不知哪里出错.......连不上平台 串口输出: Traceback (most recent call last): File "main.py", line 54, in <module> File "main.py", line 38, in OneNET_setup File "umqtt/simple.py", line 99, in connect MQTTException: 4 MicroPython v2.0.1-18-gbe8fbdd-dirty on 2020-04-24; mpython with ESP32 屏显 |
相关参考使用文档 多协议接入 https://open.iot.10086.cn/doc/multiprotocol/#多协议接入 MQTT物联网套件 https://open.iot.10086.cn/doc/mqtt/ |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed