此程序是通过adc通道采集烟雾值 串口采集温湿度
并根据所得到值是否符合阈值条件来决定是否使能风扇和加湿器
通过蓝牙hc05与上位机可完成通信
主程序较为简单 如下
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "lcd.h"
- #include "usart3.h"
- #include "dht11.h"
- #include "adc.h"
- #include "beep.h"
- #include "hc05.h"
- #include <stm32f10x.h>
- /************************************************
- ALIENTEK精英STM32开发板实验29
- DHT11数字温湿度传感器 实验
- ************************************************/
- int main(void)
- {
- u8 t=0;
- u8 temperature;
- u8 humidity;
- u8 adcx;
-
- delay_init(); //延时函数初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
- usart3_init(9600); //串口初始化为115200
- LED_Init(); //初始化与LED连接的硬件接口
- LCD_Init(); //初始化LCD
- Adc_Init();
- BEEP_Init();
- HC05_Init();
- while(1)
- {
- if(t%10==0) //每100ms读取一次
- {
- DHT11_Read_Data(&temperature,&humidity); //读取温湿度值
- adcx=Get_Adc_Average(ADC_Channel_1,10); //读取烟雾值
- u3_printf("温度=%d",temperature );
-
- u3_printf("湿度=%d",humidity);
-
- u3_printf("烟雾值=%d",adcx);
- BEEP=0;
- delay_ms(500);
- if(adcx>1170) BEEP=1;
- delay_ms(500);
- if(temperature>28||temperature<18||adcx>500);
- GPIO_SetBits(GPIOB,GPIO_Pin_5); //LED0对应引脚GPIOB.5拉高,灭 等同LED0=1;
-
- if(humidity<20);
- {
- GPIO_SetBits(GPIOE,GPIO_Pin_5); //LED1对应引脚GPIOE.5拉低,亮 等同LED1=0
- }
- if(humidity>40)
- {
- GPIO_ResetBits(GPIOE,GPIO_Pin_5);
- }
- }
- delay_ms(500);
- t++;
-
- if(t==20)
- {
- t=0;
- LED0=!LED0;
- }
- }
- }
复制代码
全部资料51hei下载地址:
智能家居传感器及蓝牙程序.rar
(351.63 KB, 下载次数: 585)
|