MicroPython动手做(26)——物联网之OneNET
<div class='showpostmsg'><p><strong>1、物联网(Internet of Things,缩写:IoT)</strong></p><p>是基于互联网、传统电信网等信息承载体,让所有能行使独立功能的普通物体实现互联互通的网络。其应用领域主要包括运输和物流、工业制造、健康医疗、智能环境(家庭、办公、工厂)等,具有十分广阔的市场前景。</p>
<p> </p>
<p>物联网的概念最早是在1999年由Kevin Ashton在一次演讲中提出来的,当时他是一个RFID研究机构的执行主任,这家研究机构是在宝洁公司和吉列公司的赞助下成立的。而他本人也因此被称为物联网之父。随后麻省理工学院的Neil Gershenfeld教授出版了一本名为《When things Start to Think》的书。以这些为标志,正式揭开了物联网的序幕。</p>
<p> </p>
<p>物联网的英文是Internet of Things,缩写为IoT。这里的“物”指的是我身边一切能与网络联通的物品。例如你带的手表、你骑的共享单车、马路上的汽车、家里的冰箱、路边的路灯、甚至是一棵树。只要一件物品能够与网络相连,它就都是物联网中的“物”。而所谓物联网,就是“物”与人,以及“物”与“物”之间,通过网络来传递和处理信息。</p>
<p> </p>
<p></p>
</div><script> var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;" style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
if(parseInt(discuz_uid)==0){
(function($){
var postHeight = getTextHeight(400);
$(".showpostmsg").html($(".showpostmsg").html());
$(".showpostmsg").after(loginstr);
$(".showpostmsg").css({height:postHeight,overflow:"hidden"});
})(jQuery);
} </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script> <p>物联网的基本特征从通信对象和过程来看,物与物、人与物之间的信息交互是物联网的核心。物联网的基本特征可概括为整体感知、可靠传输和智能处理 。整体感知—可以利用射频识别、二维码、智能传感器等感知设备感知获取物体的各类信息。可靠传输—通过对互联网、无线网络的融合,将物体的信息实时、准确地传送,以便信息交流、分享。</p>
<p> </p>
<p>智能处理—使用各种智能技术,对感知和传送到的数据、信息进行分析处理,实现监测与控制的智能化。根据物联网的以上特征,结合信息科学的观点,围绕信息的流动过程,可以归纳出物联网处理信息的功能:</p>
<p>(1)获取信息的功能。主要是信息的感知、识别,信息的感知是指对事物属性状态及其变化方式的知觉和敏感;信息的识别指能把所感受到的事物状态用一定方式表示出来。</p>
<p>(2)传送信息的功能。主要是信息发送、传输、接收等环节,最后把获取的事物状态信息及其变化的方式从时间(或空间)上的一点传送到另一点的任务,这就是常说的通信过程。</p>
<p>(3)处理信息的功能。是指信息的加工过程,利用已有的信息或感知的信息产生新的信息,实际是制定决策的过程。</p>
<p>(4)施效信息的功能。指信息最终发挥效用的过程,有很多的表现形式,比较重要的是通过调节对象事物的状态及其变换方式,始终使对象处于预先设计的状态 。</p>
<p> </p>
<p></p>
<p><strong>2、OneNET平台</strong></p>
<p>是由中国移动打造的PaaS物联网开放平台。平台能够帮助开发者轻松实现设备接入与设备连接,快速完成产品开发部署,为智能硬件、智能家居产品提供完善的物联网解决方案。OneNET平台作为连接和数据的中心,能适应各种传感网络和通信网络,将面向智能家居、可穿戴设备、车联网、移动健康、智能创客等多个领域开放。</p>
<p> </p>
<p>中移OneNET,将数据传输协议、数据储存格式等中间层的东西标准化,形成一个统一、开源的设备云平台,标准化、简约化、集成化,减少企业负担的同时为下一阶段的大数据分析提供基础条件。</p>
<p> </p>
<p>核心能力输出</p>
<p>OneNET作为设备连接和数据的中心,面向物联网产业上下游企业提供标准化接入和定制化开发,具体能力输出包含2个方面:</p>
<p> </p>
<p>1. 硬件侧:平台适配各种网络环境、兼容国内外主流通信协议,定制化支撑私有通信协议,以及完备的SDK包,可支持各类传感器和智能硬件的快速接入和可控触发控制;还提供对智能硬件的网络状态、终端状态、流量情况、位置信息进行全面的管理和监控;</p>
<p> </p>
<p>2. 软件侧:平台通过丰富的API、应用孵化器、轻应用行业模板支持各类智能硬件和行业应用的图形化展示、SaaS层软件开发,满足物联网领域数据存储、数据安全、大数据分析等平台级服务需求。</p>
<p> </p>
<p>OneNET平台在提供设备连接服务和数据中心服务的基础上进行开放合作,面向智能硬件创客和创业型企业推出硬件社区服务(包括硬件集市、双创云等),以及数据展现、数据分析和应用生成服务;面向重点行业领域/大客户推出行业PaaS服务和提供行业应用定制化开发服务。</p>
<p> </p>
<p>IoT PaaS基础能力:提供智能设备自助开发工具、后台技术支持服务、物联网专网、短彩信、位置定位、设备管理、消息分发、远程升级等基础服务</p>
<p> </p>
<p>SaaS业务服务:提供第三方应用开发平台,快速实现不同业务需求,借助轻应用孵化器快速搭建Web和APP应用</p>
<p> </p>
<p>IoT数据云:提供高扩展的数据库、实时数据处理、智能预测离线数据分析、数据可视化展示等多维度的业务运营服务</p>
<p> </p>
<p>开发者社区:高频的开发者社区,汇聚着不同的知识源,集合更多的物联网爱好者,让项目与开发成果开始传播</p>
<p> </p>
<p></p>
<p></p>
<p>OneNET八大功能</p>
<p>专网专号:中国移动基于物联网特点打造的专业化网络通道,提供“云-管-端”一体化的智能管道和支撑系统,支持工业级、车规级的专网卡和通信模组;</p>
<p>海量连接:基于多类型标准协议和API开发满足海量设备的高并发快速接入;</p>
<p>在线监控:实现终端设备的监控管理、在线调试、实时控制功能;</p>
<p>数据存储:基于分布式云存储、消息对象结构、丰富的数据调用接口实现数据高并发读、写库操作,有效保障数据的安全;</p>
<p>消息分发:将采集的各类数据通过消息转发、短彩信推送、APP信息推送方式快速告知业务平台、用户手机、APP客户端,建立双向通信的有效通道;</p>
<p>能力输出:汇聚中国移动短彩信、位置服务、视频服务、公有云等核心能力,提供标准API接口,缩短终端与应用的开发周期;</p>
<p>事件告警:打造事件触发引擎,用户可以基于引擎快速实现应用逻辑编排;</p>
<p>数据分析:基于Hadoop等提供统一的数据管理与分析能力。</p>
<p> </p>
<p>OneNET应用领域</p>
<p>OneNET物联网专网已经应用于环境监控、远程抄表、智慧农业、智能家电、智能硬件、节能减排、车联网、工业控制、物流跟踪等多种商业领域。 物联网开放平台OneNET通过打造接入平台、能力平台、大数据平台能力满足物联网领域设备连接、协议适配、数据存储、数据安全、大数据分析等平台级服务需求。</p>
<p> </p>
<p></p>
<p><strong>3、注册oneNET平台账号:</strong></p>
<p> </p>
<p>打开 <a href="https://open.iot.10086.cn/" rel="nofollow" target="_blank">https://open.iot.10086.cn/</a></p>
<p> </p>
<p>根据个人情况选择个人注册或者企业注册</p>
<p> </p>
<p></p>
<p>注册并登陆成功之后,进入NB-loT物联网套件</p>
<p> </p>
<p></p>
<p>点击添加产品</p>
<p> </p>
<p></p>
<p> </p>
<p></p>
<p>填写产品信息和技术参数</p>
<p> </p>
<p></p>
<p>成功后,这样</p>
<p> </p>
<p></p>
<p>看着看着,雕爷就从小白变成高手了,有了dcexpert版主的MicroPython加持,雕爷更是如虎添翼。</p>
9zhmke 发表于 2020-6-1 11:41
看着看着,雕爷就从小白变成高手了,有了dcexpert版主的MicroPython加持,雕爷更是如虎添翼。
<p><img height="50" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/onion/Onion--2.gif" width="50" />谢谢老师的鼓励,还在学习中</p>
<p><strong>4、OneNET平台控制远程RGB灯</strong></p>
<p> </p>
<p>服务器地址不用修改,按照上述查看设备ID、产品ID、产品APIKey的方式找到这三项,并将其粘贴到对应程序位置。</p>
<p> </p>
<p>当OneNET收到特定消息“开灯”时,3个LED灯显示红色;当OneNET收到特定消息 “关灯”时,3个LED灯显示熄灭。</p>
<p> </p>
<pre>
<code>#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()</code></pre>
<p> </p>
<p> </p>
<p>烧入程序之后,不知哪里出错.......连不上平台</p>
<p> </p>
<p>串口输出:</p>
<p> </p>
<p>Traceback (most recent call last):</p>
<p>File "main.py", line 54, in <module></p>
<p>File "main.py", line 38, in OneNET_setup</p>
<p>File "umqtt/simple.py", line 99, in connect</p>
<p>MQTTException: 4</p>
<p>MicroPython v2.0.1-18-gbe8fbdd-dirty on 2020-04-24; mpython with ESP32</p>
<p> </p>
<p>屏显</p>
<p> </p>
<p></p>
<p>返回OneNET平台,在设备列表里面查看设备状态,设备依旧是“离线”,代表连接设备不成功。</p>
<p> </p>
<p></p>
<p>后来尝试在多协议接入---MQTT(旧版)上重新添加产品<br />
链接 https://open.iot.10086.cn/develop/global/product/#/public?protocol=3&other=1</p>
<p> </p>
<p></p>
<p>先添加产品,然后再添加设备,方可得到设备ID并显示在线,为连接成功。</p>
<p> </p>
<p></p>
<p>相关参考使用文档<br />
多协议接入 <br />
https://open.iot.10086.cn/doc/multiprotocol/#多协议接入</p>
<p> </p>
<p>MQTT物联网套件<br />
https://open.iot.10086.cn/doc/mqtt/</p>
<p> </p>
<p></p>
<p>mPython X 实验图形编程</p>
<p> </p>
<p></p>
<p>输入“开灯”命令。注意要选择字符串格式。</p>
<p> </p>
<p></p>
<p> </p>
<p></p>
<p>OneNET平台控制远程RGB灯</p>
<p> </p>
<p></p>
页:
[1]
2