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

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

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

用FreeRTOS編寫的機(jī)智云接入教學(xué)

海闊天空的專欄 ? 來(lái)源:機(jī)智云開發(fā)者 ? 作者:機(jī)智云開發(fā)者 ? 2022-05-24 09:36 ? 次閱讀

教程是使用的STM32F103C8T6,并結(jié)合FreeRTOS機(jī)智云撰寫的教程。其中使用操作系統(tǒng)主要是為了保證系統(tǒng)的穩(wěn)定性,否則當(dāng)邏輯復(fù)雜之后,很容易造成系統(tǒng)崩潰,并且在教程中提供了例程模板,大家可以基于該例程模板上就行修改,就可以用到自己的項(xiàng)目中了。該教程主要參照正點(diǎn)原子的教程所撰寫,感謝正點(diǎn)原子提供的技術(shù)資料。由于是第一次寫博客,可能有些寫得不太好,希望能理解。

1、WIFI固件燒寫

這里使用的是正點(diǎn)原子的WIFI模塊,詳細(xì)資料請(qǐng)參照提供的正點(diǎn)原子的資料,這里簡(jiǎn)單的說(shuō)明下,首先把WIFI模塊的IO_0接地之后,用串口轉(zhuǎn)TTL模塊將固件燒錄到WIFI模塊即可。固件打包在本教程所在文件夾的固件資料里。這里只貼一張地址配置圖(需要注意WIFI模塊的FLASH大小,推薦使用32Mbit的WIFI模塊,其他容量的可能會(huì)出現(xiàn)問(wèn)題):

1.1 固件下載

圖片


1.2 固件燒寫
機(jī)智云固件燒寫有2種方式:
第一種:第一種方式有4個(gè)部分,需要對(duì)地址進(jìn)行配置,但是速度較快,我有幾次用這個(gè)方法更新的固件,有時(shí)候不能用,不知道具體原因。
第二種:只有一個(gè)固件文件,該方式更新簡(jiǎn)單,但是速度較慢。我主要是使用這種方法。

圖片



圖片


2、創(chuàng)建新產(chǎn)品

2.1 創(chuàng)建產(chǎn)品項(xiàng)目
進(jìn)入個(gè)人中心選擇創(chuàng)建新產(chǎn)品,填入相應(yīng)的產(chǎn)品信息,這里選擇WIFI模式。如下圖所示:

圖片



圖片


最后點(diǎn)擊保存,生成項(xiàng)目。

2.2 創(chuàng)建數(shù)據(jù)結(jié)點(diǎn)
點(diǎn)擊左側(cè)的數(shù)據(jù)點(diǎn),然后根據(jù)提示創(chuàng)建并結(jié)合自己的需要?jiǎng)?chuàng)建數(shù)據(jù)點(diǎn)。

同時(shí),提醒大家,在創(chuàng)建完結(jié)點(diǎn)后,注意點(diǎn)擊編輯按鈕,將現(xiàn)實(shí)名稱改文中文,否則在手機(jī)上是默認(rèn)顯示英文的。

注釋說(shuō)明:

可讀:表示手機(jī)只能看,不能修改數(shù)據(jù)。

可寫:手機(jī)既可以讀取單片機(jī)上傳的數(shù)據(jù),還可以通過(guò)手機(jī)設(shè)置,例如開關(guān)信號(hào)。


圖片



3、配置生成手機(jī)源代碼

大家可以根據(jù)自己需求是否選擇需要手機(jī)源碼,這里生成的源碼可以直接用于開發(fā),整個(gè)工程是完整的,需要自己進(jìn)行UI設(shè)計(jì),使界面更加美觀。即使不生成手機(jī)源碼,也是可以通過(guò)機(jī)智云一個(gè)公用的軟件進(jìn)行使用。大家可以直接去應(yīng)用市場(chǎng)下載“機(jī)智云”這款A(yù)PP就可以使用了。下面簡(jiǎn)單介紹下手機(jī)源代碼的生成。


首先選擇左邊欄的應(yīng)用配置,根據(jù)提示選擇IOS或者安卓,然后在選擇左邊欄的應(yīng)用開發(fā),選擇之前創(chuàng)建數(shù)據(jù)節(jié)點(diǎn)的應(yīng)用和填入Product Secret(點(diǎn)擊左邊欄的基本信息,在基本信息找到Product Secret,輸入賬號(hào)密碼即可查看Product Secret),最后點(diǎn)擊生成代碼包,稍等幾十秒,即可產(chǎn)生應(yīng)用的源代碼,根據(jù)自己能力,進(jìn)行源代碼的修改,這里不做介紹。

圖片


4、配置MCU源代碼

點(diǎn)擊左邊欄的MCU開發(fā),在硬件平臺(tái)選擇其他平臺(tái),然后輸入Product Secret,下載代碼包,在網(wǎng)頁(yè)端的操作就完成了,剩下就是導(dǎo)入工程,和開發(fā)自己的功能了。

圖片


5、添加機(jī)智云代碼到工程

拷貝機(jī)智云代碼到工程文件中,將代碼包解壓,之后,將Gizwits文件夾拷貝到工程模板(在打包的資料中找)目錄下,其他的不需要?jiǎng)?。若是自己的工程的話,?qǐng)參照正點(diǎn)原子提供的教程或者在代碼包有一個(gè)名稱為MCU_COMMON_User_Guide _V0.5.PDF的開發(fā)文檔,完成串口,定時(shí)器的底層驅(qū)動(dòng)代碼的導(dǎo)入。一般只需要導(dǎo)入Gizwits文件下里的內(nèi)容就行了。因?yàn)榱硪粋€(gè)已經(jīng)導(dǎo)入例程代碼中了。

圖片

5.2 修改工程源代碼

打開Gizwits 目錄下的gizwits_product.c文件,根據(jù)自己需要添加頭文件:

圖片



打開Gizwits 目錄下的gizwits_product.c文件,注釋掉整個(gè)void userHandle(void)函數(shù),這一部分將放到APPTasks.c中完成。

圖片



void userInit(void) 根據(jù)實(shí)際需要進(jìn)行初始化。

圖片



添加MCU復(fù)位函數(shù)(void mcuRestart(void))

poYBAGKMNNWAe8iTAAAPBCYYrTA539.png

圖片

添加串口驅(qū)動(dòng)函數(shù)(int32_t uartWrite(uint8_t *buf, uint32_t len)),這里以串口2為例,

pYYBAGKMNPyAA5SEAABy2NYbugI007.png

圖片



打開 gizwits_product.h 文件,添加函數(shù)申明 void gizTimerMs(void);

圖片



在APPTasks.h中可以通過(guò)宏定義的形式來(lái)打開或者關(guān)閉機(jī)智云服務(wù),主要是用在調(diào)試模塊的時(shí)候用。默認(rèn)開啟。

圖片



到此整個(gè)工程代碼修改完畢,接下來(lái)就是看工程的結(jié)構(gòu)了。

本工程是以FreeRTOS進(jìn)行編寫的,在該工程中加入了一些底層的驅(qū)動(dòng)函數(shù),可以根據(jù)實(shí)際需要進(jìn)行增減,在main函數(shù)中,已經(jīng)設(shè)計(jì)好了。


一些工程邏輯,包括接入機(jī)智云的處理任務(wù),void gizwits_task(void *pvParameters);

主要邏輯處理函數(shù) void function_task(void *pvParameters) ;這個(gè)函數(shù)調(diào)用了在APPTasks.c里面的子函數(shù),而幾乎所有的邏輯都是在APPTasks.c里面實(shí)現(xiàn)的;

按鍵處理任務(wù) void Key_task(void *pvParameters);OLED顯示任務(wù) void showUI_task(void *pvParameters);操作系統(tǒng)任務(wù)堆棧大小查看任務(wù) void Query_task(void *pvParameters);

圖片



若需要自己創(chuàng)建任務(wù)可以查看FreeRTOS任務(wù)創(chuàng)建那一塊。

6、任務(wù)功能介紹

6.1 OLED顯示任務(wù):

DisplayUI,這里主要是根據(jù)實(shí)際需要顯示一些想要的內(nèi)容,由于機(jī)智云使用的是全局變量,很方便數(shù)據(jù)的更新,因此可以在這里實(shí)現(xiàn)一些需要的數(shù)據(jù)顯示。比如在這里實(shí)現(xiàn)了項(xiàng)目名稱、時(shí)間、和溫濕度等的顯示。在codetab.h中可以添加漢字顯示代碼,實(shí)現(xiàn)漢字顯示的功能,

圖片



6.2 按鍵處理任務(wù)(KeyTask.c)
這個(gè)任務(wù)主要是處理用戶按鍵的接口,在這里已經(jīng)實(shí)現(xiàn)了機(jī)智云連接路由器的處理,
已經(jīng)運(yùn)行時(shí)間統(tǒng)計(jì)的用戶按鍵。使用者可以根據(jù)需要添加其他功能。

圖片



6.3 主邏輯處理任務(wù)(APPTasks.c)

在這里包括:

系統(tǒng)功能初始化(void System_Init(void)),

任務(wù)邏輯(void MainTask(void)),

機(jī)智云數(shù)據(jù)上傳(void userHandle(void))等。

圖片



6.4 數(shù)據(jù)下行處理(APPTasks.c)
前面介紹完主要的邏輯關(guān)系之后,現(xiàn)在介紹手機(jī)下行數(shù)據(jù)的處理,所謂數(shù)據(jù)下行處理,即處理手機(jī)下發(fā)的數(shù)據(jù)。

打開gizwits_product.c文件,

在 int8_t gizwitsEventProcess(eventInfo_t *info, uint8_t *gizdata, uint32_t len) 實(shí)現(xiàn)對(duì)手機(jī)下行數(shù)據(jù)的處理

注意:在這里一定、千萬(wàn)不能使用延時(shí)功能,否則整個(gè)系統(tǒng)將崩潰,并且延時(shí)函數(shù)只能使用vTaskDelay(10);實(shí)現(xiàn)毫秒延時(shí)。

圖片



因此在這里主要處理一些開關(guān)量等簡(jiǎn)單的功能,如果需要處理復(fù)雜的功能,請(qǐng)到主邏輯任務(wù)(void MainTask(void))中去處理。比如在這里實(shí)現(xiàn)了水泵、加濕器等的控制??刂频拇a只需要在//user handle下面添加我們的邏輯代碼就可以了,其他不用關(guān)心。

圖片




7、接入手機(jī)APP

7.1 接入說(shuō)明
這里主要介紹Air_link模式,其它模式根據(jù)說(shuō)明書操作。在前面功能介紹部分的按鍵任務(wù)中,已經(jīng)設(shè)置了通過(guò)按下key_up按鍵進(jìn)入Air_link模式。


因此在我們已經(jīng)準(zhǔn)備好有路由器或者手機(jī)熱點(diǎn)(注意手機(jī)只能是2.4G模式,若是5G模式,請(qǐng)修改成2.4G模式,否則機(jī)智云無(wú)法連接)的情況下,就可以通過(guò)手機(jī)接入機(jī)智云了:

圖片



7.2 接入步驟
打開手機(jī)APP“我的設(shè)置”界面的右上角,點(diǎn)擊“+”下的“一鍵配置”按鈕,然后根據(jù)提示完成WIFI的設(shè)置,硬件選擇“樂鑫”就可以了。
配置完成后,手機(jī)中將會(huì)出現(xiàn)之前在機(jī)智云創(chuàng)建的項(xiàng)目名稱,并且顏色會(huì)變成黃色,離線之后將變成灰色。如下圖所示:

圖片



點(diǎn)擊項(xiàng)目名稱就進(jìn)入控制界面,控制設(shè)備了。如下圖所示:

圖片

來(lái)源:機(jī)智云開發(fā)者

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

    關(guān)注

    12

    文章

    484

    瀏覽量

    62181
  • 機(jī)智云
    +關(guān)注

    關(guān)注

    2

    文章

    590

    瀏覽量

    26412
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    教你輕松將CC3200接入機(jī)智

    教你輕松將CC3200接入機(jī)智下面介紹的是如何將CC3200 LaunchPad 接入機(jī)智
    發(fā)表于 02-22 14:26

    cc3200接入機(jī)智

    cc3200接入機(jī)智,然而未做過(guò)無(wú)線網(wǎng)的我們?cè)趺慈腴T??求幫助
    發(fā)表于 05-06 07:51

    【G友經(jīng)驗(yàn)】即使沒有Gokit,也能接入機(jī)智平臺(tái)(轉(zhuǎn))

    1、我有一個(gè)ESP8266模塊,想接入機(jī)智,是必須使用GAgent嗎?我想接入機(jī)智該如何操作
    發(fā)表于 07-26 11:21

    機(jī)智想說(shuō)愛你不容易 - 如何開發(fā)接入機(jī)智的物聯(lián)網(wǎng)設(shè)備

    `機(jī)智是一個(gè)物聯(lián)網(wǎng)/智能硬件服務(wù)平臺(tái),提供了一系列物聯(lián)網(wǎng)硬件開發(fā)工具以及穩(wěn)定服務(wù),包括:設(shè)備接入服務(wù)、開放平臺(tái)服務(wù)以及統(tǒng)計(jì)分析服務(wù)。很早之前就知道
    發(fā)表于 09-27 13:26

    亞馬遜Echo接入教

    了新的 Skill,那么 Echo 的功能就得到了增強(qiáng)。我們要讓 Echo 控制一款機(jī)智的產(chǎn)品,就是要在 Alexa 上開發(fā)一個(gè)針對(duì)這個(gè)產(chǎn)品的 Skill。接入文檔看這》》》http
    發(fā)表于 12-15 10:48

    五分鐘了解機(jī)智

    本文主要介紹了機(jī)智接入流程與接入方案,并且通過(guò)機(jī)智測(cè)試APP控制虛擬設(shè)備的例子來(lái)快速理解
    發(fā)表于 12-27 14:32

    請(qǐng)問(wèn)如何將CC3200接入機(jī)智

    請(qǐng)參考最新的機(jī)智的CC3200的代碼:下面介紹的是如何將CC3200 LaunchPad 接入機(jī)智服務(wù)器。具體的操作請(qǐng)參考附件的PDF。
    發(fā)表于 06-12 10:19

    請(qǐng)問(wèn)一下STM32是怎樣接入機(jī)智

    如何利用機(jī)智進(jìn)行物聯(lián)網(wǎng)開發(fā)呢?STM32是怎樣接入機(jī)智的?
    發(fā)表于 12-15 07:36

    基于FreeRTOS機(jī)智接入教程分享

    基于FreeRTOS機(jī)智接入教程分享
    發(fā)表于 12-20 07:58

    STM32F103+ESP8266使用工程模板接入機(jī)智的過(guò)程

    正點(diǎn)原子STM32mini開發(fā)板+ESP8266接入機(jī)智博主是一位剛剛接觸STM32的小白,在朋友的建議下開始捯飭機(jī)智,雖然
    發(fā)表于 02-14 07:47

    ESP8266接入機(jī)智可以不刷他們的固件嗎?

    使用ESP-01自帶固件可以接入機(jī)智嗎,好像必須要刷機(jī)智的固件才行啊。
    發(fā)表于 11-09 07:22

    Nordic nRF51822接入教

    Nordic nRF51822接入教程,微信硬件的接入教程。
    發(fā)表于 06-24 14:29 ?65次下載

    基于FreeRTOS機(jī)智接入教程分享

    本教程是使用的STM32F103C8T6,并結(jié)合FreeRTOS機(jī)智撰寫的教程。其中使用操作系統(tǒng)主要是為了保證系統(tǒng)的穩(wěn)定性,否則當(dāng)邏輯復(fù)雜之后,很容易造成系統(tǒng)崩潰,并且在教程中提供了例程模板
    的頭像 發(fā)表于 05-26 10:41 ?1399次閱讀
    基于<b class='flag-5'>FreeRTOS</b>的<b class='flag-5'>機(jī)智</b><b class='flag-5'>云</b><b class='flag-5'>接入教</b>程分享

    【開發(fā)指南】使用NB通訊模組快速接入機(jī)智

    本文主要介紹如何使用Gokit開發(fā)板和NB通訊模組快速接入機(jī)智,本文使用的是NB-DTUN102作為例子。一、NB模塊與機(jī)智數(shù)據(jù)交互流程
    的頭像 發(fā)表于 03-30 13:46 ?1227次閱讀
    【開發(fā)指南】使用NB通訊模組快速<b class='flag-5'>接入</b><b class='flag-5'>機(jī)智</b><b class='flag-5'>云</b>

    正點(diǎn)原子探索版STM32F407,接入機(jī)智之代碼移植

    在2017年機(jī)智云和正點(diǎn)原子聯(lián)袂發(fā)布正點(diǎn)原子接入機(jī)智教程,提供了一整套基于STM32開發(fā)板的接入教程和實(shí)例源碼,從平臺(tái)配置到程序配置,為開
    的頭像 發(fā)表于 06-20 09:15 ?1863次閱讀
    正點(diǎn)原子探索版STM32F407,<b class='flag-5'>接入</b><b class='flag-5'>機(jī)智</b><b class='flag-5'>云</b>之代碼移植