An Arduino project with an Android app to measure the soil moisture of your plants.
Why? To know whether the plant is thirsty.
- Measures your plant's soil moisture, and ambient temperature/humidity.
- Reports data to the Plant Sense app via Bluetooth.
- The sensor saves energy by going into deep sleep between measurements.
- A blue light on the device notifies the user when the latest measurements can be read.
- 1x Soil Temperature Humidity Sensor
- 1x 18650 Lithium Battery
- 1x USB Micro B cable
- Download the latest release and
cd
into it. - Connect your soil moisture sensor to your computer and flash the firmware.
On Linux:sudo esptool --chip esp32 --port "/dev/ttyUSB0" --baud 460800 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 ./bootloader_dio_40m.bin 0x8000 ./partitions.bin 0xe000 ./boot_app0.bin 0x10000 ./firmware.bin
- Disconnect the device from the computer.
- Slide the switch on the device to off, insert the 18650 lithium battery correctly, and slide the switch to on.
- Secure the device in soil.
- Install the Android app.
- Every five minutes, a bright, blue light will light up on the device to signal that data is ready to be read by the app.
- Tap the search icon in the lower right corner of the app to list the plants.
- Tap one of the plants in the list to see the readings.
- After 30s, the device will go back to deep sleep, and the blue light will dim.
This firmware is intended to be used for one plant only because the name of the
Bluetooth Device is Plant: Emerson
, and the service and characteristic UUIDs
are the same for everyone.
To change them, the user needs to:
- Clone the repository
- Open
src/main.cpp
- Change the variables
SERVICE_UUID
,CHARACTERISTIC_UUID
, andPLANT_NAME
. - Build the project with PlatformIO
- Flash the firmware
OR
Send an email to me with your desired name, and I will take care of it.
Add an aural signal, i.e. a beeper, to the device for it to beep when data is ready to be consulted in the app.