ESP 12F WiFi Modülü İle Web Sunucu Olarak Kullanım

ESP 12F WiFi Modülü İle Web Sunucu Olarak Kullanım

IoT Temelleri

Günümüzde IoT (Nesnelerin İnterneti) teknolojileri hızla gelişiyor ve evlerimizi, iş yerlerimizi akıllı hale getirmek için yeni fırsatlar sunuyor. Bu teknolojiler arasında ESP 12F WiFi modülü ile oluşturulan web sunucuları da yer alıyor. Bu makalede, ESP 12F WiFi modülünün kullanılarak nasıl bir web sunucusu oluşturulabileceğine dair adım adım bir rehber sunacağız.

Giriş
ESP 12F WiFi modülü, küçük boyutu ve kablosuz iletişim yetenekleri sayesinde IoT projelerinde oldukça popüler hale gelmiştir. Bu projede, ESP 12F modülünü kullanarak basit bir web sunucusu oluşturacağız. Web sunucusu sayesinde, cihazımıza bağlanarak onu uzaktan kontrol edebileceğiz. Özellikle ev otomasyonu projelerinde bu tür bir kontrol oldukça faydalı olabilir.

WEB Server Bağlantı Şeması

Gerekli Malzemeler

ESP 12F WiFi Modülü
Arduino veya Arduino uyumlu bir kart
USB-TTL dönüştürücü (programlama için)
LED
Breadboard ve jumper kablolar
Devre Şeması
Devreyi oluşturmak için aşağıdaki bileşenleri kullanabilirsiniz:
ESP 12F TX pini (Modül RX) -> Arduino Pin 10
ESP 12F RX pini (Modül TX) -> Arduino Pin 11
ESP 12F VCC pini -> 3.3V
ESP 12F GND pini -> GND
LED -> Arduino Pin 7

Kod Açıklaması

ESP 12F modülünü web sunucusu olarak kullanmak için Arduino IDE ve gerekli kütüphaneleri kullanacağız. İlk adımda SoftwareSerial kütüphanesini kullanarak ESP 12F ile seri iletişim kuracağız. Ardından, bir lambayı kontrol edebilmek için LED'i kullanacağız.


setup fonksiyonunda, seri iletişim hızlarını ayarlıyoruz ve ESP 12F modülünü erişim noktası (access point) olarak ayarlıyoruz. Aynı zamanda web sunucusu için gerekli komutları gönderiyoruz.


loop fonksiyonunda, ESP 12F'den gelen verileri kontrol ediyoruz. Eğer gelen veri "CONNECT" içeriyorsa, web sayfasını gönderiyoruz. Ayrıca, gelen HTTP isteklerine göre lambayı açıp kapatıyoruz.

Bu makalede, ESP 12F WiFi modülünü kullanarak nasıl basit bir web sunucusu oluşturabileceğimizi öğrendik. Web sunucusu sayesinde, cihazımızı uzaktan kontrol edebilir ve ev otomasyonu projelerinde kullanabiliriz. Umarım bu rehber, ESP 12F modülünü kullanarak kendi IoT projelerinizi oluşturmanıza yardımcı olur.

Kodlar: 

#include <Arduino.h>
#include <SoftwareSerial.h>

SoftwareSerial espSerial(10, 11); // RX, TX pins for ESP8266

bool lampState = false; // Initial lamp state is off

void setup() {

  pinMode(7, OUTPUT);  // Set pin 13 as an output for the LED
  digitalWrite(7, LOW); // Initially turn off the LED
  
  Serial.begin(9600);
  espSerial.begin(115200);

  delay(1000);

  sendCommand("AT+CWMODE=2"); // Set ESP8266 as access point
  sendCommand("AT+CWSAP=\"poiny\",\"password\",1,3"); // Set SSID and password for the access point
  espSerial.print("AT+CIPSERVER=1,80");  

  Serial.println("Access Point started.");
}

void loop() {
  if (espSerial.available()) {
    String response = espSerial.readStringUntil('\n');
    Serial.println(response);

    if (response.indexOf("CONNECT") != -1) {
      sendWebPage();
    }

    if (response.indexOf("GET /lamp/on") != -1) {
      lampState = true;
      digitalWrite(7, HIGH); // Turn on the LED
      
    } else if (response.indexOf("GET /lamp/off") != -1) {
      lampState = false;
      digitalWrite(7, LOW); // Turn off the LED
    }
  }

  // Perform actions based on lampState, for example, turning on/off the lamp
}

void sendCommand(String cmd) {
  espSerial.println(cmd);
  delay(1000);
  while (espSerial.available()) {
    Serial.write(espSerial.read());
  }
}

void sendWebPage() {
  String content = "<html><body>";
  content += "<h1>Web Server Test Page</h1>";
  content += "<button><a href='/lamp/on'>Lamp 1 ON</a></button>";
  content += "<button><a href='/lamp/off'>Lamp 1 OFF</a></button>";
  content += "</body></html>