阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

大家好,超子能力有限,技術(shù)不高,有什么錯(cuò)誤的地方,歡迎批評(píng)指正。今天的文章不講通信中的各種協(xié)議了,咱們做一個(gè)物聯(lián)網(wǎng)入門(mén)的DIY程序設(shè)計(jì),用意法半導(dǎo)體的STM32單片機(jī)配合ESP8266的WiFi模塊,利用阿里云旗下的生活物聯(lián)網(wǎng)平臺(tái),做一個(gè)APP控制LED燈亮滅的設(shè)計(jì),其實(shí)就是控制STM32單片機(jī)IO口高低電平的變化,如果再控制一個(gè)繼電器,進(jìn)而控制火線的通斷,就可以模擬一個(gè)市面上的WiFi插座。而且還可以綁定天貓精靈,進(jìn)而可以用天貓精靈語(yǔ)音控制開(kāi)關(guān)了。

程序設(shè)計(jì)中,STM32使用的軟件是Keil集成開(kāi)發(fā)環(huán)境(IDE),編程語(yǔ)言用的是C語(yǔ)言。如果大家想要程序源碼的話,可以聯(lián)系我,超子不是專(zhuān)業(yè)的程序員,水平不高,大家不嫌棄就行。

一說(shuō)到單片機(jī)的型號(hào)那就太多了,51單片機(jī),意法半導(dǎo)體STM8單片機(jī),Atmel AVR單片機(jī),PIC單片機(jī),德州儀器 430單片機(jī),Arduino等等吧,以及還有我們要用到的STM32單片機(jī),其實(shí)用哪個(gè)型號(hào)的單片機(jī)都能實(shí)現(xiàn)這個(gè)DIY程序設(shè)計(jì),只不過(guò)超子手上剛好有塊STM32的硬件開(kāi)發(fā)板。

ESP8266的WiFi模塊,是通過(guò)串口AT指令控制,具有串口透?jìng)鞴δ艿哪欠N,在網(wǎng)上很好找到,價(jià)格也非常便宜,非常適合我們愛(ài)好者做DIY設(shè)計(jì)。

準(zhǔn)備好STM32和ESP8266這兩個(gè)關(guān)鍵硬件后,就可以開(kāi)始著手軟件上的程序設(shè)計(jì)了,我們首先需要在阿里云的生活物聯(lián)網(wǎng)平臺(tái)注冊(cè)一個(gè)賬號(hào),然后建立第一個(gè)項(xiàng)目。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

第一次使用阿里云的生活物聯(lián)網(wǎng)平臺(tái)時(shí),會(huì)先進(jìn)入新手引導(dǎo)界面,我們點(diǎn)擊紅圈中的創(chuàng)建項(xiàng)目 。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

我們要輸入項(xiàng)目名稱(chēng),第一個(gè)DIY設(shè)計(jì),大家可以自己起喜歡的名字。然后點(diǎn)擊確定。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

項(xiàng)目建立成功后,可以在項(xiàng)目列表中,看到我們的第一個(gè)DIY設(shè)計(jì)。然后我們點(diǎn)擊它,進(jìn)入項(xiàng)目管理界面。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

接下來(lái),我們還需要?jiǎng)?chuàng)建新產(chǎn)品。點(diǎn)擊創(chuàng)建新產(chǎn)品。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

我們需要填寫(xiě)和設(shè)置產(chǎn)品的信息,產(chǎn)品名稱(chēng)就叫插座吧,然后所屬品類(lèi)選擇電工照明下的插座。節(jié)點(diǎn)類(lèi)型選擇設(shè)備,不接入網(wǎng)關(guān),因?yàn)镋SP8266可以連接WiFi路由器,直接具備接云的能力,所以是直連設(shè)備,不需要網(wǎng)關(guān)。連網(wǎng)方式一定要注意,雖然ESP8266是WiFi模塊,但是不能選擇WiFi連網(wǎng)模式,那是因?yàn)槲覀兪褂玫氖峭ㄓ玫?,AT指令控制的ESP8266,沒(méi)有在阿里云生活物聯(lián)網(wǎng)平臺(tái)認(rèn)證,不兼容阿里云生活物聯(lián)網(wǎng)平臺(tái)APP的配網(wǎng)協(xié)議,如果我們選擇WiFi方式的話,配網(wǎng)過(guò)不去,程序設(shè)計(jì)就無(wú)法進(jìn)行了。所以我們?nèi)€(gè)巧,使用蜂窩連接方式,跳過(guò)阿里云生活物聯(lián)網(wǎng)平臺(tái)APP的配網(wǎng),我們可以用ESP8266模塊自己的APP配網(wǎng)或是直接把WiFi的SSID以及密碼寫(xiě)在C語(yǔ)言程序里就行了。然后數(shù)據(jù)格式選擇Alink JSON,不使用ID2認(rèn)證,最后點(diǎn)擊完成就行了。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

產(chǎn)品建立完成后,我們進(jìn)入第一個(gè)DIY設(shè)計(jì)項(xiàng)目下插座產(chǎn)品的配置界面,先進(jìn)行第一步的功能定義的設(shè)置,我們可以看到,阿里云生活物聯(lián)網(wǎng)平臺(tái)自動(dòng)幫我們添加了電源開(kāi)關(guān)的功能屬性。當(dāng)然我們還可以自己添加別的功能,比如采集電流,電壓,功率等電量參數(shù),當(dāng)然這都是后話了,我們先以入門(mén)為主,然后在求擴(kuò)展。這一步我們不需要做什么修改,直接點(diǎn)擊下一步:設(shè)備調(diào)試。然后阿里云生活物聯(lián)網(wǎng)平臺(tái)要求我們選擇一個(gè)通過(guò)認(rèn)證的模組,我們本身就是取巧方式,大家隨便選一個(gè)模組就行,對(duì)于我們的DIY設(shè)計(jì)沒(méi)有影響。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

選好模組后,我們點(diǎn)擊新增測(cè)試設(shè)備,每個(gè)產(chǎn)品下有50個(gè)測(cè)試設(shè)備名額,我們做DIY程序設(shè)計(jì),50個(gè)足夠我們用了。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

新增測(cè)試設(shè)備時(shí),我們要輸入設(shè)備名稱(chēng),就叫D001吧,大家可以自己起名字,然后點(diǎn)擊確定。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

然后會(huì)彈出激活憑證,也就是三元組信息,這個(gè)是登錄阿里云生活物聯(lián)網(wǎng)平臺(tái)的認(rèn)證信息,稍后我們修改C語(yǔ)言程序時(shí)要用到這些重要信息。然后頁(yè)面下方,我們點(diǎn)擊下一步:人機(jī)交互。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

不會(huì)設(shè)計(jì)APP怎么辦,我們可以使用阿里云生活物聯(lián)網(wǎng)平臺(tái)的公版APP。我們打開(kāi)上圖中的開(kāi)關(guān)就行。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

然后我們點(diǎn)擊未設(shè)置,選擇一個(gè)界面。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

自己喜歡哪個(gè),選一個(gè)就行,然后點(diǎn)擊確認(rèn)。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

然后頁(yè)面下方,我們要配置APP功能,多語(yǔ)言管理是必須設(shè)置的,可以設(shè)置品牌名稱(chēng),設(shè)備名稱(chēng),產(chǎn)品編號(hào)等等,我們做DIY設(shè)計(jì),也沒(méi)啥品牌,自己填一個(gè)就行,這些品牌信息可以顯示在APP的頂部。然后我們看到了天貓精靈,沒(méi)錯(cuò),阿里云和天貓精靈都是阿里巴巴旗下的,所以可以直接綁定天貓精靈的賬號(hào),就可以用天貓精靈控制開(kāi)關(guān)了,非常方便。然后我們點(diǎn)擊下一步:批量投產(chǎn)。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

然后我們勾選上對(duì)勾,點(diǎn)擊開(kāi)發(fā)完成后,我們整個(gè)配置就算完成了,接下來(lái)我們要修改C語(yǔ)言程序了。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

首先我們看一下wifi.c的C語(yǔ)言源文件,wifi_mode這個(gè)變量設(shè)置使用哪種方式進(jìn)行配網(wǎng),大家根據(jù)注釋自行選擇就行,如果選擇0的話,SSID和密碼要在wifi.h頭文件中設(shè)置 。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

然后我們需要修改C語(yǔ)言頭文件mqtt.h中的5個(gè)字符串,前三個(gè)對(duì)應(yīng)新增測(cè)試設(shè)備時(shí)的激活憑證,也就是三元組信息。后邊兩個(gè)字符串是Topic,set是用來(lái)接收控制開(kāi)關(guān)命令推送的Topic,我們需要訂閱它,post是用來(lái)往服務(wù)器上傳數(shù)據(jù)的,這次的實(shí)驗(yàn),我們主要是接收控制命令的推送數(shù)據(jù)。那么這兩個(gè)Topic再那找呢?看下圖。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

測(cè)試設(shè)備點(diǎn)擊紅圈圈中的查看。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

然后在Topic列表下,可以看到post和set,我們把程序中的替換即可。然后我們要重新編譯C語(yǔ)言程序,使上面的更改生效,然后再把程序下載到開(kāi)發(fā)板中,等待設(shè)備在線后,使用阿里云生活物聯(lián)網(wǎng)平臺(tái)的公版APP掃碼添加設(shè)備就可以控制了,那么碼在哪呢?看下圖。

阿里云平臺(tái),STM32+ESP8266物聯(lián)網(wǎng)入門(mén)實(shí)驗(yàn),APP+天貓精靈控制LED

人機(jī)交互設(shè)置頁(yè)面,我們點(diǎn)擊紅圈,然后彈出頁(yè)面,需要我們填寫(xiě)設(shè)備名稱(chēng),我的是D001,然后就可以生成我們需要的添加碼,因?yàn)槲恼轮胁荒艹霈F(xiàn)碼,所以超子就不展示了。到此我們本次的DIY程序設(shè)計(jì),基本就完成了,如果有什么問(wèn)題的話,大家直接問(wèn)超子就行。如果想要C語(yǔ)言程序源碼,找我就行。