当前位置: 首页 > news >正文

国内权重网站排名清理大师

国内权重网站排名,清理大师,网站免费建站2,社交主题 wordpress文章目录 一、智能仓储环境监测1.题目要求2.思路3.电路仿真3.1 未仿真时3.2 开始仿真,显示屏显示Init后,正常显示温度湿度光照烟雾数值3.3 切换温度阈值界面,用阈值加减设置温度min和温度max阈值3.4 调整温度数值,触发风扇/加热3.…

文章目录

  • 一、智能仓储环境监测
    • 1.题目要求
    • 2.思路
    • 3.电路仿真
      • 3.1 未仿真时
      • 3.2 开始仿真,显示屏显示Init后,正常显示温度湿度光照烟雾数值
      • 3.3 切换温度阈值界面,用阈值加减设置温度min和温度max阈值
      • 3.4 调整温度数值,触发风扇/加热
      • 3.5 切换湿度阈值界面,调整湿度数值,模拟通风打开
      • 3.6 切换光照阈值界面,调整光照传感器数值,声光报警
      • 3.7 远程终端设置阈值和查询温度湿度光照烟雾数值
    • 4.仿真程序
      • 4.1 程序说明
      • 4.2 主程序
      • 4.3 OLED显示函数
      • 4.4 串口接收函数
  • 二、总结


一、智能仓储环境监测

1.题目要求

1、检测温度、湿度、光照、烟雾浓度

2、设置光照、烟雾浓度阈值,超过阈值进行声光报警

3、设置温度阈值,低于阈值加热,高于阈值开风扇

4、设置湿度阈值,超过阈值通风

5、oled显示温度、湿度、光照、烟雾浓度的数值

6、手机端可以设置温度、湿度、光照、烟雾浓度的阈值、显示温度、湿度、光照、烟雾浓度的数值

在这里插入图片描述

2.思路

由上面的功能需求和实物照片,我们可知需要一个单片机STM32F103C8T6,温湿度传感器DHT11,光照传感器BH1750,
烟雾传感器MQ-2,显示屏OLED,有源蜂鸣器报警,风扇,加热棒,舵机,WiFi模块ESP8266以及三个按键。

都是一些常见的模块,简单过一遍。

单片机STM32F103C8T6:

在这里插入图片描述

温湿度传感器DHT11:

在这里插入图片描述

光照传感器BH1750:

在这里插入图片描述

烟雾传感器MQ-2(proteus仿真没有,用滑动变阻器代替模拟)

在这里插入图片描述

显示屏OLED:

在这里插入图片描述

有源蜂鸣器报警(最近不知道软件怎么了,蜂鸣器用不了,所以我都选择在旁边加个指示灯来看效果)

在这里插入图片描述

风扇,加热棒(proteus仿真没有,用一个红色LED点亮表示开启加热)

在这里插入图片描述

舵机:

在这里插入图片描述

WiFi模块ESP8266(proteus仿真没有,用虚拟终端连接到串口调试助手代替)

在这里插入图片描述

三个按键:

在这里插入图片描述

3.电路仿真

3.1 未仿真时

在这里插入图片描述

3.2 开始仿真,显示屏显示Init后,正常显示温度湿度光照烟雾数值

1.一开始显示屏显示Init(表示正在初始化)
在这里插入图片描述
2.正常显示温度湿度光照烟雾数值

在这里插入图片描述

3.3 切换温度阈值界面,用阈值加减设置温度min和温度max阈值

在这里插入图片描述

3.4 调整温度数值,触发风扇/加热

1.当前温度数值为31°C,高于温度max阈值,打开风扇

在这里插入图片描述

2.当前温度数值为20°C,低于温度min阈值,打开加热

在这里插入图片描述

3.5 切换湿度阈值界面,调整湿度数值,模拟通风打开

默认关闭的时候,舵机角度为-90°

在这里插入图片描述

打开的时候舵机角度调整为+90°

在这里插入图片描述

3.6 切换光照阈值界面,调整光照传感器数值,声光报警

烟雾阈值同理不演示。

注:蜂鸣器可能不响,所以用指示灯代替。

在这里插入图片描述

3.7 远程终端设置阈值和查询温度湿度光照烟雾数值

在这里插入图片描述

4.仿真程序

4.1 程序说明

主控芯片:STM32F103C8
HICK:64MHZ
Systick: 1ms

烟雾传感器:ADC(PA0)

光照传感器:LDR(PA2)

DHT11温湿度传感器:DATA(PA4)

模拟WIFI模块(Uart1):9600(PA9:tx1,PA10:rx1)

声光报警:BUZZER(PA15)

按键:
KEY1(PB2)
KEY2(PB3)
KEY3(PB4)

模拟通风:PWM(PB6)
风扇:RELAY1(PB7)
加热:RELAY2(PB8)

OLED显示屏:SCL(PB14),SDA(PB15)

在这里插入图片描述

串口协议
举例如发送*Tmin20,即设置温度低阈值位20度
设置指令:
*TminXX 设置温度低阈值 XX取值为0-99(温度低阈值必须小于温度高阈值)
*TmaxXX 设置温度高阈值 XX取值为0-99(温度高阈值必须大于温度低阈值)
*HumiXX 设置湿度阈值 XX取值为0-99
*ILLuXX 设置光照阈值 XX取值为0-99
*SmogXX 设置烟雾阈值 XX取值为0-99

查询指令:查询温度、湿度、光照、烟雾浓度的数值
*Read

4.2 主程序

/* Includes ------------------------------------------------------------------*/
#include "Drv_UserSystem.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
/*** @brief  main function.* @param  none* @retval none*/
int main(void)
{UserSystemInit();//用户配置初始化		while (1){			if (stSysTime.flg._100ms + TEN_MILLISECOND < Time_millis()) //10ms{stSysTime.flg._10ms = Time_millis();	Key_Scan();//按键扫描				}if (stSysTime.flg._50ms + FIFTY_MILLISECOND < Time_millis()) //50ms{stSysTime.flg._50ms = Time_millis();						ADC_Scan();//光照,土壤湿度检测		DHT11_Collect_data();//DHT11采集温度,湿度					}				if(stSysTime.flg._100ms + BEST_MILLISECOND < Time_millis()) //100ms{stSysTime.flg._100ms = Time_millis();					Receive_data_Handel();//数据接收判断 						OLED_Handel();//OLED显示	Forewarning_Handel();//预警函数						IWDG_ReloadCounter();//清开门狗 				}if (stSysTime.flg._1s + THOUSAND_MILLISECOND < Time_millis()) //1s{stSysTime.flg._1s = Time_millis();				}}
}

4.3 OLED显示函数

/******************************************************************************** 函数名:OLED_Handel* 描述  :OLED显示* 输入  :void* 输出  :void* 调用  :初始化* 备注  :100ms
*******************************************************************************/
void OLED_Handel(void)
{  	if(Screen_switching == 1){OLED_Show_Character(1,1,0,16);//温OLED_Show_Character(1,2,1,16);//度			 OLED_Show_Character(1,3,2,16);//:	 OLED_ShowNum(1,7,DHT11_temp_high,2);	OLED_Show_Character(1,5,3,16);//°	 OLED_ShowString(1, 11, "C");	OLED_Show_Character(2,1,4,16);//湿OLED_Show_Character(2,2,5,16);//度			 OLED_Show_Character(2,3,2,16);//:	 OLED_ShowNum(2,7,DHT11_humi,2);OLED_ShowString(2, 9, "%");			OLED_Show_Character(3,1,8,16);//光OLED_Show_Character(3,2,9,16);//照			 OLED_Show_Character(3,3,2,16);//:	 	OLED_ShowNum(3,7,ADC2_Value,2);OLED_ShowString(3, 9, "%");			OLED_Show_Character(4,1,6,16);//烟OLED_Show_Character(4,2,7,16);//雾			 OLED_Show_Character(4,3,2,16);//:	 	OLED_ShowNum(4,7,ADC1_Value,2);OLED_ShowString(4, 9, "%");			}else if((Screen_switching == 2) || (Screen_switching == 3)){	OLED_Show_Character(1,3,10,16);//设OLED_Show_Character(1,4,11,16);//置			OLED_Show_Character(1,5,0,16);//温OLED_Show_Character(1,6,1,16);//度			OLED_ShowString(2, 3, "min");		OLED_Show_Character(2,4,2,16);//:OLED_ShowNum(2,9,Temp_minThreshold,2);	OLED_Show_Character(2,6,3,16);//°	 OLED_ShowString(2, 13, "C");	OLED_ShowString(3, 3, "max");		OLED_Show_Character(3,4,2,16);//:OLED_ShowNum(3,9,Temp_maxThreshold,2);	OLED_Show_Character(3,6,3,16);//°	 OLED_ShowString(3, 13, "C");			}else if(Screen_switching == 4) 	{OLED_Show_Character(1,3,10,16);//设OLED_Show_Character(1,4,11,16);//置			OLED_Show_Character(1,5,4,16);//湿OLED_Show_Character(1,6,5,16);//度	OLED_ShowNum(3,7,Humi_Threshold,2);OLED_ShowString(3, 9, "%");					}else if(Screen_switching == 5) 	{OLED_Show_Character(1,3,10,16);//设OLED_Show_Character(1,4,11,16);//置			OLED_Show_Character(1,5,8,16);//光OLED_Show_Character(1,6,9,16);//照	OLED_ShowNum(3,7,ADC2_Threshold,2);OLED_ShowString(3, 9, "%");					}	else if(Screen_switching == 6) 	{OLED_Show_Character(1,3,10,16);//设OLED_Show_Character(1,4,11,16);//置			OLED_Show_Character(1,5,6,16);//烟OLED_Show_Character(1,6,7,16);//雾	OLED_ShowNum(3,7,ADC1_Threshold,2);OLED_ShowString(3, 9, "%");					}	
}

4.4 串口接收函数

/******************************************************************************** 函数名:Send_Cmd1* 描述  :设置温度阈值* 输入  :void* 输出  :void* 调用  :需要时调用* 备注  :举例如发送*Tmin20,即设置温度低阈值位20度*******************************************************************************/
void Send_Cmd1(void)
{uint8_t i = 0;if(uart1_rx_buf[i+3] == 'i'){variable1 = (AsciiToHex(uart1_rx_buf[i+5])*10+AsciiToHex(uart1_rx_buf[i+6]));if((variable1 > 0) && (variable1 < 100)){if(variable1 < Temp_maxThreshold)							 {				Temp_minThreshold = variable1;printf("手机设置的温度低阈值 = %d\r\n",Temp_minThreshold);}else{printf("温度低阈值大于温度高阈值,设置失败");					}					}	else{printf("手机设置的温度低阈值超出设置范围 \r\n");			}			}else if(uart1_rx_buf[i+3] == 'a'){variable2 = (AsciiToHex(uart1_rx_buf[i+5])*10+AsciiToHex(uart1_rx_buf[i+6]));if((variable2 > 0) && (variable2 < 100)){if(variable2 > Temp_minThreshold)							 {				Temp_maxThreshold = variable2;printf("手机设置的温度高阈值 = %d\r\n",Temp_maxThreshold);}else{printf("温度高阈值小于温度低阈值,设置失败");					}					}	else{printf("手机设置的温度高阈值超出设置范围 \r\n");			}			}
}/******************************************************************************** 函数名:Send_Cmd2* 描述  :设置湿度阈值* 输入  :void* 输出  :void* 调用  :需要时调用* 备注  :*******************************************************************************/
void Send_Cmd2(void)
{uint8_t i = 0;variable3 = (AsciiToHex(uart1_rx_buf[i+5])*10+AsciiToHex(uart1_rx_buf[i+6]));if((variable3 > 0) && (variable3 < 100)){Humi_Threshold = variable3;printf("手机设置的湿度阈值 = %d\r\n",Humi_Threshold);	}	else{printf("手机设置的湿度阈值超出设置范围 \r\n");			}	
}/******************************************************************************** 函数名:Send_Cmd3* 描述  :设置光照阈值* 输入  :void* 输出  :void* 调用  :需要时调用* 备注  :*******************************************************************************/
void Send_Cmd3(void)
{uint8_t i = 0;variable4 = (AsciiToHex(uart1_rx_buf[i+5])*10+AsciiToHex(uart1_rx_buf[i+6]));if((variable4 > 0) && (variable4 < 100)){ADC2_Threshold = variable4;printf("手机设置的光照雾阈值 = %d\r\n",ADC2_Threshold);	}	else{printf("手机设置的光照阈值超出设置范围 \r\n");			}	
}/******************************************************************************** 函数名:Send_Cmd4* 描述  :设置烟雾阈值* 输入  :void* 输出  :void* 调用  :需要时调用* 备注  :*******************************************************************************/
void Send_Cmd4(void)
{uint8_t i = 0;variable5 = (AsciiToHex(uart1_rx_buf[i+5])*10+AsciiToHex(uart1_rx_buf[i+6]));if((variable5 > 0) && (variable5 < 100)){ADC1_Threshold = variable5;printf("手机设置的烟雾阈值 = %d\r\n",ADC1_Threshold);	}	else{printf("手机设置的烟雾阈值超出设置范围 \r\n");			}	
}/******************************************************************************** 函数名:Send_Cmd5* 描述  :查询温度、湿度、光照、烟雾浓度的数值* 输入  :void* 输出  :void* 调用  :需要时调用* 备注  :*******************************************************************************/
void Send_Cmd5(void)
{if(ADC_Flag){	printf("温度=%d 湿度=%d 光照= %d 烟雾=%d\r\n",DHT11_temp_high,DHT11_humi,ADC2_Value,ADC1_Value);	}	
}/******************************************************************************** Function    : Receive_data_Handel* Description : 数据接收判断* Input       : 无* Return      : 无* Call        : 100ms* Others      :*******************************************************************************/
void Receive_data_Handel(void)
{uint8_t i = 0;if(uart1_rx_finsh){	  for(i = 0;i< 20; i++){if(uart1_rx_buf[i] == '*')	{switch(uart1_rx_buf[i+1]){case  'T':Send_Cmd1();break;//*TempXX		case  'H':Send_Cmd2();break;//*HumiXXcase  'I':Send_Cmd3();break;//*IlluXX	case  'S':Send_Cmd4();break;//*SmogXX 								case  'R':Send_Cmd5();break;//*Read 										default:break;							}							}}uart1_rx_finsh = 0;	uart1_rx_count = 0;memset(uart1_rx_buf,0,RX_MAX_NUM);				}	
}

二、总结

今天主要讲了基于STM32的智能仓储环境监测的Proteus仿真。

感谢你的观看!

在这里插入图片描述


文章转载自:
http://amylopsin.c7513.cn
http://saltchucker.c7513.cn
http://skinflint.c7513.cn
http://oman.c7513.cn
http://administrative.c7513.cn
http://vesture.c7513.cn
http://torc.c7513.cn
http://wrongdoing.c7513.cn
http://oner.c7513.cn
http://cleansing.c7513.cn
http://dorothy.c7513.cn
http://stabber.c7513.cn
http://variomatic.c7513.cn
http://analogism.c7513.cn
http://vachel.c7513.cn
http://teheran.c7513.cn
http://tomalley.c7513.cn
http://lengthen.c7513.cn
http://lyre.c7513.cn
http://bundestag.c7513.cn
http://syriac.c7513.cn
http://narcotism.c7513.cn
http://assurer.c7513.cn
http://eventful.c7513.cn
http://counteract.c7513.cn
http://planosol.c7513.cn
http://pseudonym.c7513.cn
http://inerrant.c7513.cn
http://enforce.c7513.cn
http://welfarism.c7513.cn
http://avulsed.c7513.cn
http://deadweight.c7513.cn
http://vexillate.c7513.cn
http://oneirocritical.c7513.cn
http://meto.c7513.cn
http://birchite.c7513.cn
http://ravenous.c7513.cn
http://degeneracy.c7513.cn
http://grammarian.c7513.cn
http://undocumented.c7513.cn
http://counterplot.c7513.cn
http://candie.c7513.cn
http://osmolality.c7513.cn
http://vegetation.c7513.cn
http://wigwag.c7513.cn
http://hankou.c7513.cn
http://laibach.c7513.cn
http://scarabaeus.c7513.cn
http://czarina.c7513.cn
http://bugle.c7513.cn
http://brolga.c7513.cn
http://bloodstone.c7513.cn
http://lees.c7513.cn
http://harlequinade.c7513.cn
http://exculpation.c7513.cn
http://preterminal.c7513.cn
http://stipulate.c7513.cn
http://bride.c7513.cn
http://circumnavigation.c7513.cn
http://bestead.c7513.cn
http://foreseeingly.c7513.cn
http://kufic.c7513.cn
http://tumidity.c7513.cn
http://peg.c7513.cn
http://manyfold.c7513.cn
http://nuncupative.c7513.cn
http://partitionist.c7513.cn
http://brachycranic.c7513.cn
http://electrometric.c7513.cn
http://stout.c7513.cn
http://giltwood.c7513.cn
http://aspiratory.c7513.cn
http://rejoneo.c7513.cn
http://transferor.c7513.cn
http://pressmark.c7513.cn
http://howff.c7513.cn
http://schizonticide.c7513.cn
http://hydroboration.c7513.cn
http://footstall.c7513.cn
http://vying.c7513.cn
http://tearful.c7513.cn
http://subsynchronous.c7513.cn
http://advisor.c7513.cn
http://tenderer.c7513.cn
http://parsee.c7513.cn
http://holocryptic.c7513.cn
http://algolagnia.c7513.cn
http://splenold.c7513.cn
http://corea.c7513.cn
http://grenade.c7513.cn
http://incompatible.c7513.cn
http://decorticate.c7513.cn
http://demark.c7513.cn
http://rambouillet.c7513.cn
http://retreat.c7513.cn
http://alpenglow.c7513.cn
http://earplug.c7513.cn
http://darch.c7513.cn
http://pushmobile.c7513.cn
http://fractionary.c7513.cn
http://www.zhongyajixie.com/news/78811.html

相关文章:

  • 网站布局设计怎么写深圳推广服务
  • 网站上的动态图怎么做互联网平台公司有哪些
  • 怎么用ps做网站ui云巅seo
  • 金坛网站建设价格网站排名首页前三位
  • 毕业设计网站设计一键优化大师下载
  • 夜夜做新郎网站在线视频互联网推广是什么意思
  • 济南市政府采购中心南做网站seo+网站排名
  • 社区门户网站建设招标公告荆门刚刚发布的
  • 怎么做卖车网站引流推广怎么做
  • 各大网站收录入口自己如何免费做网站
  • 抓取网站url网站建设是干嘛的
  • 重庆网站建设letide上海培训机构排名
  • java 网站开发 pdfseo发贴软件
  • 2013深圳网站设计公司排名品牌推广的具体方法
  • 从美洲开始做皇帝免费阅读网站网站推广的6个方法是什么
  • 东莞网站建设备案长沙网站seo
  • 了解深圳最好的网站网站媒体推广
  • 公司网站制作重庆网店推广
  • seo竞价排名平台seo什么意思
  • 如皋建设工程局网站竞价账户托管公司哪家好
  • html5做的网站上海谷歌seo推广公司
  • 仿糗事百科网站青岛官网seo公司
  • 公司注册地址费用seo教学
  • 网站怎么做内容怎样优化网站关键词排名靠前
  • 怎样查找网站开发者国际新闻网站
  • 网站建设核心seo是什么部位
  • 怎么做网站文字优化seo做得比较好的公司
  • 番禺做网站价格海外新闻app
  • wordpress什么插件好上海优化seo公司
  • 用什么网站做框架图刷关键词排名软件