找回密码
 立即注册

QQ登录

只需一步,快速开始

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

5路AM2302 DS3231 CH376 ESP8266 24C16单片机程序

[复制链接]
跳转到指定楼层
楼主
5个AM2302温度传感器采集温湿度数据,通过CH376保存在U盘,保存时间间隔可调
串口发送温湿度数据,通过esp8266上报到阿里云服务器。

制作出来的实物图如下:


单片机源程序如下:
  1. #include"config.h"
  2. #include"12864.h"
  3. #include"iic.h"
  4. #include"main.h"
  5. #include"time.h"
  6. #include"eeprom.h"
  7. #include"ds3231.h"
  8. #include"key.h"
  9. #include"uart1.h"
  10. #include"gui.h"
  11. #include"humiture.h"
  12. #include"clock.h"
  13. #include"CH376INC.H"
  14. #include"ch376.h"
  15. #include"hal.h"
  16. #include"uart2.h"
  17. #include"alarm.h"
  18. static void InitSTC8A(void)
  19. {
  20.         P0M1 = 0x00;
  21.         P0M0 = 0x00;
  22.         P1M1 = 0x00;
  23.         P1M0 = 0x00;
  24.         P2M1 = 0x00;
  25.         P2M0 = 0x00;
  26.         P3M1 = 0x00;
  27.         P3M0 = 0x00;
  28.         P4M1 = 0x00;
  29.         P4M0 = 0x00;
  30.         P5M1 = 0x00;
  31.         P5M0 = 0x00;
  32.         P6M1 = 0x00;
  33.         P6M0 = 0x00;
  34.         P7M1 = 0x00;
  35.         P7M0 = 0x00;
  36. }


  37. void        mStopIfError( unsigned char iError )
  38. {
  39.         if ( iError == USB_INT_SUCCESS ) return;  /* 操作成功 */
  40.         printf( "Error: %02X\n", (unsigned short)iError );  /* 显示错误 */
  41. //        while ( 1 ) {
  42. /*                LED_OUT_ACT( );*/  /* LED闪烁 */
  43.                 time_DelayMs( 200 );
  44. /*                LED_OUT_INACT( );*/
  45. //                time_DelayMs( 200 );
  46. //        }
  47. }
  48. void main()
  49. {
  50.         unsigned char s;
  51. //    unsigned char writebuf[1]={0xAA};
  52.     InitSTC8A();
  53.         Time0_Init();
  54.         uart1_time1_Initialization();
  55.     UartInit();
  56.         time_DelayMs(5000);
  57.         InitLcd12864();
  58.         InitIIC();
  59.         InitDS3231();
  60.         key_Initialization();
  61.     gui_DialogDesktopOpen();
  62.     init_ch376_interrecord_gap();
  63.     init_alarm_state();
  64.     s = mInitCH376Host( );  /* 初始化CH376 */
  65.     mStopIfError(s);
  66.     printf("hello word\n");
  67. //  EepromWritePage(0x600,writebuf,1);

  68. //   K5= 0;
  69.         while(1)
  70.         {
  71.                 clock_task();
  72.                 key_Task();
  73.         humiture_task();
  74.         gui_Task();
  75.         ch376_task();
  76.         humiture_tx_mqtt_task();
  77.         alarm_task();
  78. //        printf("%d\r\n",under_alarm_humiture.temperature_ch01);
  79. //        printf("%d\r\n",overtop_alarm_humiture.temperature_ch01);
  80. //        printf("%d\r\n",under_alarm_humiture.temperature_ch02);
  81. //        printf("%d\r\n",overtop_alarm_humiture.temperature_ch02);
  82. //        printf("%d\r\n",under_alarm_humiture.temperature_ch03);
  83. //        printf("%d\r\n",overtop_alarm_humiture.temperature_ch03);
  84. //        printf("%d\r\n",under_alarm_humiture.temperature_ch04);
  85. //        printf("%d\r\n",overtop_alarm_humiture.temperature_ch04);
  86. //        printf("%d\r\n",under_alarm_humiture.temperature_ch05);
  87. //        printf("%d\r\n",overtop_alarm_humiture.temperature_ch05);
  88.         
  89.    /*   
  90.             
  91.             GetRealTmp(tmp);
  92.             
  93.             buf[0] = (tmp[0]/10)+'0';
  94.             buf[1] = (tmp[0]%10)+'0';
  95.             buf[2] = '.';
  96.             buf[3] = (tmp[1]/10+'0');
  97.             buf[4] = (tmp[1]%10)+'0';
  98.             buf[5]='\0';
  99.             LcdShowStr(0,3,buf);
  100.             
  101.             sys_ticks = time_GetTicks();
  102.             sys_ticks /=1000;
  103.             buf[0] = (sys_ticks/1000000%10)+'0';
  104.             buf[1] = (sys_ticks/100000%10)+'0';
  105.             buf[2] = (sys_ticks/10000%10)+'0';
  106.             buf[3] = (sys_ticks/1000%10)+'0';
  107.             buf[4] = (sys_ticks/100%10)+'0';
  108.             buf[5] = (sys_ticks/10%10)+'0';
  109.             buf[6] = (sys_ticks%10)+'0';
  110.             buf[7] = '\0';
  111.             LcdShowStr(1,2,buf);
  112.             old_sys_ticks=time_GetTicks();
  113.             flag++;
  114.         */
  115.         }
  116. }
复制代码

全部资料51hei下载地址:
温度检测5路.7z (10.53 MB, 下载次数: 63)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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