身为嵌入式开发者的你一定经常为设备连云而伤神,繁琐的上云步骤、复杂的环境配置,物联网世界看似美好,实则折腾不起。此篇文章将颠覆你对设备上云的痛苦印象,帮助你免开发 10 分钟快速连云。/ Y2 c; `) `$ V/ K3 e: e6 ~& M" j 硬件部分使用搭载 STM32F412 官方开发板STM32F412 Nucleo-144搭配庆科3080 WiFi模组进行。1 F" K* Y6 I! ^& L0 _ 关于STM32F412产品介绍,相关设计文件和参考设计,请点击介绍; 关于STM32F412的官方开发板NUCLEO-F412ZG的资料,请点击资料;( v2 }8 Z" ~" ?, Q. l7 _- l 关于NUCLEO-F412ZG官方开发板的购买,可以访问STM32旗舰店。 一、开通云平台服务 前往阿里云物联网平台官网 3 k6 P1 a) e2 L http://iot.aliyun.com/products/ ... ce=develop_shequ_st,点击立即开通,无阿里云账号请按步骤注册账号同时完成实名认证。1 A& `! k# h5 F# q! b 7 F1 ^# @" v: S' w! d 之后同意物联网平台服务协议,即可开通/ I: A& x/ g: w1 j% V" ? % Z; g, h6 T. C. O) {. |. b+ ?) ^2 g 二、云平台操作; ?/ \0 L( u. J0 ]2 H: U6 J5 v' w. L 打开阿里云物联网平台控制台(http://iot.console.aliyun.com/data_board),选择设备管理-产品-创建产品-高级版产品,在设备模型的自定义功能处,新增两个属性, 一个用于上行消息, 另一个用于下行消息, 均设为字符串类型。 之后添加一个用于测试的设备: 记录下设备证书:- x% l% J( c+ R" m$ ]; M! W8 Z' v0 @ 3 R8 s" v. g: W, l- ` 至此云平台的操作已完成。8 y- J$ V r5 L4 j+ d4 [6 |" m 三、端侧开发 无须复杂的环境配置,我们可以直接使用阿里云的在线设备开发工作台,完成设备端的开发工作。6 ]7 Y$ V N. W m 首先进入WebIDE开发界面:http://webide.aliyun.com,如下图。 接着点击下图中agent下载按钮,IDE会根据你使用的电脑操作系统自动判断下载对应的agent包。下载完毕后解压缩下载到本地的zip包。3 d2 Z! L* J4 [8 ]& ] 然后在tools目录中找到并安装其中的STLink驱动。安装之后,可以检查新的设备是否已经出现在系统设备列表中。(Mac/Linux用户可以ls /dev检查,Windows用户通过设备管理器)。3 w! `6 q/ F8 g3 f- H/ b& i 最后启动Agent,Linux/Mac系统:在终端中执行下载好的agent目录中的run.sh脚本;Windows系统:运行agent目录下的hacklab-device-agent.exe。+ y9 Q7 U2 } G1 V Hacklab agent运行成功后,将STM32F412开发板使用USB连接到电脑后,点击Web IDE文件树上的Device节点,如下图中所示,可以看到开发板已经连接到了IDE的设备列表中。: B |0 i4 h" o u$ S9 o% ?3 ^ 设备连接后就是设备开发了:, `0 k, l5 H1 W: N9 A2 o! m) ^9 ] 首先在IDE中点击新建工程(Toolbar上的➕按钮),在Create Project Wizard界面中,填写工程名simple_mqtt,Board类型选择STM32F412 Nucleo-144,OS类型选择AliOS-Things,选择完成后点击create等待IDE下载工程代码。 工程创建完成后,在左侧的文件树中出现了simple_mqtt工程,刚刚创建的AliOS-Things代码位于device模块目录中,找到 /device/AliOS-Things/example/simple_mqtt/simple_mqtt.c文件,将 27-29 行代码替换为从云平台获取到的设备证书。) _4 F# k+ d- s+ g 接着修改/device/module.json文件, 将 @ 以前内容换成 simple_mqtt,全局按 shift+F键可快速搜索替换: + \# a* |; M$ {& V+ h6 d( b2 m 敲代码的工作到此就结束了,千万记住保存(ctrl+s或cmd+s)。1 d- `) v5 \/ Y3 ?/ M! g1 I8 U 临门一脚,在IDE界面点击编译按钮选择simple_mqtt开始编译: 等待编译完成后点击烧录simple_mqtt程序到设备: $ V* f/ l4 g! h# y& ?9 m3 y 双击device下的设备名开始运行程序:+ K6 ^5 j4 e2 ]- D 设备开始运行后输入netmgrconnect {Wi-Fi_SSID} {passwd} 指令使设备连接Wi-Fi网络(可以使用手机开启热点)。连接Wi-Fi成功后设备将开始上报数据,运行日志如下,设备正常运行后可以查看平台设备属性。% D; o3 Z5 E+ _) \& B) a ; b6 c2 [1 W+ l, `( |2 H! w 四、云端联调. |4 M1 @$ {& k- c% z 控制台显示连云后,我们回到物联网平台,选择日志,可以看到设备上线同时云端已经收到了设备上发的消息。 5 T& l8 q3 J2 Y3 o# O' F 至此,无须配置开发环境,无须复杂的定义接口,不到 10 分钟,你已经实现了STM32快速连云。 配合视频食用学习效果更佳: |
虽然开源,但也不容易理解。