阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED


阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

大家好,超子能力有限,技術不高,有什麼錯誤的地方,歡迎批評指正。今天的文章不講通信中的各種協議了,咱們做一個物聯網入門的DIY程序設計,用意法半導體的STM32單片機配合ESP8266的WiFi模塊,利用阿里雲旗下的生活物聯網平臺,做一個APP控制LED燈亮滅的設計,其實就是控制STM32單片機IO口高低電平的變化,如果再控制一個繼電器,進而控制火線的通斷,就可以模擬一個市面上的WiFi插座。而且還可以綁定天貓精靈,進而可以用天貓精靈語音控制開關了。

程序設計中,STM32使用的軟件是Keil集成開發環境(IDE),編程語言用的是C語言。如果大家想要程序源碼的話,可以聯繫我,超子不是專業的程序員,水平不高,大家不嫌棄就行。

一說到單片機的型號那就太多了,51單片機,意法半導體STM8單片機,Atmel AVR單片機,PIC單片機,德州儀器 430單片機,Arduino等等吧,以及還有我們要用到的STM32單片機,其實用哪個型號的單片機都能實現這個DIY程序設計,只不過超子手上剛好有塊STM32的硬件開發板。

ESP8266的WiFi模塊,是通過串口AT指令控制,具有串口透傳功能的那種,在網上很好找到,價格也非常便宜,非常適合我們愛好者做DIY設計。

準備好STM32和ESP8266這兩個關鍵硬件後,就可以開始著手軟件上的程序設計了,我們首先需要在阿里雲的生活物聯網平臺註冊一個賬號,然後建立第一個項目。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

第一次使用阿里雲的生活物聯網平臺時,會先進入新手引導界面,我們點擊紅圈中的創建項目 。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

我們要輸入項目名稱,第一個DIY設計,大家可以自己起喜歡的名字。然後點擊確定。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

項目建立成功後,可以在項目列表中,看到我們的第一個DIY設計。然後我們點擊它,進入項目管理界面。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

接下來,我們還需要創建新產品。點擊創建新產品。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

我們需要填寫和設置產品的信息,產品名稱就叫插座吧,然後所屬品類選擇電工照明下的插座。節點類型選擇設備,不接入網關,因為ESP8266可以連接WiFi路由器,直接具備接雲的能力,所以是直連設備,不需要網關。連網方式一定要注意,雖然ESP8266是WiFi模塊,但是不能選擇WiFi連網模式,那是因為我們使用的是通用的,AT指令控制的ESP8266,沒有在阿里雲生活物聯網平臺認證,不兼容阿里雲生活物聯網平臺APP的配網協議,如果我們選擇WiFi方式的話,配網過不去,程序設計就無法進行了。所以我們取個巧,使用蜂窩連接方式,跳過阿里雲生活物聯網平臺APP的配網,我們可以用ESP8266模塊自己的APP配網或是直接把WiFi的SSID以及密碼寫在C語言程序裡就行了。然後數據格式選擇Alink JSON,不使用ID2認證,最後點擊完成就行了。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

產品建立完成後,我們進入第一個DIY設計項目下插座產品的配置界面,先進行第一步的功能定義的設置,我們可以看到,阿里雲生活物聯網平臺自動幫我們添加了電源開關的功能屬性。當然我們還可以自己添加別的功能,比如採集電流,電壓,功率等電量參數,當然這都是後話了,我們先以入門為主,然後在求擴展。這一步我們不需要做什麼修改,直接點擊下一步:設備調試。然後阿里雲生活物聯網平臺要求我們選擇一個通過認證的模組,我們本身就是取巧方式,大家隨便選一個模組就行,對於我們的DIY設計沒有影響。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

選好模組後,我們點擊新增測試設備,每個產品下有50個測試設備名額,我們做DIY程序設計,50個足夠我們用了。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

新增測試設備時,我們要輸入設備名稱,就叫D001吧,大家可以自己起名字,然後點擊確定。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

然後會彈出激活憑證,也就是三元組信息,這個是登錄阿里雲生活物聯網平臺的認證信息,稍後我們修改C語言程序時要用到這些重要信息。然後頁面下方,我們點擊下一步:人機交互。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

不會設計APP怎麼辦,我們可以使用阿里雲生活物聯網平臺的公版APP。我們打開上圖中的開關就行。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

然後我們點擊未設置,選擇一個界面。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

自己喜歡哪個,選一個就行,然後點擊確認。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

然後頁面下方,我們要配置APP功能,多語言管理是必須設置的,可以設置品牌名稱,設備名稱,產品編號等等,我們做DIY設計,也沒啥品牌,自己填一個就行,這些品牌信息可以顯示在APP的頂部。然後我們看到了天貓精靈,沒錯,阿里雲和天貓精靈都是阿里巴巴旗下的,所以可以直接綁定天貓精靈的賬號,就可以用天貓精靈控制開關了,非常方便。然後我們點擊下一步:批量投產。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

然後我們勾選上對勾,點擊開發完成後,我們整個配置就算完成了,接下來我們要修改C語言程序了。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

首先我們看一下wifi.c的C語言源文件,wifi_mode這個變量設置使用哪種方式進行配網,大家根據註釋自行選擇就行,如果選擇0的話,SSID和密碼要在wifi.h頭文件中設置 。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

然後我們需要修改C語言頭文件mqtt.h中的5個字符串,前三個對應新增測試設備時的激活憑證,也就是三元組信息。後邊兩個字符串是Topic,set是用來接收控制開關命令推送的Topic,我們需要訂閱它,post是用來往服務器上傳數據的,這次的實驗,我們主要是接收控制命令的推送數據。那麼這兩個Topic再那找呢?看下圖。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

測試設備點擊紅圈圈中的查看。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

然後在Topic列表下,可以看到post和set,我們把程序中的替換即可。然後我們要重新編譯C語言程序,使上面的更改生效,然後再把程序下載到開發板中,等待設備在線後,使用阿里雲生活物聯網平臺的公版APP掃碼添加設備就可以控制了,那麼碼在哪呢?看下圖。

阿里雲平臺,STM32+ESP8266物聯網入門實驗,APP+天貓精靈控制LED

人機交互設置頁面,我們點擊紅圈,然後彈出頁面,需要我們填寫設備名稱,我的是D001,然後就可以生成我們需要的添加碼,因為文章中不能出現碼,所以超子就不展示了。到此我們本次的DIY程序設計,基本就完成了,如果有什麼問題的話,大家直接問超子就行。如果想要C語言程序源碼,找我就行。


分享到:


相關文章: