/*************************************************** * Ejemplo de integración de sensor DS18B20 con Blynk y OLED 128x32 en el KitMaker IOT de Faniot. ***************************************************/ // Definiciones para Blynk (deben ir antes de incluir cualquier archivo de Blynk) #define BLYNK_TEMPLATE_ID "COMPLETAR" #define BLYNK_TEMPLATE_NAME "COMPLETAR" #define BLYNK_AUTH_TOKEN "COMPLETAR" // Inclusión de librerías necesarias #include // Librería para comunicación OneWire #include // Librería para sensor de temperatura DS18B20 #include // Librería para comunicación I2C #include // Librería base para pantallas OLED #include // Librería específica para pantallas OLED SSD1306 #include // Librería para conexión WiFi #include // Librería Blynk para ESP32 // Definiciones para la pantalla OLED #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 32 #define OLED_RESET -1 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); // Definiciones para el sensor DS18B20 #define ONE_WIRE_BUS 19 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); // Credenciales de WiFi char ssid[] = "NOMBRE DE LA RED WIFI"; char pass[] = "CONTRASEÑA DE LA RED WIFI"; void setup() { // Inicialización del monitor serie para depuración Serial.begin(115200); // Inicialización del sensor DS18B20 sensors.begin(); // Inicialización de la pantalla OLED if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("Fallo en la asignación de la pantalla SSD1306")); for(;;); // Detener ejecución si la inicialización falla } display.clearDisplay(); // Conexión a la red WiFi WiFi.begin(ssid, pass); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Conectando a WiFi..."); } Serial.println("Conectado a WiFi"); // Inicialización de Blynk Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass); // Pantalla de bienvenida display.setTextSize(1); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 0); display.println(F("Faniot - KitMaker")); display.println(F("Inicializando...")); display.display(); delay(2000); } void loop() { Blynk.run(); // Ejecutar Blynk sensors.requestTemperatures(); // Solicitar temperaturas del sensor float temperatureC = sensors.getTempCByIndex(0); // Obtener temperatura en grados Celsius // Visualización en el monitor serie Serial.print("Temperatura: "); Serial.print(temperatureC); Serial.println(" C°"); // Envío de datos a Blynk Blynk.virtualWrite(V0, temperatureC); // Actualización de la pantalla OLED display.clearDisplay(); display.setCursor(0, 0); display.println(F("Faniot - KitMaker")); display.print("Temp: "); display.print(temperatureC); display.println(" C°"); display.display(); delay(1000); // Esperar 1 segundo antes de la próxima lectura }