0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于单片机中药存放环境监测系统的实现

DS小龙哥-嵌入式技术 ? 来源:DS小龙哥-嵌入式技术 ? 作者:DS小龙哥-嵌入式技 ? 2025-01-23 09:42 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

项目开发背景

随着现代中药的广泛应用,中药材的存储环境对其质量有着至关重要的影响。温湿度、烟雾、火灾等环境因素,若不加以控制,将会导致中药材失效或变质。因此,设计一个基于单片机的中药存放环境监测系统显得尤为重要。该系统通过实时监测温湿度、烟雾浓度、火灾情况等环境参数,确保中药存放环境处于适宜的状态,从而保证中药材的品质,减少因环境问题引发的损失。

本项目基于STM32F103C8T6单片机作为核心控制单元,通过多种传感器对环境进行实时采集,并通过液晶显示屏和Wi-Fi无线通讯将监测数据展示给用户,达到环境预警和安全保障的目的。

image-20241225142247774

设计实现的功能

    1. 温湿度采集与监控 :使用DHT11温湿度传感器实时监控中药存放房间的温度和湿度,确保温湿度符合要求。
    1. 烟雾监测 :通过烟雾传感器检测存放环境中的烟雾浓度,及时发现火灾隐患。
    1. 火灾监测 :利用火灾传感器检测中药存放环境中是否有火灾发生,保证环境安全。
    1. 环境预警 :设置温湿度、烟雾、火灾等阈值,当超过设定值时,系统自动触发警报(蜂鸣器),提示用户注意。
    1. 紧急处理机制 :当温度、湿度、烟雾或火灾参数超标时,系统自动启动排气通道进行换气或散热处理。
    1. 数据展示与实时监控 :通过液晶显示屏显示当前环境数据,提供温度、湿度、烟雾浓度、火灾监测结果等信息。
    1. 手机端监控与管理 :通过Wi-Fi模块实现手机APP与设备之间的通信,使用户可以在手机端查看实时数据并进行远程监控。
    1. 数据存储与历史记录 :监测数据可存储并备份,便于后期查阅和分析,确保数据的长期有效性。

项目硬件模块组成

    1. 主控芯片 STM32F103C8T6
      作为本系统的核心控制单元,STM32F103C8T6具有丰富的I/O口,支持多种外设接口(如SPI、I2C、USART等),能够满足传感器的数据采集、处理和通信要求。
    1. DHT11 温湿度传感器
      用于实时采集存储环境的温度和湿度数据,输出数字信号,通过单片机读取数据进行处理。
    1. 烟雾传感器
      该传感器能够检测空气中的烟雾浓度,通过模拟输出提供实时的烟雾浓度数据。
    1. 火灾传感器
      用于检测火灾发生的初期征兆,如温度剧增、火焰感应等。输出信号通过单片机读取,用于判断是否有火灾发生。
    1. 蜂鸣器
      当环境参数超过设定阈值时,蜂鸣器发出警报声音,提醒用户注意。
    1. 排气通道控制模块
      该模块用于控制中药存储房的排气系统,系统可根据传感器数据自动开启排气口进行散热或通风。
    1. LCD液晶显示屏(1602或类似)
      用于显示当前监测到的温度、湿度、烟雾浓度、火灾报警等数据,提供直观的实时反馈。
    1. Wi-Fi模块(如ESP8266
      通过Wi-Fi模块与手机APP连接,实现远程数据监控和管理。
    1. 电源管理模块
      提供系统稳定的电源,支持单片机及各个模块的工作。

设计思路

总体架构

本系统的设计包括硬件和软件两大部分,硬件部分由STM32F103C8T6单片机作为控制中心,外围集成了多种传感器用于环境数据采集,包括温湿度传感器、烟雾传感器、火灾传感器等,同时利用LCD液晶屏实时显示数据,并通过Wi-Fi模块实现手机端的数据访问。

在软件部分,首先要实现对各个传感器的数据读取和处理,并对数据进行实时监控。其次,设置阈值,当环境数据超过设定的阈值时,触发报警机制(蜂鸣器和排气通道)。最后,通过Wi-Fi将监测数据传输到手机APP,用户可以远程查看和管理数据。

数据采集与处理

    1. 温湿度采集 :通过DHT11传感器读取温湿度数据,并将数据传输给单片机进行处理。
    1. 烟雾采集 :通过烟雾传感器读取烟雾浓度数据,并在程序中进行转换和阈值判断。
    1. 火灾采集 :通过火灾传感器获取火灾报警信号,判断是否发生火灾。

环境监测与预警

当温湿度、烟雾浓度或火灾传感器的读数超过预设阈值时,系统会触发警报并启动相应的紧急处理机制,例如开启蜂鸣器警告和自动启动排气系统。

数据存储与历史记录

通过STM32F103C8T6的内存或外接存储器(如SD卡)保存历史数据,方便后期查询和分析。

无线通讯

通过Wi-Fi模块实现系统与手机端的通信,手机APP将实时显示温湿度、烟雾、火灾等监测数据,确保用户可以远程掌握存储环境状况。

系统功能总结

功能模块描述
温湿度监测实时监测中药存储房的温湿度,确保环境适宜
烟雾监测检测存储房内的烟雾浓度,及时发现潜在的火灾隐患
火灾监测检测火灾初期征兆,预防火灾事故发生
环境预警设置温湿度、烟雾、火灾阈值,超标时触发报警机制
紧急处理机制超标时启动排气通道进行通风或散热,降低环境风险
数据展示与实时监控LCD显示屏展示环境数据,便于现场查看和管理
手机APP监控与管理通过Wi-Fi模块连接手机,远程查看实时监测数据
数据存储与历史记录保存环境监测数据,便于查询和分析

使用的模块的技术详情介绍

1. DHT11 温湿度传感器

  • ? 工作原理 :DHT11通过内置的温湿度感应元件来测量环境的温度和湿度。它通过单总线协议与单片机进行数据通信。
  • ? 技术参数:
    • ? 温度测量范围:0℃到50℃
    • ? 湿度测量范围:20%到90%
    • ? 精度:温度±2℃,湿度±5%

2. 烟雾传感器

  • ? 工作原理 :烟雾传感器通过对空气中气体的吸收与反射变化,检测烟雾浓度。输出模拟信号,可通过ADC接口输入单片机。
  • ? 技术参数:
    • ? 输出信号:模拟电压信号
    • ? 检测浓度:300-1000ppm烟雾

3. 火灾传感器

  • ? 工作原理 :火灾传感器通过检测环境温度变化或火焰的存在来判断是否发生火灾,常用红外线火焰传感器或热敏电阻
  • ? 技术参数:
    • ? 检测温度范围:30℃-50℃
    • ? 检测方式:红外或热敏电阻

4. Wi-Fi模块 (ESP8266)

  • ? 工作原理 :ESP8266通过UART接口与单片机通信,实现Wi-Fi功能,能够将环境数据发送至云平台或手机APP。
  • ? 技术参数:
    • ? 支持802.11b/g/n Wi-Fi标准
    • ? 支持TCP/IP协议

STM32代码设计

以下是基于STM32F103C8T6的中药存放环境监测系统的 main.c 代码。其他子模块(如温湿度传感器、烟雾传感器、火灾传感器、蜂鸣器、LCD显示、Wi-Fi等)的代码已经编写好。代码实现了主要功能:环境数据的采集、报警机制、LCD显示和Wi-Fi通讯。

#include "stm32f10x.h"
#include "DHT11.h"        // 包含DHT11传感器的代码
#include "SmokeSensor.h"   // 包含烟雾传感器的代码
#include "FireSensor.h"    // 包含火灾传感器的代码
#include "Buzzer.h"        // 包含蜂鸣器控制代码
#include "LCD1602.h"       // 包含LCD显示控制代码
#include "WiFi.h"          // 包含Wi-Fi通讯控制代码

// 定义环境监测阈值
#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时报警

// 环境参数存储
float current_temp = 0;
float current_humidity = 0;
int smoke_level = 0;
int fire_alarm = 0;

// 函数声明
void System_Init(void);
void Environment_Monitoring(void);
void Alert_System(void);
void Display_Data(void);
void WiFi_Transmit_Data(void);

int main(void)
{
    // 系统初始化
    System_Init();
    
    while (1)
    {
        // 环境监测
        Environment_Monitoring();
        
        // 判断是否超出报警阈值
        Alert_System();
        
        // 显示环境数据
        Display_Data();
        
        // 通过Wi-Fi上传数据
        WiFi_Transmit_Data();
        
    }
}

// 系统初始化函数
void System_Init(void)
{
    // 1. 初始化硬件
    LCD_Init();        // 初始化LCD
    Buzzer_Init();     // 初始化蜂鸣器
    DHT11_Init();      // 初始化DHT11传感器
    SmokeSensor_Init(); // 初始化烟雾传感器
    FireSensor_Init();  // 初始化火灾传感器
    WiFi_Init();        // 初始化Wi-Fi模块
    // 2. 其他硬件初始化
    GPIO_Init();        // 初始化GPIO
}

// 环境监测函数
void Environment_Monitoring(void)
{
    // 读取DHT11传感器数据
    current_temp = DHT11_Read_Temperature();
    current_humidity = DHT11_Read_Humidity();
    
    // 读取烟雾传感器数据
    smoke_level = SmokeSensor_Read();
    
    // 读取火灾传感器数据
    fire_alarm = FireSensor_Read();
}

// 报警系统函数
void Alert_System(void)
{
    // 检查是否超出温度阈值
    if (current_temp > TEMP_THRESHOLD_HIGH || current_temp < TEMP_THRESHOLD_LOW)
    {
        Buzzer_On();  // 开启蜂鸣器报警
        // 可以增加排气通道控制的代码
    }
    else
    {
        Buzzer_Off(); // 关闭蜂鸣器
    }

    // 检查湿度是否超出阈值
    if (current_humidity > HUMIDITY_THRESHOLD_HIGH || current_humidity < HUMIDITY_THRESHOLD_LOW)
    {
        Buzzer_On();  // 开启蜂鸣器报警
        // 可以增加排气通道控制的代码
    }
    else
    {
        Buzzer_Off(); // 关闭蜂鸣器
    }

    // 检查烟雾浓度是否超标
    if (smoke_level > SMOKE_THRESHOLD)
    {
        Buzzer_On();  // 开启蜂鸣器报警
        // 可以增加排气通道控制的代码
    }
    else
    {
        Buzzer_Off(); // 关闭蜂鸣器
    }

    // 检查火灾传感器
    if (fire_alarm == 1)
    {
        Buzzer_On();  // 开启蜂鸣器报警
        // 可以增加排气通道控制的代码
    }
    else
    {
        Buzzer_Off(); // 关闭蜂鸣器
    }
}

// 数据显示函数
void Display_Data(void)
{
    // 在LCD上显示环境数据
    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数据传输函数
void WiFi_Transmit_Data(void)
{
    // 将环境数据通过Wi-Fi发送到手机APP或服务器
    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);
}

// 延时函数
void delay_ms(uint32_t ms)
{
    uint32_t i, j;
    for (i = 0; i < ms; i++)
    {
        for (j = 0; j < 8000; j++)
        {
            __NOP();  // 空操作,等待时间
        }
    }
}

代码分析

    1. 硬件初始化:
    • ? System_Init() 函数进行所有外设(如LCD、蜂鸣器、传感器、Wi-Fi)的初始化。
    1. 环境监测:
  • ? Environment_Monitoring() 函数从各个传感器(DHT11、烟雾传感器、火灾传感器)中获取实时数据。
    1. 报警机制:
  • ? Alert_System() 函数根据各个传感器的数据判断是否超出设定的阈值,如果超标则启动蜂鸣器报警,并根据需要启动排气通道。
    1. 数据展示:
  • ? Display_Data() 函数使用LCD显示屏展示实时环境数据,包括温度、湿度、烟雾浓度和火灾报警状态。
    1. Wi-Fi通信:
  • ? WiFi_Transmit_Data() 函数将环境数据通过Wi-Fi模块发送至手机APP或云端服务器,方便远程监控。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6068

    文章

    45032

    浏览量

    652211
  • STM32
    +关注

    关注

    2295

    文章

    11034

    浏览量

    365950
  • 监测系统
    +关注

    关注

    8

    文章

    2903

    浏览量

    82619
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    多功能自动环境监测气象站

    环境监测
    pingao141378
    发布于 :2025年07月22日 17:49:09

    单片机项目实例:环境监测仪项目

    单片机项目实例:环境监测仪项目,推荐下载!
    发表于 06-09 22:28

    如何在米尔-STM32MP257开发板上实现环境监测系统

    论坛参与的一个项目:Thingy:91X蜂窝物联网原型开发平台的试用。把两个项目结合起来,实现一个简单的环境监测系统。二、硬件平台1、米尔-STM32MP257开
    的头像 发表于 04-17 08:06 ?1852次阅读
    如何在米尔-STM32MP257开发板上<b class='flag-5'>实现</b><b class='flag-5'>环境监测</b><b class='flag-5'>系统</b>

    智慧路灯的环境监测功能如何实现

    引言 在智慧城市建设不断推进的当下,环境监测的重要性日益凸显。叁仟智慧路灯凭借自身广泛分布的特点,承担起了环境监测的重任,成为城市环境监测网络中的关键节点。其环境监测功能的
    的头像 发表于 03-18 14:41 ?371次阅读

    基于STM32设计的仓库环境监测与预警系统

    本项目基于STM32微控制器设计一个环境监测与预警系统,具备温湿度监测、气体检测、墙壁水汽检测、蜂鸣器报警、通风控制等功能,支持数据上传至华为云物联网平台并通过网页实现数据可视化与控制
    的头像 发表于 03-05 13:11 ?969次阅读
    基于STM32设计的仓库<b class='flag-5'>环境监测</b>与预警<b class='flag-5'>系统</b>

    基于STM32单片机矿井矿工作业安全监测设计

    本项目设计一个基于STM32单片机的矿井作业安全监测系统。该系统能够实时监测矿井的环境参数,并通
    的头像 发表于 01-17 16:45 ?966次阅读

    基于SX1281芯片的医疗环境监测方案

    监测并优化环境条件,以保证患者的安全和健康。 为了满足这些需求,本方案推荐使用SX1281无线通信芯片,构建基于无线传感器网络的医疗环境监测系统。SX1281芯片以其超长的通信距离、低
    发表于 01-07 00:07

    电位在环境监测中的应用案例

    电位在环境监测中具有广泛的应用,以下是一些具体的应用案例: 一、水质氧化还原电位监测 水质氧化还原电位(ORP)是反映水环境氧化还原状态的重要指标。它表示水溶液中氧化剂与还原剂相对强弱的程度,是体现
    的头像 发表于 12-28 14:21 ?796次阅读

    仓储环境监测物联网系统方案

    系统的智能化水平,数之能推出了基于物联网技术的仓储环境监测系统方案。 仓储环境监测物联网系统方案主要基于物联网云平台
    的头像 发表于 12-13 13:41 ?515次阅读

    微型气象环境监测站组成与应用

    环境中,实现对气象参数的实时监测与精准预测,为生产生活带来便利与安全。 一、技术原理与构成 微型气象环境监测站,集成化的传感器系统,精准地
    的头像 发表于 11-29 16:47 ?603次阅读

    如何用LORA模块进行环境监测

    环境监测是保护环境和人类健康的重要环节。传统的监测方法往往需要大量的人力物力,而且数据采集的实时性和准确性受限。LORA模块的出现为环境监测提供了一种新的解决方案。它能够
    的头像 发表于 11-01 09:17 ?1148次阅读

    农田生态守护者:智慧农业物联网环境监测与数据采集系统亮相

    智慧农业物联网环境监测传感器数据采集系统通过物联网、传感器、无线通讯、数据分析等先进技术,构建了一套完整的农田环境监测解决方案,实现对农田的精准、实时、全面的
    的头像 发表于 10-22 14:53 ?861次阅读
    农田生态守护者:智慧农业物联网<b class='flag-5'>环境监测</b>与数据采集<b class='flag-5'>系统</b>亮相

    环境监测传感器怎么安装的

    引言 环境监测传感器是用于监测和分析环境中各种物理、化学和生物参数的设备。这些传感器对于保护环境、确保人类健康和提高生活质量至关重要。正确安装和维护这些传感器对于确保数据的准确性和可靠
    的头像 发表于 09-10 14:50 ?1286次阅读

    环境监测系统中一般不常用到的传感器类型

    环境监测系统是一套复杂的技术体系,它涉及到多种传感器和监测设备,用于实时监测和分析环境质量。这些传感器类型包括化学传感器、生物传感器、物理传
    的头像 发表于 09-10 14:39 ?1517次阅读

    无线终端ZWS云应用(二)—DTU 云的环境监测行业应用

    CATCOM-100智能网联DTU终端结合ZWS云平台,解决了传统环境监测的痛点,支持将环境监测设备的数据实时上传至云端,从而实现了设备的远程监控。应用场景由于传统环境监测方法需要人工
    的头像 发表于 08-30 12:48 ?553次阅读
    无线终端ZWS云应用(二)—DTU 云的<b class='flag-5'>环境监测</b>行业应用