項目開發(fā)背景
隨著現(xiàn)代中藥的廣泛應(yīng)用,中藥材的存儲環(huán)境對其質(zhì)量有著至關(guān)重要的影響。溫濕度、煙霧、火災(zāi)等環(huán)境因素,若不加以控制,將會導(dǎo)致中藥材失效或變質(zhì)。因此,設(shè)計一個基于單片機的中藥存放環(huán)境監(jiān)測系統(tǒng)顯得尤為重要。該系統(tǒng)通過實時監(jiān)測溫濕度、煙霧濃度、火災(zāi)情況等環(huán)境參數(shù),確保中藥存放環(huán)境處于適宜的狀態(tài),從而保證中藥材的品質(zhì),減少因環(huán)境問題引發(fā)的損失。
本項目基于STM32F103C8T6單片機作為核心控制單元,通過多種傳感器對環(huán)境進行實時采集,并通過液晶顯示屏和Wi-Fi無線通訊將監(jiān)測數(shù)據(jù)展示給用戶,達到環(huán)境預(yù)警和安全保障的目的。
設(shè)計實現(xiàn)的功能
- 溫濕度采集與監(jiān)控 :使用DHT11溫濕度傳感器實時監(jiān)控中藥存放房間的溫度和濕度,確保溫濕度符合要求。
- 煙霧監(jiān)測 :通過煙霧傳感器檢測存放環(huán)境中的煙霧濃度,及時發(fā)現(xiàn)火災(zāi)隱患。
- 火災(zāi)監(jiān)測 :利用火災(zāi)傳感器檢測中藥存放環(huán)境中是否有火災(zāi)發(fā)生,保證環(huán)境安全。
- 環(huán)境預(yù)警 :設(shè)置溫濕度、煙霧、火災(zāi)等閾值,當超過設(shè)定值時,系統(tǒng)自動觸發(fā)警報(蜂鳴器),提示用戶注意。
- 緊急處理機制 :當溫度、濕度、煙霧或火災(zāi)參數(shù)超標時,系統(tǒng)自動啟動排氣通道進行換氣或散熱處理。
- 數(shù)據(jù)展示與實時監(jiān)控 :通過液晶顯示屏顯示當前環(huán)境數(shù)據(jù),提供溫度、濕度、煙霧濃度、火災(zāi)監(jiān)測結(jié)果等信息。
- 數(shù)據(jù)存儲與歷史記錄 :監(jiān)測數(shù)據(jù)可存儲并備份,便于后期查閱和分析,確保數(shù)據(jù)的長期有效性。
項目硬件模塊組成
- DHT11 溫濕度傳感器
用于實時采集存儲環(huán)境的溫度和濕度數(shù)據(jù),輸出數(shù)字信號,通過單片機讀取數(shù)據(jù)進行處理。
- DHT11 溫濕度傳感器
- 煙霧傳感器
該傳感器能夠檢測空氣中的煙霧濃度,通過模擬輸出提供實時的煙霧濃度數(shù)據(jù)。
- 煙霧傳感器
- 火災(zāi)傳感器
用于檢測火災(zāi)發(fā)生的初期征兆,如溫度劇增、火焰感應(yīng)等。輸出信號通過單片機讀取,用于判斷是否有火災(zāi)發(fā)生。
- 火災(zāi)傳感器
- 蜂鳴器
當環(huán)境參數(shù)超過設(shè)定閾值時,蜂鳴器發(fā)出警報聲音,提醒用戶注意。
- 蜂鳴器
- 排氣通道控制模塊
該模塊用于控制中藥存儲房的排氣系統(tǒng),系統(tǒng)可根據(jù)傳感器數(shù)據(jù)自動開啟排氣口進行散熱或通風(fēng)。
- 排氣通道控制模塊
- LCD液晶顯示屏(1602或類似)
用于顯示當前監(jiān)測到的溫度、濕度、煙霧濃度、火災(zāi)報警等數(shù)據(jù),提供直觀的實時反饋。
- LCD液晶顯示屏(1602或類似)
- Wi-Fi模塊(如ESP8266)
通過Wi-Fi模塊與手機APP連接,實現(xiàn)遠程數(shù)據(jù)監(jiān)控和管理。
- Wi-Fi模塊(如ESP8266)
設(shè)計思路
總體架構(gòu)
本系統(tǒng)的設(shè)計包括硬件和軟件兩大部分,硬件部分由STM32F103C8T6單片機作為控制中心,外圍集成了多種傳感器用于環(huán)境數(shù)據(jù)采集,包括溫濕度傳感器、煙霧傳感器、火災(zāi)傳感器等,同時利用LCD液晶屏實時顯示數(shù)據(jù),并通過Wi-Fi模塊實現(xiàn)手機端的數(shù)據(jù)訪問。
在軟件部分,首先要實現(xiàn)對各個傳感器的數(shù)據(jù)讀取和處理,并對數(shù)據(jù)進行實時監(jiān)控。其次,設(shè)置閾值,當環(huán)境數(shù)據(jù)超過設(shè)定的閾值時,觸發(fā)報警機制(蜂鳴器和排氣通道)。最后,通過Wi-Fi將監(jiān)測數(shù)據(jù)傳輸?shù)绞謾CAPP,用戶可以遠程查看和管理數(shù)據(jù)。
數(shù)據(jù)采集與處理
- 溫濕度采集 :通過DHT11傳感器讀取溫濕度數(shù)據(jù),并將數(shù)據(jù)傳輸給單片機進行處理。
- 煙霧采集 :通過煙霧傳感器讀取煙霧濃度數(shù)據(jù),并在程序中進行轉(zhuǎn)換和閾值判斷。
- 火災(zāi)采集 :通過火災(zāi)傳感器獲取火災(zāi)報警信號,判斷是否發(fā)生火災(zāi)。
環(huán)境監(jiān)測與預(yù)警
當溫濕度、煙霧濃度或火災(zāi)傳感器的讀數(shù)超過預(yù)設(shè)閾值時,系統(tǒng)會觸發(fā)警報并啟動相應(yīng)的緊急處理機制,例如開啟蜂鳴器警告和自動啟動排氣系統(tǒng)。
數(shù)據(jù)存儲與歷史記錄
通過STM32F103C8T6的內(nèi)存或外接存儲器(如SD卡)保存歷史數(shù)據(jù),方便后期查詢和分析。
無線通訊
通過Wi-Fi模塊實現(xiàn)系統(tǒng)與手機端的通信,手機APP將實時顯示溫濕度、煙霧、火災(zāi)等監(jiān)測數(shù)據(jù),確保用戶可以遠程掌握存儲環(huán)境狀況。
系統(tǒng)功能總結(jié)
功能模塊 | 描述 |
---|---|
溫濕度監(jiān)測 | 實時監(jiān)測中藥存儲房的溫濕度,確保環(huán)境適宜 |
煙霧監(jiān)測 | 檢測存儲房內(nèi)的煙霧濃度,及時發(fā)現(xiàn)潛在的火災(zāi)隱患 |
火災(zāi)監(jiān)測 | 檢測火災(zāi)初期征兆,預(yù)防火災(zāi)事故發(fā)生 |
環(huán)境預(yù)警 | 設(shè)置溫濕度、煙霧、火災(zāi)閾值,超標時觸發(fā)報警機制 |
緊急處理機制 | 超標時啟動排氣通道進行通風(fēng)或散熱,降低環(huán)境風(fēng)險 |
數(shù)據(jù)展示與實時監(jiān)控 | LCD顯示屏展示環(huán)境數(shù)據(jù),便于現(xiàn)場查看和管理 |
手機APP監(jiān)控與管理 | 通過Wi-Fi模塊連接手機,遠程查看實時監(jiān)測數(shù)據(jù) |
數(shù)據(jù)存儲與歷史記錄 | 保存環(huán)境監(jiān)測數(shù)據(jù),便于查詢和分析 |
使用的模塊的技術(shù)詳情介紹
1. DHT11 溫濕度傳感器
- ? 工作原理 :DHT11通過內(nèi)置的溫濕度感應(yīng)元件來測量環(huán)境的溫度和濕度。它通過單總線協(xié)議與單片機進行數(shù)據(jù)通信。
- ? 技術(shù)參數(shù):
- ? 溫度測量范圍:0℃到50℃
- ? 濕度測量范圍:20%到90%
- ? 精度:溫度±2℃,濕度±5%
2. 煙霧傳感器
- ? 工作原理 :煙霧傳感器通過對空氣中氣體的吸收與反射變化,檢測煙霧濃度。輸出模擬信號,可通過ADC接口輸入單片機。
- ? 技術(shù)參數(shù):
- ? 輸出信號:模擬電壓信號
- ? 檢測濃度:300-1000ppm煙霧
3. 火災(zāi)傳感器
- ? 工作原理 :火災(zāi)傳感器通過檢測環(huán)境溫度變化或火焰的存在來判斷是否發(fā)生火災(zāi),常用紅外線火焰?zhèn)鞲衅骰驘崦?a target="_blank">電阻。
- ? 技術(shù)參數(shù):
- ? 檢測溫度范圍:30℃-50℃
- ? 檢測方式:紅外或熱敏電阻
4. Wi-Fi模塊 (ESP8266)
- ? 工作原理 :ESP8266通過UART接口與單片機通信,實現(xiàn)Wi-Fi功能,能夠?qū)h(huán)境數(shù)據(jù)發(fā)送至云平臺或手機APP。
- ? 技術(shù)參數(shù):
- ? 支持802.11b/g/n Wi-Fi標準
- ? 支持TCP/IP協(xié)議
STM32代碼設(shè)計
以下是基于STM32F103C8T6的中藥存放環(huán)境監(jiān)測系統(tǒng)的 main.c
代碼。其他子模塊(如溫濕度傳感器、煙霧傳感器、火災(zāi)傳感器、蜂鳴器、LCD顯示、Wi-Fi等)的代碼已經(jīng)編寫好。代碼實現(xiàn)了主要功能:環(huán)境數(shù)據(jù)的采集、報警機制、LCD顯示和Wi-Fi通訊。
#include "stm32f10x.h"
#include "DHT11.h" // 包含DHT11傳感器的代碼
#include "SmokeSensor.h" // 包含煙霧傳感器的代碼
#include "FireSensor.h" // 包含火災(zāi)傳感器的代碼
#include "Buzzer.h" // 包含蜂鳴器控制代碼
#include "LCD1602.h" // 包含LCD顯示控制代碼
#include "WiFi.h" // 包含Wi-Fi通訊控制代碼
// 定義環(huán)境監(jiān)測閾值
#define TEMP_THRESHOLD_HIGH 30 // 溫度高于30度時報警
#define TEMP_THRESHOLD_LOW 10 // 溫度低于10度時報警
#define HUMIDITY_THRESHOLD_HIGH 80 // 濕度高于80%時報警
#define HUMIDITY_THRESHOLD_LOW 30 // 濕度低于30%時報警
#define SMOKE_THRESHOLD 500 // 煙霧濃度超過500時報警
// 環(huán)境參數(shù)存儲
float current_temp = 0;
float current_humidity = 0;
int smoke_level = 0;
int fire_alarm = 0;
// 函數(shù)聲明
void System_Init(void);
void Environment_Monitoring(void);
void Alert_System(void);
void Display_Data(void);
void WiFi_Transmit_Data(void);
int main(void)
{
// 系統(tǒng)初始化
System_Init();
while (1)
{
// 環(huán)境監(jiān)測
Environment_Monitoring();
// 判斷是否超出報警閾值
Alert_System();
// 顯示環(huán)境數(shù)據(jù)
Display_Data();
// 通過Wi-Fi上傳數(shù)據(jù)
WiFi_Transmit_Data();
}
}
// 系統(tǒng)初始化函數(shù)
void System_Init(void)
{
// 1. 初始化硬件
LCD_Init(); // 初始化LCD
Buzzer_Init(); // 初始化蜂鳴器
DHT11_Init(); // 初始化DHT11傳感器
SmokeSensor_Init(); // 初始化煙霧傳感器
FireSensor_Init(); // 初始化火災(zāi)傳感器
WiFi_Init(); // 初始化Wi-Fi模塊
// 2. 其他硬件初始化
GPIO_Init(); // 初始化GPIO
}
// 環(huán)境監(jiān)測函數(shù)
void Environment_Monitoring(void)
{
// 讀取DHT11傳感器數(shù)據(jù)
current_temp = DHT11_Read_Temperature();
current_humidity = DHT11_Read_Humidity();
// 讀取煙霧傳感器數(shù)據(jù)
smoke_level = SmokeSensor_Read();
// 讀取火災(zāi)傳感器數(shù)據(jù)
fire_alarm = FireSensor_Read();
}
// 報警系統(tǒng)函數(shù)
void Alert_System(void)
{
// 檢查是否超出溫度閾值
if (current_temp > TEMP_THRESHOLD_HIGH || current_temp < TEMP_THRESHOLD_LOW)
{
Buzzer_On(); // 開啟蜂鳴器報警
// 可以增加排氣通道控制的代碼
}
else
{
Buzzer_Off(); // 關(guān)閉蜂鳴器
}
// 檢查濕度是否超出閾值
if (current_humidity > HUMIDITY_THRESHOLD_HIGH || current_humidity < HUMIDITY_THRESHOLD_LOW)
{
Buzzer_On(); // 開啟蜂鳴器報警
// 可以增加排氣通道控制的代碼
}
else
{
Buzzer_Off(); // 關(guān)閉蜂鳴器
}
// 檢查煙霧濃度是否超標
if (smoke_level > SMOKE_THRESHOLD)
{
Buzzer_On(); // 開啟蜂鳴器報警
// 可以增加排氣通道控制的代碼
}
else
{
Buzzer_Off(); // 關(guān)閉蜂鳴器
}
// 檢查火災(zāi)傳感器
if (fire_alarm == 1)
{
Buzzer_On(); // 開啟蜂鳴器報警
// 可以增加排氣通道控制的代碼
}
else
{
Buzzer_Off(); // 關(guān)閉蜂鳴器
}
}
// 數(shù)據(jù)顯示函數(shù)
void Display_Data(void)
{
// 在LCD上顯示環(huán)境數(shù)據(jù)
LCD_Clear();
LCD_SetCursor(0, 0);
LCD_Printf("Temp: %.2f C", current_temp);
LCD_SetCursor(1, 0);
LCD_Printf("Humidity: %.2f %%", current_humidity);
LCD_SetCursor(2, 0);
LCD_Printf("Smoke: %d", smoke_level);
LCD_SetCursor(3, 0);
LCD_Printf("Fire: %s", fire_alarm ? "Detected" : "Safe");
}
// Wi-Fi數(shù)據(jù)傳輸函數(shù)
void WiFi_Transmit_Data(void)
{
// 將環(huán)境數(shù)據(jù)通過Wi-Fi發(fā)送到手機APP或服務(wù)器
WiFi_Send_Data("Temperature", current_temp);
WiFi_Send_Data("Humidity", current_humidity);
WiFi_Send_Data("Smoke", smoke_level);
WiFi_Send_Data("Fire", fire_alarm ? 1 : 0);
}
// 延時函數(shù)
void delay_ms(uint32_t ms)
{
uint32_t i, j;
for (i = 0; i < ms; i++)
{
for (j = 0; j < 8000; j++)
{
__NOP(); // 空操作,等待時間
}
}
}
代碼分析
- 硬件初始化:
- ?
System_Init()
函數(shù)進行所有外設(shè)(如LCD、蜂鳴器、傳感器、Wi-Fi)的初始化。
- 環(huán)境監(jiān)測:
- ?
Environment_Monitoring()
函數(shù)從各個傳感器(DHT11、煙霧傳感器、火災(zāi)傳感器)中獲取實時數(shù)據(jù)。
- 報警機制:
- ?
Alert_System()
函數(shù)根據(jù)各個傳感器的數(shù)據(jù)判斷是否超出設(shè)定的閾值,如果超標則啟動蜂鳴器報警,并根據(jù)需要啟動排氣通道。
- 數(shù)據(jù)展示:
- ?
Display_Data()
函數(shù)使用LCD顯示屏展示實時環(huán)境數(shù)據(jù),包括溫度、濕度、煙霧濃度和火災(zāi)報警狀態(tài)。
- Wi-Fi通信:
- ?
WiFi_Transmit_Data()
函數(shù)將環(huán)境數(shù)據(jù)通過Wi-Fi模塊發(fā)送至手機APP或云端服務(wù)器,方便遠程監(jiān)控。
審核編輯 黃宇
-
單片機
+關(guān)注
關(guān)注
6067文章
44992瀏覽量
650639 -
STM32
+關(guān)注
關(guān)注
2293文章
11032瀏覽量
365116 -
監(jiān)測系統(tǒng)
+關(guān)注
關(guān)注
8文章
2884瀏覽量
82532
發(fā)布評論請先 登錄
如何在米爾-STM32MP257開發(fā)板上實現(xiàn)環(huán)境監(jiān)測系統(tǒng)

智慧路燈的環(huán)境監(jiān)測功能如何實現(xiàn)?
離子色譜技術(shù)及其在環(huán)境監(jiān)測中的應(yīng)用

基于STM32設(shè)計的倉庫環(huán)境監(jiān)測與預(yù)警系統(tǒng)

基于STM32單片機礦井礦工作業(yè)安全監(jiān)測設(shè)計
基于SX1281芯片的醫(yī)療環(huán)境監(jiān)測方案
電位在環(huán)境監(jiān)測中的應(yīng)用案例
倉儲環(huán)境監(jiān)測物聯(lián)網(wǎng)系統(tǒng)方案
微型氣象環(huán)境監(jiān)測站組成與應(yīng)用
如何用LORA模塊進行環(huán)境監(jiān)測
農(nóng)田生態(tài)守護者:智慧農(nóng)業(yè)物聯(lián)網(wǎng)環(huán)境監(jiān)測與數(shù)據(jù)采集系統(tǒng)亮相

環(huán)境監(jiān)測傳感器怎么安裝的
在環(huán)境監(jiān)測系統(tǒng)中一般不常用到的傳感器類型
無線終端ZWS云應(yīng)用(二)—DTU 云的環(huán)境監(jiān)測行業(yè)應(yīng)用

評論