关键词:物联网、智慧城市、智能灯、云计算、小程序
一、应用场景
该作品方案针对智慧城市-公共事业-路灯照明场景,基于TencentOS tiny&IoT Explorer进行设计,可实现城市路灯智能化监控、数据自动采集、多端控制与智能调光。以下是场景应用展示:
二、方案介绍
系统整体架构包含四个部分,物联网终端、云端、数据中台以及手机移动终端;IOT设备支持多路光照度传感器以及路灯的接入,实现不同区域光照度信号的采集与路灯控制;智能设备通过WIFI或2/4G方式联网(本作品采用WIFI模块联网),实时与云端进行数据交互(指令下发与数据上传);PC端可通过数据接口建立数据中台,实现数据监控;手机移动端采用APP或小程序实现智能化设备的监控。作品设计的主要功能:数据采集、手机远程监控、终端设备智能调光;
系统框架图:
三、硬件介绍
作品硬件部分是腾讯提供的EVB_MX开发板,以下是外包装盒子,比较精美;
板子提供丰富的扩展接口,支持wifi、2G/4G、LoraWAN、NB-IoT通讯模块接口;支持E53传感器模块接口(I2C/SPI/GPIO/ADC/DAC等方式的采集与控制);支持OLED液晶显示;
开发板功能示意图:
开发板MCU采用STM32L431RCT6作为主控IC,STM32承载了断网时候设备终端的边缘计算(根据环境光照度智能调节路灯),最小系统原理图如下:
通讯部分采用ESP-8266的WiFi模块,原理图如下:
光照度传感器采用BH1750,原理图如下:
BH1750手册很详细,支持I2C串行总线接口:
灯光部分采用发光二极管代替路灯,原理图如下:
其实BH1750传感器和发光二极管都集成到E53_SC1模块中,需要通过理解该模块原理图才能进行数据采集与灯光控制;
硬件部分内容到此介绍完毕!
四、云端开发
在腾讯IoT Explorer平台创建产品,产品类型选择“智能城市-公共事业-路灯照明”(匹配E53_SC1传感器模块)
IoT Explorer平台根据产品类型,自动生成标准功能的数据模板;
除了标准功能之外,还可以创建扩展功能,根据实际情况,增加了环境光照度(对应BH1750传感器
数据)、增加控制模式
到此数据模板已创建完毕,可查看并导出JSON;
完成数据模板后,可进行设备开发,平台自动生成MCU SDK代码,代码导入到KEIL嵌入式开发平台进行开发;
下载的代码包目录结构如下:
docs里面包含MQTT与AT指令说明:
提供数据模板及初始化函数,代码逻辑比较清晰;
五、设备端实现
设备端采用keil平台(工具需激活)进行嵌入式软件开发,数据通讯部分已经适配了ESP8266模块,直接通过SDK调用C函数即可与云端通讯(数据上传与指令下发),嵌入式工程师专注于设备端逻辑实现即可,无需投入过多精力解决后台服务器及数据库问题,也不用考虑接口通讯问题(鉴权、数据or指令解析);
数据上行与下行代码实现如下:
数据上传后更新云端状态,如下图
下行数据解析代码:
云端下发指令,如下图:
服务器端下发指令需要回调函数进行响应相关操作,回调函数如下:
自定义功能数据模板定义及初始化,如下图:
光照度数据采集,以下是BH1750传感器数据采集部分代码:
初始化灯的GPIO设置
灯的控制函数
六、小程序端实现
手机端需要实时监控到灯的状态及需要实现对灯的远程控制及模式设置,因此基于腾讯提供的小程序模板开发了智能灯的微信小程序;
小程序端id及key设置
温馨提示:小程序已上线,但智能灯是采用开发板方式实现的,不会长期在线,所以用户通过小程序进行操作未必奏效!
七、成果展示
小程端控制远程灯光开光演示:
描述:通过小程序端远程开启和关闭远程灯光
设备自动控制灯光演示:
描述:通过小程序设置自动控制模式,设备通过采集环境光照度,环境暗的时候,灯光自动开启;
八、结束语
以上通过对一个简单作品的设计与实现,体验了一下TencentOS tiny物联网操作系统和IoT Explorer物联网开发平台,两者的结合使得物联网产品从规划设计到产品上线应用周期大大缩短,OS提供的SDK封装了大量的通讯协议栈(wifi、2G/4G、LoraWAN、NB-IoT),方便实现智能设备与后台服务器的通讯,通讯效果安全且高效;另外IoT Explorer开发平台可以方便地定义智能设备相关功能,平台除提供相应标准模板以外,亦可以快速地设置自定义功能,同时支持对设备的在线调试;后台记录通讯的上下行日志,方便对数据的监控管理;以上是对比传统方式开发物联网产品的优势及好处。从体验上来说,腾讯物联网一体化开发平台(硬件/OS/云端)已相当完善,充分体现腾讯在物联网技术方面的深厚功底,但仍存在三个问题需要探讨一下:
1、IoT Explorer物联网开发平台的产品一旦发布则不能再进行后续功能的扩展或调整,需要重新建新产品,无法实现产品版本控制与迭代;
2、开发板使用电池方式供电,没电时进入离线状态重新上电后,设备无法工作,提示“get device shadow failed”,需注释掉部分代码并重新烧写程序才能正常工作;
3、智能设备上传到云端的数据保密性问题,实际场景下的物联网设备数据反映企业的机密信息或者个人用户隐私,这部分数据上传到云端后,会否被提取或者滥用?如数据被泄露或用于商业开发则对物联网设备使用方造成负面影响。(PS:估计这个问题很多人也有思考过)。
最后祝愿腾讯物联网技术在智能时代能大范围推广与应用,为社会创造更多价值与效益!
(备注:本文可能存在部分内容表述不当或者认识不到位的地方,不当之处,敬请谅解!)