开发者学堂课程【HaaS 物联网应用开发课程:4_7_Haas 连接云端实验_演示篇】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/801/detail/13841
4_7_Haas 连接云端实验_演示篇
回顾一下刚刚讲的拓补结构:
它是由设备端和云端两边组成,通过网络进行连接,使用 MQTT 进行数据的 publish 和 subscribe,从而完成整个数据的通信。
首先,我们进入到第一个步骤:如何在阿里云创建一个新产品
打开浏览器,输入 iot.aliyun.com 或者使用 PPT 的链接进入网页,之后登入账户,登录之后后跳转出如下图的页面;点击控制台,进入之后再点击实物概览下的公共实例就进入了刚才我们所提供的页面当中。
1. 创建产品,产品名称是 test3,选择品类是自定义品类,节点类型选择直连设备,连网方式选择 Wi-Fi,数据格式选择透传/自定义,之后点击确认。
创建成功之后,点击添加设备,
添加设备名称为 my_kaiguan2的设备,添加设备成功之后可以查看设备信息;里面有 my_kaiguan2的相关信息,并且设备处于未激活状态,这时设备是成功创建的,接下来是拿到三元组信息,如下图;点击一键复制。
2.代码编写、编译和烧录
首先修改文件 application/example/mqtt_ demo/mqtt_ example.c 中的三元组信息;
打开 AliOS-Things,
找到 application/example/mqtt_ demo/mqtt_ example.c 修改#define PRODUCT_ KEY "a18VwY88b79"
#define DEVICE_ NAME “my_ ka iguan"
#define DEVICE_ SECRET "73009b38c5f12345c6789
0b230906f9f"
将复制的信息粘贴进去,就可以看到
#define PRODUCT_ KEY "a18VwY88b79"
#define DEVICE_ NAME “my_ kaiguan"
#define DEVICE_ SECRET "73009b38c5f12345c6789
0b230906f9f"
替换成了
#define PRODUCT KEY "a12Pvu5Ghw2"
#define DEVICE_NAME "my_ kaiguan2"
#define DEVICE_SECRET
“9c5e(2eb676b9358292195
adecea6f5a"
这样修改就完成了,这里的#define PRODUCT_SECRET "ThNbP5 INUQ1 LQe2Q"不用移动,它是一型一密的时候才使用。
接下来就是代码的编译阶段,分成了两个步骤:
首先,打开代码的路径,路径是在自己下载的位置;之后执行配置 aos make mqtt_ demo@haaseduk1 -c configy
当出现:Checking config output: .config ...就表明创建成功。接下来是编译 aos make,编译完之后会生成对应的镜像,然后使用 aos 的命令进行下载。
当出现 Build complete: mqtt_demo@haasedukl 就表示编译完成。
编译之后就是插上设备,我们可以看到在/dev/tty下面有 tty.usbserial-A908XGSQ 设备。
之后进入烧录模式,输入 aos upload,正常首次使用时会有一个配置界面,它会让我们选择烧录的设备。在运行过程中发现它需要手动的重启,而这里有电源,故要重启及将电源重新打开,烧录过程大约1-2分钟,这根据烧录镜像的大小决定。当出现 Fireware upload succeed 表示烧录完成。
3.烧录成功之后,使用串口工具去打开设备并且进行连接,现在串口使用的是 picocom 软件,可以根据自身需求进行设置,需要注意的事它的波特率是1.5兆。
Wi-Fi 连接的命令是 netmgr -t wifi -c haas,之后进行回车就可以看到进行连接动作,当看到
> {
>
”message”:”hello!”
>
}
就表示 Wi-Fi 连接成功。
4.DHCP 获取与分析
向前面搜索会看到[Jan 01 00:01 :04,189]<I>WIFI SERVICE
IPV4 Address : 192 .168.43.80表示获取到了 IP 地址,DHCP 完成。
接下来是 MQTT 地连接与分析
5.MQTT 连接与分析
WiFi 连接成功之后,MQTT 会做连接并且打印 MQTT 连接成功:[Jan 01 00:01:04.599] <1>MOTT mqtt connect success!
连接成功之后会有一些其他信息,重点关注:Jan 01 00:01:04.602]<I>MOTT mgtt subsqribe packet sent, topic . /a12Pvu5Ghw2/my kaiguan2/user/get!
订阅主题是 user/get,并且会向这个主题发送信息。下面查看云端日志是否订阅、收到信息:
我们会看到 topic 列表下已经有
a12Pvu5Ghw2/my_ kaiguan2/user/get
。
在 topic 列表了能接受和发送信息,可以通过监控运维里的日志服务查询设备,点击产品 test3,我们可以看到业务类型里有订阅且订阅成功,这个日志表示收到了刚刚发起的 mqtt subscribe packet sent,topic 的动作,收到之后,在设备的 topic 列表里就有/a12Pvu5Ghw2/my_ kaiguan2/user/get
接下来看向设备端发送一条信息,发布是如何做的:
先将设备端的日志清空,点击发布消息输入 This is a test 456
,之后我们会看到T opic:
/
a12Pvu5Ghw2/my_kaiguan2/user/get
P
ayload:This is a test 456
从而就完成了 MQTT 的发送与接受、网络的搭建并且和云端进行数据通信,以上就是全部实验。