/* este proyecto esta inculido en el proyecto de estacion meterologica
* y es para tener mas sensores repardidos por el resto de la casa
* falta la inplementacion del wifi.
Yo utilice el sensor HTU 21 por eso aqui no funcionara pero el que quiera
lo tiene facil solo tiene que hacer unos pequeños cambios .
*/
#include <Wire.h>
#include "Adafruit_HTU21DF.h"
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
int ledRojo = 2;
int ledVerde = 4;
int ledAzul = 5;
int sensorPin = 21;
int pinscl = 22;
Adafruit_HTU21DF htu = Adafruit_HTU21DF();
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire, -1);
void setup() {
Serial.begin(115200);
if (!htu.begin()) {
Serial.println("Check circuit. HTU21D not found!");
while (1);
}
{display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
// init done
display.display();
delay(100);
display.clearDisplay();
display.display();
display.setTextColor(WHITE);
}
pinMode(ledRojo, OUTPUT);
pinMode(ledVerde, OUTPUT);
pinMode(ledAzul,OUTPUT);
}
void loop() {
float temp = htu.readTemperature();
float hum = htu.readHumidity();
Serial.print("Temperatura(°C ): ");
Serial.print(temp);
Serial.print("\t\t");
Serial.print("Humidity(%): ");
Serial.println(hum);
display.setCursor(0,0);
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0,0);
display.print("Temperatura: ");
display.setTextSize(2);
display.setCursor(0,10);
display.print(temp);
display.print(" ");
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(2);
display.print("C");
// display humedad
display.setTextSize(1);
display.setCursor(0, 35);
display.print("Humedad: ");
display.setTextSize(2);
display.setCursor(0, 45);
display.print(hum);
display.print(" %");
display.display();
delay(5000);
int sensorValue = analogRead(sensorPin);
float temperaturaCelsius = (sensorValue / 1024.0 * 5.0) * 100.0; // Conversión de la lectura analógica a temperatura en Celsius
if ( temperaturaCelsius >= 15 ){
//Hacer color blanco
digitalWrite(ledRojo,255);
digitalWrite(ledVerde,255);
digitalWrite(ledAzul,255);
delay(1000);
}
else if ( temperaturaCelsius <=15 && temperaturaCelsius > 19)
{
// Hacer color azul
digitalWrite(ledRojo,0);
digitalWrite(ledVerde,0);
digitalWrite(ledAzul,255);
delay(1000);
}
else if( temperaturaCelsius <=20 && temperaturaCelsius < 25)
{
//Hacer color verde
digitalWrite(ledRojo,0);
digitalWrite(ledVerde,255);
digitalWrite(ledAzul,0);
delay(1000);
}
else if (temperaturaCelsius <=26 && temperaturaCelsius >29)
{
//Hacer color Amarillo
digitalWrite(ledRojo,255);
digitalWrite(ledVerde,255);
digitalWrite(ledAzul,0);
delay(1000);
}
else if (temperaturaCelsius <= 30)
{
//hacer color Rojo
digitalWrite(ledRojo,255);
digitalWrite(ledVerde,0);
digitalWrite(ledAzul,0);
delay(1000);
}
}