标题:
STM32远程仓储环境监测系统的安卓APP与单片机源码
[打印本页]
作者:
a644057189
时间:
2018-5-29 15:44
标题:
STM32远程仓储环境监测系统的安卓APP与单片机源码
使用STM32F103开发板,采集温湿度,光照,空气质量,火焰,将数据通过USART3发到ESP8266,ESP8266用STA模式连接路由器将数据发到OneNET云服务器,手机APP用HTTP协议获取环境参数信息。
内含安卓app的源码
0.png
(44.07 KB, 下载次数: 82)
下载附件
2018-5-29 18:47 上传
stm32单片机源程序如下:
//单片机头文件
#include "stm32f10x.h"
//网络协议层
#include "onenet.h"
//网络设备
#include "esp8266.h"
//硬件驱动
#include "delay.h"
#include "led.h"
#include "beep.h"
#include "dht11.h"
#include "key.h"
#include "flame.h"
#include "adc.h"
#include "light.h"
#include "usart.h"
#include "warning.h"
#include "st_timer3.h"
//C库
#include <string.h>
// ADC1 转换的电压值通过DMA方式传到SRAM
extern __IO uint32_t ADC_ConvertedValue[NOFCHANEL];
int16_t temp_max = 40;
int16_t temp_min = 0;
uint16_t humi_max = 90;
uint16_t humi_min = 0;
uint16_t timeCount = 0; //发送间隔变量
//硬件初始化
void Hardware_Init(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_3); //中断控制器分组设置
SysTick_Init(); //系统滴答定时器初始化
TIM3_Config(); //时钟TIM3初始化
Usart1_Init(115200); //串口1,打印信息用
Usart3_Init(115200); //串口3,驱动ESP8266用
Led_Init(); //LED初始化
Beep_Init(); //蜂鸣器初始化
Key_Init(); //按键初始化
DHT11_Init(); //温湿度传感器初始化
ADCx_Init(); //ADC1和ADC2初始化
LIGHT_GPIO_Config(); //光敏电阻GPIO配置
Fire_Init(); //火焰传感器初始化
UsartPrintf(USART_DEBUG, " Hardware init OK\r\n");
}
int main(void)
{
uint16_t ADC1_Value = 0; //ADC1的转换数据
uint16_t ADC2_Value = 0; //ADC2的转换数据
float Illuminance; //光照度
float airquality; //空气质量
uint16_t fire = 1; //火焰状态,1 - 代表无火焰, 0 - 代表有火焰
unsigned char *dataPtr = NULL;
DHT11_Data_TypeDef DHT11_Data; //结构体:用于存放温湿度数据
Hardware_Init(); //初始化外围硬件
ESP8266_Init(); //初始化WIFI模块
while(OneNet_DevLink()) //接入OneNET云平台
{
Delay_ms(500);
}
Beep_Set(BEEP_ON); //鸣叫提示接入云平台成功
Delay_ms(250);
Beep_Set(BEEP_OFF);
ESP8266_Clear();
while(1)
{
Fire_Check(&fire); //火焰状态检测
LightStatus_Check(); //光照亮暗检测
DHT11_Check(&DHT11_Data, temp_max, temp_min, humi_max, humi_min);//温湿度越限检测
if(timeCount >= 300) //发送间隔3s
{
ESP8266_Clear();
DHT11_Read_TempAndHumidity(&DHT11_Data);//读取温湿度数据
UsartPrintf(USART_DEBUG, "--------------监测数据--------------\r\n");
UsartPrintf(USART_DEBUG, "温度:%d ℃\r\n", DHT11_Data.temp_int);
UsartPrintf(USART_DEBUG, "湿度:%d %RH\r\n", DHT11_Data.humi_int);
UsartPrintf(USART_DEBUG, "最高温度:%d\r\n", temp_max);
UsartPrintf(USART_DEBUG, "最低温度:%d\r\n", temp_min);
UsartPrintf(USART_DEBUG, "最大湿度:%d\r\n", humi_max);
UsartPrintf(USART_DEBUG, "最小湿度:%d\r\n", humi_min);
//取出ADC1数据寄存器的高16位,这个是ADC2(光敏电阻传感器)的转换数据
ADC2_Value = (ADC_ConvertedValue[0]&0XFFFF0000) >> 16;
//取出ADC1数据寄存器的低16位,这个是ADC1(空气质量传感器)的转换数据
ADC1_Value = (ADC_ConvertedValue[0]&0XFFFF);
UsartPrintf(USART_DEBUG, "Light转换数值:%d \r\n", ADC2_Value);
UsartPrintf(USART_DEBUG, "MQ135转换数值:%d \r\n", ADC1_Value);
Light_Check(ADC2_Value, &Illuminance); //光照度检测
MQ135_Check(ADC1_Value, &airquality); //空气质量检测
//上传数据到云平台
OneNet_SendData(&DHT11_Data,light_arr,air_arr,fire,Illuminance,airquality,temp_max,temp_min,humi_max,humi_min);
timeCount = 0;
ESP8266_Clear();
}
dataPtr = ESP8266_GetIPD(0);
if(dataPtr != NULL)
{
OneNet_RevPro(dataPtr); //平台返回数据检测
}
}
}
复制代码
所有资料51hei提供下载:
Code.7z
(15.87 MB, 下载次数: 184)
2023-8-2 18:13 上传
点击文件名下载附件
STM32+Android
下载积分: 黑币 -5
作者:
cnc2020
时间:
2018-5-30 22:02
good job
作者:
lzts88
时间:
2018-6-2 11:56
谢谢分享
作者:
qqwx.
时间:
2021-3-14 17:09
有没有接线图
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1