Arduino ve ESP8266 modüllerinin bağlantısı sağlandığına ve wifi üzerinden led yakıp söndürme komutları gönderilebildiğine göre mantığın anlaşılabilmesi ve arayüzün biraz daha güzelleştirilebilmesi için yakıp söndüreceğimiz led sayısını 2'ye çıkartalım ve 12. pine de bir led ekleyelim. Proje çalıştığında ve ledlerin her ikisi de telefonla ya da bilgisayardan wifi aracılığı ile yakıldığında şöyle görünecek:
HTML ile kodladığımız web arayüzüne önceki örnekte Türkçe karakter desteğini eklemiştik, bu örnekte de bootstrap css ekleyerek butonları biraz daha görsel bir hale getirelim.
Çok şık sayılmaz ama önceki arayüzle kıyaslandığında çok daha güzel durduğu söylenebilir. Şimdi modemde bağlantı kurulcak ağ ismi ve ağ şifresi xxx yazan yerlere yazılacak şekilde aşağıdaki kodları Arduino'ya yükleyelim.
Proje kodları:
#define ag_ismi "xxx"
#define ag_sifresi "xxx"
void setup()
{
Serial.begin(115200);
Serial.println("AT");
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
delay(3000);
if(Serial.find("OK")){
Serial.println("AT+CWMODE=1");
delay(2000);
String baglantiKomutu=String("AT+CWJAP=\"")+ag_ismi+"\",\""+ag_sifresi+"\"";
Serial.println(baglantiKomutu);
delay(5000);
}
Serial.print("AT+CIPMUX=1\r\n");
delay(200);
Serial.print("AT+CIPSERVER=1,80\r\n");
delay(1000);
}
void loop(){
if(Serial.available()>0){
if(Serial.find("+IPD,")){
String metin ="<HTML><head>"
"<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'>"
"<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>"
"</head> "
"<h1>LED1</h1>";
metin += "<br><a href=\" ?durum=yak1\" class=\"btn btn-success\">Beyaz Ledi Yak</a>";
metin += "<br><a href=\" ?durum=sondur1\" class=\"btn btn-danger\">Beyaz Ledi Söndür</a>";
metin += "<br><a href=\" ?durum=yak2\" class=\"btn btn-success\">Kırmızı Ledi Yak</a>";
metin += "<br><a href=\" ?durum=sondur2\" class=\"btn btn-danger\">Kırmızı Ledi Söndür</a>"
"</html>";
String cipsend = "AT+CIPSEND=";
cipsend +="0";
cipsend +=",";
cipsend += metin.length();
cipsend += "\r\n";
Serial.print(cipsend);
delay(500);
Serial.println(metin);
ledYak();
Serial.println("AT+CIPCLOSE=0");
}
}
}
void ledYak(){
String gelen ="";
char serialdenokunan;
while(Serial.available()>0)
{
serialdenokunan = Serial.read();
gelen +=serialdenokunan;
}
Serial.println(gelen);
if((gelen.indexOf(":GET /?durum=yak1")>1)){
digitalWrite(13,HIGH);
}
if((gelen.indexOf(":GET /?durum=sondur1")>1)){
digitalWrite(13,LOW);
}
if((gelen.indexOf(":GET /?durum=yak2")>1)){
digitalWrite(12,HIGH);
}
if((gelen.indexOf(":GET /?durum=sondur2")>1)){
digitalWrite(12,LOW);
}
Serial.println(gelen);
}
İki ledi farklı butonlarla yakıpp söndürmenin basit bir uygulamasını hazırlamış olduk, daha yapacağımız çok uygulama var :)