0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何移植愛星云的源碼

安信可科技 ? 來源:安信可科技 ? 2024-01-07 11:10 ? 次閱讀

上次已經(jīng)給大家講了如何搭建中間件SDK(Ai-WB2-12F使用安信可中間件接入愛星云,遠程點個燈——第一篇)。經(jīng)過上次的帖子,小伙伴們想必已經(jīng)完成一個新項目的添加,并使用WB2編譯成功,今天講如何移植愛星云的源碼

在正式開始之前,先介紹一下設(shè)備上云的流程。

eff404f4-abb3-11ee-8b88-92fbcf53809c.png

VScode 啟動

一、連接Wi-Fi
第一步是設(shè)備進入配網(wǎng),在配網(wǎng)之前需要能夠正式連接到網(wǎng)絡(luò)。 先把項目中的“h1”和“h2”兩個文件夾刪除。

新建文件夾為“wifista”(文件夾名字根據(jù)自己喜好定義就行)

在wifista 新建連接Wi-Fi的.c 和.h 文件,名字自定義


連接Wi-Fi 主要寫三個函數(shù):

Wi-Fi 初始化函數(shù)

Wi-Fi 連接函數(shù)

Wi-Fi 斷開函數(shù)


Wi-Fi 初始化函數(shù):staWiFiInit()

eff8591e-abb3-11ee-8b88-92fbcf53809c.png

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

f001af32-abb3-11ee-8b88-92fbcf53809c.png

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

f00b89bc-abb3-11ee-8b88-92fbcf53809c.png

之后在Main.c 中調(diào)用之后就能實現(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

f01ed710-abb3-11ee-8b88-92fbcf53809c.png

led_dev.h

f0282e1e-abb3-11ee-8b88-92fbcf53809c.png

2.2編寫功能函數(shù)
后面也會使用這個庫寫受控燈的函數(shù),暫且寫網(wǎng)絡(luò)燈的函數(shù)吧,一共有四個:

網(wǎng)絡(luò)燈初始化函數(shù),Ai-WB2-12F 的藍色燈在IO3,并且創(chuàng)建閃爍任務(wù)

快閃狀態(tài) 間隔100ms

隔2s 閃爍兩次狀態(tài)

500ms 間隔慢閃狀態(tài)


網(wǎng)絡(luò)燈初始化函數(shù)devLedNetWorkdInit(void)

f032939a-abb3-11ee-8b88-92fbcf53809c.png

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

f03d2f4e-abb3-11ee-8b88-92fbcf53809c.png

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

f054a926-abb3-11ee-8b88-92fbcf53809c.png

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

f060415a-abb3-11ee-8b88-92fbcf53809c.gif

三、按鍵讀取
Ai-WB2-12F 開發(fā)板要進入配網(wǎng),需要有個控制方式,開發(fā)板上的IO8按鍵正好可以使用,讀取IO8按鍵,高電平長按2s 后進入配網(wǎng)。


按鍵初始化函數(shù)configButtomInit():

f07fa61c-abb3-11ee-8b88-92fbcf53809c.png

長按識別任務(wù):

f08dcd1e-abb3-11ee-8b88-92fbcf53809c.png

其他進入配網(wǎng)的方式也可以自己去實現(xiàn),只需要能夠進入配網(wǎng)狀態(tài)就行。

四、愛星云配網(wǎng)移植


按照慣例,先新建一個文件夾用來存放愛星云的移植文檔,本貼使用“aiio_cloud”作為文件名,可以根據(jù)自己喜好創(chuàng)建,之后關(guān)于愛星云的源碼都會放在該文件夾中。

在該文件夾中新建一個.h 用來聲明愛星云的配置,比如產(chǎn)品信息,三元組等,這里命名為“cloud_config.h"。


愛星云的配網(wǎng)有兩種:BLE 和AP配網(wǎng),本貼主要介紹BLE 配網(wǎng),BLE 配網(wǎng)主要有兩個函數(shù):

BLE 配網(wǎng)啟動函數(shù)

BLE 配網(wǎng)停止函數(shù)

BLE 配網(wǎng)啟動函數(shù)bleConfigStart()

f099838e-abb3-11ee-8b88-92fbcf53809c.png

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

f0a31d5e-abb3-11ee-8b88-92fbcf53809c.png

在回調(diào)函數(shù)當中,獲取到了SSID、PASSWORD和MQTT 服務(wù)器地址以及其他的連接參數(shù),打印出來之后,直接調(diào)用Wi-Fi連接,就能實現(xiàn)配網(wǎng)。

在Wi-Fi連接成功之后,停止調(diào)用配網(wǎng)函數(shù)就行。

說明:

此時因為沒有連接愛星云,所以使用App 配網(wǎng)時會出現(xiàn)添加失敗的提示,但是實際上Wi-Fi是連接成功的,只是沒有連接愛星云而已。

五、其他內(nèi)容

剩下的就是愛星云真正接入的部分,因為需要教大家比較多的東西,長話短說,直接做了一份基本連接的源碼,大家根據(jù)基本連接的源碼快速實現(xiàn)愛星云的連接。剩下的內(nèi)容直接在源碼README 中介紹,大家可點擊查閱。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 移植
    +關(guān)注

    關(guān)注

    1

    文章

    375

    瀏覽量

    28011
  • wi-fi
    +關(guān)注

    關(guān)注

    14

    文章

    2054

    瀏覽量

    123689
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    626

    瀏覽量

    28965
  • 安信可
    +關(guān)注

    關(guān)注

    0

    文章

    133

    瀏覽量

    3882

原文標題:Ai-WB2-12F使用安信可中間件接入愛星云,遠程點個燈(2)

文章出處:【微信號:安信可科技,微信公眾號:安信可科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    RT-thread源碼移植到STM32F10x和STM32F4xx

    RT-thread源碼移植到STM32F10x和STM32F4xx: 一、源碼下載 點擊入門->下載 ? 在歷史版本里邊隨便選取一個 ? 會進入百度云盤的下載地址,里邊有全部版本的源碼
    的頭像 發(fā)表于 11-15 09:38 ?2054次閱讀
    RT-thread<b class='flag-5'>源碼</b><b class='flag-5'>移植</b>到STM32F10x和STM32F4xx

    如何移植FreeRTOS的源碼

    參照正點原子FreeRTOS視頻教程,首次接觸操作系統(tǒng),做筆記方便回顧目錄如何移植1.復制粘貼2.工程添加3.路徑添加4.將非源碼文件添加和解決其他編譯問題如何移植FreeRTOS的源碼
    發(fā)表于 08-03 06:12

    ARM DSP源碼和庫移植方法

    第7章 ARM DSP源碼和庫移植方法(IAR8)本期教程主要講解ARM官方DSP源碼和庫的移植以及一些相關(guān)知識的介紹。目錄第7章 ARM DSP
    發(fā)表于 08-17 06:00

    DSP源碼和庫的移植

    第6章 ARM DSP源碼和庫移植方法(MDK5的AC5和AC6)本期教程主要講解ARM官方DSP源碼和庫的移植以及一些相關(guān)知識的介紹。目錄第6章 ARM DSP
    發(fā)表于 08-17 08:21

    如何移植FreeRTOS最簡源碼

    如何移植FreeRTOS最簡源碼?
    發(fā)表于 11-29 08:00

    尚果農(nóng)系統(tǒng)APP源碼

    尚果農(nóng)系統(tǒng)APP源碼陳凈▉l8l.48.9696.9.8電▉微同步, 尚果農(nóng)軟件定制開發(fā), 好玩的尚果農(nóng)app定制源碼,
    發(fā)表于 10-18 16:17 ?518次閱讀

    CANOpen系列教程14_協(xié)議源碼移植 (二)

    CANOpen系列教程14_協(xié)議源碼移植(二)
    的頭像 發(fā)表于 03-06 15:06 ?5435次閱讀

    CANOpen系列教程13_協(xié)議源碼移植 (一)

    CANOpen系列教程13_協(xié)議源碼移植(一)
    的頭像 發(fā)表于 03-06 15:11 ?9930次閱讀

    基于STM32移植UCGUI圖形界面框架(3.9.0源碼版本)

    基于STM32移植UCGUI圖形界面框架(3.9.0源碼版本)
    發(fā)表于 11-30 16:06 ?0次下載
    基于STM32<b class='flag-5'>移植</b>UCGUI圖形界面框架(3.9.0<b class='flag-5'>源碼</b>版本)

    HC32F460移植RT-Thread Nano+FinSh工程源碼下載

    HC32F460移植RT-Thread Nano+FinSh工程源碼下載
    發(fā)表于 01-05 10:30 ?6次下載

    W806單片機移植LVGL庫例程源碼下載

    W806單片機移植LVGL庫例程源碼下載。
    發(fā)表于 05-11 15:11 ?15次下載

    基于ucosii移植的點燈實驗源碼(帶完整注釋)

    基于ucosii移植的點燈實驗源碼(帶完整注釋),在STM32F407上實現(xiàn)ucosii移植并實現(xiàn)任務(wù)調(diào)度和點燈操作
    發(fā)表于 08-25 16:19 ?8次下載

    Ai-WB2-12F使用安信可中間件接入星云,遠程點燈

    想必大家都看了很多關(guān)于星云的帖子,做嵌入式的同學肯定有這么個問題:星云很好,很厲害,可是我該怎么通過WB2或者M61/M62模組接入
    的頭像 發(fā)表于 01-02 10:57 ?295次閱讀
    Ai-WB2-12F使用安信可中間件接入<b class='flag-5'>愛</b><b class='flag-5'>星云</b>,遠程點燈

    Ai-WB2-12F使用安信可中間件接入星云,遠程點個燈(2)

    如何移植星云源碼 。 在正式開始之前,先介紹一下設(shè)備上云的流程。 VScode 啟動 一、連接Wi-Fi 第一步是設(shè)備進入配網(wǎng),在配網(wǎng)之前需要能夠正式連接到網(wǎng)絡(luò)。 先把項目中的“
    的頭像 發(fā)表于 01-08 17:18 ?488次閱讀
    Ai-WB2-12F使用安信可中間件接入<b class='flag-5'>愛</b><b class='flag-5'>星云</b>,遠程點個燈(2)

    使用星云配網(wǎng)失敗了,我該怎么辦?

    星云上線已經(jīng)很久了,相信有使用過星物聯(lián)APP的小伙伴在配網(wǎng)時一定遇到過各種問題,今天來看看怎么解決。 01、使用了5G網(wǎng)絡(luò)進行配網(wǎng),配網(wǎng)失敗 解決方法:
    的頭像 發(fā)表于 06-07 09:47 ?233次閱讀
    使用<b class='flag-5'>愛</b><b class='flag-5'>星云</b>配網(wǎng)失敗了,我該怎么辦?