#include "Seeed_BME280.h"
#include <Wire.h>
#include "rgb_lcd.h"
BME280 bme280;
rgb_lcd lcd;
int colorR = 0;
int colorG = 0;
int colorB = 255;
int BuzzerPin = 2;
int LED = 4;
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
lcd.setRGB(colorR, colorG, colorB);
lcd.print("Hello!");
delay(5000);
// buzzer set up
pinMode(BuzzerPin, OUTPUT);
// LED
pinMode(LED, OUTPUT);
Serial.begin(9600);
if (!bme280.init()) {
Serial.println("Device error!");
}
}
void loop() {
String start_c = "\{ ";
String end_c = " \}";
String comma_c =",";
String temp = "\"temp\":";
float temp_val = bme280.getTemperature();
String humidity = "\"humidity\":";
float humidity_val = bme280.getHumidity();
String light = "\"light\":";
int light_val = analogRead(A0);
light_val = map(light_val, 0, 800, 0, 10);
String all = start_c + temp + temp_val + comma_c+ humidity + humidity_val + comma_c + light + light_val + end_c;
Serial.println(all);
// Display the three parameters
if (temp_val < 28) {
colorR = 0;
colorG = 255;
colorB = 0;
} else {
colorR = 255;
colorG = 0;
colorB = 0;
}
lcd.setRGB(colorR, colorG, colorB);
lcd.setCursor(0, 0);
lcd.print("T:");
lcd.print(temp_val);
lcd.print(", H:");
lcd.print(humidity_val);
lcd.setCursor(0, 1);
lcd.print(", L:");
lcd.print(light_val);
if (temp_val > 28) {
tone(BuzzerPin, 200); // tone(pin, frequency)
// ok: digitalWrite(BuzzerPin, HIGH);
// ok: analogWrite(BuzzerPin, 128);
delay(500);
noTone(BuzzerPin);
// ok: digitalWrite(BuzzerPin, LOW);
// ok: analogWrite(BuzzerPin, 0);
if (light_val > 7){
digitalWrite(LED, LOW); // set the LED on
} else {
digitalWrite(LED, HIGH); // set the LED on
}
delay(4500);
} else {
if (light_val > 7){
digitalWrite(LED, LOW); // set the LED on
} else {
digitalWrite(LED, HIGH); // set the LED on
}
delay(5000);
}
}