单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1612|回复: 10
打印 上一主题 下一主题
收起左侧

stm32蓝牙通信adc采集mq2烟雾模块 串口采集温湿度传感器 智能家居程序

  [复制链接]
跳转到指定楼层
楼主
此程序是通过adc通道采集烟雾值 串口采集温湿度
并根据所得到值是否符合阈值条件来决定是否使能风扇和加湿器
通过蓝牙hc05与上位机可完成通信

主程序较为简单 如下
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "lcd.h"
  6. #include "usart3.h"         
  7. #include "dht11.h"         
  8. #include "adc.h"         
  9. #include "beep.h"         
  10. #include "hc05.h"



  11. #include <stm32f10x.h>



  12. /************************************************
  13. ALIENTEK精英STM32开发板实验29
  14. DHT11数字温湿度传感器 实验     
  15. ************************************************/

  16. int main(void)
  17. {         
  18.         u8 t=0;                           
  19.         u8 temperature;              
  20.         u8 humidity;              
  21.   u8 adcx;
  22.          
  23.         delay_init();                     //延时函数初始化         
  24.   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
  25. usart3_init(9600);         //串口初始化为115200
  26.         LED_Init();                                  //初始化与LED连接的硬件接口
  27.         LCD_Init();                                   //初始化LCD  
  28.         Adc_Init();
  29.         BEEP_Init();
  30.         HC05_Init();



  31.         while(1)
  32.         {                        
  33.                 if(t%10==0)                        //每100ms读取一次
  34.                 {                                                                          
  35.                         DHT11_Read_Data(&temperature,&humidity);        //读取温湿度值      
  36.                         adcx=Get_Adc_Average(ADC_Channel_1,10);  //读取烟雾值

  37.                          u3_printf("温度=%d",temperature );
  38.                
  39.                          u3_printf("湿度=%d",humidity);
  40.                
  41.                          u3_printf("烟雾值=%d",adcx);
  42.                 BEEP=0;
  43.                 delay_ms(500);
  44.                 if(adcx>1170) BEEP=1;
  45.                 delay_ms(500);
  46.                         if(temperature>28||temperature<18||adcx>500);
  47.                         GPIO_SetBits(GPIOB,GPIO_Pin_5);           //LED0对应引脚GPIOB.5拉高,灭  等同LED0=1;
  48.                        
  49.                         if(humidity<20);
  50.                         {
  51.                                 GPIO_SetBits(GPIOE,GPIO_Pin_5); //LED1对应引脚GPIOE.5拉低,亮 等同LED1=0
  52.                         }
  53.                         if(humidity>40)
  54.                                 {
  55.                         GPIO_ResetBits(GPIOE,GPIO_Pin_5);
  56.                                 }
  57.                 }                                 
  58.                  delay_ms(500);
  59.                 t++;
  60.                
  61.                 if(t==20)
  62.                 {
  63.                         t=0;
  64.                         LED0=!LED0;
  65.                 }
  66.         }
  67. }



复制代码

全部资料51hei下载地址:
智能家居传感器及蓝牙程序.rar (351.63 KB, 下载次数: 121)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 转播转播 分享分享 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
aa1 发表于 2018-4-20 17:33 | 只看该作者
积分不够不能下载很无奈 最近正好需要做这个
回复

使用道具 举报

板凳
 楼主| Brokpet 发表于 2018-4-21 19:38 | 只看该作者
aa1 发表于 2018-4-20 17:33
积分不够不能下载很无奈 最近正好需要做这个

签签到啥的应该就可以了吧 哈哈我一开始是这么得了几分
回复

使用道具 举报

地板
再也不要那样活 发表于 2018-4-22 16:35 | 只看该作者
请问,你用的是STM32自带的ADC嘛?
回复

使用道具 举报

5#
可爱的洪水猛兽 发表于 2018-4-23 22:36 | 只看该作者
感觉你这个有点意思
回复

使用道具 举报

6#
CLA 发表于 2018-5-8 08:55 | 只看该作者
我想问下,在 if(adcx>1170) BEEP=1;这个1170是怎么得出来的?
回复

使用道具 举报

7#
小白meinv 发表于 2018-5-23 20:15 | 只看该作者
请问这个有APP的代码吗?
回复

使用道具 举报

8#
xzq21131401 发表于 2018-5-31 16:13 | 只看该作者
积分不够不能下载很无奈 最近正好需要做这个
回复

使用道具 举报

9#
天下1314 发表于 2018-6-13 10:13 | 只看该作者
不错资料
回复

使用道具 举报

10#
derMINGW 发表于 2018-12-20 22:10 | 只看该作者
积分不够
回复

使用道具 举报

11#
XuW 发表于 2019-1-10 15:29 | 只看该作者
有仿真图嘛?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛单片机. 联系QQ:125739409;技术交流QQ群582644647

Powered by 单片机教程网

快速回复 返回顶部 返回列表