Akıllı Ev Isıtma Uygulaması NodeMCU 1.0 (ESP-12E)

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);
  }
}

Benzer Temrinler & Yazılar

  • if kullanarak debounce engelleme

    const byte butonPini = 2; // Düğmenin bağlı olduğu pin bool kontrolBiti = 0; // Düğmenin basılı olup olmadığını kontrol etmek için bit int sayac = 0; // Sayac değeri void setup() { Serial.begin(9600); // Seri haberleşmeyi başlat pinMode(butonPini, INPUT_PULLUP); // Düğme pini giriş olarak ayarla ve dahili pull-up direncini etkinleştir } void loop() {…

  • Kesme Uygulaması

    Görseldeki programda ana döngüde blink uygulaması çalışırken butona basıldığında kesme aktifedilmekte ve haricî LED anında yanmaktadır. Haricî LED’in sönme komutu ise ana döngüde verildiğinden sönme işlemi ana programda icra edilen komut satırına bağlı olarak 0 ile 2 saniyearasında süre alır. const byte dahiliLED = 13; const byte hariciLED = 12; const byte kesmePini = 2;…

  • DC Motor Uygulaması

    Elektrik enerjisini hareket enerjine çevirmeye yarayan mekanik aygıtlara motor denir. Elektrikmotorları AC ve DC olarak iki gerilim türünde çalışacak şekilde üretilir. Diğer birçok motor modelibu iki motor türünden geliştirilmiştir. AC motorlar genel olarak asenkron motor olarak iki türdeüretilir. Bunlar bir fazlı ve üç fazlı motorlar olmak üzere iki türdedir. Bu motorların dönüş yönünüdeğiştirmek için farklı…

  • Uzaktan Kontrollü Araba Uygulaması

    Görseldeki joystick modülünün 10 bitlik ADC’de aldığı değerler verilmiştir. Görselde joystick modülünün pin yapısı görülmektedir. Görsel 3.84’teki verici ve Görsel 3.85’teki alıcı devrelerinde birer adet nRF24L01+ modül kullanılarak kablosuz iletişim uygulaması yapılmıştır. nRF24L01+ modülü Arduino ile haberleşirken SPI protokolünü kullanır. Joystickle x ve y ekseninde 0-1023 arasında okunan değerler map() foksiyonuyla -255 ile 255 arası…

  • LDR’yle Analog Giriş Uygulaması

    LDR, ışıkla direnci ters orantılı olarak değişen elemandır. Arduino’nun 5 V gerilimi üzerine uygulanan LDR’nin direnç-gerilim değişiminin anlaşılabilmesi için 10 kΩ’luk bir direnç seri bağlanarakgerilim bölücü oluşturulur. Bağlantı noktasının gerilim değişimi Arduino’nun analog girişineverilir const byte LED = 13; //LED değişkeninin içeriği 13 ile sabitlendi. int LDR; void setup() { pinMode(LED, OUTPUT); Serial.begin(9600); } void…

  • EEPROM.read

    #include <EEPROM.h> byte deger; void setup() { Serial.begin(9600); int hafizaBoyutu = EEPROM.length(); //Kartın hafıza boyutunu al. for (int adres = 0; adres < hafizaBoyutu; adres++) { deger = EEPROM.read(adres); //Analog veriyi 10 ms aralıklarla tüm hafızadan sırayla oku. Serial.print("Adres = "); Serial.print(adres); Serial.print("\t Değer = "); Serial.println(deger); delay(10); } } void loop() { }

Bir Yorum Yazın

E-posta adresiniz yayınlanmayacaktır. Gerekli alanlar * ile işaretlenmiştir.