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

智慧路燈的環(huán)境監(jiān)測(cè)功能如何實(shí)現(xiàn)?
基于STM32設(shè)計(jì)的倉(cāng)庫(kù)環(huán)境監(jiān)測(cè)與預(yù)警系統(tǒng)

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

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

什么是光伏環(huán)境監(jiān)測(cè)?

水環(huán)境監(jiān)測(cè)系統(tǒng)解決方案

評(píng)論