空气质量函数,wifi连接10s延时(还是不行),几个开关,风扇用PWM还是不行
This commit is contained in:
parent
d7a066996a
commit
2c8d632faf
@ -8,6 +8,7 @@
|
|||||||
#include <rtdevice.h>
|
#include <rtdevice.h>
|
||||||
#include <drv_gpio.h>
|
#include <drv_gpio.h>
|
||||||
#include "status.h"
|
#include "status.h"
|
||||||
|
#include "math.h"
|
||||||
|
|
||||||
rt_thread_t Sensor_Thread = RT_NULL;
|
rt_thread_t Sensor_Thread = RT_NULL;
|
||||||
|
|
||||||
@ -35,6 +36,7 @@ float ADC_air;
|
|||||||
float ADC_PM25;
|
float ADC_PM25;
|
||||||
float ADC_pressure;
|
float ADC_pressure;
|
||||||
|
|
||||||
|
#define MQ2_READ_TIMES 10
|
||||||
float Air_Read()
|
float Air_Read()
|
||||||
{
|
{
|
||||||
rt_adc_device_t adc_dev; /* ADC 设备句柄 */
|
rt_adc_device_t adc_dev; /* ADC 设备句柄 */
|
||||||
@ -48,6 +50,28 @@ float Air_Read()
|
|||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
float MQ2_GetData_PPM(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
float tempData = 0;
|
||||||
|
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < MQ2_READ_TIMES; i++)
|
||||||
|
{
|
||||||
|
tempData += Air_Read();;
|
||||||
|
rt_thread_mdelay(5);;
|
||||||
|
}
|
||||||
|
tempData /= MQ2_READ_TIMES;
|
||||||
|
|
||||||
|
float Vol = (tempData*5/4096);
|
||||||
|
float RS = (5-Vol)/(Vol*0.5);
|
||||||
|
float R0=6.64;
|
||||||
|
|
||||||
|
float ppm = pow(11.5428*R0/RS, 0.6549f);
|
||||||
|
|
||||||
|
return ppm;
|
||||||
|
|
||||||
|
}
|
||||||
float PM25_Read()
|
float PM25_Read()
|
||||||
{
|
{
|
||||||
rt_adc_device_t adc_dev; /* ADC 设备句柄 */
|
rt_adc_device_t adc_dev; /* ADC 设备句柄 */
|
||||||
@ -138,7 +162,7 @@ static void sensor_thread(void *parameter)
|
|||||||
{
|
{
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
ADC_air = Air_Read(); // 空气质量传感器数值 0-4095 表示从差到优秀
|
ADC_air = MQ2_GetData_PPM(); // 空气质量传感器数值 0-4095 表示从差到优秀
|
||||||
ADC_PM25 = Get_PM25_Average_Data(); // PM2.5传感器数值0-500 表示从优秀到查差
|
ADC_PM25 = Get_PM25_Average_Data(); // PM2.5传感器数值0-500 表示从优秀到查差
|
||||||
ADC_pressure = Pressure_Read(); // 压力传感器数值 0-4095 表示从差到优秀
|
ADC_pressure = Pressure_Read(); // 压力传感器数值 0-4095 表示从差到优秀
|
||||||
LOG5("ADC_air:%f,ADC_PM25:%f,ADC_pressure:%f", ADC_air, ADC_PM25, ADC_pressure);
|
LOG5("ADC_air:%f,ADC_PM25:%f,ADC_pressure:%f", ADC_air, ADC_PM25, ADC_pressure);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user