上次已經(jīng)給大家講了如何搭建中間件SDK(Ai-WB2-12F使用安信可中間件接入愛星云,遠(yuǎn)程點(diǎn)個(gè)燈——第一篇)。經(jīng)過上次的帖子,小伙伴們想必已經(jīng)完成一個(gè)新項(xiàng)目的添加,并使用WB2編譯成功,今天講如何移植愛星云的源碼。
在正式開始之前,先介紹一下設(shè)備上云的流程。

VScode 啟動(dòng)
一、連接Wi-Fi
第一步是設(shè)備進(jìn)入配網(wǎng),在配網(wǎng)之前需要能夠正式連接到網(wǎng)絡(luò)。
先把項(xiàng)目中的“h1”和“h2”兩個(gè)文件夾刪除。
新建文件夾為“wifista”(文件夾名字根據(jù)自己喜好定義就行)
在wifista 新建連接Wi-Fi的.c 和.h 文件,名字自定義
連接Wi-Fi 主要寫三個(gè)函數(shù):
Wi-Fi 初始化函數(shù)
Wi-Fi 連接函數(shù)
Wi-Fi 斷開函數(shù)
Wi-Fi 初始化函數(shù):staWiFiInit()

Wi-Fi 連接函數(shù)函數(shù):staWiFiConnect(char* ssid,char* password)

Wi-Fi 斷開函數(shù):staWiFiDisconnect()

之后在Main.c 中調(diào)用之后就能實(shí)現(xiàn)連接Wi-Fi。
二、LED控制
RGB燈是開發(fā)板上唯一能過作為指示的器件,所以使用RGB作為網(wǎng)絡(luò)指示燈是非常好的選擇。設(shè)置以下狀態(tài):
網(wǎng)絡(luò)未連接或者斷開:綠燈快閃
網(wǎng)絡(luò)成功連接或已連接:隔2s 閃爍一次
正在連接WiFi:1s 間隔慢閃
2.1創(chuàng)建源碼文件
直接創(chuàng)建名為"LED" 的文件夾,然后在里面創(chuàng)建.c和.h 文件名字自定,這里用的是 led_dev.c 和led_dev.h。并且寫幾行基礎(chǔ)的代碼。
led_dev.c

led_dev.h

2.2編寫功能函數(shù)
后面也會(huì)使用這個(gè)庫寫受控?zé)舻暮瘮?shù),暫且寫網(wǎng)絡(luò)燈的函數(shù)吧,一共有四個(gè):
網(wǎng)絡(luò)燈初始化函數(shù),Ai-WB2-12F 的藍(lán)色燈在IO3,并且創(chuàng)建閃爍任務(wù)
快閃狀態(tài) 間隔100ms
隔2s 閃爍兩次狀態(tài)
500ms 間隔慢閃狀態(tài)
網(wǎng)絡(luò)燈初始化函數(shù) devLedNetWorkdInit(void)

這里其實(shí)只有每種狀態(tài)指示延時(shí)時(shí)間上的區(qū)別而已,所以只需要在任務(wù)當(dāng)中改變延時(shí)時(shí)間就行了。
網(wǎng)絡(luò)燈狀態(tài)處理任務(wù),led_dev_run_task(void* arg):

狀態(tài)更新函數(shù) devLedNetWorkdChangeState():

2.3 調(diào)用狀態(tài)更新函數(shù)
狀態(tài)更新函數(shù)只需要在Wi-Fi 回調(diào)中的各個(gè)事件中調(diào)用即可,效果如下:

三、按鍵讀取
Ai-WB2-12F 開發(fā)板要進(jìn)入配網(wǎng),需要有個(gè)控制方式,開發(fā)板上的IO8按鍵正好可以使用,讀取IO8按鍵,高電平長按2s 后進(jìn)入配網(wǎng)。
按鍵初始化函數(shù)configButtomInit():

長按識(shí)別任務(wù):

其他進(jìn)入配網(wǎng)的方式也可以自己去實(shí)現(xiàn),只需要能夠進(jìn)入配網(wǎng)狀態(tài)就行。
四、愛星云配網(wǎng)移植
按照慣例,先新建一個(gè)文件夾用來存放愛星云的移植文檔,本貼使用“aiio_cloud”作為文件名,可以根據(jù)自己喜好創(chuàng)建,之后關(guān)于愛星云的源碼都會(huì)放在該文件夾中。
在該文件夾中新建一個(gè).h 用來聲明愛星云的配置,比如產(chǎn)品信息,三元組等,這里命名為“cloud_config.h"。
愛星云的配網(wǎng)有兩種:BLE 和AP配網(wǎng),本貼主要介紹BLE 配網(wǎng),BLE 配網(wǎng)主要有兩個(gè)函數(shù):
BLE 配網(wǎng)啟動(dòng)函數(shù)
BLE 配網(wǎng)停止函數(shù)
BLE 配網(wǎng)啟動(dòng)函數(shù)bleConfigStart()

BLE 配網(wǎng)回調(diào)函數(shù):

在回調(diào)函數(shù)當(dāng)中,獲取到了SSID、PASSWORD和MQTT 服務(wù)器地址以及其他的連接參數(shù),打印出來之后,直接調(diào)用Wi-Fi連接,就能實(shí)現(xiàn)配網(wǎng)。
在Wi-Fi連接成功之后,停止調(diào)用配網(wǎng)函數(shù)就行。
說明:
“此時(shí)因?yàn)闆]有連接愛星云,所以使用App 配網(wǎng)時(shí)會(huì)出現(xiàn)添加失敗的提示,但是實(shí)際上Wi-Fi是連接成功的,只是沒有連接愛星云而已。”
五、其他內(nèi)容
剩下的就是愛星云真正接入的部分,因?yàn)樾枰檀蠹冶容^多的東西,長話短說,直接做了一份基本連接的源碼,大家根據(jù)基本連接的源碼快速實(shí)現(xiàn)愛星云的連接。剩下的內(nèi)容直接在源碼README 中介紹,大家可點(diǎn)擊查閱。
審核編輯 黃宇
-
開發(fā)板
+關(guān)注
關(guān)注
26文章
6289瀏覽量
118054 -
模組
+關(guān)注
關(guān)注
6文章
1768瀏覽量
32252 -
安信可
+關(guān)注
關(guān)注
0文章
226瀏覽量
5076
發(fā)布評(píng)論請(qǐng)先 登錄
【W(wǎng)iFi+藍(lán)牙】智能門鎖、智能插座:用Ai-WB2系列,價(jià)格更低,性能更強(qiáng)
電子DIY 用Ai-WB2-12F模組做多功能無線彩燈控制器
輕松配置小智AI語音開發(fā)板,安信可IOT小程序功能更新
小智AI正式授權(quán)!安信可小安派語音AI開發(fā)板更新啦
上手體驗(yàn)安信可小安派AI開發(fā)板,如何接入Home Assistant?
AI語音開發(fā)板AiPi-PalChatV1教程:硬件設(shè)計(jì)參考
AI語音開發(fā)板AiPi-PalChatV1教程:二次開發(fā)
安信可傳輸距離達(dá)6.1km的LoRaWAN模組
AI語音開發(fā)板AiPi-PalChatV1,使用指南來啦
用安信可Ai-WB2-01S做一個(gè)可用網(wǎng)頁控制的簡易燈
STM32MP131C CbueMX中間件無RTOS選項(xiàng)是怎么回事?
低價(jià)不貴!安信可WiFi+BLE模組Ai-WB2系列
Ai-WB2-12F使用安信可中間件接入愛星云,遠(yuǎn)程點(diǎn)個(gè)燈(2)
評(píng)論