硬件环境
原子F429开发板,路由器,
软件环境
阿里云物联网平台、rtthread 相关组件
一.阿里物联网平台产品和设备的创建。
1.登陆阿里物联网平台 阿里物联网平台
2.单击管理控制台进入开发者界面。
(如果没有注册,可能先要注册、登陆)。
3.点击产品文档->快速入门(基础版)。
里面有详细的产品和设备创建说明。根据手册一步一步完成创建。记录下设备三元组(ProductKey、DeviceName、DeviceSecret),设备注册时需要用到。第一次创建完事之后设备状态为未激活。
二:rhthread阿里组件的添加,使用。
1.使能Ali-iotkit组件。
如果之前使能过onenet组件和PahoMQTT组件,需要关掉他们,不然编译会出问题。(可能在menuconfig中关掉之后scons构建时还会自动添加,手动删掉文件夹就好了。)2.lwip协议栈相关的配置。
对于socket abstraction layer中,一定要使能support lwip stack选项功能。
3.保存。Scons –target=mdk5 构建。完事keil编译、下载。
三.阿里云接入实验
程序运行起来之后,在控制台上输入ifconfig查看网络配置(lwip配置中启动了DHCP自动获取ip功能).
外网连接成功后,控制台上输入ali_mqtt_test start启动例程。
从调试信息可以看出,设备连接成功了。此时阿里云上的此设备也由未激活变成了在线。如图:
输入 ali_mqtt_test pub open 来发布一条消息。
可以看到云端成功接收:
输入ali_mqtt_test stop 来结束连接。此时刷新云端,发现设备变为离线。
四:实验过程中遇到的问题
1.组件之间的互相影响
在开通阿里云组件时,需要卸载paho mqtt 组件,不然很多变量、函数重复定义。
2.一定要使能supportlwip stack选项,要不然,此函数sal_proto_family_register()得不到调用,导致数组proto_families[]没有被初始化,进而导致sal_getaddrinfo()获取不到数据。
而阿里云组件在连接时会调用此函数。导致直接返回错误,进而连接失败。
失败现象如下:
原作者:guoweilkd
|