这是最近做的一个基于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);
- }
-
- }
- }
复制代码
|