单片机教程网

电脑版
提示:原网页已由神马搜索转码, 内容由www.51hei.com提供.
查看:6159|回复:3
打印上一主题下一主题

STM32远程仓储环境监测系统的安卓APP与单片机源码

 [复制链接]
跳转到指定楼层
楼主
ID:340644发表于 2018-5-29 15:44|只看该作者|只看大图回帖奖励
使用STM32F103开发板,采集温湿度,光照,空气质量,火焰,将数据通过USART3发到ESP8266,ESP8266用STA模式连接路由器将数据发到OneNET云服务器,手机APP用HTTP协议获取环境参数信息。

内含安卓app的源码


stm32单片机源程序如下:
  1. //单片机头文件
  2. #include "stm32f10x.h"
  3. //网络协议层
  4. #include "onenet.h"
  5. //网络设备
  6. #include "esp8266.h"
  7. //硬件驱动
  8. #include "delay.h"
  9. #include "led.h"
  10. #include "beep.h"
  11. #include "dht11.h"
  12. #include "key.h"
  13. #include "flame.h"
  14. #include "adc.h"
  15. #include "light.h"
  16. #include "usart.h"
  17. #include "warning.h"
  18. #include "st_timer3.h"
  19. //C库
  20. #include< string.h>


  21. // ADC1 转换的电压值通过DMA方式传到SRAM
  22. extern __IO uint32_t ADC_ConvertedValue[NOFCHANEL];
  23. int16_t temp_max = 40;
  24. int16_t temp_min = 0;
  25. uint16_t humi_max = 90;
  26. uint16_t humi_min = 0;
  27. uint16_t timeCount = 0;                                           //发送间隔变量


  28. //硬件初始化
  29. void Hardware_Init(void)
  30. {
  31.        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_3);       //中断控制器分组设置

  32.        SysTick_Init();                                                 //系统滴答定时器初始化
  33.        TIM3_Config();                                                 //时钟TIM3初始化      
  34.        Usart1_Init(115200);                                       //串口1,打印信息用                                      
  35.        Usart3_Init(115200);                                       //串口3,驱动ESP8266用                          
  36.       
  37.        Led_Init();                                                       //LED初始化                                                      
  38.        Beep_Init();                                                 //蜂鸣器初始化                                                
  39.        Key_Init();                                                       //按键初始化                                                      
  40.       
  41.        DHT11_Init();                                                 //温湿度传感器初始化
  42.        ADCx_Init();                                                 //ADC1和ADC2初始化
  43.        LIGHT_GPIO_Config();                                       //光敏电阻GPIO配置
  44.        Fire_Init();                                                 //火焰传感器初始化

  45.        UsartPrintf(USART_DEBUG, " Hardware init OK\r\n");
  46. }


  47. int main(void)
  48. {
  49.        uint16_t ADC1_Value = 0;                                 //ADC1的转换数据
  50.        uint16_t ADC2_Value = 0;                                 //ADC2的转换数据
  51.        float Illuminance;                                           //光照度
  52.        float airquality;                                           //空气质量  
  53.        uint16_t fire = 1;                                           //火焰状态,1 - 代表无火焰, 0 - 代表有火焰
  54.       
  55.        unsigned char *dataPtr = NULL;
  56.       
  57.        DHT11_Data_TypeDef DHT11_Data;                           //结构体:用于存放温湿度数据
  58.       
  59.        Hardware_Init();                                           //初始化外围硬件      
  60.        ESP8266_Init();                                                 //初始化WIFI模块                      
  61.       
  62.        while(OneNet_DevLink())                                       //接入OneNET云平台
  63.        {          
  64.            Delay_ms(500);
  65.        }
  66.       
  67.        Beep_Set(BEEP_ON);                                       //鸣叫提示接入云平台成功
  68.        Delay_ms(250);
  69.        Beep_Set(BEEP_OFF);          
  70.       
  71.        ESP8266_Clear();
  72.           
  73.        while(1)
  74.        {
  75.            Fire_Check(&fire);                                       //火焰状态检测
  76.            LightStatus_Check();                                 //光照亮暗检测
  77.            DHT11_Check(&DHT11_Data, temp_max, temp_min, humi_max, humi_min);//温湿度越限检测
  78.                 
  79.            if(timeCount >= 300)                                 //发送间隔3s
  80.            {
  81.                  ESP8266_Clear();
  82.                           
  83.                  DHT11_Read_TempAndHumidity(&DHT11_Data);//读取温湿度数据
  84.                 
  85.                  UsartPrintf(USART_DEBUG, "--------------监测数据--------------\r\n");                
  86.                  UsartPrintf(USART_DEBUG, "温度:%d ℃\r\n", DHT11_Data.temp_int);
  87.                  UsartPrintf(USART_DEBUG, "湿度:%d %RH\r\n", DHT11_Data.humi_int);
  88.                  UsartPrintf(USART_DEBUG, "最高温度:%d\r\n", temp_max);
  89.                  UsartPrintf(USART_DEBUG, "最低温度:%d\r\n", temp_min);
  90.                  UsartPrintf(USART_DEBUG, "最大湿度:%d\r\n", humi_max);
  91.                  UsartPrintf(USART_DEBUG, "最小湿度:%d\r\n", humi_min);
  92.                           
  93.                  //取出ADC1数据寄存器的高16位,这个是ADC2(光敏电阻传感器)的转换数据
  94.                  ADC2_Value = (ADC_ConvertedValue[0]&0XFFFF0000) >> 16;
  95.         
  96.                  //取出ADC1数据寄存器的低16位,这个是ADC1(空气质量传感器)的转换数据
  97.                  ADC1_Value = (ADC_ConvertedValue[0]&0XFFFF);      
  98.           
  99.                  UsartPrintf(USART_DEBUG, "Light转换数值:%d \r\n", ADC2_Value);
  100.                  UsartPrintf(USART_DEBUG, "MQ135转换数值:%d \r\n", ADC1_Value);      
  101.         
  102.                  Light_Check(ADC2_Value,& Illuminance);       //光照度检测      
  103.                  MQ135_Check(ADC1_Value,& airquality);       //空气质量检测
  104.                 
  105.                  //上传数据到云平台
  106.                  OneNet_SendData(&DHT11_Data,light_arr,air_arr,fire,Illuminance,airquality,temp_max,temp_min,humi_max,humi_min);
  107.                 
  108.                  timeCount = 0;
  109.                  ESP8266_Clear();
  110.            }

  111.            dataPtr = ESP8266_GetIPD(0);
  112.            if(dataPtr != NULL)
  113.            {
  114.                  OneNet_RevPro(dataPtr);                           //平台返回数据检测
  115.            }
  116.        }
  117. }
复制代码

所有资料51hei提供下载:
Code.7z(15.87 MB, 下载次数: 181)


评分

黑币 +50
收起理由
+ 50
共享资料的黑币奖励!

查看全部评分

沙发
ID:68875发表于 2018-5-30 22:02|只看该作者
good job
板凳
ID:341045发表于 2018-6-2 11:56|只看该作者
谢谢分享  
地板
ID:855481发表于 2021-3-14 17:09|只看该作者
有没有接线图

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

Powered by 单片机教程网