ESP8266 serisinden olan ESP-01 WIFI Modülü ile Arduino gibi mikrodenetleyici kartlarının WIFI ağına bağlanmasını sağlamaktadır.
ESP8266 ESP-01 WIFI Modülü dahili mikroişlemcisi ile 2 GPIO ve 1 MB bellek bulunmaktadır.ESP-01 WIFI modülü dahili TCP / IP özelliğine sahiptir.
ESP8266, Espressif firması tarafından üretilmiş bir 32-pin entegredir ve 16 GPIO’ya kadar desteklemektedir. ESP-01 modülü ise uygun fiyatı ve sınırlı sayıda GPIO bağlantısı (2 adet) ile mevcutda bulunan Arduino gibi mikrodenetleyici kartlarına WIFI bağlantısı eklemek için kullanılmaktadır Eğer ESP8266 ve WIFI bağlantısı ile projeleri tek başına kullanılabilen bir kart ile yapmak istiyorsanız, Arduino gibi direkt Arduino IDE üzerinden programlanabilen ESP8266 NodeMCU ESP-12E Geliştirme Kartını önermekteyiz. Tek başına kullanılan NODEMCU kartını buradan inceleyebilirsiniz.
Arduino gibi mikrodenetleyici kartlar ile IOT üzerine yapılmak istenilen projelerde ESP-01 modülü ile WIFI özellik Arduino kartlarınıza eklenebilmektedir. Fakat ESP-01 modülü 5Volta toleranslı değildir. 3.3V altında çalışmaktadır. Arduino kartlarında bulunan 3.3V çıkışının ise akım gücü ESP-01 WIFI modülü için yeterli gelmemektedir. Eğer ESP-01 WIFI modülü Arduino UNO R3 kartlarınızla kullanmak istiyorsanız aşağıdaki devreyi kurmanız ya da seviye dönüştürücü kullanmanız gerekmektedir.
ESP8266 Wifi Modülü Nasıl Kullanılır?
#define ag_ismi "Wifi Adresi"
#define ag_sifresi "Wifi Sifresi"
void setup()
{
Serial.begin(115200); //Seriport'u açıyoruz. Güncellediğimiz
//ESP modülünün baudRate değeri 115200 olduğu için bizde Seriport'u 115200 şeklinde seçiyoruz
Serial.println("AT"); //ESP modülümüz ile bağlantı kurulup kurulmadığını kontrol ediyoruz.
pinMode(13,OUTPUT);
delay(3000); //ESP ile iletişim için 3 saniye bekliyoruz.
if(Serial.find("OK")){ //esp modülü ile bağlantıyı kurabilmişsek modül "AT" komutuna "OK" komutu ile geri dönüş yapıyor.
Serial.println("AT+CWMODE=1"); //esp modülümüzün WiFi modunu STA şekline getiriyoruz. Bu mod ile modülümüz başka ağlara bağlanabilecek.
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 = "<head> Hello World </head>";
metin += "<br><a href=\" ?pin=on\"><button type='button'>ON</button></a>";
metin += "<br><a href=\" ?pin=off\"><button type='button'>OFF</button></a>";
String cipsend = "AT+CIPSEND=";
cipsend +="0";
cipsend +=",";
cipsend += metin.length();
cipsend += "\r\n";
Serial.print(cipsend);
delay(500);
Serial.println(metin);
led_yakma();
Serial.println("AT+CIPCLOSE=0");
}
}
}
void led_yakma(){
String gelen ="";
char serialdenokunan;
while(Serial.available()>0){
serialdenokunan = Serial.read();
gelen +=serialdenokunan;
}
Serial.println(gelen);
if((gelen.indexOf(":GET /?pin=on")>1)){ //on butonuna basıldığında server adresinde /?pin=on var ise
digitalWrite(13,HIGH); //ledi yakar
}
if((gelen.indexOf(":GET /?pin=off")>1)){ // off butonuna basıldığında server adresinde /?pin=off var ise
digitalWrite(13,LOW); //ledi söndürür
}
}
İncelemeler
Henüz inceleme yapılmadı.