基于STM32F103C8T6的智能家居環(huán)境監(jiān)測系統(tǒng)(多傳感器+WiFi+OLED)
基于STM32F103C8T6的智能家居環(huán)境監(jiān)測系統(tǒng)多傳感器WiFiOLED前言隨著人們對居住環(huán)境健康與安全的關(guān)注度日益提升實(shí)時(shí)監(jiān)測室內(nèi)溫濕度、氣壓、空氣質(zhì)量等參數(shù)變得越來越重要。市面上的環(huán)境監(jiān)測設(shè)備功能單一或價(jià)格偏高于是萌生了用STM32自己搭建一套多功能環(huán)境監(jiān)測系統(tǒng)的想法。本項(xiàng)目以STM32F103C8T6為主控集成了6種環(huán)境傳感器溫濕度、氣壓、煙霧、一氧化碳、空氣質(zhì)量、光照通過OLED分頁顯示各項(xiàng)數(shù)據(jù)4按鍵菜單導(dǎo)航交互操作并利用ESP8266-01S將數(shù)據(jù)通過WiFi實(shí)時(shí)推送到手機(jī)超標(biāo)時(shí)還有聲光報(bào)警。整個(gè)系統(tǒng)成本低、擴(kuò)展性強(qiáng)非常適合嵌入式學(xué)習(xí)和DIY。項(xiàng)目亮點(diǎn)速覽7項(xiàng)環(huán)境參數(shù)同時(shí)采集溫/濕/壓/光/煙/CO/空氣OLED 8頁分頁顯示 菜單導(dǎo)航狀態(tài)機(jī)WiFi雙模自動切換STA優(yōu)先AP兜底手機(jī)TCP實(shí)時(shí)接收數(shù)據(jù)超標(biāo)聲光報(bào)警一、系統(tǒng)總體設(shè)計(jì)1.1 系統(tǒng)架構(gòu)系統(tǒng)采用“主控-傳感器-顯示-通信”四層架構(gòu)STM32F103C8T6作為核心通過不同接口與各模塊連接層級模塊接口STM32引腳傳感器層DHT11溫濕度單總線(GPIO)PB4傳感器層BMP280氣壓軟件I2CPB10/PB11傳感器層MQ-2煙霧ADCPA7傳感器層MQ-7一氧化碳ADCPA6傳感器層MQ-135空氣質(zhì)量ADCPA5傳感器層光敏傳感器ADCPA4顯示交互層0.96寸OLED軟件I2CPB6/PB7顯示交互層4個(gè)獨(dú)立按鍵GPIOPB12~PB15顯示交互層LED蜂鳴器GPIOPA0/PA1通信層ESP8266-01SUSART2PA2/PA3設(shè)計(jì)要點(diǎn)BMP280和OLED都用I2C但本項(xiàng)目采用兩組獨(dú)立的軟件I2CBMP280接PB10/PB11OLED接PB6/PB7避免地址沖突也降低了時(shí)序耦合風(fēng)險(xiǎn)。1.2 功能概覽功能模塊具體描述多參數(shù)采集同時(shí)采集溫度、濕度、氣壓、光照、煙霧、CO、空氣質(zhì)量共7項(xiàng)參數(shù)本地顯示OLED實(shí)時(shí)分頁顯示8個(gè)數(shù)據(jù)頁 菜單頁交互控制4按鍵實(shí)現(xiàn)上移/下移/確定/返回菜單導(dǎo)航無線傳輸ESP8266建立TCP服務(wù)器手機(jī)APP實(shí)時(shí)接收數(shù)據(jù)超限報(bào)警煙霧/CO/空氣質(zhì)量超標(biāo)時(shí)LED閃爍蜂鳴器鳴響雙模WiFiSTA優(yōu)先連接路由器失敗自動切換AP熱點(diǎn)二、元器件清單完整的元器件清單如下供大家參考采購。2.1 主控核心元件型號規(guī)格數(shù)量用途STM32核心板STM32F103C8T6Cortex-M3, 72MHz, 64KB Flash, 20KB SRAM1系統(tǒng)主控ST-Link調(diào)試器ST-Link V2SWD/JTAG1程序下載與調(diào)試2.2 環(huán)境傳感器元件型號規(guī)格數(shù)量用途溫濕度傳感器DHT110-50℃±2℃20-90%RH±5%RH1檢測溫濕度氣壓傳感器BMP280I2C地址0x76300~1100hPa1檢測大氣壓強(qiáng)煙霧傳感器MQ-2模擬輸出5V供電1煙霧/LPG/甲烷檢測一氧化碳傳感器MQ-7模擬輸出5V供電1CO濃度檢測空氣質(zhì)量傳感器MQ-135模擬輸出5V供電1NH3/NOx/CO2等有害氣體光敏傳感器光敏電阻模塊AODO雙輸出1環(huán)境光照檢測2.3 人機(jī)交互 通信元件型號規(guī)格數(shù)量用途OLED顯示屏0.96寸 I2C SSD1306 128×641數(shù)據(jù)顯示與菜單導(dǎo)航獨(dú)立按鍵12×12mm輕觸開關(guān)4菜單導(dǎo)航上移/下移/確定/返回LED3mm紅色 150Ω限流電阻1報(bào)警指示蜂鳴器有源蜂鳴器 5V1報(bào)警提示音WiFi模塊ESP8266-01SAT指令3.3V1WiFi數(shù)據(jù)傳輸2.4 外圍電路元件規(guī)格數(shù)量用途杜邦線母對母/公對母/公對公 各10根1套模塊連線面包板830孔1塊電路搭建電阻10kΩ×4, 150Ω×1, 1kΩ若干若干上拉/限流/分壓避坑提醒ESP8266-01S嚴(yán)禁接5V峰值電流可達(dá)200mAMQ系列傳感器需要預(yù)熱幾分鐘才能穩(wěn)定輸出三、硬件設(shè)計(jì)3.1 引腳分配總覽STM32F103C8T6共48個(gè)引腳本項(xiàng)目使用了17個(gè)GPIO引腳功能模式連接模塊PA0LED推挽輸出報(bào)警指示燈低電平亮PA1蜂鳴器推挽輸出有源蜂鳴器低電平響PA2USART2_TX復(fù)用推挽ESP8266 RXDPA3USART2_RX浮空輸入ESP8266 TXDPA4ADC1_IN4模擬輸入光敏傳感器PA5ADC1_IN5模擬輸入MQ-135PA6ADC1_IN6模擬輸入MQ-7PA7ADC1_IN7模擬輸入MQ-2PB4GPIO開漏/輸入DHT11 DATAPB6I2C_SCL(軟件)開漏輸出OLED SCLPB7I2C_SDA(軟件)開漏輸出OLED SDAPB10I2C_SCL(軟件)開漏輸出BMP280 SCLPB11I2C_SDA(軟件)開漏輸出BMP280 SDAPB12KEY1上拉輸入按鍵1-上移PB13KEY2上拉輸入按鍵2-下移PB14KEY3上拉輸入按鍵3-確定PB15KEY4上拉輸入按鍵4-返回引腳資源利用率約46%還有充足空間擴(kuò)展更多傳感器。3.2 關(guān)鍵硬件連接說明ESP8266-01S接線最易出錯(cuò)重點(diǎn)注意ESP8266-01SSTM32說明VCC3.3V嚴(yán)禁接5VGNDGND共地TXDPA3 (USART2_RX)模塊發(fā)送→MCU接收RXDPA2 (USART2_TX)MCU發(fā)送→模塊接收EN/CH_PD3.3V使能引腳高電平有效四、軟件設(shè)計(jì)4.1 軟件架構(gòu)main.c ├── 系統(tǒng)初始化層 │ ├──OLED_Init()// OLED初始化│ ├──LED_Init()// LED蜂鳴器GPIO初始化│ ├──AD_Init()// ADC1初始化4通道輪詢│ ├──DHT11_Init()// DHT11初始化│ ├──ESP8266_Init()// USART2中斷初始化│ ├──BMP280_Init()// BMP280軟件I2C初始化│ └──Key_Init()// 按鍵GPIO初始化│ ├── 主循環(huán)邏輯 │ ├── 按鍵掃描與菜單狀態(tài)機(jī)處理 │ ├── ESP8266客戶端連接檢測 │ ├── DHT11數(shù)據(jù)采集 │ ├── ADC四通道輪詢采集 │ ├── 報(bào)警閾值判斷與聲光報(bào)警 │ ├── BMP280氣壓溫度讀取 │ ├── OLED顯示刷新 │ └── WiFi數(shù)據(jù)推送TCP每2秒 │ └── 中斷服務(wù)層 └── USART2_IRQHandler// ESP8266串口數(shù)據(jù)接收中斷4.2 OLED分頁顯示OLED采用8個(gè)數(shù)據(jù)頁 1個(gè)菜單頁的設(shè)計(jì)每頁固定4行布局頁面標(biāo)題顯示內(nèi)容數(shù)據(jù)來源0Temperature溫度(℃)BMP280/DHT111Humidity濕度(%)DHT112Barometer氣壓(hPa)BMP2803Light光照(%)光敏ADC4Smoke煙霧(ppm)MQ-25COCO(ppm)MQ-76Air Quality空氣質(zhì)量(ppm)MQ-1357WiFi Info模式/IP/端口ESP8266每頁布局第1行標(biāo)題欄第2行實(shí)時(shí)數(shù)值第4行傳感器來源4.3 菜單導(dǎo)航——按鍵交互4個(gè)按鍵的映射關(guān)系按鍵引腳菜單模式功能數(shù)據(jù)模式功能按鍵1PB12上移 / 翻上一頁切換上一個(gè)傳感器頁按鍵2PB13下移 / 翻下一頁切換下一個(gè)傳感器頁按鍵3PB14確定進(jìn)入數(shù)據(jù)頁—按鍵4PB15—返回回到菜單菜單狀態(tài)機(jī)邏輯菜單模式 (g_in_menu1) │ │ 按鍵3(確定) ▼ 數(shù)據(jù)顯示模式 (g_in_menu0) │ │ 按鍵4(返回) ▼ 回到菜單模式菜單共8項(xiàng)每頁顯示3項(xiàng)分3頁顯示。關(guān)鍵變量g_menu_page當(dāng)前菜單頁碼(0~2)g_menu_cursor頁內(nèi)光標(biāo)位置(0~2)g_sensor_page g_menu_page * 3 g_menu_cursor選中項(xiàng)索引(0~7)// 菜單項(xiàng)數(shù)組staticconstchar*menu_items[]{Temperature,Humidity,Pressure,Light,Smoke,CO,Air Quality,WiFi Info};4.4 WiFi數(shù)據(jù)傳輸方案連接策略STA/AP自動回退上電初始化 │ ▼ 嘗試STA模式連接路由器 │ ├── 成功 → 獲取STA_IP → 啟動TCP Server(端口8080) │ └── 失敗 → 自動切換AP模式 │ ▼ 創(chuàng)建熱點(diǎn)STM32-Env(密碼12345678) │ ▼ 固定IP: 192.168.4.1 │ ▼ 啟動TCP Server(端口8080)數(shù)據(jù)推送協(xié)議推送周期約2秒數(shù)據(jù)格式為純文本T:28,H:65,P:1013,L:45 G2:120,G7:30,GA:60字段含義示例T溫度(℃)T:28H濕度(%)H:65P氣壓(hPa)P:1013L光照(%)L:45G2煙霧(ppm)G2:120G7CO(ppm)G7:30GA空氣質(zhì)量(ppm)GA:60手機(jī)連接方式STA模式手機(jī)和STM32連同一個(gè)WiFi用TCP調(diào)試助手連接路由器分配的IP:8080AP模式手機(jī)直接連STM32-Env熱點(diǎn)訪問192.168.4.1:8080推薦使用「網(wǎng)絡(luò)調(diào)試助手」或「SocketTool」等TCP工具接收數(shù)據(jù)五、報(bào)警功能當(dāng)環(huán)境參數(shù)超標(biāo)時(shí)系統(tǒng)自動觸發(fā)聲光報(bào)警參數(shù)報(bào)警閾值觸發(fā)動作煙霧(MQ-2)≥ 240 ppmLED閃爍 蜂鳴器鳴響一氧化碳(MQ-7)≥ 50 ppmLED閃爍 蜂鳴器鳴響空氣質(zhì)量(MQ-135)≥ 80 ppmLED閃爍 蜂鳴器鳴響測試方法用打火機(jī)在MQ-7附近釋放少量氣體即可觸發(fā)CO報(bào)警。六、使用說明6.1 硬件連接STM32核心板插入面包板中央按引腳分配表連接各傳感器ESP8266接3.3VMQ系列接5V4個(gè)按鍵一端接PB12~PB15另一端接GNDLED接PA0→150Ω→GND蜂鳴器接PA1→GNDUSB供電5V建議≥1A6.2 軟件燒錄ST-Link連接SWD接口VCC/GND/SWCLK/SWDIO打開Keil工程Project.uvprojx編譯F7確保0 Error下載F8燒錄到STM32按復(fù)位鍵OLED顯示啟動畫面6.3 首次運(yùn)行流程上電自檢OLED顯示--- STM32 Env ---WiFi連接優(yōu)先STA模式失敗自動開AP熱點(diǎn)傳感器初始化檢測BMP280芯片ID(0x58)進(jìn)入菜單按鍵1/2上下移動按鍵3進(jìn)入詳情頁查看數(shù)據(jù)數(shù)據(jù)頁按1/2切換按4返回菜單手機(jī)連接TCP調(diào)試助手連接 IP:8080七、項(xiàng)目文件結(jié)構(gòu)代碼/ ├── Hardware/ // 硬件驅(qū)動層 │ ├── AD.c/h // ADC1多通道采集驅(qū)動 │ ├── BMP280.c/h // BMP280氣壓傳感器驅(qū)動 │ ├── DHT11.c/h // DHT11溫濕度驅(qū)動 │ ├── ESP8266.c/h // ESP8266 WiFi AT指令驅(qū)動 │ ├── Key.c/h // 4按鍵掃描驅(qū)動 │ ├── LED.c/h // LED蜂鳴器驅(qū)動 │ ├── OLED.c/h // SSD1306 OLED驅(qū)動 │ └── OLED_Font.h // 8×16 ASCII字模表 ├── Library/ // STM32標(biāo)準(zhǔn)外設(shè)庫 ├── Start/ // 啟動文件 ├── System/ // 系統(tǒng)公共函數(shù) ├── User/ │ └── main.c // 主程序狀態(tài)機(jī)主循環(huán) └── Project.uvprojx // Keil工程文件八、總結(jié)與展望項(xiàng)目成果本項(xiàng)目實(shí)現(xiàn)了一套基于STM32的智能家居環(huán)境監(jiān)測系統(tǒng)具備多參數(shù)采集、OLED分頁顯示、菜單導(dǎo)航、WiFi數(shù)據(jù)傳輸、超標(biāo)報(bào)警等完整功能。系統(tǒng)采用模塊化設(shè)計(jì)各傳感器驅(qū)動獨(dú)立封裝便于擴(kuò)展。不足與改進(jìn)方向MQ傳感器精度MQ系列為半導(dǎo)體氣敏傳感器精度有限未來可換用電化學(xué)傳感器如ME2-CO數(shù)據(jù)存儲目前數(shù)據(jù)只在手機(jī)端實(shí)時(shí)顯示可增加SD卡或云端存儲歷史數(shù)據(jù)MQTT協(xié)議ESP8266目前用TCP透傳后續(xù)可升級為MQTT協(xié)議對接物聯(lián)網(wǎng)平臺如阿里云IoT、OneNET手機(jī)APP目前用TCP調(diào)試助手接收數(shù)據(jù)后續(xù)可開發(fā)專用APP支持圖表展示和報(bào)警推送低功耗增加電池供電方案和休眠喚醒機(jī)制資源下載完整項(xiàng)目資源包已上傳包含資源說明完整工程代碼Keil MDK工程含所有驅(qū)動源碼項(xiàng)目文檔(Word)系統(tǒng)架構(gòu)、引腳分配、軟件設(shè)計(jì)、使用說明項(xiàng)目展示PPT10頁可用于答辯或項(xiàng)目展示硬件設(shè)計(jì)電路圖和PCB制版文件資源鏈接https://download.csdn.net/download/2501_91784214/93217936如果這篇文章對你有幫助歡迎點(diǎn)贊收藏關(guān)注也歡迎在評論區(qū)交流討論開發(fā)環(huán)境Keil MDK-ARM v5.38 STM32標(biāo)準(zhǔn)外設(shè)庫v3.5.0 ST-Link V2適用場景嵌入式課程設(shè)計(jì)、物聯(lián)網(wǎng)DIY項(xiàng)目

相關(guān)新聞

Codex、ChatGPT實(shí)戰(zhàn):自動Code Review該全開,還是只審關(guān)鍵PR?

Codex、ChatGPT實(shí)戰(zhàn):自動Code Review該全開,還是只審關(guān)鍵PR?

團(tuán)隊(duì)接入Codex Code Review后,通常會遇到一個(gè)很現(xiàn)實(shí)的問題: 是不是應(yīng)該讓Codex自動審查每一個(gè)Pull Request? 全部開啟看起來最省事。開發(fā)者只要創(chuàng)建PR,Codex便自動分析Diff、檢查潛在回歸并提交審查意見。 但運(yùn)行一段時(shí)間后&…

2026/8/3 10:38:44 閱讀更多
Excel高效辦公:從基礎(chǔ)操作到效率提升的完整指南

Excel高效辦公:從基礎(chǔ)操作到效率提升的完整指南

1. 項(xiàng)目概述:為什么Excel基礎(chǔ)操作值得你花時(shí)間? 如果你剛接觸Excel,或者雖然用過幾年但總覺得效率不高,每次處理數(shù)據(jù)都手忙腳亂,那么這“第1講”可能比你想象中更重要。很多人覺得Excel基礎(chǔ)操作無非就是“打開、輸入、…

2026/8/3 10:28:42 閱讀更多
【AI繪畫副業(yè)變現(xiàn)SOP】:7步標(biāo)準(zhǔn)化交付流程,單圖溢價(jià)300%的客戶溝通話術(shù)與合同范本(含法律風(fēng)險(xiǎn)預(yù)警)

【AI繪畫副業(yè)變現(xiàn)SOP】:7步標(biāo)準(zhǔn)化交付流程,單圖溢價(jià)300%的客戶溝通話術(shù)與合同范本(含法律風(fēng)險(xiǎn)預(yù)警)

更多請點(diǎn)擊: https://kaifayun.com 第一章:AI繪畫副業(yè)變現(xiàn)的底層邏輯與市場定位 AI繪畫副業(yè)并非單純依賴技術(shù)工具的“一鍵生成”,其可持續(xù)變現(xiàn)能力根植于供需錯(cuò)位、邊際成本趨零與注意力經(jīng)濟(jì)三重底層邏輯。當(dāng)專業(yè)設(shè)計(jì)服務(wù)單價(jià)高企&#xff0…

2026/8/3 12:48:48 閱讀更多
宋玉(換全新標(biāo)題):登徒子賦流傳千年,宋玉文筆驚艷整個(gè)先秦

宋玉(換全新標(biāo)題):登徒子賦流傳千年,宋玉文筆驚艷整個(gè)先秦

【原創(chuàng)】 罵過別人「登徒子」的舉個(gè)手?原來這個(gè)詞出自宋玉的千古名篇《登徒子賦》,最近翻先秦詩詞才發(fā)現(xiàn),宋玉的筆力真的驚掉下巴。千古奇冤登徒子本來是楚國的大夫。 就因?yàn)樵诔趺媲罢f宋玉“長得帥、嘴能說、還好色”,讓楚王別…

2026/8/3 12:48:48 閱讀更多
終極圖層分離神器:5分鐘掌握AI智能分層的完整指南

終極圖層分離神器:5分鐘掌握AI智能分層的完整指南

終極圖層分離神器:5分鐘掌握AI智能分層的完整指南 【免費(fèi)下載鏈接】layerdivider A tool to divide a single illustration into a layered structure. 項(xiàng)目地址: https://gitcode.com/gh_mirrors/la/layerdivider 想要將復(fù)雜插畫瞬間分解為可編輯的獨(dú)立圖層…

2026/8/3 12:48:48 閱讀更多
從零集成Luckysheet:解決Web表格雙擊編輯、數(shù)據(jù)加載與性能優(yōu)化

從零集成Luckysheet:解決Web表格雙擊編輯、數(shù)據(jù)加載與性能優(yōu)化

1. 從Excel到Web表格:為什么我選擇了Luckysheet 如果你和我一樣,經(jīng)常需要在Web項(xiàng)目中嵌入一個(gè)功能強(qiáng)大的在線表格,那你一定也經(jīng)歷過那個(gè)痛苦的選型過程。市面上的選擇看似很多:有功能強(qiáng)大但授權(quán)費(fèi)用高昂的商業(yè)組件,有輕…

2026/8/3 12:38:48 閱讀更多
全球僅7家廠商通過ISO/IEC 27001認(rèn)證的名片AI引擎,我們逆向拆解了它的字段置信度熔斷機(jī)制

全球僅7家廠商通過ISO/IEC 27001認(rèn)證的名片AI引擎,我們逆向拆解了它的字段置信度熔斷機(jī)制

更多請點(diǎn)擊: https://kaifayun.com 第一章:全球僅7家廠商通過ISO/IEC 27001認(rèn)證的名片AI引擎概覽 名片AI引擎是企業(yè)級智能文檔處理的核心組件,專注于高精度OCR、語義結(jié)構(gòu)化提取與跨語言實(shí)體對齊。截至2024年第三季度,全球范圍內(nèi)僅…

2026/8/3 0:07:47 閱讀更多
MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動化發(fā)布完整解決方案 【免費(fèi)下載鏈接】MoneyPrinterPlus AI一鍵批量生成各類短視頻,自動批量混剪短視頻,自動把視頻發(fā)布到抖音,快手,小紅書,視頻號上,賺錢從來沒有這么容易過! 支持本地語音模型chatTTS,fasterwhisper,…

2026/8/3 7:44:46 閱讀更多
3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說說 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過,那些年發(fā)過的QQ空間說說,那些記錄青春的文字…

2026/8/3 12:53:38 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號分配電路板。該型號(0100-02186)的核心特點(diǎn)如下:專用于Endura等半導(dǎo)體工藝腔室。集成信號路由與分配功能。連接控制…

2026/8/2 2:51:21 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機(jī)是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機(jī),適用于自動化設(shè)備及通用機(jī)械驅(qū)動。該型號(FFMN-32L-10-T0 40AX)的核心特點(diǎn)如下:三相交流異步電動機(jī)。額定…

2026/8/2 2:52:49 閱讀更多