Akıllı Evler İçin Mobil Uygulama Geliştirme

Akıllı Evler İçin Mobil Uygulama Geliştirme

Akıllı Ev Sistemleri İçin Mobil Uygulama Nasıl Geliştirilir?

Bu makalede akıllı evler için wifi iletişim ile mobil uygulama geliştirmenin bir yolunu gösteceğiz.

Sitemizde, daha önce BlueTooth ve Wifi uygulamaları yapmıştık. Bluetooth uygulamarının içinde mobil uygulamaların nasıl yapılacağını göstermiştik. Bluetooth özelliği olan cihazlara veri göndermek, bu cihazlardan veri almak konusunda kod örnekleri ve donanım bağlantılarını göstermiştik.

 

Akıllı ev sistemlerinde kullanılan diğer bir iletişim protokülü de wifi protokülüdür. Wifi özelliği olan lambalar, klimalar, televizyonlar, termostatlar motorlar gibi bir pek çok cihaz kontrol edilebilir ve ve bu cihazlar izlenebilir. Lokal ağlardan veya geniş ağlardan cihaz yönetimi, akıllı ev yönetimi için wifi iletişimi çok kullanılan bir iletişim şeklidir.

 

Örnek olarak vereceğimiz wifi modülü bağlanmış sistemi bir önceki makalede göstermiştik. Sistem, bir web tarayıcı üzerinde, IP adresi yazılarak bağlanılan ve yönetilen bir sistemdir. web server.

 

Bu sisteme Mobil uygulama ile bağlanmak ve yönetmek istiyorsak, bu mobil uygulamanın nasıl yapılacağını bilmemiz gerekir. Flutter-Dart ile yaptığımız temel örnek, wifi modülü bağlı bir sisteme mobil uygulama ile nasıl bağlanılacağını gösteren iyi bir örnektir.

Flutter-Dart ile yazdığımız kod örneği ve açıklamaları aşağıda. Bu kodlardaki http.dart kütüphanesi wifi'ye balı bir ağda, wifi cihaza nasıl bağlanmak için komutlar göndermemizi sağlar. Wifi ağ üzerinde Web Server Olarak kurulmuş MCU sisteminin bir IP'si vardır ve mobil uygulamamız bu IP üzerinden Web Server'a bağlanmaktadır. "GET" metodu ile Web Server'a talimatlar göndermektedir.

 

Flutter-Dart Kodları ve Açıklamalar: 

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Lamp Control App')),
        body: LampControlPage(),
      ),
    );
  }
}

class LampControlPage extends StatelessWidget {
  final String serverUrl = 'http://192.168.1.1'; // Sunucunun IP adresini buraya girin

  Future<void> sendCommand(String command) async {
    final response = await http.get(Uri.parse('$serverUrl/$command'));
    if (response.statusCode == 200) {
      print('Komut gönderildi: $command');
    } else {
      print('Komut gönderilirken hata oluştu');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          ElevatedButton(
            onPressed: () {
              sendCommand('lamp/on');
            },
            child: Text('Lamp 1 ON'),
          ),
          ElevatedButton(
            onPressed: () {
              sendCommand('lamp/off');
            },
            child: Text('Lamp 1 OFF'),
          ),
        ],
      ),
    );
  }
}