Flutter-Dart ile Wifi Cihazların Kontrolü

Flutter-Dart ile Wifi Cihazların Kontrolü

Bu yazımızda, Flutter-Dart programlama dili ile Wifi modülü bağlı bir mikrodenetleyiciye kontrol komutlarını nasıl göndereceğimizi inceleyeceğiz. Fakat ilk önce, Wifi temelli kontrol uygulamalarından bazı örnekler verelim:

Wi-Fi kontrollü ev cihazlarından bazı örnek uygulamalar şunlardır:

Akıllı termostatlar: Bu cihazlar, evin ısıtma ve soğutma sistemlerini Wi-Fi aracılığıyla kontrol etmenizi sağlar. Bu sayede evinizin sıcaklığını uzaktan kontrol edebilir ve enerji tasarrufu sağlayabilirsiniz.

Akıllı aydınlatma: Bu cihazlar, evinizi Wi-Fi üzerinden kontrol ederek aydınlatma düzeninizi değiştirmenize izin verir. Bu, örneğin ışıklarınızı açmak, kapatmak veya parlaklığını ayarlamak gibi işlevler sağlar.

Akıllı güvenlik kameraları: Bu cihazlar, Wi-Fi aracılığıyla evinizi uzaktan izlemenizi sağlar. Bu sayede evinizi izlemek için herhangi bir yerden bir akıllı telefon veya tablet kullanabilirsiniz.

Akıllı kapı kilidi: Bu cihazlar, Wi-Fi aracılığıyla evinizin kapısını kilitlemenizi ve kilidini açmanızı sağlar. Bu sayede kapınıza uzaktan erişebilir ve misafirlerinizi içeri alabilirsiniz.

Akıllı prizler: Bu cihazlar, Wi-Fi aracılığıyla prizlerinizi kontrol etmenizi sağlar. Bu sayede prizlerinizi açmak veya kapatmak için herhangi bir yerden bir akıllı telefon veya tablet kullanabilirsiniz.

Bu örnekler daha da çoğaltılabilir.

Flutter-Dart kodları tarafında kodları inceleyelim.  Görsel widget’lara girmeden sade bir kodla kodları inceleyelim. Aşağıdaki gibi bir örnek Flutter kodu kullanarak ESP 12f Wifi modülüne HTTP GET istekleri gönderebilirsiniz. Bu kod örneği, web sunucusu olarak ESP 12f modülünün IP adresini ve 80 numaralı bağlantı noktasını kullanır ve açma ve kapama gibi basit komutlar gönderir. Elbette, bu “” ve “kapa” gibi komutlar çoğaltılabilir.

import 'package:http/http.dart' as http;

void main() {

  turnOn(); // send data to ESP 12f

  turnOff(); // send data to ESP 12f

}

 

void turnOn() async {

  var response = await http.get('http://ESP_12f_IP_adrs:80/on');

  if (response.statusCode == 200) {

    print('ESP 12f open');

  } else {

    print('Hata: ${response.statusCode}');

  }

}

 

void turnOff() async {

  var response = await http.get('http://ESP_12f_IP_adrs:80/off');

  if (response.statusCode == 200) {

    print('ESP 12f closed');

  } else {

    print('Hata: ${response.statusCode}');

  }

}

 

ESP 12f modülünün IP adresini, kodunuzun çalışacağı yerdeki ağa bağlı olarak değiştirmeniz gerekebilir. Bu kod, HTTP GET istekleri göndererek ESP 12f modülünün web sunucusuna komutlar gönderir ve cevap olarak bir HTTP durum kodu alır. Kodunuzu ESP 12f modülünüzün belirli komutlarını göndermek için uyarlayabilirsiniz.

Mikrodenetleyici tarafında ise bir ESp 12f wifi modülü var.  Arduino ile deneyeceğimiz örnek kodlar aşağıda. Kod örneği, ESP 12f WiFi modülü üzerinden gelen istekleri algılayan ve gelen verileri seri porta yazan bir web sunucusu oluşturacaktır. String olarak aldığımız bu komutları seri porta yazdırabildiğimiz gibi “if” komut blokları içinde başka fonksiyonları çalıştırmak için kullanabiliriz:

 

#include <ESP8266WiFi.h>

#include <WiFiClient.h>

const char* ssid = "Wifi_SSID"; // WiFi net SSID

const char* password = "Wifi_şifresi"; // WiFi password

WiFiServer server(80); // Web server port number

 

void setup() {

  Serial.begin(9600); // Serial port için baud rate

  delay(10);

 

  // WiFi connect

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {

    delay(1000);

    Serial.println("WiFi connecting...");

  }

 

  Serial.println("WiFi connected.");

 

  // Web server open port

  server.begin();

  Serial.println("Web server started.");

}

 

void loop() {

  // new request controlling

  WiFiClient client = server.available();

  if (!client) {

    return;

  }

 

  // on request, arrived data

  Serial.println("new request!.");

  while (client.connected()) {

    if (client.available()) {

      String request = client.readStringUntil('\r');

      Serial.println(request);

    }

  }

 

  // close

  client.stop();

  Serial.println("closed.");

}

 

ESP 12f WiFi modülünü kullanarak bir web sunucusu oluşturur. Arduino kartı, web sunucusu olarak çalışır ve gelen istekleri alır. İstekler seri porta yazdırılır ve ardından bağlantı kapatılır. Bu kodu kullanarak, ESP 12f modülünden gelen istekleri seri port üzerinden takip edebilirsiniz.