Görseldeki devre, bulunduğu ortamın nem ve sıcaklık bilgisini firebase veritabanına yazar. Görseldeki akıllı telefon uygulamasından bu değerler okunur. NodeMCU kartına bağlı ısıtıcı internet üzerinden kontrol edilir.


#include <ESP8266WiFi.h> // NodeMCU kurulumuyla gelir.
#include <FirebaseESP8266.h> // FirebaseESP8266 Client v3.8.3 ve Firabasejson v2.6.3
#include "DHT.h" // Adafruit DHT Sensor Library v1.2.3
#define DHTpin 4 // Sensörün bağlandığı pin. NodeMCU 1.0 (ESP-12E) D2 pini.
#define DHTtipi DHT11 // Sensör tipi: DHT11, DHT21, DHT22.
DHT dht(DHTpin, DHTtipi); //dht isimli nesne oluşturuldu.
#define WIFI_SSID "ZyXEL" // Kablosuz ağ adı.
#define WIFI_PASSWORD "CK4YTTFPACTL" // Kablosuz ağ şifresi.
#define DATABASE_URL "internet-d61ca-default-rtdb.firebaseio.com" // Firebase'de oluşturulan nesnenin adresi.
FirebaseData veritabani; // veritabani isimli nesne oluşturuldu.
FirebaseAuth auth;
FirebaseConfig config;
void setup() {
pinMode(2, OUTPUT); // GPIO2 pini D4 pini çıkış.
pinMode(4, INPUT); // GPIO4 pini D2 pini giriş.
dht.begin();
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
config.database_url = DATABASE_URL;
config.signer.tokens.legacy_token = "3t1jLsNUxFT9uRvVPipok27rF7b25RtBQIcbn9Pn"; // Gizli anahtar (token).
Firebase.begin(&config, &auth);
}
void loop() {
int nem = dht.readHumidity(); // Nem bilgisini oku.
int sicaklik = dht.readTemperature(); // Sıcaklık bilgisini oku.
Firebase.setInt(veritabani, "/nem", nem); // Nem bilgisini firebase veritabınına yaz.
Firebase.setInt(veritabani, "/sicaklik", sicaklik); // Sıcaklık bilgisini firebase veritabınına yaz.
if (Firebase.getString(veritabani, "/isitici")) { // Isıtıcın durum bilgisini firebase veritabınından al.
String metin = veritabani.to<String>();
Serial.println(metin);
if (metin == "1")
digitalWrite(2, LOW);
else
digitalWrite(2, HIGH);
}
}
No responses yet