博客 / 詳情

返回

【源碼開源】基於 STM32 的智能桌面天氣預報系統

【源碼開源】基於 STM32 的智能桌面天氣預報系統

——語音識別 + 觸摸交互 + 多功能信息終端設計全解析

一、前言

隨着物聯網設備的普及,越來越多的用户希望在桌面端擁有一個能夠實時展示天氣、空氣質量、日期時間等生活信息的小型智能終端。如果這個設備還能支持語音交互、觸摸屏控制、甚至帶有一定的娛樂功能,就能在工作桌、書房乃至卧室中發揮更大的價值。

本項目基於 STM32 微控制器,構建了一個集 天氣顯示、空氣質量監測、語音識別交互、觸摸控制和收音機功能 於一體的桌面智能天氣預報系統。項目不僅具備實時數據展示,還支持語音搜索天氣,實現了與硬件結合的輕量級對話功能,是一個綜合性 IoT 終端設計的優秀實踐案例。


源碼分享

直接放到之前寫的文章裏了,免費開源,下載學習即可。
https://blog.csdn.net/weixin_52908342/article/details/155617164

在這裏插入圖片描述

二、項目概述

本系統以 STM32 系列 MCU 作為核心控制單元,通過 TFT 觸摸屏展示天氣內容,通過語音識別模塊實現語音查詢,通過 WiFi/串口連接訪問天氣 API,從而構建出一個具有“本地交互 + 網絡信息獲取”能力的智能桌面設備。

系統採用模塊化硬件結構,顯示部分、傳感器部分、語音識別部分、聯網模塊互相獨立,既保證了可維護性,又方便用户根據需求進行擴展。例如:可以接入更多環境傳感器(CO₂、TVOC)、替換更高分辨率觸摸屏、升級語音模塊等。

此外,本工程最初使用 Keil 4.54 創建,如果使用 Keil5 及以上版本打開時可能存在編譯兼容性問題,需重新創建工程或調整項目設置。


在這裏插入圖片描述

三、系統整體架構

智能天氣預報系統主要包含以下幾個部分:

1. 主控單元:STM32 MCU

  • 負責任務調度、UI 刷新、傳感器數據採集、語音命令處理等功能;
  • 推薦使用 STM32F1/F4 系列,資源較為充足,便於接入更多功能;
  • 採用 FreeRTOS 可進一步提升多任務並行能力(可選)。

2. 顯示與交互模塊

  • 採用 TFT 觸摸屏,實現天氣展示、空氣質量曲線繪製、日曆顯示等 UI 界面;
  • 增加觸摸操作邏輯,可手動搜索城市天氣、調整頁面、切換功能;
  • UI 佈局採用“卡片式”結構,使天氣信息更加清晰直觀。

3. 環境傳感器

為了讓系統更貼近實際應用,可接入如下傳感器:

  • 温濕度:如 DHT22/SHT30
  • 空氣質量:如 MQ135、PMS7003(顆粒物)
  • 光照(可選):用於調節屏幕亮度

所有采集信息在桌面端實時顯示,並參與天氣界面的整體信息展示。

4. 聯網模塊

  • 可選 ESP8266/ESP32 作為外接 WiFi 模塊;
  • 通過 HTTP/HTTPS 請求天氣 API(如和風天氣)獲取實時天氣信息;
  • 支持城市搜索、天氣刷新等功能。

5. 語音識別模塊

系統帶有語音識別與簡單對話能力,可實現:

  • 語音搜索天氣,如“查詢北京天氣”
  • 簡單閒聊,如“你是誰”“今天天氣怎麼樣”
  • 指令控制,如“打開收音機”“刷新天氣”

可選硬件方案包括:

  • LD3320(本地語音識別)
  • AI 芯片語音模塊(如離線語音識別器 ASR 模塊)
  • 在線識別(需 WiFi 支持)

為了保證系統穩定,本項目以離線語音為主,減少網絡延遲和依賴。

6. 收音機功能

  • 通過 TEA5767 或 Si4703 等 FM 模塊實現;
  • 提供簡單的頻道搜索、音量調節;
  • 可通過觸摸屏操作,也可通過語音控制。

在這裏插入圖片描述

四、主要功能詳解

1. 實時天氣顯示

系統可從網絡 API 獲取:

  • 温度、濕度、風速
  • 天氣狀態(晴、雨、雲、雪)
  • 未來 3 天預報
  • 空氣質量指數(AQI)

並通過圖形化 UI 進行美觀展示。

2. 空氣質量監測

本地空氣質量傳感器配合 API 數據,可顯示:

  • PM2.5/PM10 濃度
  • CO₂ 估計值
  • 空氣等級提示(優/良/輕度污染)

同時支持歷史數據曲線展示。

3. 日曆與時間顯示

  • 通過 RTC 或網絡校時實現;
  • 界面顯示年月日、星期、時間;
  • 支持農曆(可選)。

4. 觸摸屏搜索天氣

用户可直接點擊搜索框,輸入城市名稱,即可查詢對應天氣:

  • 支持熱門城市一鍵選擇;
  • 輸入法可採用按鍵式虛擬鍵盤;
  • 正常輸入後自動聯網檢索。

5. 語音識別天氣查詢

這是系統最大亮點之一。

典型命令示例:

  • “查一下上海天氣”
  • “空氣質量怎麼樣?”
  • “未來三天天氣”
  • “打開收音機”
  • “幾點了”

系統識別後通過 MCU 分析處理,再調用天氣查詢或其他界面跳轉功能。

6. 簡單對話模塊

為了讓設備更有 “智能桌面助手” 的感覺,本項目加入了基礎對話邏輯,例如:

  • “你好” → “你好,有什麼可以幫你?”
  • “你是誰?” → “我是你的桌面天氣助手。”
  • “今天天氣好不好?” → 根據實時天氣生成回答。

此對話屬於固定規則匹配,可根據需求進一步擴展。

7. 界面設計與動畫過渡

  • 界面切換採用淡入淡出動畫,提高體驗;
  • 天氣圖標採用透明 PNG 或矢量圖;
  • 所有佈局在 Keil 工程中已做好排版,避免換版本出現混亂。

五、開發環境與工程注意事項

1. 開發環境

  • Keil MDK 4.54(建議使用此版本)
  • STM32 標準庫或 HAL 庫
  • 外設驅動(LCD、觸摸、語音、WiFi、FM 等)

2. Keil 版本兼容性注意

原項目使用 Keil 4.54 創建,如果你使用更高版本打開可能會出現:

  • 編譯失敗
  • 路徑不兼容
  • Tab/縮進錯亂

解決方法:

  • 重新創建 Keil5 工程,將原代碼遷移進去;
  • 或在 Keil 的 Edit → Configuration 中將 Tab size 設置為 4,修復排版混亂。

在這裏插入圖片描述

六、總結

基於 STM32 的智能桌面天氣預報系統,是一個將 嵌入式開發、物聯網數據獲取、語音識別、人機交互 有機結合的綜合性實踐項目。它不僅具備天氣查詢、空氣質量顯示等功能,還實現了語音控制、觸摸交互和收音機娛樂,功能豐富且體驗友好。

該項目適合作為:

  • 畢業設計
  • 物聯網課程實驗作品
  • 個人桌面智能設備 DIY
  • 嵌入式學習者提升工程能力的綜合練手項目
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.