Coffio is a Wi-Fi-enabled coffee maker controller built with an ESP8266, a relay, and a mobile-friendly web app. It lets you brew coffee manually or schedule it for a specific time — all from your iPhone. Add it to your home screen and enjoy a native app feel without the App Store.
- ☕ Manual "Make Coffee Now" button
- ⏰ Scheduled brewing (syncs with internet time via NTP)
- 🌐 Web interface hosted by the ESP8266 (LittleFS)
- 📱 Mobile-first aesthetic web app
- 📲 Add-to-home-screen support (PWA-style)
- 🔧 Modular, maintainable C++ code structure
- 1x ESP8266 (NodeMCU, Wemos D1 Mini, etc.)
- 1x Relay Module
- A coffee maker with a mechanical on/off switch
- 5V power supply
coffio/
├── data/ # Web UI files served via LittleFS
│ ├── index.html
│ ├── style.css
│ ├── script.js
│ ├── manifest.json
│ └── cat.jpg
├── include/ # Header files
│ ├── secrets.h # Wi-Fi credentials (excluded from git)
│ ├── web_server.hpp
│ └── scheduler.hpp
├── src/
│ ├── main.cpp # Project entry point
│ ├── web_server.cpp
│ └── scheduler.cpp
├── .gitignore
└── platformio.ini # PlatformIO config
git clone https://github.com/leopers/coffio.git
cd coffioCreate include/secrets.h:
#pragma once
const char* ssid = "YourWiFi";
const char* password = "YourPassword";
⚠️ This file is ignored via.gitignore
pio run --target uploadfspio run --target uploadpio device monitorFind the ESP8266 IP address.
http://<ESP_IP_ADDRESS>
- Open in Safari
- Tap Share → "Add to Home Screen"
- Enjoy your Coffio app ☕
- PlatformIO + Arduino Framework
- LittleFS for serving frontend
- ESP8266WebServer
- NTP time sync (
time.h) - Progressive Web App (PWA) support
- 🔁 Save schedules to EEPROM
- 🔔 Brew notification with tone or LED
- 🔄 OTA firmware updates
- 📊 Brew log viewer
MIT License — do whatever you want, but share some love ☕