一.系统概述
海鲜冷藏车检测系统的功能如下:
1. 核心控制器:系统以STM32单片机作为核心控制器,负责处理数据、控制温控装置等。
2. 环境参数采集:集成温湿度传感器,对冷藏车内环境参数(如温度和湿度)进行实时采集。
3. 自动调节功能:根据预设的温度阈值,系统比较实时温度值与阈值,自动调节调温装置(如制冷或加热设备)。
4. 蓝牙通信功能:蓝牙通信模块将采集到的数据信息发送到蓝牙APP端,以便实时监控和控制。
5. 继电器控制:系统通过继电器控制调温装置(如压缩机、加热器等)的开关,实现对冷藏车环境的自动调节。
通过以上设计,温控系统能够提供精确的环境参数监测和自动调节功能,确保冷藏车内物品的储存条件符合要求,同时通过蓝牙通信提供用户友好的监控界面,提高系统的实用性和便利性。
二.电路设计
电路图采用Altium Designer进行设计:
1. 通过STM32F103C8T6单片机作为系统主控,最小系统电路是整个电路的核心;
2. 通过DHT11进行温湿度检测,并通过one-wire总线与单片机的GPIO脚进行连接;
3. 使用JDY-31蓝牙模块将检测到的温湿度数据上传到手机端,JDY-31与单片机之间是通过UART串口进行通信;
4. 使用蜂鸣器进行报警,蜂鸣器采用的有源蜂鸣器,使用NPN三极管进行蜂鸣器进行驱动;
5. 通过继电器控制调温装置的打开和关闭,将继电器的数据输出脚与单片机的GPIO脚进行连接。
三.程序设计
#include "sys.h"
#include "delay.h"
#include "math.h"
#include "OLED_I2C.h"
#include "usart1.h"
#include "usart2.h"
#include "Control_Report_To_Police.h"
/************************************************
版权:小常硬件
公众号:微信搜索“小常硬件“在公众号免费下载相关资料
************************************************/
extern u8 temp_max;
extern u8 him_max;
int main(void)
{
u8 time_count = 0;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
Usart2_Init(9600); //串口2功能初始化,波特率9600
Delay_Init();
Beep_init(); //蜂鸣器初始化
while(DHT11_Init()){};
OLED_Init(); //OLED初始化
OLED_CLS(); //OLED清屏
OLED_ShowCN(32,2,0); //小常硬件
OLED_ShowCN(32+16,2,1);
OLED_ShowCN(32+32,2,2);
OLED_ShowCN(32+32+16,2,3);
DelayMs(100);
OLED_CLS();
/*******显示汉字**********/
OLED_ShowCN(0,0,10);
OLED_ShowCN(0+16,0,11);
OLED_ShowCN(0,2,12);
OLED_ShowCN(0+16,2,13);
DelayMs(1000);
OLED_CLS();
DelayMs(500);
OLED_ShowCN(0,0,10);
OLED_ShowCN(0+16,0,11);
OLED_ShowCN(0,2,12);
OLED_ShowCN(0+16,2,13);
Beep=1;//蜂鸣器初始化 系统上电后先让蜂鸣器停止叫
while(1)
{
time_count++;
if (Serial_GetRxFlag() == 1)
{
if(CommBuff[0]==0xA5)
{
if(CommBuff[1]==0xAA&&CommBuff[2]==0xAA)
{
temp_max++;
}
else if(CommBuff[1]==0xBB&&CommBuff[2]==0xBB)
{
temp_max--;
}
else if(CommBuff[1]==0xCC&&CommBuff[2]==0xCC)
{
him_max++;
}
else if(CommBuff[1]==0xDD&&CommBuff[2]==0xDD)
{
him_max--;
}
memset(CommBuff,0,BUFFER_SIZE);
}
}
if(time_count==3){send_data1();}
else if(time_count==5){time_count=0;send_data2();}
Beep = OLED_Display_Cotrol(); //显示控制函数
}
}