Abstract
Battery Node is an open-source Internet of Things (IoT) project. Simplest DIY low power, low cost, standalone or web connected IOT sensors network framework using ESP32 or ESP8266 (no third party service required). No need to charge small 100 mAh LIR2450 coin cell battery or any chargable battery manually for life of battery or solar cell. Small 53mmx30mm or even smaller 3V to 5V solar cell can be used. It is built using C++, ESP8266, ESP32. The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building an Internet of Things (IoT) mini project or final-year project.
1. Introduction
No need to charge small 100 mAh LIR2450 coin cell battery or any chargable battery manually for life of battery or solar cell. Small 53mmx30mm or even smaller 3V to 5V solar cell can be used.
2. Objective
Simplest DIY low power, low cost, standalone or web connected IOT sensors network framework using ESP32 or ESP8266 (no third party service required).
This project demonstrates how C++, ESP8266, ESP32 can be applied to a real-world Internet of Things (IoT) problem.
4. Technology Stack
- Very informative discussion on energy harvesting: https://forum.mysensors.org/topic/10812/the-harvester-ultimate-power-supply-for-the-raybeacon-dk/105?lang=en-US
- Interesting paper describing Batteryless remote sensor device: https://arxiv.org/pdf/1505.06815.pdf
- In depth energy harvesting video at Dave Jones: https://www.youtube.com/watch?v=9aSPopIcKLQ
5. System Requirements
General requirements for this technology stack — check the README for exact versions.
- Arduino IDE / PlatformIO or a C++ compiler (g++)
- Target board (e.g. Arduino, ESP32) where applicable
- Git (to clone the repository)
6. Installation & Setup
git clone https://github.com/happytm/BatteryNode.git
cd BatteryNode- To test the code at least 1 remote ESP32 and 1 ESP32 Gateway device are required.
- One device (always on and mains powered) use gateway sketch and another device (sleeping most of the time and battery powered) use remote code.
- There are .bin files for gateway and remote sketches in their respective folders if do not want to compile the code.
- Please format flash as SPIFFS file system and upload data folder within Simple Gateway folder.
- New remote device will show up with device ID 246 but the device ID can be changed to any other unused DEVICE ID on network from web interface or MQTT client.
- There can be as many as 100 battery powered devices which can send data to one gateway device.
- Web interface is started at IP 192.168.4.1 if connected to AP named "ESP" and shows graphs of sensor data from whole network, It also allows to issue commands to any remote device on network.
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 happytm and published on GitHub under the MIT License. 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