项目介绍
本文提出了一种果蔬保鲜库控制系统的设计方案,旨在通过现代电子技术提高食品保存的效率和安全性,同时实现节能环保的目标。用单片机作为主控,通过对温度采集、湿度采集、CO2采集,实现对保鲜库的精准控制和智能操作。
功能介绍
1)温度控制范围:-5℃~+10℃可调,静态精度:±0.5℃;
2)湿度控制范围:20%~75%RH可调,静态精度:5%;
3)具有CO2浓度检测与报警功能,温度和湿度的显示及异常预警功能;
所用模块
系统原理图
实物图
部分代码
#include “stm32f10x.h” // Device header
#include “iwdg.h”
#include “adcx.h”
#include “oled.h”
#include “dht11.h”
#include “led.h”
#include “key.h”
#include “tim2.h”
#include “tim3.h”
#include “usart3.h”
#include “usart.h”
#include “motor.h”
#include “sensormodules.h”
#include “gizwits_product.h”
#include “flash.h”
#define KEY_1 1
#define KEY_2 2
#define KEY_3 3
#define KEY_4 4
#define FLASH_START_ADDR 0x0801f000 //дÈëµÄÆðʼµØÖ·
SensorModules sensorData; //ÉùÃ÷´«¸ÐÆ÷Êý¾Ý½á¹¹Ìå±äÁ¿
SensorThresholdValue Sensorthreshold; //ÉùÃ÷´«¸ÐÆ÷ãÐÖµ½á¹¹Ìå±äÁ¿
uint8_t menu = 1; //ÏÔʾ²Ëµ¥±äÁ¿
uint8_t OLED_Clear_Flag; //ãÐÖµÉèÖýçÃæµÄÇåÆÁ±ê־λ
uint8_t mode = 0; //ϵͳģʽ
uint8_t motorFlag; //²½½øµç»ú¿ØÖƱê־λ
enum
{
display_page1 = 1,
settingsPage
}MenuPages;
/**
-
@brief ÏÔʾ²Ëµ¥1µÄ¹Ì¶¨ÄÚÈÝ
-
@param ÎÞ
-
@retval ÎÞ
*/
void OLED_Menu1(void)
{
//ÏÔʾϵͳÃû
OLED_ShowChinese(1, 1, 0);
OLED_ShowChinese(1, 2, 1);
OLED_ShowChinese(1, 3, 2);
OLED_ShowChinese(1, 4, 3);
OLED_ShowChinese(1, 5, 4);
OLED_ShowChinese(1, 6, 5);
OLED_ShowChinese(1, 7, 6);
OLED_ShowChinese(1, 8, 7);//ÏÔʾ¡°ÏµÍ³Ä£Ê½£º¡±
OLED_ShowChinese(2, 1, 6);
OLED_ShowChinese(2, 2, 7);
OLED_ShowChinese(2, 3, 19);
OLED_ShowChinese(2, 4, 20);
OLED_ShowChar(2, 9, ‘:’);//ÏÔʾ¡°Î¶ȣº C¡±
OLED_ShowChinese(3,1,8);
OLED_ShowChinese(3,2,9);
OLED_ShowChar(3,5,‘:’);
OLED_ShowChar(3,8,‘C’);//ÏÔʾ¡°Êª¶È: %¡±
OLED_ShowChinese(3,5,10);
OLED_ShowChinese(3,6,9);
OLED_ShowChar(3,13,‘:’);
OLED_ShowChar(3,16,‘%’);//ÏÔʾ¡°¶þÑõ»¯Ì¼£º ¡±
OLED_ShowChinese(4, 1, 24);
OLED_ShowChinese(4, 2, 25);
OLED_ShowChinese(4, 3, 26);
OLED_ShowChinese(4, 4, 27);
OLED_ShowChar(4, 9, ‘:’);
OLED_ShowString(4, 14, “ppm”);
}
/**
-
@brief ÏÔʾ²Ëµ¥1µÄ´«¸ÐÆ÷Êý¾Ý
-
@param ÎÞ
-
@retval ÎÞ
*/
void SensorDataDisplay1(void)
{
//ÏÔʾϵͳ״̬Êý¾Ý
if (!mode)
{
OLED_ShowChinese(2, 6, 21);
OLED_ShowChinese(2, 7, 22);
}
else
{
OLED_ShowChinese(2, 6, 23);
OLED_ShowChinese(2, 7, 22);
}//ÏÔʾζÈÊý¾Ý
OLED_ShowNum(3, 6, sensorData.temp, 2);//ÏÔʾʪ¶ÈÊý¾Ý
OLED_ShowNum(3, 14, sensorData.humi, 2);//ÏÔʾCO2Ũ¶ÈÊý¾Ý
OLED_ShowNum(4, 10, sensorData.CO2, 4);
}
/**
-
@brief ÏÔʾãÐÖµÉèÖýçÃæ1µÄ¹Ì¶¨ÄÚÈÝ
-
@param ÎÞ
-
@retval ÎÞ
*/
void OLED_settingsPage1(void)
{
//ÏÔʾϵͳÃû
OLED_ShowChinese(1, 1, 17);
OLED_ShowChinese(1, 2, 18);
OLED_ShowChinese(1, 3, 30);
OLED_ShowChinese(1, 4, 31);
OLED_ShowChinese(1, 5, 32);
OLED_ShowChinese(1, 6, 33);
OLED_ShowChinese(1, 7, 34);
OLED_ShowChinese(1, 8, 35);//ÏÔʾ¡°Î¶ÈÉÏÏÞ£º¡±
OLED_ShowChinese(2, 2, 8);
OLED_ShowChinese(2, 3, 9);
OLED_ShowChinese(2, 4, 36);
OLED_ShowChinese(2, 5, 37);
OLED_ShowChar(2, 11, ‘:’);//ÏÔʾ¡°Î¶ÈÏÂÏÞ£º¡±
OLED_ShowChinese(3, 2, 8);
OLED_ShowChinese(3, 3, 9);
OLED_ShowChinese(3, 4, 38);
OLED_ShowChinese(3, 5, 39);
OLED_ShowChar(3, 11, ‘:’);//ÏÔʾ¡°Êª¶ÈÉÏÏÞ£º¡±
OLED_ShowChinese(4, 2, 10);
OLED_ShowChinese(4, 3, 9);
OLED_ShowChinese(4, 4, 36);
OLED_ShowChinese(4, 5, 37);
OLED_ShowChar(4, 11, ‘:’);
}
/**
-
@brief ÏÔʾãÐÖµ½çÃæ1µÄ´«¸ÐÆ÷Êý¾Ý
-
@param ÎÞ
-
@retval ÎÞ
*/
void settingsThresholdDisplay1(void)
{
//ÏÔʾζÈÉÏÏÞãÐÖµÊý¾Ý
OLED_ShowNum(2, 13, Sensorthreshold.tempUpperThreshold, 2);//ÏÔʾζÈÏÂÏÞãÐÖµÊý¾Ý
OLED_ShowNum(3, 13, Sensorthreshold.tempLowerThreshold, 2);//ÏÔʾʪ¶ÈÉÏÏÞãÐÖµÊý¾Ý
OLED_ShowNum(4, 13, Sensorthreshold.humiUpperThreshold, 2);
}
资料下载链接
「实物制作资料.rar」,来自夸克网盘分享。
夸克网盘无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
/928a345o9V😕
链接:https://pan.quark.cn/s/fa4fa3fc4e7b
提取码:p88k