/****************** https://app.sanusb.org/fmiot/ ***********************/
// #if defined(ESP32)
#include <WiFi.h>
#include <HTTPClient.h>
#include <FirebaseESP32.h>
#include <DHTesp.h>
const int DHT_PIN = 15;
DHTesp dhtSensor;
/*
#elif defined(ESP8266)
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <FirebaseESP8266.h>
#endif
//*/
//wokwi.com: Install Firebase ESP32 Client in Library Manager
//https://wokwi.com/projects/354403233523341313
//*
#define WIFI_SSID "Wokwi-GUEST"
#define WIFI_PASSWORD ""
//*/
unsigned long lastMsg = 0;
#define MSG_BUFFER_SIZE (50)
float temp = 0;
float hum = 0;
int value = 0;
//Install Firebase-ESP32 for real ESP32. See details at https://github.com/SanUSB/EspCloudUpdate
/*
#define WIFI_SSID "----------"
#define WIFI_PASSWORD "----------"
//*/
//const char* Profile = "Exemplo_FMIOT_Castillo/pin5"; // "profile/reference" from https://app.sanusb.org/fmiot/
//#define Profile 0
FirebaseData firebaseData;
#define FIREBASE_HOST "https://smart-farming-6130d-default-rtdb.asia-southeast1.firebasedatabase.app/"
//#define FIREBASE_AUTH "fAIzaSyBP8jsFGVXwZg7fnLEI9_73_4ljV88EviE"
#define FIREBASE_AUTH "AIzaSyBP8jsFGVXwZg7fnLEI9_73_4ljV88EviE"
String messageTemp;
void setup_wifi(void) {
pinMode(LED_BUILTIN, OUTPUT);
Serial.println();
Serial.print("Connecting to ");
Serial.println(WIFI_SSID);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void firebase_config(void) {
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
//Enable auto reconnect the WiFi when connection lost
Firebase.reconnectWiFi(true);
if (Firebase.getString(firebaseData, "/Profile")) //Success
{
messageTemp = firebaseData.stringData();
Serial.print("messageTemp = ");
Serial.println(messageTemp);
} else {
Serial.print("Error in getInt, ");
Serial.println(firebaseData.errorReason());
}
}
//***********************************************************
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
setup_wifi();
firebase_config();
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
}
//**********************************************************
void loop() {
unsigned long now = millis();
if (now - lastMsg > 2000)
{
lastMsg = now;
TempAndHumidity data = dhtSensor.getTempAndHumidity();
// int temp = int(data.temperature, 2);
int temp = int(data.temperature);
Serial.print("Temperature: ");
Serial.println(temp);
// client.publish("Saya/Temp", temp.c_str());
Firebase.setInt(firebaseData, "/Device1/temp", temp);
// int hum = int(data.humidity, 1);
int hum = int(data.humidity);
Serial.print("Humidity: ");
Serial.println(hum);
// client.publish("Saya/Hum", hum.c_str());
Firebase.setInt(firebaseData, "/Device1/hum", hum);
}
if (Firebase.getString(firebaseData, "/Profile"))
{
messageTemp = firebaseData.stringData();
Serial.print("messageTemp = ");
Serial.println(messageTemp);
} else {
Serial.print("Error in getInt, ");
Serial.println(firebaseData.errorReason());
}
if(messageTemp == "1"){
digitalWrite(LED_BUILTIN, HIGH);
} else if (messageTemp == "0"){
digitalWrite(LED_BUILTIN, LOW);
} else if (messageTemp == "Nada"){
//nothing
}
delay(2000);
}