#include <Adafruit_NeoPixel.h>
#include <LiquidCrystal_I2C.h>
#include "DHTesp.h"
#define LED_PIN 5
#define DHT_PIN 15
Adafruit_NeoPixel pixels(35, LED_PIN, NEO_GRB + NEO_KHZ800);
LiquidCrystal_I2C lcd(0x27, 16, 2);
DHTesp dhtSensor;
void setup() {
Serial.begin(115200);
pixels.begin();
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
lcd.init();
lcd.backlight();
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(data.temperature, 1);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Humidity: ");
lcd.print(data.humidity, 1);
lcd.print(" %");
int numPixelsToLight = min(max((int)data.temperature, 0), 35);
uint32_t color;
if (data.temperature < 25) {
color = pixels.Color(0, 0, 255);
} else {
color = pixels.Color(255, 0, 0);
}
for (int i = 0; i < 35; i++) {
if (i < numPixelsToLight) {
pixels.setPixelColor(i, color);
} else {
pixels.setPixelColor(i, 0);
}
}
pixels.show();
Serial.print("Temperature: ");
Serial.print(data.temperature);
Serial.print(" C, Pixels Lit: ");
Serial.println(numPixelsToLight);
delay(2000);
}