<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

基于FreeRTOS的機智云接入教程分享

機智云 ? 2022-05-26 10:41 ? 次閱讀

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

1、WIFI固件燒寫

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

1.1 固件下載
43c2f45e-dc4f-11ec-b80f-dac502259ad0.png

1.2 固件燒寫
機智云固件燒寫有2種方式:
第一種:第一種方式有4個部分,需要對地址進行配置,但是速度較快,我有幾次用這個方法更新的固件,有時候不能用,不知道具體原因。
第二種:只有一個固件文件,該方式更新簡單,但是速度較慢。我主要是使用這種方法。
43f3028e-dc4f-11ec-b80f-dac502259ad0.png

442edd04-dc4f-11ec-b80f-dac502259ad0.png

2、創建新產品

2.1 創建產品項目
進入個人中心選擇創建新產品,填入相應的產品信息,這里選擇WIFI模式。如下圖所示:
4452eb40-dc4f-11ec-b80f-dac502259ad0.png

4485743e-dc4f-11ec-b80f-dac502259ad0.png
最后點擊保存,生成項目。

2.2 創建數據結點
點擊左側的數據點,然后根據提示創建并結合自己的需要創建數據點。

同時,提醒大家,在創建完結點后,注意點擊編輯按鈕,將現實名稱改文中文,否則在手機上是默認顯示英文的。

注釋說明:

可讀:表示手機只能看,不能修改數據。

可寫:手機既可以讀取單片機上傳的數據,還可以通過手機設置,例如開關信號。


44e2af8c-dc4f-11ec-b80f-dac502259ad0.png

3、配置生成手機源代碼

大家可以根據自己需求是否選擇需要手機源碼,這里生成的源碼可以直接用于開發,整個工程是完整的,需要自己進行UI設計,使界面更加美觀。即使不生成手機源碼,也是可以通過機智云一個公用的軟件進行使用。大家可以直接去應用市場下載“機智云”這款APP就可以使用了。下面簡單介紹下手機源代碼的生成。


首先選擇左邊欄的應用配置,根據提示選擇IOS或者安卓,然后在選擇左邊欄的應用開發,選擇之前創建數據節點的應用和填入Product Secret(點擊左邊欄的基本信息,在基本信息找到Product Secret,輸入賬號密碼即可查看Product Secret),最后點擊生成代碼包,稍等幾十秒,即可產生應用的源代碼,根據自己能力,進行源代碼的修改,這里不做介紹。
45116ec6-dc4f-11ec-b80f-dac502259ad0.jpg

4、配置MCU源代碼

點擊左邊欄的MCU開發,在硬件平臺選擇其他平臺,然后輸入Product Secret,下載代碼包,在網頁端的操作就完成了,剩下就是導入工程,和開發自己的功能了。
455bc3e0-dc4f-11ec-b80f-dac502259ad0.png

5、添加機智云代碼到工程拷貝機智云代碼到工程文件中,將代碼包解壓,之后,將Gizwits文件夾拷貝到工程模板(在打包的資料中找)目錄下,其他的不需要動。若是自己的工程的話,請參照正點原子提供的教程或者在代碼包有一個名稱為MCU_COMMON_User_Guide _V0.5.PDF的開發文檔,完成串口,定時器的底層驅動代碼的導入。一般只需要導入Gizwits文件下里的內容就行了。因為另一個已經導入例程代碼中了。

45ac66f6-dc4f-11ec-b80f-dac502259ad0.png

5.2 修改工程源代碼

打開Gizwits 目錄下的gizwits_product.c文件,根據自己需要添加頭文件:
45e68a98-dc4f-11ec-b80f-dac502259ad0.png

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

461bac32-dc4f-11ec-b80f-dac502259ad0.png

void userInit(void) 根據實際需要進行初始化。
46463c5e-dc4f-11ec-b80f-dac502259ad0.png

添加MCU復位函數(void mcuRestart(void))

__set_FAULTMASK(1);NVIC_SystemReset();

469508f2-dc4f-11ec-b80f-dac502259ad0.png

添加串口驅動函數(int32_t uartWrite(uint8_t *buf, uint32_t len)),這里以串口2為例,

for(i=0; i{//USART_SendData(UART, buf);//STM32 test demo//Serial port to achieve the function, the buf sent to the moduleUSART_SendData(USART2,buf);while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET); //循環發送,直到發送完畢if(i >=2 && buf == 0xFF){//Serial port to achieve the function, the 0x55 sent to the module//USART_SendData(UART, 0x55);//STM32 test demoUSART_SendData(USART2,0x55);while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET); //循環發送,直到發送完畢}}


46e6667a-dc4f-11ec-b80f-dac502259ad0.png

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

47187084-dc4f-11ec-b80f-dac502259ad0.png

在APPTasks.h中可以通過宏定義的形式來打開或者關閉機智云服務,主要是用在調試模塊的時候用。默認開啟。

4745d920-dc4f-11ec-b80f-dac502259ad0.png

到此整個工程代碼修改完畢,接下來就是看工程的結構了。

本工程是以FreeRTOS進行編寫的,在該工程中加入了一些底層的驅動函數,可以根據實際需要進行增減,在main函數中,已經設計好了。


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

主要邏輯處理函數 void function_task(void *pvParameters) ;這個函數調用了在APPTasks.c里面的子函數,而幾乎所有的邏輯都是在APPTasks.c里面實現的;

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

4771ba7c-dc4f-11ec-b80f-dac502259ad0.png

若需要自己創建任務可以查看FreeRTOS任務創建那一塊。

6、任務功能介紹

6.1 OLED顯示任務:

DisplayUI,這里主要是根據實際需要顯示一些想要的內容,由于機智云使用的是全局變量,很方便數據的更新,因此可以在這里實現一些需要的數據顯示。比如在這里實現了項目名稱、時間、和溫濕度等的顯示。在codetab.h中可以添加漢字顯示代碼,實現漢字顯示的功能,
47b18e18-dc4f-11ec-b80f-dac502259ad0.png

6.2 按鍵處理任務(KeyTask.c)
這個任務主要是處理用戶按鍵的接口,在這里已經實現了機智云連接路由器的處理,
已經運行時間統計的用戶按鍵。使用者可以根據需要添加其他功能。
47e17588-dc4f-11ec-b80f-dac502259ad0.png

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

在這里包括:

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

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

機智云數據上傳(void userHandle(void))等。
4819f692-dc4f-11ec-b80f-dac502259ad0.png

6.4 數據下行處理(APPTasks.c)
前面介紹完主要的邏輯關系之后,現在介紹手機下行數據的處理,所謂數據下行處理,即處理手機下發的數據。

打開gizwits_product.c文件,

在 int8_t gizwitsEventProcess(eventInfo_t *info, uint8_t *gizdata, uint32_t len) 實現對手機下行數據的處理

注意:在這里一定、千萬不能使用延時功能,否則整個系統將崩潰,并且延時函數只能使用vTaskDelay(10);實現毫秒延時。

48523b10-dc4f-11ec-b80f-dac502259ad0.png

因此在這里主要處理一些開關量等簡單的功能,如果需要處理復雜的功能,請到主邏輯任務(void MainTask(void))中去處理。比如在這里實現了水泵、加濕器等的控制??刂频拇a只需要在//user handle下面添加我們的邏輯代碼就可以了,其他不用關心。
4885abd0-dc4f-11ec-b80f-dac502259ad0.png


7、接入手機APP

7.1 接入說明
這里主要介紹Air_link模式,其它模式根據說明書操作。在前面功能介紹部分的按鍵任務中,已經設置了通過按下key_up按鍵進入Air_link模式。


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

48be4422-dc4f-11ec-b80f-dac502259ad0.png

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

48f6cbe4-dc4f-11ec-b80f-dac502259ad0.png

點擊項目名稱就進入控制界面,控制設備了。如下圖所示:
4933d390-dc4f-11ec-b80f-dac502259ad0.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FreeRTOS
    +關注

    關注

    12

    文章

    474

    瀏覽量

    61463
  • 機智云
    +關注

    關注

    2

    文章

    545

    瀏覽量

    26266
收藏 人收藏

    評論

    相關推薦

    淺析FreeRTOS任務調度器的三種調度算法和應用

    FreeRTOS在MCU領域應用非常廣泛,今天就給大家講解一下FreeRTOS調度器中的三種調度算法,以及在瑞薩RZ/T2L MPU中的應用。
    的頭像 發表于 05-10 14:02 ?1053次閱讀
    淺析<b class='flag-5'>FreeRTOS</b>任務調度器的三種調度算法和應用

    基于機智云物聯網的PCR溫度控制

    本文設計了基于物聯網的PCR溫度控制系統,能夠實現快速、準確的溫度控制。通過將檢測設備端接入機智云平臺,使檢測人員能夠遠程監控PCR儀的運行,實現檢測現場的無人值守,減輕檢測人員的負擔,并提
    的頭像 發表于 03-07 08:09 ?265次閱讀
    基于<b class='flag-5'>機智</b>云物聯網的PCR溫度控制

    FreeRTOS中斷測試避坑指南

    任何調用中斷安全FreeRTOS API函數的中斷服務例程都可以使用的最高中斷優先級。不要從任何優先級高于此的中斷調用中斷安全FREERTOS API函數(優先級越高,數值越低)。
    的頭像 發表于 12-21 09:04 ?546次閱讀
    <b class='flag-5'>FreeRTOS</b>中斷測試避坑指南

    ESP8266-01燒寫機智GAgent使用哪種SPI模式?

    ESP8266-01燒寫機智GAgent使用哪種SPI模式 官網有DIO和QIO兩種
    發表于 11-10 08:06

    ESP8266-01燒錄機智GAgent時SPI Mode選擇哪種?

    ESP8266-01燒錄機智GAgent時SPI Mode選擇哪種?是選擇合并的固件還是單獨燒寫
    發表于 11-10 07:54

    用ESP8266接入機智可以不刷他們的固件嗎?

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

    機智采用MCU方案采集DS18B20溫度,一直無法讀取數據怎么解決?

    單片機:STC8A8K64S4A12;ESP8266-01 采用機智的MCU方案,51單片機的程序是自動生成的,基礎功能已經實現,但是一直無法讀取DS18B20數據,DS18B20控制程序已經驗證沒有問題,DS18B20是不是對時序要求很嚴格? 請問怎么改改?
    發表于 11-06 07:45

    ESP8266-01如何單模塊連接機智或ONENET等平臺?

    ESP8266-01單模塊可以直接連接機智吧,不通過MCU。 另外,如何利用APP控制ESP8266做一個智能插座。這個APP有可供直接使用的嗎。
    發表于 10-19 07:07

    FreeRTOS內存管理實現

    FreeRTOS是一個為嵌入式系統設計的開源實時操作系統。它提供了一個多任務內核和一系列功能,適合在資源受限的設備上管理實時任務和應用程序。FreeRTOS內存管理的關鍵方面之一是堆管理。
    的頭像 發表于 10-10 16:17 ?567次閱讀
    <b class='flag-5'>FreeRTOS</b>內存管理實現

    【IoT畢設】機智平臺+STM32+樹莓派的草莓采摘機器人控制系統

    的軟件設計主要包括RT-thread實時操作系統在單片機上的移植調試、樹莓派3B+視覺識別、樹莓派與單片機數據傳輸的通訊調試、機智物聯網和WIFI模塊在單片機上的接入以及樹莓派上位機控制軟件的實現。 通過
    發表于 08-16 17:35

    基于STM32的FreeRTOS開發(1)----FreeRTOS簡介

    FreeRTOS 是一個免費和開源的實時操作系統,它主要用于嵌入式系統。它非常輕量級,可以在很小的硬件資源上運行,因此非常適合在限制硬件資源的嵌入式系統中使用。 FreeRTOS提供了一組簡單的任務
    的頭像 發表于 07-27 09:49 ?985次閱讀
    基于STM32的<b class='flag-5'>FreeRTOS</b>開發(1)----<b class='flag-5'>FreeRTOS</b>簡介

    機智物聯網低功耗轉接板】遠程環境數據采集探索

    GE211是機智自行研發的定制轉接板,主要適用于白色智能家電等設備應用。轉接板采用ESP32-C3-WROOM-02通信模塊,具備支持WiFi和BLE的雙模無線通信能力,并且還包含TTL電平轉換
    發表于 06-27 18:02
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>