上次已經給大家講了如何搭建中間件SDK(Ai-WB2-12F使用安信可中間件接入愛星云,遠程點個燈——第一篇)。經過上次的帖子,小伙伴們想必已經完成一個新項目的添加,并使用WB2編譯成功,今天講如何移植愛星云的源碼。
在正式開始之前,先介紹一下設備上云的流程。
VScode 啟動
一、連接Wi-Fi
第一步是設備進入配網,在配網之前需要能夠正式連接到網絡。 先把項目中的“h1”和“h2”兩個文件夾刪除。
新建文件夾為“wifista”(文件夾名字根據自己喜好定義就行)
在wifista 新建連接Wi-Fi的.c 和.h 文件,名字自定義
連接Wi-Fi 主要寫三個函數:
Wi-Fi 初始化函數
Wi-Fi 連接函數
Wi-Fi 斷開函數
Wi-Fi 初始化函數:staWiFiInit()
Wi-Fi 連接函數函數:staWiFiConnect(char* ssid,char* password)
Wi-Fi 斷開函數:staWiFiDisconnect()
之后在Main.c 中調用之后就能實現連接Wi-Fi。
二、LED控制
RGB燈是開發板上唯一能過作為指示的器件,所以使用RGB作為網絡指示燈是非常好的選擇。設置以下狀態:
網絡未連接或者斷開:綠燈快閃
網絡成功連接或已連接:隔2s 閃爍一次
正在連接WiFi:1s 間隔慢閃
2.1創建源碼文件
直接創建名為"LED" 的文件夾,然后在里面創建.c和.h 文件名字自定,這里用的是 led_dev.c 和led_dev.h。并且寫幾行基礎的代碼。 led_dev.c
led_dev.h
2.2編寫功能函數
后面也會使用這個庫寫受控燈的函數,暫且寫網絡燈的函數吧,一共有四個:
網絡燈初始化函數,Ai-WB2-12F 的藍色燈在IO3,并且創建閃爍任務
快閃狀態 間隔100ms
隔2s 閃爍兩次狀態
500ms 間隔慢閃狀態
網絡燈初始化函數devLedNetWorkdInit(void)
這里其實只有每種狀態指示延時時間上的區別而已,所以只需要在任務當中改變延時時間就行了。
網絡燈狀態處理任務,led_dev_run_task(void* arg):
狀態更新函數devLedNetWorkdChangeState():
2.3 調用狀態更新函數
狀態更新函數只需要在Wi-Fi 回調中的各個事件中調用即可,效果如下:
三、按鍵讀取
Ai-WB2-12F 開發板要進入配網,需要有個控制方式,開發板上的IO8按鍵正好可以使用,讀取IO8按鍵,高電平長按2s 后進入配網。
按鍵初始化函數configButtomInit():
長按識別任務:
其他進入配網的方式也可以自己去實現,只需要能夠進入配網狀態就行。
四、愛星云配網移植
按照慣例,先新建一個文件夾用來存放愛星云的移植文檔,本貼使用“aiio_cloud”作為文件名,可以根據自己喜好創建,之后關于愛星云的源碼都會放在該文件夾中。
在該文件夾中新建一個.h 用來聲明愛星云的配置,比如產品信息,三元組等,這里命名為“cloud_config.h"。
愛星云的配網有兩種:BLE 和AP配網,本貼主要介紹BLE 配網,BLE 配網主要有兩個函數:
BLE 配網啟動函數
BLE 配網停止函數
BLE 配網啟動函數bleConfigStart()
BLE 配網回調函數:
在回調函數當中,獲取到了SSID、PASSWORD和MQTT 服務器地址以及其他的連接參數,打印出來之后,直接調用Wi-Fi連接,就能實現配網。
在Wi-Fi連接成功之后,停止調用配網函數就行。
說明:
此時因為沒有連接愛星云,所以使用App 配網時會出現添加失敗的提示,但是實際上Wi-Fi是連接成功的,只是沒有連接愛星云而已。
五、其他內容
剩下的就是愛星云真正接入的部分,因為需要教大家比較多的東西,長話短說,直接做了一份基本連接的源碼,大家根據基本連接的源碼快速實現愛星云的連接。剩下的內容直接在源碼README 中介紹,大家可點擊查閱。
審核編輯:湯梓紅
-
移植
+關注
關注
1文章
383瀏覽量
28193 -
wi-fi
+關注
關注
14文章
2169瀏覽量
125015 -
源碼
+關注
關注
8文章
652瀏覽量
29454 -
安信可
+關注
關注
0文章
159瀏覽量
4046
原文標題:Ai-WB2-12F使用安信可中間件接入愛星云,遠程點個燈(2)
文章出處:【微信號:安信可科技,微信公眾號:安信可科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
RT-thread源碼移植到STM32F10x和STM32F4xx
![RT-thread<b class='flag-5'>源碼</b><b class='flag-5'>移植</b>到STM32F10x和STM32F4xx](https://file1.elecfans.com/web2/M00/AE/45/wKgaomVUIfSACUUFAAAORCAdT3g540.png)
如何移植FreeRTOS的源碼
ARM DSP源碼和庫移植方法
DSP源碼和庫的移植
基于ucosii移植的點燈實驗源碼(帶完整注釋)
Ai-WB2-12F使用安信可中間件接入愛星云,遠程點個燈(2)
![Ai-WB2-12F使用安信可中間件接入<b class='flag-5'>愛</b><b class='flag-5'>星云</b>,遠程點個燈(2)](https://file1.elecfans.com//web2/M00/BB/70/wKgZomWbvdiAJBTFAAGHAe-gqKA576.png)
評論