Selecciona tu placa y copia el código correspondiente en tu Arduino IDE:
#include <Arduino.h>
#include <WiFi.h>
#include <Firebase_ESP_Client.h>
#include <DHT.h>
#define DHT_SENSOR_PIN 4
#define DHT_SENSOR_TYPE DHT11
DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE);
#include "addons/TokenHelper.h"
#include "addons/RTDBHelper.h"
#define WIFI_SSID "tu_wifi_ssid"
#define WIFI_PASSWORD "tu_wifi_password"
#define API_KEY "api_key_proporcionado_tu_desarrollador"
#define DATABASE_URL "url_porporcionada_tu_desarrollador"
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;
unsigned long sendDataPrevMillis = 0;
int count = 0;
bool signupOK = false;
int pinLED = 2;
void setup() {
pinMode(pinLED, OUTPUT);
dht_sensor.begin();
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
config.api_key = API_KEY;
config.database_url = DATABASE_URL;
if (Firebase.signUp(&config, &auth, "", "")) {
Serial.println("ok");
signupOK = true;
} else {
Serial.printf("%s\n", config.signer.signupError.message.c_str());
}
config.token_status_callback = tokenStatusCallback;
Firebase.begin(&config, &auth);
Firebase.reconnectWiFi(true);
}
void loop() {
float temperature = dht_sensor.readTemperature();
float humidity = dht_sensor.readHumidity();
if (Firebase.ready() && signupOK && (millis() - sendDataPrevMillis > 1000 || sendDataPrevMillis == 0)) {
sendDataPrevMillis = millis();
if (Firebase.RTDB.setInt(&fbdo, "DHT_11/Temperature", temperature)) {
Serial.print("Temperature : ");
digitalWrite(pinLED, HIGH);
delay(500);
digitalWrite(pinLED, LOW);
delay(500);
Serial.println(temperature);
} else {
Serial.println("Failed to Read from the Sensor");
Serial.println("REASON: " + fbdo.errorReason());
}
if (Firebase.RTDB.setFloat(&fbdo, "DHT_11/Humidity", humidity)) {
Serial.print("Humidity : ");
Serial.println(humidity);
} else {
Serial.println("Failed to Read from the Sensor");
Serial.println("REASON: " + fbdo.errorReason());
}
}
}
#include <Arduino.h>
#include <ESP8266WiFi.h> // Para ESP8266
#include <Firebase_ESP_Client.h>
#include <DHT.h> // Adafruit DHT 1.3.8
DHT dht_sensor(D4, DHT11);
// Credenciales Wi‑Fi
#define WIFI_SSID "tu_wifi_ssid"
#define WIFI_PASSWORD "tu_wifi_password"
// Claves y URL de Firebase Realtime Database
#define API_KEY "api_key_proporcionado_tu_desarrollador"
#define DATABASE_URL "url_porporcionada_tu_desarrollador"
#include "addons/TokenHelper.h" // Para gestión de tokens
#include "addons/RTDBHelper.h" // Para helper de RTDB
FirebaseData fbdo;
FirebaseAuth auth;
FirebaseConfig config;
unsigned long lastMillis = 0;
bool signupOK = false;
void setup() {
dht_sensor.begin();
Serial.begin(115200);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Conectando WiFi");
while (WiFi.status() != WL_CONNECTED) {
Serial.print('.');
delay(300);
}
Serial.println();
Serial.print("Conectado, IP: ");
Serial.println(WiFi.localIP());
config.api_key = API_KEY;
config.database_url = DATABASE_URL;
config.token_status_callback = tokenStatusCallback;
if (Firebase.signUp(&config, &auth, "", "")) {
Serial.println("Firebase signup OK");
signupOK = true;
} else {
Serial.print("Signup failed: ");
Serial.println(config.signer.signupError.message.c_str());
}
Firebase.begin(&config, &auth);
Firebase.reconnectWiFi(true);
}
void loop() {
if (!signupOK || !Firebase.ready()) return;
unsigned long now = millis();
if (now - lastMillis < 1000) return;
lastMillis = now;
float temperature = dht_sensor.readTemperature();
float humidity = dht_sensor.readHumidity();
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Error leyendo DHT11");
return;
}
if (Firebase.RTDB.setFloat(&fbdo, "DHT_11/Temperature", temperature)) {
Serial.print("Temp: ");
Serial.println(temperature);
} else {
Serial.print("Error al subir Temp: ");
Serial.println(fbdo.errorReason().c_str());
}
if (Firebase.RTDB.setFloat(&fbdo, "DHT_11/Humidity", humidity)) {
Serial.print("Hum: ");
Serial.println(humidity);
} else {
Serial.print("Error al subir Hum: ");
Serial.println(fbdo.errorReason().c_str());
}
}