50-基于stm32单片机温湿度火焰人数检测蓝牙上传数据源程序、原理图、元件清单实物制作

本文介绍了使用STM32单片机配合DHT11、火焰和红外传感器进行环境监测,通过OLED显示实时数据并利用蓝牙模块将数据上传至手机APP的项目。程序详细展示了数据采集、处理和通信过程。

功能介绍:采用stm32单片机作为主控CPU,采用DHT11传感器采集温湿度,采用火焰传感器采集当时是否有火灾,采用红外接触传感器采集当前人数多少,通过两个红外接触传感器,一个安放入口,感应到有人经过进行人数+1,一个安放出口,感应到有人经过进行人数-1;OLED显示相关数据,并且通过蓝牙模块将数据上传到手机APP;文末有资料分享:

50-基于stm32单片机温湿度火焰人数检测蓝牙上传数据(程序+原理图+元件清单全套资料)

 程序打开办法:特别注意:下载资料包以后一定要先解压!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。 

int main(void)
{
	unsigned char *dataPtr = NULL;
	unsigned short timeCount = 30;	//发送间隔变量
uint8_t status;
 int num=0;

	Hardware_Init();				//初始化外围硬件
			OLED_Init();
		OLED_ColorTurn(0);
		OLED_DisplayTurn(0);	
	OLED_ShowString(0,0,"FIRE:",16); 	
	OLED_ShowString(0,16," Num:",16); 	
	OLED_ShowString(0,48,"TEMP:",16);   OLED_ShowString(70,48,"C",16); OLED_ShowString(120,48,"%",16);
	  
			OLED_Refresh();
	KEY_Init();
	//	LED_Init();
	//LED=1;

	while(1)
	{	


		DHT11_Read_TempAndHumidity ( & DHT11_Data );//读取温湿度
		OLED_ShowNum(40,48,DHT11_Data .temp_int,2,16);//显示温度整数
		 OLED_ShowString(56,48,".",16);
		OLED_ShowNum(60,48,DHT11_Data .temp_deci,1,16);//显示温度小数
		OLED_ShowNum(100,48,DHT11_Data .humi_int,2,16);//显示湿度
	if(KEY2==1) 
	{
		OLED_ShowString(50,0,"Normal ",16); 
			printf("FIRE: Normal \r\n"); //蓝牙模块发送火焰状态
	}
  else        
	{
		OLED_ShowString(50,0,"Warning",16); 
		printf("FIRE: Warning \r\n"); //蓝牙模块发送火焰状态
	}
if(KEY0==0)   //人数+
{
	while(KEY0!=1);
	num++;
	if(num>999) num=999;
}
if(KEY1==0)   //人数-
{
	while(KEY1!=1);
	num--;
	if(num<0) num=0;
}
		OLED_ShowNum(50,16,num,3,16); //显示人数
		OLED_Refresh();


	printf("NUM:%d \r\n",num); //蓝牙模块发送人数
	delay_ms(100);
	printf("TEMP:%d",DHT11_Data .temp_int);	 //发送温度整数
	printf(".%d C\r\n",DHT11_Data .temp_deci);//发送温度小数
	delay_ms(100);
	printf("HUMI:%d \r\n",DHT11_Data .humi_int);	//发送湿度
	delay_ms(100);
	}
}

百度云盘资料分享链接

基于51单片机蓝牙模块数据传输设计〔修订版〕 摘要 本设计以STC89C52单片机为控制核心。经蓝牙模块实现无线连接,发送数据和接收数据 ,通过LCD1602显示接收的数据和编辑发送的数据,两个单片机通过内部程序实现实时接 收、发送和显示,从而完成相关要求。 1方案设定 1-1电路设计框图 无线信号 串口串口 图4-1 注:由于STC89C52芯片串口寄存器的容量限制,每次收发只能一个字节。 1-2功能叙述 本作品通过HC- 05主从机一体蓝牙模块实现与带蓝牙的设备先通过OPP蓝牙协议来实现配对连接,实现连 接配对可通过电路板上的数字按键来实现输入,经STC89C52单片机处理后通过HC- 05蓝牙无线传送到另一方单片机上,通过STC89C52单片机处理后可在LCD1602液晶显示所 接受到的数据! 1-3使用说明 在接通电源前,先把蓝牙模块插到单片机上,紧接着启动电源。观察蓝牙模块的指示灯 ,等待两个单片机之间的连接匹配,待指示灯出现双闪后就匹配连接成功。接下来可根 据自己想要发送数据单片机的按键区域〔0~9〕按下,按下后显示屏便出现你所要发送 的数据,确认无误之后就按下单片机上的发送按钮即马上发送到另一方单片机上〔两个 单片机可以互相发送〕! 2系统硬件设计 2-1主控制模块 图6-1 2-2蓝牙收发模块 图8-1 2-3液晶显示模块 图9-1 LCD1602资料: 1602采用标准的16脚接口,其中: 第1脚:GND为电源地 第2脚:VCC接5V电源正极 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高 〔对比度过高时会 产生"鬼影〞,使用时可以通过一个10K的电位器调整对比度〕。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端,高电平〔1〕时读取信息,负跳 变时执行指令。 第7~14脚:D0~D7为8位双向数据端。第15~16脚:空脚或背灯电 源。 15脚背光正极。 16脚背光负极。 特性: 3.3V或5V工作电压,对比度可调内含复位电路提供各种控制命令,如:清屏、字符闪烁 、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM 内建有192个5X7点阵的字型的字符发生器CGROM8个可由用户自定义的5X7的字符发生器C GRAM特征应用微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗 应用系统中。操作控制 注:关于E=H脉冲——开始时初始化E为0,然后置E为1。 2-4矩阵键盘模块 图10-1 注:键盘输入部分使用矩阵键盘的设计原理。 3系统软件设计 3-1源程序 #include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit rs=P2^6; sbit en=P2^7; sbit rw=P2^5; sbit Key=P2^4; uchar code table_Receive[]={"Receive:"}; uchar code table_Send[]={" Send:"}; uchar code table[]={'0','1','2','3','4','5','6','7','8','9'}; uchar num,temp,temp2,a,flag,add; uchar n,m; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void write_lcd_com(uchar com){ rs=0; P0=com; delay(5); en=1; delay(5); en=0; } void write_data(uchar date){ rs=1; P0=date; delay(5); en=(1); delay(5); en=0; } void lcdinit(){ en=0; write_lcd_com(0x38); write_lcd_com(0x0c); write_lcd_com(0x06); write_lcd_com(0x01); for(m=0;m<8;m++) { write_data(table_Receive[m]); delay(1); } write_lcd_com(0x80+0x40); for(n=0;n<8;n++) { write_data(table_Send[n]); delay(1); } } void keyscan() { P1=0xfe; temp=P1; temp
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值