本文概览zephyr使用aliyun SDK连入阿里云物联网平台。
概述
本系列文章说明如何将zephyr连入阿里云物联网平台,并上传设备所在的温湿度。预计共3篇:
- 概览: 简要说明系统组成,及运行演示
- 移植: 说明如果将aliyun C-SDK移植到zephyr上
- 使用: 说明如何基于aliyun C-SDK在zepyhr上将温湿度送到阿里云上
硬件
SOC: nrf52832(ARM-Cortex M4)
网络:enc28j60(RJ45 ethernet)
传感器:DHT11(温度&湿度)
实物图如下:
图中nrf52832是使用的最小系统模块
从硬件上看:nrf52832通过单总线协议从dht11获取温湿度,然后通过SPI外挂enc28j60将设备连接到以太网上
软件
软件以zephyr系统提供socket/os/内存管理/设备驱动等基础设施; 移植ali-linkkit C-SDK实现了MQTT,设备认证,JSON解析等应用模块;应用使用设备驱动获取温度湿度,使用ali-linkkit C-SDK将温湿度发布到阿里云上。
软件架构如下图:
为何不使用zephyr的MQTT:zephyr也自带MQTT,这里没有使用是因为ali-linkkit SDK实现并使用了MQTT,直接使用SDK内的移植会更快速。当SDK无法满足应用需求时也可以安装ali-link的协议使用zephyr的MQTT来实现。
代码实例编译出来的信息如下,使用的代码量并不大:1
2
3
4Memory region Used Size Region Size %age Used
FLASH: 186277 B 512 KB 35.53%
SRAM: 40724 B 64 KB 62.14%
IDT_LIST: 136 B 2 KB 6.64%
SDK和其中各部分的占比如下1
2
3
4
5
6eng 21290 11.43%
mqtt 10254 5.50%
dev_model 2326 1.25%
dev_sign 1252 0.67%
nfra 6486 3.48%
wrappers 972 0.52%
连接图
下图是实验的连接图
- 使用光猫通过运营商连接到云端
- 家庭中央无线路由器通过有线连接光猫
- 开发用无线路由器桥接中央无线路由
- 传感器设备通过有线连接开发用无线路由器
演示
Device端
启动初始化log
1 | uart:~$ ***** Booting Zephyr OS build zephyr-v1.14.0-2172-g3f057403cb43 ***** |
认证连接log
1 |
|
发布数据log
1 | example_publish|127 :: Topic /sys/a10Bd3AmDDC/4Z0Oeud7Sh4cod49oo2U/thing/event/property/post |
查看网络log
1 | uart:~$ net iface |
云端
下图是在阿里云端看到的实时采集到我书房的温湿度
下图是统计一段时间内采集温度的情况, 会有一个变化是因为我用手捏了一会传感器,验证温湿度变化
下图是统计一段时间内采集湿度的情况
本文到此结束(耗时3小时),如何移植请关注后续系列文章。