—————————
5.12更新:
需要注意调用cJSON_Print函数将JSON体转化为字符串时,会开辟内存,转化后使用完毕后需要调用cJSON_free函数将内存释放掉,否则会导致内存泄漏。一旦内存泄漏会导致系统宕机。
—————————
一.项目概述
本项目使用了W801以一机一密的方式连接至阿里云物联网平台,定时发送数据并实现了反向控制。
二.项目前的准备
因为使用阿里云物联网平台,因此需要提前创建好一个设备,这个网上的示例和阿里云自己的文档已经十分完整,因此不多赘述,可以自行查阅。创建完设备的MQTT链接参数是用来进行链接的关键,如下图所示。
三.MQTT连接的注意点与修改
概述:SDK中提供的MQTT链接示例基本是可用的,但是连接阿里云时需要做如下修改。
【1】修改MQTT链接参数,同时要添加Username以及password的宏定义,订阅和发布的topic根据自己的设备来添加
【2】修改MQTT的client,username等的数组长度,SDK中的数据范围太小,而阿里云的链接参数由于经过加密因此比较长无法满足要求,需要对以下几个位置进行修改。
【3】修改原MQTTdemo里面的mqtt_demo_init函数,原函数没有账户密码登录的步骤,但是提供了相应函数,因此需要进行补充。