找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STM32F103C8T6户外环境监测系统程序 运用了DHT11模块,GY-30数字光强度模块

[复制链接]
跳转到指定楼层
楼主
基于STM32F103C8T6最小开发板设计的户外环境监测系统(运用了DHT11模块,GY-30数字光照模块,低电平触发蜂鸣器,OLED显示)

实践成果展示:


单片机源程序如下:
  1. #include "stm32f10x.h"
  2. #include "usart.h"
  3. #include "delay.h"
  4. #include "DTH117.h"
  5. #include "sys.h"
  6. #include "bh1750.h"
  7. #include "oled.h"
  8. #include "bmp.h"
  9. #include "Beep.h"

  10. #include <stdarg.h>
  11. #include <string.h>
  12. #include <stdio.h>



  13. /*
  14. *读取温湿度传感器DHT11的值,并用串口打印出来
  15. */

  16. void clock_init(void);

  17. u8 temp = 0,humi = 0,Light=0;


  18. /**************************************************************************
  19. 函数名:int main(void)
  20. 参数说明:无
  21. 返回值:无
  22. 函数作用:主函数
  23. ***************************************************************************/
  24. int main(void)
  25. {        
  26.          
  27.          NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  28.          delay_init();
  29.    DHT11_Init();         
  30.    clock_init();
  31.          bh1750_Init();
  32.          OLED_Init();
  33.          Beep_Init();
  34.          OLED_Clear();
  35.          Usart1_Init(115200);                //初始化串口
  36.          Usart2_Init(115200);
  37.          //UsartPrintf(USART_DEBUG,"HardWare init OK\r\n");
  38.         
  39.          
  40.          
  41.          
  42.          while(1)
  43.          {        
  44.                         //if (timeCount % 40==0){
  45.                    bh1750_ReadOneTime();
  46.                          bh1750_ReadContinuous1();
  47.                          DHT11_Read_Data(&temp,&humi);
  48.                    Light=getValue();
  49.             
  50.              UsartPrintf(USART_DEBUG,"\r\n 温度:%d,湿度:%d,光照:%d",temp,humi,Light);
  51.                  OLED_Clear();        
  52.         OLED_ShowCHinese(0,0,0);
  53.         OLED_ShowCHinese(15,0,1);
  54.         OLED_ShowCHinese(30,0,2);
  55.         OLED_ShowCHinese(45,0,3);
  56.         OLED_ShowCHinese(60,0,4);
  57.         OLED_ShowCHinese(75,0,5);
  58.         OLED_ShowCHinese(90,0,6);
  59.         OLED_ShowCHinese(105,0,7);
  60.         OLED_ShowCHinese(0,2,8);
  61.         OLED_ShowCHinese(17,2,9);
  62.                     OLED_Show(temp,humi,Light);//屏幕显示成果
  63.                  delay_ms(50);//建议不要低于这个数值
  64.                  Beep_Warn(temp,humi);
  65.                 //}        
  66.                 delay_ms(10);
  67.          }
  68.          
  69. }
  70. // }

  71. /**************************************************************************
  72. 函数名:void clock_init(void)
  73. 参数说明:无
  74. 返回值:无
  75. 函数作用:开启高速外部时钟,
  76. ADCCLK设置为12MHZ,        SYSCLK设置为72Mhz,PCLK1设置为36MHZ,PKLC2设置为72mhz
  77. ***************************************************************************/
  78. void clock_init(void)
  79. {
  80.         RCC->CR = 0x1010000;
  81.         RCC->CFGR = 0x1DC402;
  82. }
复制代码

Keil代码下载:
代码.7z (208.34 KB, 下载次数: 154)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:968147 发表于 2021-9-30 20:42 | 只看该作者
GY30 接线是怎样的呢
回复

使用道具 举报

板凳
ID:948479 发表于 2023-2-4 23:58 来自手机 | 只看该作者
代码有错误
回复

使用道具 举报

地板
ID:1022021 发表于 2023-2-6 14:35 | 只看该作者
可以,很强
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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