Abstract
LWClock is an open-source Internet of Things (IoT) project. Multifunctional clock based on ESP8266 and MAX79xxx for Home Automation (IoT). Compact clock has a variety of functions: Perfect time, Alarm, Measurement of temperature, humidity and atmosphere pressure indoors, Forecasting download, Upload submission to MQTT & Thingspeak server, Display of any predetermined information at set time. Clock has low power consumption and provides high display brightness. It is built using HTML. Key capabilities include: Always precise time because of synchronization with NTP time servers; High display brightness; Indoor temperature, humidity and barometric pressure measurement. The complete source code is publicly available on GitHub under the GNU General Public License v3.0, making it a useful reference for students building an Internet of Things (IoT) mini project or final-year project.
1. Introduction
Compact clock has a variety of functions: Perfect time, Alarm, Measurement of temperature, humidity and atmosphere pressure indoors, Forecasting download, Upload submission to MQTT & Thingspeak server, Display of any predetermined information at set time. Clock has low power consumption and provides high display brightness.
LW-Clock is a device, based on ESP8266 microcontroller and real-time clock DS3231. It uses indicator modules MAX7919 for information output. BME280 sensor provides a precise measurement of indoor temperature, humidity and barometric pressure. An Internet connection via Wi-Fi module helps to synchronize time with NTP servers, to receive and display forecast, news, exchange rate etc. Data from sensors can be transmitted via MQTT protocol or displayed on popular monitoring service thingspeak.com. Clock can display predetermined information (reminders, greetings, advertisements, time-schedules etc.) according on schedule. Display of text messages, transmitted from any place via MQTT is also possible. Clock adjustment and manipulation is performed via WEB-interface. Micro-USB connector allows to use any low-duty USB-charger to power the device.
2. Objective
Multifunctional clock based on ESP8266 and MAX79xxx for Home Automation (IoT)
This project demonstrates how HTML can be applied to a real-world Internet of Things (IoT) problem.
3. Key Features / Modules
- Always precise time because of synchronization with NTP time servers
- High display brightness
- Indoor temperature, humidity and barometric pressure measurement
- Sending temperature, humidity and barometric pressure data to MQTT and Thingspeak.com server
- Getting a weather information and forecast for your city (temperature, barometric pressure, humidity, cloud and wind structure)
- Output of any predetermined information in the form of a creeping line
- Remote transmission of any text messages via MQTT server and it’s output on the clock
- No buttons – control the clock via WEB-interface from PC, tablet or smartphone
- Brightness and output speed of adjustment
- Two alarm clocks
4. Technology Stack
- ArduinoJson by Benoit Blanchon (version 6.13.0)
- TimeLib by Paul Stoffregen (version 1.5)
- MD_Parola by majicDesigns (version 3.2.0)
- MD_MAX72XX by majicDesigns (version 3.2.1)
- MD_MAXPanel by majicDesigns (version 1.2.3)
- PubSubClient by Nick O'Leary (version 2.7)
- RTClib by Adafruit (version 1.3.3)
- Adafruit Unified Sensor by Adafruit (version 1.0.3) (for DHT sensor only)
5. System Requirements
General requirements for this technology stack — check the README for exact versions.
- A modern web browser
- VS Code or any code editor
- Git (to clone the repository)
6. Installation & Setup
git clone https://github.com/Lightwell-bg/LWClock.git
cd LWClock- Install the Arduino IDE
- Install the CH340G driver
- In the preferences dialog of the Arduino IDE, add http://arduino.esp8266.com/stable/package_esp8266com_index.json to the Additional Boards Manager URLs
- Open Boards Manager (under Tools), search for and install the latest version of esp8266.
- Install the Arduino ESP8266 filesystem uploader plugin (requires restart of IDE)
- Load and install used libraries
- Connect your D1 mini to the computer using a micro USB cable
- In Tools > Flash Size: select 4M (1M SPIFFS) -- this project requires SPIFFS for saving and reading configuration settings.
Full setup instructions are in the project README.
7. Future Enhancements
Suggested extensions you can add to make this your own project.
- Add a mobile dashboard using Blynk or Firebase
- Store readings in a cloud database for history charts
- Add alerts via SMS / Telegram when thresholds are crossed
8. Viva / Review Questions
Common questions examiners ask for projects in this domain.
- Which microcontroller / board and sensors are used and why?
- How does the device send data (Wi-Fi, MQTT, HTTP, Bluetooth)?
- Where is the sensor data stored and visualised?
- How is power consumption managed?
- How would you secure the device and its communication?
9. Source Code & License
This project is developed by Lightwell-bg and published on GitHub under the GNU General Public License v3.0. Please follow the license terms and credit the original author when you use or modify this code.
Want to build this as your internship project?
Work on an Internet of Things (IoT) project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.
Apply for Internet of Things (IoT) Internship