5个AM2302温度传感器采集温湿度数据,通过CH376保存在U盘,保存时间间隔可调
串口发送温湿度数据,通过esp8266上报到阿里云服务器。
制作出来的实物图如下:
单片机源程序如下:
- #include"config.h"
- #include"12864.h"
- #include"iic.h"
- #include"main.h"
- #include"time.h"
- #include"eeprom.h"
- #include"ds3231.h"
- #include"key.h"
- #include"uart1.h"
- #include"gui.h"
- #include"humiture.h"
- #include"clock.h"
- #include"CH376INC.H"
- #include"ch376.h"
- #include"hal.h"
- #include"uart2.h"
- #include"alarm.h"
- static void InitSTC8A(void)
- {
- P0M1 = 0x00;
- P0M0 = 0x00;
- P1M1 = 0x00;
- P1M0 = 0x00;
- P2M1 = 0x00;
- P2M0 = 0x00;
- P3M1 = 0x00;
- P3M0 = 0x00;
- P4M1 = 0x00;
- P4M0 = 0x00;
- P5M1 = 0x00;
- P5M0 = 0x00;
- P6M1 = 0x00;
- P6M0 = 0x00;
- P7M1 = 0x00;
- P7M0 = 0x00;
- }
- void mStopIfError( unsigned char iError )
- {
- if ( iError == USB_INT_SUCCESS ) return; /* 操作成功 */
- printf( "Error: %02X\n", (unsigned short)iError ); /* 显示错误 */
- // while ( 1 ) {
- /* LED_OUT_ACT( );*/ /* LED闪烁 */
- time_DelayMs( 200 );
- /* LED_OUT_INACT( );*/
- // time_DelayMs( 200 );
- // }
- }
- void main()
- {
- unsigned char s;
- // unsigned char writebuf[1]={0xAA};
- InitSTC8A();
- Time0_Init();
- uart1_time1_Initialization();
- UartInit();
- time_DelayMs(5000);
- InitLcd12864();
- InitIIC();
- InitDS3231();
- key_Initialization();
- gui_DialogDesktopOpen();
- init_ch376_interrecord_gap();
- init_alarm_state();
- s = mInitCH376Host( ); /* 初始化CH376 */
- mStopIfError(s);
- printf("hello word\n");
- // EepromWritePage(0x600,writebuf,1);
- // K5= 0;
- while(1)
- {
- clock_task();
- key_Task();
- humiture_task();
- gui_Task();
- ch376_task();
- humiture_tx_mqtt_task();
- alarm_task();
- // printf("%d\r\n",under_alarm_humiture.temperature_ch01);
- // printf("%d\r\n",overtop_alarm_humiture.temperature_ch01);
- // printf("%d\r\n",under_alarm_humiture.temperature_ch02);
- // printf("%d\r\n",overtop_alarm_humiture.temperature_ch02);
- // printf("%d\r\n",under_alarm_humiture.temperature_ch03);
- // printf("%d\r\n",overtop_alarm_humiture.temperature_ch03);
- // printf("%d\r\n",under_alarm_humiture.temperature_ch04);
- // printf("%d\r\n",overtop_alarm_humiture.temperature_ch04);
- // printf("%d\r\n",under_alarm_humiture.temperature_ch05);
- // printf("%d\r\n",overtop_alarm_humiture.temperature_ch05);
-
- /*
-
- GetRealTmp(tmp);
-
- buf[0] = (tmp[0]/10)+'0';
- buf[1] = (tmp[0]%10)+'0';
- buf[2] = '.';
- buf[3] = (tmp[1]/10+'0');
- buf[4] = (tmp[1]%10)+'0';
- buf[5]='\0';
- LcdShowStr(0,3,buf);
-
- sys_ticks = time_GetTicks();
- sys_ticks /=1000;
- buf[0] = (sys_ticks/1000000%10)+'0';
- buf[1] = (sys_ticks/100000%10)+'0';
- buf[2] = (sys_ticks/10000%10)+'0';
- buf[3] = (sys_ticks/1000%10)+'0';
- buf[4] = (sys_ticks/100%10)+'0';
- buf[5] = (sys_ticks/10%10)+'0';
- buf[6] = (sys_ticks%10)+'0';
- buf[7] = '\0';
- LcdShowStr(1,2,buf);
- old_sys_ticks=time_GetTicks();
- flag++;
- */
- }
- }
复制代码
全部资料51hei下载地址:
温度检测5路.7z
(10.53 MB, 下载次数: 72)
|