Luftföroreningar och miljömässiga Monitor (8 / 11 steg)
Steg 8: Lägga till i Arduino koden
/*
Kod för miljömässiga Sensor som tar luft, ljus, temperatur och bullerdata från miljön ska visas på en LCD-skärm * /
#include #include "MutichannelGasSensor.h" #include "rgb_lcd.h" rgb_lcd lcd;
CONST int buttonPin = 8; int buttonPushCounter = 0; int buttonState = 0; int lastButtonState = 0;
void setup() {lcd.begin (16, 2); / / Ställ in den LCD antal kolumner och rader Serial.begin(9600); / / starta följetong för utdata lcd.println ("power på!"); lcd.noAutoscroll(); mutichannelGasSensor.begin (0x04); //the I2C standardadressen för slaven är 0x04 / / mutichannelGasSensor.changeI2cAddr(0x04); mutichannelGasSensor.doCalibrate(); pinMode (buttonPin, ingång);}
void loop() {float c flyta d flöte e; int f; float g; int h, float r; float t; float fah; mutichannelGasSensor.powerOn();
buttonState = digitalRead(buttonPin); Jämför buttonState till sitt tidigare tillstånd om (buttonState! = lastButtonState) {om (buttonState == hög) {buttonPushCounter ++;} / / fördröjning lite Undvik studsande / / delay(50);}
om (buttonPushCounter == 0) {c = mutichannelGasSensor.measure_NH3(); lcd.setRGB(155,221,255); lcd.print("NH3:"); om (c > = 0) lcd.print(c); annat lcd.print("invalid"); LCD.Print ("ppm");}
om (buttonPushCounter == 1) {d = mutichannelGasSensor.measure_CO(); lcd.setRGB(196,216,226); lcd.print("CO:"); om (d > = 0) lcd.print(d); annat lcd.print("invalid"); LCD.Print ("ppm");}
om (buttonPushCounter == 2) {e = mutichannelGasSensor.measure_NO2(); lcd.setRGB(204,255,255); lcd.print("NO2:"); om (e > = 0) lcd.print(e); annat lcd.print("invalid"); LCD.Print ("ppm");}
om (buttonPushCounter == 3) {f = analogRead(0); lcd.setRGB(182,134,44); lcd.print("Light:"); om (f > = 0) lcd.print(f); annat lcd.print("invalid"); LCD.Print ("enheter");}
om (buttonPushCounter == 4) {g = analogRead(1); r = (float)(1023-g) * 10000/g; //resistance beräkning t = 1 / (log (r/10000) /3975+1/298.15)-273.15; //temperature i celsius fah = t * 9 / 5 + 32; lcd.setRGB(255,102,255); lcd.print("Temp:"); LCD.Print(Fah); LCD.Print ("* F");}
om (buttonPushCounter == 5) {g = analogRead(1); r = (float)(1023-g) * 10000/g; //resistance beräkning t = 1 / (log (r/10000) /3975+1/298.15)-273.15; //temperature i celsius lcd.setRGB(255,153,255); lcd.print("Temp:"); LCD.Print(t); LCD.Print ("* C");}
om (buttonPushCounter == 6) {h = analogRead(2); lcd.setRGB(8,30,63); lcd.print("Noise:"); om (h > = 0) lcd.print(h); annat lcd.print("invalid"); LCD.Print ("enheter");}
om (buttonPushCounter == 7) {buttonPushCounter = 0; lcd.setRGB(255,255,255);} delay(250); LCD.Clear(); }