摘 要
本文圍繞基于單片機的金沙河糧倉環境監測系統展開設計與實現研究。系統以單片機為核心,集成 DHT11、MQ - 135 等傳感器,可實時精準監測糧倉溫濕度、氣體成分等關鍵環境參數。借助 LoRa、ESP8266 實現數據的可靠傳輸與遠程通信 ,OLED 屏實時顯示數據,異常時通過聲光報警與繼電器控制及時響應。經測試,該系統能有效提升金沙河糧倉環境監測的智能化水平,保障糧食儲存安全,為糧倉智能化管理提供了可行方案。
關鍵詞:單片機;金沙河糧倉;環境監測;傳感器;數據傳輸
第2章 總體方案設計?
?2.1 系統總體方案設計?
本系統以實現金沙河糧倉環境參數實時、精準監測為核心目標,采用模塊化設計思路,構建起由數據采集、數據處理、數據傳輸、人機交互及報警控制五大功能模塊組成的完整體系[3]。?
數據采集模塊部署多種傳感器,如 DHT11 溫濕度傳感器、MQ-135 氣體傳感器等,負責實時采集糧倉內溫度、濕度、有害氣體濃度等關鍵環境參數;數據處理模塊以單片機為核心,對傳感器采集的模擬信號進行 A/D 轉換、濾波降噪、數據校準等處理,確保數據準確性;數據傳輸模塊采用 LoRa 與 ESP8266 相結合的無線通信方案,LoRa 用于糧倉內部各監測節點與匯聚節點間的長距離、低功耗數據傳輸,ESP8266 則將匯聚后的數據通過 Wi-Fi 上傳至云端服務器或遠程監控終端;人機交互模塊配備 OLED 顯示屏,實時顯示環境參數,方便現場管理人員快速獲取信息;報警控制模塊在單片機判斷環境參數超過預設閾值時,觸發聲光報警裝置,并聯動繼電器控制通風、除濕等設備,及時調節糧倉環境[4]。?
系統整體架構通過各模塊協同工作,實現糧倉環境數據從采集、傳輸到處理、反饋的閉環管理,有效提升監測效率與智能化水平[5]。?
2.2 主要器件選型?
2.2.1 單片機選型
考慮到系統對數據處理能力、功耗及成本的綜合需求,選用 STC89C52 單片機作為主控芯片。該單片機基于 8051 內核,具備 8KB Flash 程序存儲器、512B RAM,內置 3 個 16 位定時器 / 計數器與 8 路 10 位 A/D 轉換器,能夠滿足傳感器數據采集與處理需求。同時,其工作電壓范圍為 5V±10%,工作溫度范圍 - 40℃~85℃,適用于糧倉復雜環境,且開發成本低、資料豐富,便于系統開發與調試[6]。?
2.2.2 傳感器選型?
溫濕度傳感器選用 DHT11,該傳感器采用單總線數據傳輸,具有超快響應、測量準確、抗干擾能力強等特點,溫度測量范圍為 0℃ - 50℃,精度 ±2℃,濕度測量范圍 20% - 90% RH,精度 ±5% RH,滿足糧倉溫濕度監測要求;氣體傳感器選用 MQ-135,對氨氣、硫化物、苯系蒸汽等有害氣體具有高靈敏度,可有效監測糧倉內因糧食霉變、蟲害產生的有害氣體,其輸出信號為模擬電壓,便于與單片機的 A/D 轉換接口連接[7]。?
2.2.3 通信模塊選型?
無線通信部分,LoRa 模塊選用 SX1278,其工作在 433MHz 頻段,通信距離可達數公里,且具備低功耗、高靈敏度特性,適合糧倉大面積、多節點的內部數據傳輸;ESP8266 作為 Wi-Fi 通信模塊,支持 STA、AP、STA+AP 三種工作模式,可實現與路由器或云端服務器的穩定連接,傳輸速率最高可達 150Mbps,滿足數據快速上傳需求[8]。?
2.2.4 顯示與報警器件選型?
顯示屏采用 0.96 英寸 OLED 模塊,其具有自發光、視角廣、對比度高、響應速度快等優點,可通過 I2C 接口與單片機連接,實現低功耗、高清晰的數據顯示;報警裝置選用蜂鳴器與 LED 燈組合,蜂鳴器在環境異常時發出高分貝警報,LED 燈同步閃爍,形成聲光雙重報警,確保異常情況及時被發現[9]。
第3章 硬件設計
3.1 單片機最小系統設計
單片機作為整個糧倉環境監測系統的核心控制部件,其最小系統的穩定運行至關重要。本系統選用 STC89C52 單片機,其最小系統主要由電源電路、時鐘電路、復位電路和下載電路組成[10]。
圖3-1 單片機最小系統原理圖
3.1.1 電源電路
電源電路為單片機及其他硬件模塊提供穩定的工作電壓。采用 5V 直流電源供電,通過濾波電容去除電源中的雜波干擾,確保電源的穩定性。在電源輸入端并聯一個大容量的電解電容(如 100μF)和一個小容量的陶瓷電容(如 0.1μF),以濾除不同頻率的干擾信號[11]。
3.1.2 時鐘電路
時鐘電路為單片機提供精確的時鐘信號,保證單片機各部件的協調工作。采用 11.0592MHz 的晶振與兩個 30pF 的電容組成并聯諧振電路,連接到單片機的 XTAL1 和 XTAL2 引腳。晶振產生的時鐘信號經過單片機內部的時鐘電路處理后,為單片機的指令執行和數據處理提供時間基準[12]。
3.1.3 復位電路
復位電路用于在系統上電或出現異常時,將單片機恢復到初始狀態。采用上電復位和手動復位相結合的方式,通過一個電容和一個電阻組成的積分電路實現上電復位,同時設置一個復位按鍵,在需要時手動觸發復位操作。當按下復位按鍵時,單片機的 RST 引腳被拉高,持續一段時間(一般為 2 個機器周期以上),單片機內部的寄存器和程序計數器被清零,系統重新開始運行。
3.1.4 下載電路
下載電路用于將編寫好的程序代碼下載到單片機中。采用串口下載方式,通過 MAX232 電平轉換芯片將計算機的 RS - 232 電平轉換為單片機所能接受的 TTL 電平,實現計算機與單片機之間的數據通信。將 MAX232 芯片的 TXD 和 RXD 引腳分別與單片機的 RXD 和 TXD 引腳相連,通過串口通信協議將程序代碼傳輸到單片機的 Flash 存儲器中。
3.2 傳感器模塊設計
3.2.1 溫濕度傳感器
選用 DHT11 溫濕度傳感器來實時監測糧倉內的溫度和濕度。DHT11 是一款數字式溫濕度傳感器,采用單總線通信協議,具有體積小、成本低、響應速度快等優點。其數據引腳與單片機的一個 I/O 引腳相連,單片機通過向該引腳發送起始信號來啟動數據采集過程。DHT11 在接收到起始信號后,會將采集到的溫濕度數據以數字信號的形式發送給單片機。單片機通過解析接收到的數字信號,提取出溫度和濕度值,并進行相應的處理和顯示[13]。
圖3-2 溫濕度傳感器原理圖
3.2.2 氣體傳感器
為了監測糧倉內的有害氣體濃度,選用 MQ - 135 氣體傳感器。MQ - 135 對氨氣、硫化物、苯系蒸汽等有害氣體具有較高的靈敏度。該傳感器輸出的是模擬電壓信號,其大小與被測氣體的濃度成正比。將傳感器的輸出引腳連接到單片機的 A/D 轉換引腳,單片機通過內部的 A/D 轉換器將模擬電壓信號轉換為數字量,然后根據傳感器的特性曲線將數字量轉換為對應的氣體濃度值[14]。
圖3-3 氣體傳感器原理圖
3.3 數據傳輸模塊設計
3.3.1 LoRa 模塊
LoRa 模塊用于實現糧倉內部各監測節點與匯聚節點之間的長距離、低功耗數據傳輸。選用 SX1278 LoRa 模塊,該模塊工作在 433MHz 頻段,具有高靈敏度、低功耗、抗干擾能力強等優點。LoRa 模塊通過 SPI 接口與單片機進行通信,單片機將采集到的傳感器數據封裝成特定的數據包,通過 SPI 接口發送給 LoRa 模塊。LoRa 模塊將數據包進行調制后,以無線方式發送出去。在接收端,LoRa 模塊接收到無線信號后,進行解調和解碼,將數據包通過 SPI 接口傳輸給單片機。
圖3-4 Lora通信原理圖
第4章 軟件設計?
4.1 軟件總體設計?
4.1.1 設計目標?
本軟件設計旨在構建一套適配金沙河糧倉環境監測硬件系統的智能化程序體系。核心目標是實現糧倉環境參數的實時、精準采集與處理,保障數據傳輸的穩定性和可靠性,同時提供便捷高效的人機交互體驗與智能控制功能。通過對溫濕度、氣體濃度、等參數的監測與分析,及時發現糧倉環境異常情況,聯動硬件設備進行環境調節,最大程度降低糧食因環境因素導致的霉變、蟲害等風險,為糧食安全儲存提供有力的技術支撐,助力糧倉管理向智能化、自動化方向升級。?
4.1.2 分層架構設計?
數據采集層負責與各類傳感器進行通信,按照設定的采樣周期獲取溫濕度、氣體濃度等環境參數。針對不同傳感器的通信協議,編寫對應的驅動程序,確保數據采集的準確性和穩定性。
數據處理層對采集到的原始數據進行預處理,包括濾波、校準、單位轉換等操作,以提高數據質量。同時,對處理后的數據進行分析,判斷環境參數是否超出預設閾值,為后續的決策提供依據。
數據傳輸層通過 LoRa 和 ESP8266 等無線通信模塊,將處理后的數據發送到遠程監控中心或云端服務器。實現數據的可靠傳輸,具備數據加密、重傳機制等功能,以應對復雜的通信環境。
人機交互層提供直觀的用戶界面,通過 OLED 顯示屏實時顯示環境參數和系統狀態。支持按鍵輸入,允許用戶進行參數設置、歷史數據查詢等操作。
控制決策層根據環境參數和預設的控制策略,自動控制通風、除濕等設備的運行。當環境參數異常時,觸發聲光報警裝置,并及時通知管理人員。
圖4-1 總體模塊結構圖
4.1.3 軟件流程設計
系統上電后,軟件首先進入初始化階段。單片機初始化包括設置 I/O 口的輸入輸出模式、配置定時器與中斷系統、初始化 A/D 轉換模塊等操作,為后續程序運行搭建基礎環境。傳感器初始化則根據不同傳感器的特性,進行通信協議配置、參數設置等操作,確保傳感器處于正常工作狀態。通信模塊初始化包括 LoRa 模塊和 ESP8266 模塊的參數配置,使其能夠建立穩定的無線連接。顯示屏初始化設置顯示模式、清屏等操作,準備好數據顯示界面。?
完成初始化后,軟件進入主循環。在主循環中,按照設定的時間間隔依次執行數據采集、數據處理、數據傳輸、人機交互和控制決策等任務。數據采集任務啟動各傳感器驅動程序,獲取環境參數;數據處理任務對采集數據進行濾波、校準和閾值判斷;數據傳輸任務將處理后的數據發送至遠程監控中心;人機交互任務檢測按鍵輸入并更新顯示屏內容;控制決策任務根據數據處理結果控制設備運行和報警。同時,系統通過中斷服務程序處理緊急事件,如按鍵按下觸發的中斷、通信模塊接收到數據觸發的中斷等,確保系統能夠及時響應外部事件,提高系統的實時性和可靠性。
?
圖4-2 總體流程圖
4.2 數據采集程序設計?
4.2.1 溫濕度傳感器數據采集?
DHT11 溫濕度傳感器的數據采集依賴于嚴格的單總線通信時序。在程序實現中,首先通過單片機的 I/O 口向傳感器發送一個低電平起始信號,持續時間一般為 18ms 左右,用于喚醒傳感器。隨后將 I/O 口設置為輸入模式,等待傳感器響應。傳感器在接收到起始信號后,會拉低總線電平 80μs 作為應答信號,單片機檢測到該應答信號后,開始準備接收數據。?
數據接收過程中,傳感器依次發送 40 位數據,每一位數據的傳輸由 50μs 的低電平起始位和高電平數據位組成。高電平持續時間不同代表不同的數據值,高電平持續 26 - 28μs 表示數據 “0”,高電平持續 116 - 118μs 表示數據 “1”。單片機通過精確計時 I/O 口的電平變化,逐位讀取數據。讀取完成后,將濕度整數部分、濕度小數部分、溫度整數部分、溫度小數部分相加,與校驗和進行比較,若相等則說明數據有效,將溫濕度數據存儲到指定的內存地址;若不相等,則認為數據錯誤,重新發起一次數據采集請求。通過這種嚴謹的數據采集與校驗機制,確保獲取到準確的糧倉溫濕度數據。?
圖4-3溫濕度數據采集流程圖
第5章 實現與測試
5.1 硬件制作
5.1.1 單片機最小系統制作
準備 STC89C52 單片機等元器件。將單片機插入插座,確保引腳接觸良好。電源電路用 100μF 電解電容和 0.1μF 陶瓷電容濾波,接 5V 電源,去除雜波。時鐘電路用 11.0592MHz 晶振及兩個 30pF 電容構成并聯諧振,接單片機相應引腳提供時鐘。復位電路采用上電和手動復位結合,10μF 電解電容與 10kΩ 電阻串聯,接 RST 引腳等實現復位。通過 MAX232 芯片連接下載電路,完成制作。
5.1.2 傳感器模塊制作
溫濕度傳感器選擇 DHT11,VCC 接 5V,GND 接地,DATA 經 4.7kΩ 上拉電阻連單片機 I/O 引腳。
氣體傳感器使用MQ – 135,用MQ - 135 的 VCC 接 5V,GND 接地,AOUT 連單片機 A/D 引腳,DOUT 按需連 I/O 引腳。電源端串 100Ω 電阻,并聯 10μF 和 0.1μF 電容保護與穩壓。
5.1.3 數據傳輸模塊制作
LoRa 模塊選擇 SX1278,VCC 接 3.3V,GND 接地,相關引腳連單片機 SPI 引腳,DIO0 連 I/O 引腳接收中斷信號,天線接口接天線增強信號。
ESP8266 模塊,VCC 接 3.3V,GND 接地,TXD、RXD 與單片機對應引腳相連串口通信,CH_PD 接 3.3V。可焊接在擴展板預留接口。
5.1.4 人機交互模塊制作
OLED 顯示屏使用0.96 英寸 OLED 的 VCC 接 3.3V,GND 接地,SCL、SDA 連單片機 I2C 引腳,固定在塑料殼內排線連接。
按鍵輸入模塊包括四個獨立按鍵,一端經 10kΩ 電阻接 3.3V,另一端連 I/O 引腳,并聯 0.1μF 電容消抖,安裝在按鍵板排線連接。
5.1.5 報警控制模塊制作
聲光報警電路是蜂鳴器經 NPN 三極管(如 S8050)驅動連單片機 I/O 引腳,三極管基極經 220Ω 電阻連接,LED 燈連接方式類似。
繼電器控制電路是5V 繼電器線圈一端經 220Ω 電阻連單片機 I/O 引腳,另一端接 5V 電源,常開觸點接設備電源,實現設備啟停控制。
?
圖5-1 單片機實物圖
文章底部可以獲取博主的聯系方式,獲取源碼、查看詳細的視頻演示,或者了解其他版本的信息。
所有項目都經過了嚴格的測試和完善。對于本系統,我們提供全方位的支持,包括修改時間和標題,以及完整的安裝、部署、運行和調試服務,確保系統能在你的電腦上順利運行。