标题:
基于STM32的温湿度测量 含源码
[打印本页]
作者:
945436744
时间:
2018-5-20 23:29
标题:
基于STM32的温湿度测量 含源码
这是最近做的一个基于STM32的温湿度测量系统,以及简单的用光敏电阻模拟光照强度,当光强超过一定值时,会触发LED灯闪烁,并且会通过SIM900A模块发送短信给手机。还正在完善中,希望大家多多指教。
int main(void)
{
/* led ¶Ë¿úÅäÖà */
LED_GPIO_Config();
/* 3õê¼»ˉÏμí3¶¨ê±Æ÷ */
SysTick_Init();
// uint8_t newmessadd=0,IsRead=0;
// char namenum[20*4]={0},str[512]={0},gbkstr[256]={0},namegbk[20]={0};
/* ÅäÖÃUSART1 */
USART1_Config();
/* ÅäÖÃUSART2 */
USART2_Config();
LCD_Init();
LCD_Clear(0, 0, 240, 320, BACKGROUND);
LCD_DispStr(10, 90, (uint8_t *)"environmental test based on STM32", WHITE);
LCD_DispStr(10, 110, (uint8_t *)"humidity:", WHITE);
LCD_DispStr(80, 110, (uint8_t *)"RH%", WHITE);
LCD_DispStr(10, 130, (uint8_t *)"temperature:", WHITE);
LCD_DispStr(100, 130, (uint8_t *)"C", WHITE);
LCD_DispStr(10, 150, (uint8_t *)"illumination intensity:", WHITE);
LCD_DispStr(170, 150, (uint8_t *)"lux", WHITE);
/*3õê¼»ˉDTT11μÄòy½Å*/
DHT11_GPIO_Config();
ADC1_Init();
/* TIM2 ¶¨ê±ÅäÖà */
TIM2_Configuration();
/*¶¨ê±Æ÷μÄÖD¶ÏóÅÏè¼¶ */
TIM2_NVIC_Configuration();
/* TIM2 ÖØD¿aê±Ö󣬿aê¼¼Æê± */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 , ENABLE);
printf("\r\nò°»eWF-SIM900AÄ£¿é·¢Ëí¶ìDÅày3ì\r\n");
//¼ì2aÄ£¿éÏìó|êÇ·ñÕy3£
while(sim900a_cmd("AT\r","OK",1000) != SIM900A_TRUE)
{
printf("\r\nÄ£¿éÏìó|2aêÔ2»Õy3££¡£¡\r\n");
printf("\r\nèôÄ£¿éÏìó|2aêÔò»Ö±2»Õy3££¬Çë¼ì2éÄ£¿éμÄᬽó»òêÇ·ñòÑ¿aÆôμçÔ′¿a1Ø\r\n");
}
printf("\r\ní¨1yáËÄ£¿éÏìó|2aêÔ£¬5Ãëoó¿aê¼·¢Ëí¶ìDÅ2aêÔ... \r\n");
while(1)
{
// LCD_DisNum(10,170,time,WHITE);
if( Read_DHT11(&DHT11_Data)==SUCCESS)
{
/* LCD_DispStr(10, 110, (uint8_t *)"humidity:", WHITE);
LCD_DispStr(80, 110, (uint8_t *)"RH%", WHITE);*/
LCD_DisNum(64, 110, DHT11_Data.humi_int, WHITE);
/*LCD_DispStr(10, 130, (uint8_t *)"temperature:", WHITE);
LCD_DispStr(100, 130, (uint8_t *)"C", WHITE);*/
LCD_DisNum(82, 130, DHT11_Data.temp_int, WHITE);
ADC_ConvertedValueLocal =(float) ADC_ConvertedValue/4096*5; // ¶áè¡×a»»μÄADÖμ
illumination=ADC_ConvertedValueLocal*100;
/*LCD_DispStr(10, 150, (uint8_t *)"illumination intensity:", WHITE);
LCD_DispStr(170, 150, (uint8_t *)"lux", WHITE);*/
LCD_DisNum(150, 150, illumination, WHITE);
Delay1(0xffffee);
if ( time >= 2000 )
{
time = 0;
if(illumination>200)
{
sim900a_sms((char *)num,"hellow");
for(i=1;i<=4;i++)
{LED1( ON ); // áá
Delay1(0x0FFFFF);
LED1( OFF ); // Ãe
LED2( ON ); // áá
Delay1(0x0FFFFF);
LED2( OFF ); // Ãe
LED3( ON ); // áá
Delay1(0x0FFFFF);
LED3( OFF ); // Ãe ;
}
}
}
else
{
LCD_DispStr(10, 110, (uint8_t *)"Read DHT11 ERROR", WHITE);
}
}
}
复制代码
作者:
碧海涛声
时间:
2018-6-2 11:37
好帖,深入学习。。。
作者:
summer@tao
时间:
2019-12-4 15:35
谢谢大佬 非常感谢
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1