Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 25 additions & 10 deletions examples/Wemos/Wemos.ino
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,10 @@ hackAIR sensor(SENSOR_SDS011);
DHT dht(D4, DHT11);

// How often to measure (in minutes)
const unsigned long minutes_time_interval = 5;
const unsigned long minutes_time_interval = 5; // minutes

// How long to try for a valid measurement
const unsigned long retry_period_s = 10; // s

// Setup ADC to measure Vcc (battery voltage)
ADC_MODE(ADC_VCC);
Expand Down Expand Up @@ -80,13 +83,25 @@ void loop() {
Serial.print(".");
}

// Measure data
Serial.println("Doing measurement");
sensor.clearData(data);
sensor.readAverageData(data, 60); // 60 averages
unsigned long timestamp = millis();
while (data.error != 0) {
if(millis() > timestamp + (retry_period_s * 1000)) {
Serial.println("Tried too long, giving up.");
break;
}
sensor.turnOn();
delay(100);
sensor.readAverageData(data, 60); // 60 averages
yield();
}

// Compensate for humidity
float humidity = dht.readHumidity();
sensor.humidityCompensation(data, humidity);
if (data.error == 0 && !isnan(humidity)) {
sensor.humidityCompensation(data, humidity);
}

// Send the data to the hackAIR server
String dataJson = "{\"reading\":{\"PM2.5_AirPollutantValue\":\"";
Expand All @@ -96,9 +111,9 @@ void loop() {
dataJson += "\"},\"battery\":\"";
dataJson += vdd;
dataJson += "\",\"tamper\":\"";
dataJson += "0";
dataJson += data.tamper;
dataJson += "\",\"error\":\"";
dataJson += "0";
dataJson += data.error;
dataJson += "\"}";
if (client.connect("api.hackair.eu", 443)) {
Serial.println("connected");
Expand All @@ -122,17 +137,17 @@ void loop() {
}
client.stop();
}
delay(1000);


// Turn off sensor and go to sleep
sensor.turnOff();
Serial.println("");
Serial.println("Sensor Off");
unsigned long current_millis = millis();
while (current_millis <
(previous_millis + (minutes_time_interval * 60 * 1000))) {
delay(10000);
current_millis = millis();
Serial.println(current_millis);
Serial.print(".");
}
previous_millis = current_millis;
sensor.turnOn();
}
2 changes: 1 addition & 1 deletion src/hackair.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ void hackAIR::readAverageData(hackAirData &data, uint8_t n) {
void hackAIR::clearData(hackAirData &data) {
data.pm25 = 0;
data.pm10 = 0;
data.error = 0;
data.error = 1;
data.tamper = 0;
data.battery = 0;
}
Expand Down