Compare commits

...
Sign in to create a new pull request.

4 commits

Author SHA1 Message Date
GrafZ3pp3lin
ed2778fa65 htu21 sensor 2021-07-21 21:38:37 +02:00
GrafZ3pp3lin
5a16fccbad use arduino uno 2021-07-14 19:42:59 +02:00
GrafZeppelin
93a5336344 remove set r0 2021-07-04 10:40:08 +02:00
GrafZ3pp3lin
a189f430ec calibration 2021-07-02 22:16:40 +02:00
2 changed files with 39 additions and 80 deletions

View file

@ -8,10 +8,12 @@
; Please visit documentation for the other options and examples ; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html ; https://docs.platformio.org/page/projectconf.html
; nanoatmega328new
[env:arduino] [env:arduino]
platform = atmelavr platform = atmelavr
board = nanoatmega328new board = uno
framework = arduino framework = arduino
lib_deps = lib_deps =
adafruit/Adafruit BME280 Library @ ^2.1.2 ; adafruit/Adafruit BME280 Library @ ^2.1.2
; miguel5612/MQUnifiedsensor @ ^2.0.1 sparkfun/SparkFun HTU21D Humidity and Temperature Sensor Breakout @ ^1.1.3

View file

@ -1,8 +1,8 @@
#include <Arduino.h> #include <Arduino.h>
#include <MQ135.h> #include <MQ135.h>
#include <Adafruit_BME280.h> #include <SparkFunHTU21D.h>
#define PIN_MQ135 A7 #define PIN_MQ135 A0
#define PIN_NOISE 2 #define PIN_NOISE 2
#define PIN_LED_GREEN 3 #define PIN_LED_GREEN 3
#define PIN_LED_GREEN2 4 #define PIN_LED_GREEN2 4
@ -11,95 +11,52 @@
#define PIN_LED_RED 7 #define PIN_LED_RED 7
#define PIN_LED_RED2 8 #define PIN_LED_RED2 8
void printValues();
const int maxCount = 10;
int count = 0;
bool noise = false;
bool noiseActive = false;
float ppm;
MQ135 co2_sensor(PIN_MQ135); MQ135 co2_sensor(PIN_MQ135);
Adafruit_BME280 bme; HTU21D envSensor;
void setup() { void setup() {
pinMode(PIN_LED_GREEN, OUTPUT);
pinMode(PIN_LED_GREEN2, OUTPUT);
pinMode(PIN_LED_YELLOW, OUTPUT);
pinMode(PIN_LED_YELLOW2, OUTPUT);
pinMode(PIN_LED_RED, OUTPUT);
pinMode(PIN_LED_RED2, OUTPUT);
pinMode(PIN_NOISE, OUTPUT);
Serial.begin(9600); Serial.begin(9600);
co2_sensor.setR0(300);
if (!bme.begin(0x76)) { co2_sensor.setR0(200);
Serial.println(F("Could not find a valid BME280 sensor, check wiring!"));
} envSensor.begin();
} }
void loop() { void loop() {
if (count >= maxCount || count < 0) { float temp = envSensor.readTemperature();
float temp = bme.readTemperature(); float humidity = envSensor.readHumidity();
float humidity = bme.readHumidity();
ppm = co2_sensor.getCorrectedCO2(temp, humidity);
count = 0; float r0c = co2_sensor.getCorrectedR0(temp, humidity);
noiseActive = false; float in = analogRead(PIN_MQ135);
digitalWrite(PIN_LED_GREEN, 0); double v = co2_sensor.getVoltage();
digitalWrite(PIN_LED_GREEN2, 0); double r = co2_sensor.getResistance();
digitalWrite(PIN_LED_YELLOW, 0); float r0 = co2_sensor.getR0();
digitalWrite(PIN_LED_YELLOW2, 0);
digitalWrite(PIN_LED_RED, 0);
digitalWrite(PIN_LED_RED2, 0);
if (ppm < 1000) { double co2 = co2_sensor.getCO2();
digitalWrite(PIN_LED_GREEN, 1); double co2c = co2_sensor.getCorrectedCO2(temp, humidity);
if (ppm > 750) {
digitalWrite(PIN_LED_GREEN2, 1);
}
}
if (ppm > 1000 && ppm <= 2000) {
digitalWrite(PIN_LED_YELLOW, 1);
if (ppm > 1500) {
digitalWrite(PIN_LED_YELLOW2, 1);
}
}
if (ppm > 2000) {
digitalWrite(PIN_LED_RED, 1);
if (ppm > 2500) {
noiseActive = true;
digitalWrite(PIN_LED_RED2, 1);
}
}
printValues(); Serial.print("Analog Read: ");
} Serial.println(in);
Serial.print("Voltage: ");
Serial.println(v);
Serial.print("Resistance: ");
Serial.println(r);
if (noiseActive) { Serial.print("R0: ");
noise = !noise; Serial.println(r0);
// digitalWrite(PIN_NOISE, noise);
}
else {
// digitalWrite(PIN_NOISE, 0);
}
delay(100);
count++;
}
void printValues() {
float temp = bme.readTemperature();
float humidity = bme.readHumidity();
float ppm = co2_sensor.getCO2();
float cppm = co2_sensor.getCorrectedCO2(temp, humidity);
Serial.print("ppm: ");
Serial.println(ppm);
Serial.print("Temperature: "); Serial.print("Temperature: ");
Serial.println(temp); Serial.println(temp);
Serial.print("Humidity: "); Serial.print("Humidity: ");
Serial.println(humidity); Serial.println(humidity);
Serial.print("corrected ppm: "); Serial.print("R0 Corrected: ");
Serial.println(cppm); Serial.println(r0c);
Serial.print("CO2: ");
Serial.println(co2);
Serial.print("CO2 Corrected: ");
Serial.println(co2c);
Serial.println("-----------------------------");
delay(1000);
} }