Update sds011read.cpp
This commit is contained in:
parent
20df7ca282
commit
0d18feb29d
@ -3,59 +3,64 @@
|
|||||||
// Local logging tag
|
// Local logging tag
|
||||||
static const char TAG[] = __FILE__;
|
static const char TAG[] = __FILE__;
|
||||||
|
|
||||||
#include <sds011read.h>
|
#if (HAS_SDS)
|
||||||
|
|
||||||
|
#include "sds011read.h"
|
||||||
|
|
||||||
// UART(2) is unused in this project
|
// UART(2) is unused in this project
|
||||||
#if (HAS_IF482)
|
#if (HAS_IF482)
|
||||||
#error cannot use IF482 together with SDS011 (both use UART#2)
|
#error cannot use IF482 together with SDS011 (both use UART#2)
|
||||||
#endif
|
#endif
|
||||||
static HardwareSerial sdsSerial(2); // so we use it here
|
|
||||||
static SDS011 sdsSensor; // fine dust sensor
|
#ifndef SDS011_SERIAL
|
||||||
|
#error serial settings for SDS011 connection missing
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static HardwareSerial sdsSerial(2); // so we use it here
|
||||||
|
static SDS011 sdsSensor; // fine dust sensor
|
||||||
|
|
||||||
// the results of the sensor:
|
// the results of the sensor:
|
||||||
float pm25;
|
float pm25;
|
||||||
float pm10;
|
float pm10;
|
||||||
boolean isSDS011Active;
|
boolean isSDS011Active;
|
||||||
|
|
||||||
// init
|
// init
|
||||||
bool sds011_init()
|
bool sds011_init() {
|
||||||
{
|
pm25 = pm10 = 0.0;
|
||||||
pm25 = pm10 = 0.0;
|
sdsSerial.begin(SDS011_SERIAL);
|
||||||
sdsSensor.begin (&sdsSerial, ESP_PIN_RX, ESP_PIN_TX);
|
sdsSensor.begin(&sdsSerial);
|
||||||
sds011_sleep(); // we do sleep/wakup by ourselves
|
//sdsSensor.contmode(0); // for safety: no wakeup/sleep by the sensor
|
||||||
return true;
|
sds011_sleep(); // we do it by ourselves
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// reading data:
|
// reading data:
|
||||||
void sds011_loop()
|
void sds011_loop() {
|
||||||
{
|
if (isSDS011Active) {
|
||||||
if ( isSDS011Active ) {
|
int sdsErrorCode = sdsSensor.read(&pm25, &pm10);
|
||||||
int sdsErrorCode = sdsSensor.read(&pm25, &pm10);
|
if (sdsErrorCode) {
|
||||||
if (sdsErrorCode) {
|
pm25 = pm10 = 0.0;
|
||||||
pm25 = pm10 = 0.0;
|
ESP_LOGI(TAG, "SDS011 error: %d", sdsErrorCode);
|
||||||
ESP_LOGI(TAG, "SDS011 error: %d", sdsErrorCode);
|
} else {
|
||||||
}
|
ESP_LOGI(TAG, "fine-dust-values: %5.1f,%4.1f", pm10, pm25);
|
||||||
else {
|
|
||||||
ESP_LOGI(TAG, "fine-dust-values: %5.1f,%4.1f", pm10, pm25);
|
|
||||||
}
|
|
||||||
sds011_sleep();
|
|
||||||
}
|
}
|
||||||
return;
|
sds011_sleep();
|
||||||
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// putting the SDS-sensor to sleep
|
// putting the SDS-sensor to sleep
|
||||||
void sds011_sleep(void)
|
void sds011_sleep(void) {
|
||||||
{
|
sdsSensor.sleep();
|
||||||
sdsSensor.sleep();
|
isSDS011Active = false;
|
||||||
isSDS011Active = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// start the SDS-sensor
|
// start the SDS-sensor
|
||||||
// needs 30 seconds for warming up
|
// needs 30 seconds for warming up
|
||||||
void sds011_wakeup()
|
void sds011_wakeup() {
|
||||||
{
|
if (!isSDS011Active) {
|
||||||
if ( !isSDS011Active ) {
|
sdsSensor.wakeup();
|
||||||
sdsSensor.wakeup();
|
isSDS011Active = true;
|
||||||
isSDS011Active = true;
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // HAS_SDS
|
||||||
|
Loading…
Reference in New Issue
Block a user