A digital system that tracks soil moisture, humidity, and temperature for the purpose of plant monitoring. Data is to be displayed locally on an OLED screen and also transmitted wirelessly via bluetooth module to a real-time Android application.
- Real-time Sensor Data: Constantly measures soil moisture, humidity, and temperature(°C).
- Local OLED Display: Uses a SSD1306 OLED display to visualize sensor data and personalized icons.
- Wireless Data Transmission: The bluetooth module to send sensor data to an Android application.
- Android Companion App: A modern Jetpack Compose app for Android that allows for remote viewing of environmental data.
- Modular Codebase: For clarity and maintainability, the codebase is modular and divided into bitmaps.h, handlers.h, and Sketch.ino.
- Efficient Communication: Lightweight and quick data transfer.
Note
Same project is also Implemented using ESP-01 Wi-Fi module. For that, checkout here.
- Arduino Uno R3.
- DHT11 Sensor.
- Soil Moisture Sensor.
- SSD1306 128x64 I2C OLED Display.
- HC-05 Bluetooth Module.
| Sensor | Sensor Pin | Arduino Pin |
|---|---|---|
| DHT11 | + |
5v |
out |
digital 2 |
|
- |
GND |
|
| Soil Moisture | VCC |
5v |
GND |
GND |
|
A0 |
analog A0 |
|
| SSD1306 OLED Display | GND |
GND |
VCC |
5v |
|
SCL |
analog A5 |
|
SDA |
analog A4 |
|
| HC-05 Bluetooth | VCC |
5v |
GND |
GND |
|
TX |
digital 0 (RX) |
|
RX |
digital 1 (TX) |
- Arduino IDE (or arduino-cli)
- Android Studio
- Arduino Libraries :
<Adafruit_SSD1306.h>,<DHT.h>
Note
App required BLUETOOTH_SCAN, BLUETOOTH_CONNECT permission for android SDK 31 or higher. Otherwise BLUETOOTH, BLUETOOTH_ADMIN, ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION permission is required.
Warning
While uploading code, disconnect the Arduino's RX and TX pins.
See full change log from here.
This repo is licensed under the BSD 0-Clause © 2025 · Jakir Hossain