前言 硬件 l單片機(jī):STM32F103C8T6 l網(wǎng)絡(luò)連接:ESP8266 WIFI模塊 l傳感器:PM2.5傳感器、溫濕度傳感器 傳感器驅(qū)動(dòng)以及WIFI模塊的驅(qū)動(dòng)程序比較簡(jiǎn)單,之前的文章也有過(guò)介紹,這里不詳細(xì)說(shuō)了。 阿里云物聯(lián)網(wǎng)平臺(tái)設(shè)置 1、注冊(cè)阿里云物聯(lián)網(wǎng)平臺(tái),具體不詳細(xì)介紹了。 2、創(chuàng)建產(chǎn)品,選擇高級(jí)版。 3、選擇產(chǎn)品的屬性,如圖所示。然后點(diǎn)擊完成。添加完成后會(huì)在產(chǎn)品列表中看到所添加的設(shè)備。 4、增加產(chǎn)品功能。在設(shè)備列表中點(diǎn)擊查看,查看產(chǎn)品詳情,在功能定義菜單下,增加產(chǎn)品功能。其中標(biāo)識(shí)符后面編程會(huì)用到。 5、添加設(shè)備。在設(shè)備菜單下,點(diǎn)擊添加設(shè)備,選擇剛創(chuàng)建的產(chǎn)品,DeviceName隨便取一個(gè)名字,點(diǎn)擊確認(rèn)。 6、添加完成后查看設(shè)備的詳細(xì)信息,其中Productkey、DeviceName、DeviceSecret后面編程會(huì)用到。 7、Topic列表會(huì)自動(dòng)生成一些Topic,后面會(huì)用到第一個(gè)。 單片機(jī)程序編寫 平臺(tái)設(shè)置完畢,下面就是單片機(jī)程序了。 1.MQTT協(xié)議移植的paho.mqtt.embedded-c-master,用到的就是MQTTPacket\src目錄下的文件和MQTTPacket\samples目錄下transport.c和.h文件。需要修改的只有transport.c里的兩個(gè)函數(shù),一個(gè)發(fā)送,一個(gè)接收。 2.打開和關(guān)閉連接已經(jīng)在ESP8266實(shí)現(xiàn)了(ESP8266工作在TCP透?jìng)髂J剑?,所以直接返?。 3.還需要移植cJSON,只有兩個(gè)文件cJSON.c和cJSON.h,添加到工程里,直接調(diào)用里面的函數(shù)就行。 4.連接MQTT服務(wù)器,程序如下。抹掉的部分見后面注釋。用戶名中間有個(gè)“&”符號(hào)。密碼可以是工具生成,也可以是函數(shù)生成。 5.生成cJSON字符串,調(diào)用cJSON函數(shù)生成字符串,其中params內(nèi)部的參數(shù)即為添加產(chǎn)品功能時(shí)的標(biāo)識(shí)符。 6.發(fā)布消息。函數(shù)參數(shù)char* pTopic為設(shè)備Topic列表中的第一條的字符串,char* PMessage為剛才生成的字符串。通過(guò)判斷發(fā)布消息的反饋來(lái)判斷服務(wù)器連接是否正常,如果不正常就重新連接。 7.發(fā)布成功后,在管理平臺(tái)上會(huì)看到設(shè)備上傳的信息,以及歷史曲線。 總結(jié) 物聯(lián)網(wǎng)平臺(tái)的功能很多,還可以直接在平臺(tái)生成WEB頁(yè)面和手機(jī)APP程序,當(dāng)然功能還不是很完善。還有很多其他的物聯(lián)網(wǎng)平臺(tái),比如OneNET,功能也比較類似,有興趣的可以嘗試一下。 |
|
來(lái)自: 新用戶0118F7lQ > 《文件夾1》