Arduino ve ESP8266 wifi modülünü bağladığımız ve uzaktan led ışıkları yakıp söndürdüğümüz uygulamalardan sonra sesli bir çıktı alacağımız bir uygulama yapmasak olmazdı. Arduino'da hoparlör bağlantısı yapıncaya kadar şimdilik sesli çıktılarımızı buzzer ile almaya devam ediyoruz ve aktif buzzer ile aşağıdaki gibi bir devre hazırlıyoruz.
Kodlarımızı çalıştırdığımızda bizi karşılayacak olan html arayüzü ise bootstrap ve Türkçe karakter desteği ile birlikte şu şekilde olacak:
Bu arayüzde buzzer'a bağır dediğimizde arada direnç olduğu için çok olmasa da ses çıkartacak ve sus tuşuna bastığımızda da sesi kesilecek. Gelelim kodlamaya:
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>BUZZER</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);
buzzer();
Serial.println("AT+CIPCLOSE=0");
}
}
}
void buzzer(){
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);
}
Serial.println(gelen);
if((gelen.indexOf(":GET /?durum=yak2")>1)){
digitalWrite(12,HIGH);
}
if((gelen.indexOf(":GET /?durum=sondur2")>1)){
digitalWrite(12,LOW);
}
}