Görseldeki devrede NodeMCU ortamdaki kablosuz ağa bağlanmaktadır (STA modu). Seri ekrandan NodeMCU kartının aldığı IP adresi görülür. Bilgisayar görselde veya akıllı telefondan Görseldeki tarayıcı adres çubuğuna NodeMCU’nun IP adresi girilerek odaların lamba kontrolleri gerçekleştirilir.

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

/*Ağ adınızı ve Şifrenizi Giriniz*/
const char* kablosuzAgAdi = "ZyXEL";  // Ağ adınızı girin
const char* sifre = "CK4YTTFPACTL";  //Ağ şifrenizi girin

ESP8266WebServer server(80); //80 portunu kullanarak bir webserver nesnesi oluşturduk

#define salon D0
#define mutfak D1
#define yatak D2
#define cocuk D3
#define hol D4
#define banyo D5
#define tuvalet D6
#define balkon D7

bool odaDurum[8];
byte odaPin[] = {16, 5,  4, 0,  2,  14,  12,  13}; // D0 - D7 GPIO pin numaraları.
byte oda[8];
byte no;

void setup() {
  Serial.begin(9600);
  for (byte i = 0; i < 8; i++)
    pinMode(odaPin[i], OUTPUT);


  Serial.println(kablosuzAgAdi);
  Serial.println(" Ağına Bağlanılıyor");

  //yerel ağınıza bağlanmanız için gerekli komut
  WiFi.begin(kablosuzAgAdi, sifre);

  while (WiFi.status() != WL_CONNECTED) { // Wifi bağlantısı bekleniyor.
    delay(1000);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("Ağ bağlantısı sağlandı.");
  Serial.print("IP Adresiniz: ");  Serial.println(WiFi.localIP());

  server.on("/oda[no]", bagli);
  //for (no = 0; no < 8; no++)
//
//  server.on("/s0", salonKapali);
//  server.on("/s1", salonAcik);
  //  server.on("/m0", mutfakKapali);
  server.onNotFound(sayfaBulunamadi);

  server.begin();
  Serial.println("HTTP Sunucusu Başlatıldı");
}
void loop() {
  server.handleClient(); // İstemciden gelen verileri işle.
  for (byte i = 0; i < 8; i++) {
    if (odaDurum[i])
      digitalWrite(odaPin[i], HIGH);
    else
      digitalWrite(odaPin[i], LOW);
  }
}

void bagli() {

  server.send(200, "text/html", HTML(odaDurum));
}

//void salonAcik() {
//  odaDurum[0] = LOW; // NodeMCU 1.0 (ESP-12E) D4 pini. Dahili LED aktif 0'dır.
//  Serial.println("Salon: AÇIK");
//  server.send(200, "text/html", HTML(oda));
//}
//
//void salonKapali() {
//  odaDurum[0] = HIGH;
//  Serial.println("Salon: KAPALI");
//  server.send(200, "text/html", HTML(oda));
//}
//
//void mutfakAcik() {
//  Mutfakdurum = HIGH;
//  Serial.println("Mutfak: AÇIK");
//  server.send(200, "text/html", HTML(Salondurum, true));
//}
//
//void mutfakKapali() {
//  Mutfakdurum = LOW;
//  Serial.println("Mutfak: KAPALI");
//  server.send(200, "text/html", HTML(Salondurum, false));
//}

void sayfaBulunamadi() {
  server.send(404, "text/plain", "Sayfa bulunamadi.");
}

String HTML(bool odaDurum[]) {
  String metin = "<!DOCTYPE html> <html>\n";
  metin += "<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">\n";
  metin += "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\">";
  metin += "<title>LED ve Röle Kontrol</title>\n";
  metin += "<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}\n";
  metin += "body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;} h3 {color: #444444;margin-bottom: 50px;}\n";
  metin += ".button {display: block;width: 80px;background-color: #1abc9c;border: none;color: white;padding: 13px 30px;text-decoration: none;font-size: 25px;margin: 0px auto 35px;cursor: pointer;border-radius: 4px;}\n";
  metin += ".button-on {background-color: #1abc9c;}\n";
  metin += ".button-on:active {background-color: #16a085;}\n";
  metin += ".button-off {background-color: #34495e;}\n";
  metin += ".button-off:active {background-color: #2c3e50;}\n";
  metin += "p {font-size: 14px;color: #888;margin-bottom: 10px;}\n";
  metin += "</style>\n";
  metin += "</head>\n";
  metin += "<body>\n";
  metin += "<h1>ESP8266 Web Server Uygulaması</h1>\n";
  metin += "<h3>ESP Station(STA) Modunda Kullanılıyor</h3>\n";

  for (no = 0; no < 8; no++) {
    if (odaDurum[no])
      metin += oda[no] + "<p> Durum: AÇIK</p><a class=\"button button-off\" href=\oda[no] >KAPAT</a>\n";
    else
      metin += oda[no] + "<p> Durum: KAPALI</p><a class=\"button button-on\" href=\oda[no] >AÇ</a>\n";
  }



  metin += "</body>\n";
  metin += "</html>\n";
  return metin;
}

#include <ESP8266WiFi.h> // NodeMCU kurulumuyla gelir.
#include <ESP8266WebServer.h> // NodeMCU kurulumuyla gelir.

/*Ağ adınızı ve Şifrenizi Giriniz*/
const char* kablosuzAgAdi = "ZyXEL";  // Ağ adınızı girin.
const char* sifre = "CK4YTTFPACTL";  //Ağ şifrenizi girin.

ESP8266WebServer server(80); //80 portunu kullanarak bir server isimli nesne oluşturdu.

const byte salonPin = D0, mutfakPin = D1, yatakPin = D2, banyoPin = D3;
bool salonDurum, mutfakDurum, yatakDurum, banyoDurum;

void setup() {
  Serial.begin(9600);
  delay(100);
  pinMode(salonPin, OUTPUT);
  pinMode(mutfakPin, OUTPUT);
  pinMode(yatakPin, OUTPUT);
  pinMode(banyoPin, OUTPUT);

  Serial.println(kablosuzAgAdi);
  Serial.println(" Ağına Bağlanılıyor");

  WiFi.begin(kablosuzAgAdi, sifre);

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("Ağ bağlantısı sağlandı.");
  Serial.print("IP Adresiniz: ");  Serial.println(WiFi.localIP());

  server.on("/", hepsiKapali);
  server.on("/s1", salonAcik);
  server.on("/s0", salonKapali);
  server.on("/m1", mutfakAcik);
  server.on("/m0", mutfakKapali);
  server.on("/y1", yatakAcik);
  server.on("/y0", yatakKapali);
  server.on("/b1", banyoAcik);
  server.on("/b0", banyoKapali);
  server.onNotFound(sayfaBulunamadi);

  server.begin();
  Serial.println("HTTP Sunucusu Başlatıldı");
}
void loop() {
  server.handleClient();
  if (salonDurum)
    digitalWrite(salonPin, HIGH);
  else
    digitalWrite(salonPin, LOW);

  if (mutfakDurum)
    digitalWrite(mutfakPin, HIGH);
  else
    digitalWrite(mutfakPin, LOW);

  if (yatakDurum)
    digitalWrite(yatakPin, HIGH);
  else
    digitalWrite(yatakPin, LOW);

  if (banyoDurum)
    digitalWrite(banyoPin, HIGH);
  else
    digitalWrite(banyoPin, LOW);
}

void hepsiKapali() {
  salonDurum = LOW;
  mutfakDurum = LOW;
  yatakDurum = LOW;
  banyoDurum = LOW;
  server.send(200, "text/html", HTML(salonDurum, mutfakDurum, yatakDurum, banyoDurum ));
}

void salonAcik() {
  salonDurum = HIGH;
  server.send(200, "text/html", HTML(true, mutfakDurum, yatakDurum, banyoDurum));
}

void salonKapali() {
  salonDurum = LOW;
  server.send(200, "text/html", HTML(false, mutfakDurum, yatakDurum, banyoDurum));
}

void mutfakAcik() {
  mutfakDurum = HIGH;
  server.send(200, "text/html", HTML(salonDurum, true, yatakDurum, banyoDurum));
}

void mutfakKapali() {
  mutfakDurum = LOW;
  server.send(200, "text/html", HTML(salonDurum, false, yatakDurum, banyoDurum));
}

void yatakAcik() {
  yatakDurum = HIGH;
  server.send(200, "text/html", HTML(salonDurum, mutfakDurum, true, banyoDurum));
}

void yatakKapali() {
  yatakDurum = LOW;
  server.send(200, "text/html", HTML(salonDurum, mutfakDurum, false, banyoDurum));
}

void banyoAcik() {
  banyoDurum = HIGH;
  server.send(200, "text/html", HTML(salonDurum, mutfakDurum, yatakDurum, true));
}

void banyoKapali() {
  banyoDurum = LOW;
  server.send(200, "text/html", HTML(salonDurum, mutfakDurum, yatakDurum, false));
}

void sayfaBulunamadi() {
  server.send(404, "text/plain", "Sayfa Bulunamadı");
}

String HTML(uint8_t salonDurum, uint8_t mutfakDurum, uint8_t yatakDurum, uint8_t banyoDurum) {
  String metin = "<!DOCTYPE html> <html>\n";
  metin += "<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">\n";
  metin += "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\">";
  metin += "<title>Akıllı ev aydınlatma uygulaması</title>\n";
  metin += "<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}\n";
  metin += "body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;} h3 {color: #444444;margin-bottom: 50px;}\n";
  metin += ".button {display: block;width: 80px;background-color: #1abc9c;border: none;color: white;padding: 13px 30px;text-decoration: none;font-size: 25px;margin: 0px auto 35px;cursor: pointer;border-radius: 4px;}\n";
  metin += ".button-on {background-color: #1abc9c;}\n";
  metin += ".button-on:active {background-color: #16a085;}\n";
  metin += ".button-off {background-color: #34495e;}\n";
  metin += ".button-off:active {background-color: #2c3e50;}\n";
  metin += "p {font-size: 14px;color: #888;margin-bottom: 10px;}\n";
  metin += "</style>\n";
  metin += "</head>\n";
  metin += "<body>\n";
  metin += "<h1>Akıllı ev aydınlatma uygulaması</h1>\n";

  if (salonDurum)
    metin += "<p>Salon</p><a class=\"button button-off\" href=\"/s0\">KAPAT</a>\n";
  else
    metin += "<p>Salon</p><a class=\"button button-on\" href=\"/s1\">AÇ</a>\n";

  if (mutfakDurum)
    metin += "<p>Mutfak</p><a class=\"button button-off\" href=\"/m0\">KAPAT</a>\n";
  else
    metin += "<p>Mutfak</p><a class=\"button button-on\" href=\"/m1\">AÇ</a>\n";
  if (yatakDurum)
    metin += "<p>Yatak odası</p><a class=\"button button-off\" href=\"/y0\">KAPAT</a>\n";
  else
    metin += "<p>Yatak odası</p><a class=\"button button-on\" href=\"/y1\">AÇ</a>\n";
  if (banyoDurum)
    metin += "<p>Banyo</p><a class=\"button button-off\" href=\"/b0\">KAPAT</a>\n";
  else
    metin += "<p>Banyo</p><a class=\"button button-on\" href=\"/b1\">AÇ</a>\n";

  metin += "</body>\n";
  metin += "</html>\n";
  metin += "<h3>ESP Station(STA) Modunda Kullanılıyor</h3>\n";
  return metin;
}

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

/*Ağ adınızı ve Şifrenizi Giriniz*/
const char* kablosuzAgAdi = "ZyXEL";  // Ağ adınızı girin
const char* sifre = "CK4YTTFPACTL";  //Ağ şifrenizi girin

ESP8266WebServer server(80); //80 portunu kullanarak bir webserver nesnesi oluşturduk

bool odaDurum[8];
byte odaPin[] = {16, 5,  4, 0,  2,  14,  12,  13}; // D0 - D7 GPIO pin numaraları.
byte oda[8];
byte no;

void setup() {
  Serial.begin(9600);
  delay(100);
  for (byte i = 0; i < 8; i++)
    pinMode(odaPin[i], OUTPUT);


  Serial.println(kablosuzAgAdi);
  Serial.println(" Ağına Bağlanılıyor");

  //yerel ağınıza bağlanmanız için gerekli komut
  WiFi.begin(kablosuzAgAdi, sifre);

  //bağlantının gerçekleştiğini kontrol ediyoruz
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print("."); //gerçekleşene kadar loading gibi işaret yaptırıyoruz
  }
  Serial.println("");
  Serial.println("Ağ Bağlantısı Sağlandı..!");
  Serial.print("IP Adresiniz: ");  Serial.println(WiFi.localIP());

  server.on("/", bagli);
  //  server.on("/led1on", LED1acik);
  //  server.on("/led1off", LED1kapali);
  //  server.on("/led2on", LED2acik);
  //  server.on("/led2off", LED2kapali);
  server.onNotFound(sayfaBulunamadi);

  server.begin();
  Serial.println("HTTP Sunucusu Başlatıldı");
}
void loop() {
  server.handleClient(); // İstemciden gelen verileri işle.
  for (byte i = 0; i < 8; i++) {
    if (odaDurum[i])
      digitalWrite(odaPin[i], HIGH);
    else
      digitalWrite(odaPin[i], LOW);
  }
}

void bagli() {
  for (byte i = 0; i < 8; i++) {
    //  odaDurum[i] = LOW;
    //  Serial.print(odaPin[i]);
    //  Serial.println(". Durumu: KAPALI");
    server.send(200, "text/html", HTML(&oda[i], &odaDurum[i]));
  }
}
//void led1on() {
//  LED1durum = LOW; // NodeMCU 1.0 (ESP-12E) D4 pini. Dahili LED aktif 0'dır.
//  Serial.println("GPIO7 Durumu: AÇIK");
//  server.send(200, "text/html", HTML(true, LED2durum));
//}
//void led1off() {
//  LED1durum = HIGH;
//  Serial.println("GPIO7 Durumu: KAPALI");
//  server.send(200, "text/html", HTML(false, LED2durum));
//}
//
//
//void LED1acik() {
//  LED1durum = HIGH;
//  Serial.println("GPIO7 Durumu: AÇIK");
//  server.send(200, "text/html", HTML(true, LED2durum));
//}
//
//void LED1kapali() {
//  LED1durum = LOW;
//  Serial.println("GPIO7 Durumu: KAPALI");
//  server.send(200, "text/html", HTML(false, LED2durum));
//}
//
//void LED2acik() {
//  LED2durum = HIGH;
//  Serial.println("GPIO6 Durumu: AÇIK");
//  server.send(200, "text/html", HTML(LED1durum, true));
//}
//
//void LED2kapali() {
//  LED2durum = LOW;
//  Serial.println("GPIO6 Durumu: KAPALI");
//  server.send(200, "text/html", HTML(LED1durum, false));
//}

void sayfaBulunamadi() {
  server.send(404, "text/plain", "Sayfa Bulunamadi.");
}

String HTML(byte oda[], bool odaDurum[]) {
  String metin = "<!DOCTYPE html> <html>\n";
  metin += "<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">\n";
  metin += "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\">";
  metin += "<title>LED ve Röle Kontrol</title>\n";
  metin += "<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}\n";
  metin += "body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;} h3 {color: #444444;margin-bottom: 50px;}\n";
  metin += ".button {display: block;width: 80px;background-color: #1abc9c;border: none;color: white;padding: 13px 30px;text-decoration: none;font-size: 25px;margin: 0px auto 35px;cursor: pointer;border-radius: 4px;}\n";
  metin += ".button-on {background-color: #1abc9c;}\n";
  metin += ".button-on:active {background-color: #16a085;}\n";
  metin += ".button-off {background-color: #34495e;}\n";
  metin += ".button-off:active {background-color: #2c3e50;}\n";
  metin += "p {font-size: 14px;color: #888;margin-bottom: 10px;}\n";
  metin += "</style>\n";
  metin += "</head>\n";
  metin += "<body>\n";
  metin += "<h1>ESP8266 Web Server Uygulaması</h1>\n";
  metin += "<h3>ESP Station(STA) Modunda Kullanılıyor</h3>\n";

  for (no = 0; no < 8; no++) {
    if (odaDurum[no])
      metin += oda[no] + "<p> Durum: AÇIK</p><a class=\"button button-off\" href=oda[no] >KAPAT</a>\n";
    else
      metin += oda[no] + "<p> Durum: KAPALI</p><a class=\"button button-on\" href=oda[no] >AÇ</a>\n";
  }

  metin += "</body>\n";
  metin += "</html>\n";
  return metin;
}

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

/*Ağ adınızı ve Şifrenizi Giriniz*/
const char* kablosuzAgAdi = "ZyXEL";  // Ağ adınızı girin
const char* sifre = "CK4YTTFPACTL";  //Ağ şifrenizi girin

ESP8266WebServer server(80); //80 portunu kullanarak bir webserver nesnesi oluşturduk

const byte LED1 = D4; // GPIO2 pini D4 pini çıkış. (Dahili LED.)
bool LED1durum = LOW;

const byte LED2 = D6;
bool LED2durum = LOW;

void setup() {
  Serial.begin(9600);
  delay(100);
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);


  Serial.println(kablosuzAgAdi);
  Serial.println(" Ağına Bağlanılıyor");

  //yerel ağınıza bağlanmanız için gerekli komut
  WiFi.begin(kablosuzAgAdi, sifre);

  //bağlantının gerçekleştiğini kontrol ediyoruz
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print("."); //gerçekleşene kadar loading gibi işaret yaptırıyoruz
  }
  Serial.println("");
  Serial.println("Ağ Bağlantısı Sağlandı..!");
  Serial.print("IP Adresiniz: ");  Serial.println(WiFi.localIP());

  server.on("/", bagli);
  server.on("/led1on", LED1acik);
  server.on("/led1off", LED1kapali);
  server.on("/led2on", LED2acik);
  server.on("/led2off", LED2kapali);
  server.onNotFound(sayfaBulunamadi);

  server.begin();
  Serial.println("HTTP Sunucusu Başlatıldı");
}
void loop() {
  server.handleClient();
  if (LED1durum)
  {
    digitalWrite(LED1, HIGH);
  }
  else
  {
    digitalWrite(LED1, LOW);
  }

  if (LED2durum)
  {
    digitalWrite(LED2, HIGH);
  }
  else
  {
    digitalWrite(LED2, LOW);
  }
}

void bagli() {
  LED1durum = LOW;
  LED2durum = LOW;
  Serial.println("GPIO7 Durumu: KAPALI | GPIO6 Durumu: KAPALI");
  server.send(200, "text/html", HTML(LED1durum, LED2durum));
}
void led1on() {
  LED1durum = LOW; // NodeMCU 1.0 (ESP-12E) D4 pini. Dahili LED aktif 0'dır.
  Serial.println("GPIO7 Durumu: AÇIK");
  server.send(200, "text/html", HTML(true, LED2durum));
}
void led1off() {
  LED1durum = HIGH;
  Serial.println("GPIO7 Durumu: KAPALI");
  server.send(200, "text/html", HTML(false, LED2durum));
}


void LED1acik() {
  LED1durum = HIGH;
  Serial.println("GPIO7 Durumu: AÇIK");
  server.send(200, "text/html", HTML(true, LED2durum));
}

void LED1kapali() {
  LED1durum = LOW;
  Serial.println("GPIO7 Durumu: KAPALI");
  server.send(200, "text/html", HTML(false, LED2durum));
}

void LED2acik() {
  LED2durum = HIGH;
  Serial.println("GPIO6 Durumu: AÇIK");
  server.send(200, "text/html", HTML(LED1durum, true));
}

void LED2kapali() {
  LED2durum = LOW;
  Serial.println("GPIO6 Durumu: KAPALI");
  server.send(200, "text/html", HTML(LED1durum, false));
}

void sayfaBulunamadi() {
  server.send(404, "text/plain", "Sayfa Bulunamadı");
}

String HTML(uint8_t led1Durum, uint8_t led2Durum) {
  String metin = "<!DOCTYPE html> <html>\n";
  metin += "<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=no\">\n";
  metin += "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\">";
  metin += "<title>LED ve Röle Kontrol</title>\n";
  metin += "<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}\n";
  metin += "body{margin-top: 50px;} h1 {color: #444444;margin: 50px auto 30px;} h3 {color: #444444;margin-bottom: 50px;}\n";
  metin += ".button {display: block;width: 80px;background-color: #1abc9c;border: none;color: white;padding: 13px 30px;text-decoration: none;font-size: 25px;margin: 0px auto 35px;cursor: pointer;border-radius: 4px;}\n";
  metin += ".button-on {background-color: #1abc9c;}\n";
  metin += ".button-on:active {background-color: #16a085;}\n";
  metin += ".button-off {background-color: #34495e;}\n";
  metin += ".button-off:active {background-color: #2c3e50;}\n";
  metin += "p {font-size: 14px;color: #888;margin-bottom: 10px;}\n";
  metin += "</style>\n";
  metin += "</head>\n";
  metin += "<body>\n";
  metin += "<h1>ESP8266 Web Server Uygulaması</h1>\n";
  metin += "<h3>ESP Station(STA) Modunda Kullanılıyor</h3>\n";

  if (led1Durum)
  {
    metin += "<p>LED1 Durum: AÇIK</p><a class=\"button button-off\" href=\"/led1off\">KAPAT</a>\n";
  }
  else
  {
    metin += "<p>LED1 Durum: KAPALI</p><a class=\"button button-on\" href=\"/led1on\">AÇ</a>\n";
  }

  if (led2Durum)
  {
    metin += "<p>LED2 Durum: AÇIK</p><a class=\"button button-off\" href=\"/led2off\">KAPAT</a>\n";
  }
  else
  {
    metin += "<p>LED2 Durum: KAPALI</p><a class=\"button button-on\" href=\"/led2on\">AÇ</a>\n";
  }

  metin += "</body>\n";
  metin += "</html>\n";
  return metin;
}

Categories:

Tags:

No responses yet

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Dersler