在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

ESP-BOX 智能藥盒源碼解析(續)

啟明云端 ? 2024-10-10 08:01 ? 次閱讀

藥盒基本概述請參考上一篇文章

bace28c8-869a-11ef-bb4b-92fbcf53809c.jpg

源碼解析


主函數部分___main/main.c


baf266f2-869a-11ef-bb4b-92fbcf53809c.png

初始化 NVS:初始化非易失性存儲(NVS),如果需要擦除和重新初始化 NVS,會進行相應處理。

檢查百度 API 密鑰:調用 baidu_api_key_check函數檢查是否配置了百度 API 密鑰。

初始化 I2C初始化 I2C 總線,用于觸摸和音頻設備。

啟動顯示和 LVGL啟動顯示并設置默認亮度。

顯示用戶界面:調用 app_lvgl_display函數顯示用戶界面。

初始化 RainMaker:啟動 RainMaker 服務,并等待其連接。

初始化驅動和其他組件:初始化驅動、語音識別、文本到語音轉換和 UVC 攝像頭。

輸出剩余內存:輸出啟動后的剩余內存。

主循環:進入一個無限循環,每秒延遲一次;等待用戶操作。

主要功能模塊


LVGL___main/ui/ui.c


從主函數的 app_lvgl_display()調用,ui.c 用于管理多個屏幕和控件的初始化和事件處理。

bb1c01d8-869a-11ef-bb4b-92fbcf53809c.png

屏幕初始化函數,這個函數用于初始化所有屏幕,并設置默認的顯示主題。最后,它將ui_Screen1作為初始屏幕加載。

bb3b44ee-869a-11ef-bb4b-92fbcf53809c.png

屏幕和控件的初始化函數,這些函數用于初始化各個屏幕及其上的控件。

bb5b2106-869a-11ef-bb4b-92fbcf53809c.png

屏幕事件處理函數,這些函數用于處理用戶在各個屏幕上的操作事件,如手勢和按鈕點擊。

bb635830-869a-11ef-bb4b-92fbcf53809c.png

事件處理函數實現,這些函數根據事件類型和手勢方向來切換屏幕或執行其他操作。

bb744d8e-869a-11ef-bb4b-92fbcf53809c.png

UVC攝像頭___main/app/app_uvc_camera.c

從主函數的 app_uvc_camera_init()調用,使用了樂鑫的 USB 流媒體庫,能夠初始化攝像頭、處理攝像頭幀數據,并提供掛起和恢復流媒體的功能。

掛起和恢復UVC流媒體函數app_uvc_suspend函數調用usb_streaming_control函數掛起流媒體,而app_uvc_resume函數恢復流媒體。

bb9cd6fa-869a-11ef-bb4b-92fbcf53809c.png

獲取當前幀數據函數,返回當前幀數據的指針。

bbcb813a-869a-11ef-bb4b-92fbcf53809c.png

初始化UVC攝像頭

初始化UVC攝像頭函數,包括以下步驟:

1.分配內存:

為USB傳輸緩沖區分配雙緩沖區xfer_buffer_axfer_buffer_b

為幀緩沖區分配內存frame_buffer

2.配置UVC功能:

設置UVC配置,包括幀寬度、高度、幀間隔、傳輸緩沖區大小、幀緩沖區和回調函數。

3.配置UVC流媒體:

調用uvc_streaming_config函數配置UVC流媒體,如果配置失敗,記錄錯誤日志。

4.啟動USB流媒體:

調用usb_streaming_start函數啟動USB流媒體。

bbe18b74-869a-11ef-bb4b-92fbcf53809c.png

ESP_SR___main/app/app_sr.c

從主函數的 app_sr_start()調用,app_sr.c 是基于 FreeRtos的語音識別應用,能夠檢測喚醒詞和語音命令,并將結果發送到隊列進行處理。


應用啟動函數,初始化語音識別系統,包括創建結果隊列、加載模型、配置AFE和多網絡接口,并創建音頻饋送任務、音頻檢測任務和語音識別處理任務。

bc056e68-869a-11ef-bb4b-92fbcf53809c.png

音頻饋送任務,從麥克風讀取音頻數據,并將其饋送到AFE模塊進行處理。

bc17499e-869a-11ef-bb4b-92fbcf53809c.png

音頻檢測任務,檢測喚醒詞和語音命令,并將結果發送到隊列進行處理。

bc3fa0a6-869a-11ef-bb4b-92fbcf53809c.png

重置命令列表函數,用于重置語音命令列表。

bc66f57a-869a-11ef-bb4b-92fbcf53809c.png

TTS___main/app/app_sr_tts.c

從主函數的 app_tts_init()調用,app_sr_tts.c 實現了一個文本到語音(TTS)轉換的應用,能夠初始化TTS系統并播放給定的文本。

TTS初始化

TTS初始化函數,初始化TTS系統,包括以下步驟:

1.查找語音數據分區:

使用esp_partition_find_first函數查找名為"voice_data"的分區。

如果找不到分區,記錄錯誤日志并返回錯誤。

2.映射語音數據分區:

使用esp_partition_mmap函數將分區映射到內存。

如果映射失敗,記錄錯誤日志并返回錯誤。

3.初始化語音設置:

使用esp_tts_voice_set_init函數初始化語音設置。

創建TTS句柄,如果創建失敗,記錄錯誤日志并返回錯誤。

4.初始化揚聲器編碼器設備:

使用bsp_audio_codec_speaker_init函數初始化揚聲器編碼器設備。

設置默認音量。

bc846d3a-869a-11ef-bb4b-92fbcf53809c.png

TTS播放函數

1.打開揚聲器設備:

設置采樣率、通道數和位深度。

使用esp_codec_dev_open函數打開揚聲器設備。

2.播放提示文本:

記錄要播放的文本。

使用esp_tts_parse_chinese函數解析中文文本。

使用esp_tts_stream_play函數獲取PCM數據,并使用esp_codec_dev_write函數將數據寫入揚聲器設備。

循環播放直到所有數據播放完畢。

3.關閉揚聲器設備并重置TTS流:

使用esp_codec_dev_close函數關閉揚聲器設備。

使用esp_tts_stream_reset函數重置TTS流。

bca440e2-869a-11ef-bb4b-92fbcf53809c.png

Rainmaker___main/rmker/rmker.c

從主函數的 app_rmaker_start()調用,rmker.c 主要功能是通過 Wi-Fi 連接到 RainMaker 云平臺,并管理藥盒和心率檢測設備。

啟動RainMaker任務


啟動 RainMaker 任務,創建并啟動 RainMaker 任務。

bcaef802-869a-11ef-bb4b-92fbcf53809c.png

獲取和設置藥盒狀態參數,提供了獲取和設置藥盒狀態參數的函數。

bcb667ae-869a-11ef-bb4b-92fbcf53809c.png

更新和報告藥盒和心率數據,提供了更新和報告藥盒和心率數據的函數。

bcd37984-869a-11ef-bb4b-92fbcf53809c.png

重置 Wi-Fi,提供了重置 Wi-Fi 的函數。

bceec022-869a-11ef-bb4b-92fbcf53809c.png

處理來自 RainMaker 云的命令,處理來自 RainMaker 云的命令,根據命令執行相應的操作,如打開/關閉藥盒、通知用戶等。

bcfbe5d6-869a-11ef-bb4b-92fbcf53809c.png

事件處理函數,處理 RainMaker 事件,如連接和斷開連接,并根據事件更新顯示屏。

bd24bb46-869a-11ef-bb4b-92fbcf53809c.png

創建藥盒和心率檢測設備,創建藥盒和心率檢測設備,并添加相應的參數和回調函數。

bd49497a-869a-11ef-bb4b-92fbcf53809c.png

bd740f5c-869a-11ef-bb4b-92fbcf53809c.png

RainMaker 主任務,初始化網絡和 RainMaker 節點,創建設備,啟用時區和調度服務,注冊事件處理函數,啟動 RainMaker 代理,并啟動 Wi-Fi。

bd9b34b0-869a-11ef-bb4b-92fbcf53809c.png

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

    關注

    0

    文章

    183

    瀏覽量

    33950
  • 源碼
    +關注

    關注

    8

    文章

    641

    瀏覽量

    29213
  • 函數
    +關注

    關注

    3

    文章

    4331

    瀏覽量

    62618
收藏 人收藏

    評論

    相關推薦

    factory demo編譯報錯的原因?

    sdkconfig \'F:/01_ESP_STM_PRJ/ESP32/ESP-BOX/esp-box-master/examples/factory_demo/sdkconfig
    發表于 06-27 06:43

    esp-box-0.5.0\\esp-box-0.5.0\\examples\\factory_demo編譯出錯是什么原因導致的?

    esp-box-0.5.0esp-box-0.5.0examplesfactory_demo時,報錯,請問這是什么問題 又從Github上下載源碼esp-box-master.zip, 里面的例程
    發表于 06-27 07:04

    ESP-BOX的Git上的PCB文檔用AD打不開,說文件損壞怎么解決?

    ESP-BOX的Git上的PCB文檔用AD打不開,說文件損壞,能否提供一下AD版本的layout供參考?非常感謝!!!
    發表于 06-27 06:33

    esp-skainet的example在ESP-BOX上報錯的原因?怎么處理?

    esp-skainet的example選擇 esp32s3,并在menuconfig中設置esp-box,編譯并燒錄,發現無法正常工作,報錯如下: E (372) SPIFFS: spiffs partition could
    發表于 06-27 06:06

    ESP-BOX開發板燒錄時報錯的原因?

    ESP-BOX開發板已經正常使用幾個星期,今天突然開始報錯,不同固件均報錯,具體如下: Executing action: flashSerial port
    發表于 06-27 06:58

    esp-box的slint例子為啥燒錄后無法顯示怎么解決?

    設備:esp-box-3b 開發環境:esp-idf + slint 按照官方的slint開發例子,運行和燒錄都沒問題,但是屏幕無法顯示
    發表于 07-22 08:14

    基于STM32的智能藥盒

    的今天,這些都不是問題,我們設計并開發了一款名為“健康衛士”的智能藥盒,可以聯網監測用戶的服藥情況,提示用戶服藥,并且根據用戶設定自動提取所需藥物。哎呀!!!!!!!忘記了我是來參賽的,說下這次大賽要求
    發表于 12-07 10:09

    如何通過ESP32S3的USB進行ESP-BOX固件升級呢?

    如果通過USB口,在不需要按IO0的情況下,進行升級。目前測試ESP-BOX的固件可以進行升級,通過VCS的IDF創建的測試用例,也可以自動完成升級,但是通過micropython的固件,確無法完成。請問哪個大神有解決方案。
    發表于 03-03 09:06

    求助,請問esp-box使用的LCD規格書哪里能查看?

    請問esp-box使用的LCD規格書哪里能查看?
    發表于 03-09 08:38

    ESP-BOX工程的master分支下,如何定位APP的入口地址?

    我在ESP-BOX工程的master分支下,IDF是release/v4.4 commit id: 2bdea81b2a,編譯了范例(比如image-display);燒錄開機后,出現 如下LOG后,再沒有其它輸出了。看樣子是app_main部分引導不了?能否提示一下,如何定位APP的入口地址?
    發表于 03-09 08:29

    特別提醒藍牙語音智能藥盒的設計思路(一)

    一、前言隨著人口老齡化和慢性病的不斷增加,藥品的使用量也在逐年增加。而藥品的正確使用和按時服用對于病人的健康恢復至關重要。中國的智能藥盒正在進入迅速發展階段,目前已經有許多商業智能藥盒
    發表于 03-24 11:17

    智能藥盒電路原理圖

    藥盒提醒~~智能藥盒電路原理圖,感興趣的可以看看。
    發表于 08-30 18:11 ?14次下載

    特別提醒藍牙語音智能藥盒的設計思路(一)

    隨著人口老齡化和慢性病的不斷增加,藥品的使用量也在逐年增加。而藥品的正確使用和按時服用對于病人的健康恢復至關重要。 中國的智能藥盒正在進入迅速發展階段,目前已經有許多商業智能藥盒產品
    的頭像 發表于 03-24 11:12 ?1102次閱讀
    特別提醒藍牙語音<b class='flag-5'>智能</b><b class='flag-5'>藥盒</b>的設計思路(一)

    拿來就能用 | ESP AI音箱方案介紹

    本案例使用ESP-BOX和OpenAIAPI開發一款語音控制的聊天機器人(chatbot)。ESP-BOXAI音箱方案介紹本案例將介紹如何使用ESP-BOX和OpenAIAPI開發一款語音控制的聊天
    的頭像 發表于 03-21 08:03 ?646次閱讀
    拿來就能用 | <b class='flag-5'>ESP</b> AI音箱方案介紹

    樂鑫ESP32-S3-BOX3方案智能AI藥盒應用,啟明云端技術支持和定制化服務

    在快節奏的現代生活中,健康管理變得越來越重要。但繁忙的日常往往讓我們難以時刻關注自己的健康狀況,尤其是藥物管理。今天,我們帶您一起重現一款的新產品——ESP_BOX智能藥盒,它不僅能夠提醒您按時服藥
    的頭像 發表于 09-25 08:00 ?690次閱讀
    樂鑫<b class='flag-5'>ESP32-S3-BOX</b>3方案<b class='flag-5'>智能</b>AI<b class='flag-5'>藥盒</b>應用,啟明云端技術支持和定制化服務
    主站蜘蛛池模板: 456成人| 91在线视频免费| 男女交性视频播放 视频 视频| 亚洲国产精品综合久久网络| 国产片在线观看狂喷潮bt天堂| 色吧亚洲欧美另类| 色成人亚洲| 一级毛片免费不卡直观看| 1024你懂的在线观看| 亚洲第一成年网| 国产精品毛片久久久久久久| 精品久久久久久久免费加勒比| 成人国产三级精品| 激情婷婷丁香| 国产精品无码永久免费888| 伊人久久大杳蕉综合大象| 黄 色 免 费 网站在线观看| 国产三片高清在线观看| 优优国产在线视频| 国产免费一区二区三区| 67194最新网址| 色婷婷色婷婷| 天天干 夜夜操| sss欧美一区二区三区| 久久伊人精品青青草原高清| 精品黄色片| 天天做人人爱夜夜爽2020毛片| videsgratis欧美另类| 欧美涩区| 欧美三级视频网站| 久久美女精品| 天堂网av2014| 午夜影院普通| 俄罗斯久久| 成人免费的性色视频| 中文字字幕码一二区| 免费一看一级毛片| 91精品国产91久久久久久青草| tube 69sex 第一次| 你懂得在线网址| 二级特黄绝大片免费视频大片|