This IoT-powered Soil Tester utilizes an ESP32 microcontroller to measure soil Nitrogen (N), Phosphorus (P), and Potassium (K) levels using an NPK sensor. It displays real-time values on a 20x4 I2C LCD and synchronizes data to Firebase Realtime Database, which is consumed by a custom-built Android app developed in Java using Android Studio.
| Component | Description |
|---|---|
| ESP32 Board | Main microcontroller with Wi-Fi + UART |
| NPK Sensor | Measures Nitrogen, Phosphorus, and Potassium |
| 20x4 I2C LCD | Displays live NPK readings |
- ESP32 reads data from the NPK sensor via UART.
- Data is displayed on a 20x4 LCD using the I2C interface.
- Sensor values are uploaded to Firebase Realtime Database using
Firebase_ESP_Client. - Android app fetches and displays the data in a mobile-friendly UI and suggests a plant perfect for the soil.
- Install these libraries:
LiquidCrystal_I2CFirebase_ESP_Client
- Configure Firebase in code:
- Firebase Host (e.g.,
your-project.firebaseio.com) - Firebase Auth / Secret Key
- Firebase Host (e.g.,
- Clone the repo:
git clone https://github.com/qppd/Soil-Tester.git - Open
SoilTester_ESP32.inoin Arduino IDE - Select board: ESP32 Dev Module
- Upload to your ESP32 board
Soil-Tester/ ├── SoilTester.ino ├── README.md └── .gitignore
This project is licensed under the MIT License. You may use, modify, and share it freely with credit to the author.
- ESP32 Arduino Community
- Firebase Realtime Database
- Arduino & open-source contributors
| facebook.com/qppd.dev | |
| 📦 GitHub | github.com/qppd |
| 🎥 TikTok | @jed.lopez.mendoza.dev |
| quezon.province.pd@gmail.com |
Made with ❤️ by QPPD