Skip to content

Home Automation App using Flutter, Adafruit IO & Esp32 dev board.

License

Notifications You must be signed in to change notification settings

JobinBiju/Home-Fi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Home-Fi: Smart Home Automation System

Home-Fi Logo

Flutter ESP32 Adafruit IO

A modern home automation solution combining Flutter's beautiful UI with ESP32's powerful capabilities and Adafruit IO's reliable cloud infrastructure.

✨ Features

  • 🏠 Control multiple home appliances remotely
  • 💡 RGB light control with color picker
  • 📊 Real-time device status monitoring
  • 🌡️ Temperature and humidity sensing
  • 🔐 Secure communication with Adafruit IO
  • 📱 Beautiful, responsive Flutter UI
  • ⚡ Low-latency ESP32 control

🎯 System Architecture

Mobile App (Flutter) <-> Adafruit IO Cloud <-> ESP32 Device <-> Home Appliances
  • Flutter App: Handles user interface and cloud communication
  • Adafruit IO: Manages device state and real-time data
  • ESP32: Controls physical devices and sensors

🚀 Getting Started

Prerequisites

  • Flutter SDK (2.0 or higher)
  • Arduino IDE
  • ESP32 Development Board
  • Adafruit IO Account
  • Basic electronic components (relays, RGB LED, sensors)

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/home-fi.git
    cd home-fi
  2. Set up Flutter app

    flutter pub get
  3. Configure Adafruit IO

    • Create an Adafruit IO account
    • Set up required feeds (switches, RGB values, sensor data)
    • Copy your AIO Key
  4. ESP32 Setup

    • Install required libraries in Arduino IDE
    • Update credentials in ESP32 code
    #define IO_USERNAME  "your_username"
    #define IO_KEY       "your_aio_key"
  5. Run the app

    flutter run

📱 User Interface

Splash Screen Dashboard RGB Control
Splash Screen Dashboard RGB Control

🛠️ Hardware Setup

Components Required

  • ESP32 Development Board
  • Relay Module (for appliance control)
  • RGB LED Strip
  • DHT11/DHT22 Sensor (optional)
  • Power Supply
  • Connecting Wires

📡 Communication Protocol

The system uses MQTT protocol for communication:

  • Topics: Organized by device type (switches/rgb/sensors)
  • Message Format: JSON payloads for complex data
  • Update Frequency: Real-time for switches, 1s for sensor data

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Flutter team for the amazing framework
  • Adafruit for their reliable IoT platform
  • ESP32 community for their extensive documentation

☕ Support

Buy Me A Coffee