找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2264|回复: 2
收起左侧

基于STM32的温湿度测量 含源码

[复制链接]
ID:334506 发表于 2018-5-20 23:29 | 显示全部楼层 |阅读模式
      这是最近做的一个基于STM32的温湿度测量系统,以及简单的用光敏电阻模拟光照强度,当光强超过一定值时,会触发LED灯闪烁,并且会通过SIM900A模块发送短信给手机。还正在完善中,希望大家多多指教。
  1. int main(void)
  2. {
  3.   /* led ¶Ë¿úÅäÖà */
  4.         LED_GPIO_Config();
  5.        
  6.         /* 3õê¼»ˉÏμí3¶¨ê±Æ÷ */
  7.     SysTick_Init();
  8.        
  9. //        uint8_t newmessadd=0,IsRead=0;
  10. //        char namenum[20*4]={0},str[512]={0},gbkstr[256]={0},namegbk[20]={0};
  11.    
  12.   /* ÅäÖÃUSART1 */
  13.     USART1_Config();

  14.     /* ÅäÖÃUSART2 */
  15.     USART2_Config();
  16.    
  17.    
  18.        
  19.           LCD_Init();       
  20.           LCD_Clear(0, 0, 240, 320, BACKGROUND);
  21.           LCD_DispStr(10, 90, (uint8_t *)"environmental test based on STM32", WHITE);
  22.           LCD_DispStr(10, 110, (uint8_t *)"humidity:", WHITE);
  23.           LCD_DispStr(80, 110, (uint8_t *)"RH%", WHITE);
  24.           LCD_DispStr(10, 130, (uint8_t *)"temperature:", WHITE);
  25.           LCD_DispStr(100, 130, (uint8_t *)"C", WHITE);
  26.           LCD_DispStr(10, 150, (uint8_t *)"illumination intensity:", WHITE);
  27.           LCD_DispStr(170, 150, (uint8_t *)"lux", WHITE);
  28.    
  29.                 /*3õê¼»ˉDTT11μÄòy½Å*/
  30.           DHT11_GPIO_Config();        
  31.                
  32.                 ADC1_Init();
  33.                 /* TIM2 ¶¨ê±ÅäÖà */       
  34.     TIM2_Configuration();
  35.                 /*¶¨ê±Æ÷μÄÖD¶ÏóÅÏ輶 */
  36.           TIM2_NVIC_Configuration();
  37.                 /* TIM2 ÖØD¿aê±Ö󣬿aê¼¼Æê± */
  38.           RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);
  39.     printf("\r\nò°»eWF-SIM900AÄ£¿é·¢Ëí¶ìDÅày3ì\r\n");
  40.    
  41.     //¼ì2aÄ£¿éÏìó|êÇ·ñÕy3£
  42.     while(sim900a_cmd("AT\r","OK",1000) != SIM900A_TRUE)
  43.     {
  44.       printf("\r\nÄ£¿éÏìó|2aêÔ2»Õy3££¡£¡\r\n");
  45.       printf("\r\nèôÄ£¿éÏìó|2aêÔò»Ö±2»Õy3££¬Çë¼ì2éÄ£¿éμÄᬽó»òêÇ·ñòÑ¿aÆôμçÔ′¿a1Ø\r\n");
  46.     }
  47.    
  48.     printf("\r\ní¨1yáËÄ£¿éÏìó|2aêÔ£¬5Ãëoó¿aê¼·¢Ëí¶ìDÅ2aêÔ... \r\n");
  49.     while(1)
  50. {
  51. //        LCD_DisNum(10,170,time,WHITE);
  52.         if( Read_DHT11(&DHT11_Data)==SUCCESS)
  53.         {
  54.         /*        LCD_DispStr(10, 110, (uint8_t *)"humidity:", WHITE);
  55.                 LCD_DispStr(80, 110, (uint8_t *)"RH%", WHITE);*/
  56.                 LCD_DisNum(64, 110, DHT11_Data.humi_int, WHITE);
  57.                
  58.         /*LCD_DispStr(10, 130, (uint8_t *)"temperature:", WHITE);
  59.                 LCD_DispStr(100, 130, (uint8_t *)"C", WHITE);*/
  60.                 LCD_DisNum(82, 130, DHT11_Data.temp_int, WHITE);
  61.                
  62.                 ADC_ConvertedValueLocal =(float) ADC_ConvertedValue/4096*5; // ¶áè¡×a»»μÄADÖμ
  63.                 illumination=ADC_ConvertedValueLocal*100;
  64.         /*LCD_DispStr(10, 150, (uint8_t *)"illumination intensity:", WHITE);
  65.                 LCD_DispStr(170, 150, (uint8_t *)"lux", WHITE);*/
  66.                 LCD_DisNum(150, 150, illumination, WHITE);
  67.                 Delay1(0xffffee);                 
  68.                  if ( time >= 2000 )
  69.     {
  70.       time = 0;  
  71.        if(illumination>200)                       
  72.                 {
  73.                         sim900a_sms((char *)num,"hellow");
  74.                         for(i=1;i<=4;i++)
  75.                 {LED1( ON );                          // áá
  76.                 Delay1(0x0FFFFF);
  77.                 LED1( OFF );                  // Ãe

  78.                 LED2( ON );                          // áá
  79.                 Delay1(0x0FFFFF);
  80.                 LED2( OFF );                  // Ãe

  81.                 LED3( ON );                          // áá
  82.                 Delay1(0x0FFFFF);
  83.                 LED3( OFF );                  // Ãe         ;
  84.     }         
  85.         }
  86.         }
  87.         else
  88.         {
  89.                 LCD_DispStr(10, 110, (uint8_t *)"Read DHT11 ERROR", WHITE);
  90.         }
  91.        
  92. }

  93. }
复制代码


评分

参与人数 1黑币 +5 收起 理由
konacyan + 5 赞一个!

查看全部评分

回复

使用道具 举报

ID:317074 发表于 2018-6-2 11:37 | 显示全部楼层
好帖,深入学习。。。
回复

使用道具 举报

ID:617682 发表于 2019-12-4 15:35 | 显示全部楼层
谢谢大佬 非常感谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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