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 “aç” 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.