Garden133 is a solar and battery-powered device for monitoring garden soil moisture levels. It reads the moisture level of soil using a capacitive moisture sensor and transmits data via LoRa.
Please see the Introducing Garden133 blog post for a project overview.
- Soil Moisture Sensing: Capacitive sensor measurement.
- Device Environmental Monitoring: SHTC3 sensor for air temperature and humidity inside the device enclosure.
- Power Management: Solar charging and battery voltage monitoring.
- LoRa Communication: Connects to a base station (LoRa133) to integrate with Home Assistant.
- OTA Updates: Supports wireless firmware updates.
This project includes the custom hardware design and 3D printable parts.
- PCB Design: KiCAD files are available in
KiCAD/Garden133/.
- Enclosure: OpenSCAD files for the waterproof enclosure and mounts are in
OpenSCAD/.
This firmware uses the PlatformIO build system and depends on the following libraries:
- og3: Base C++ library for ESP32/Arduino.
- og3x-lora: LoRa module support.
- og3x-satellite: Satellite architecture support.
- PlatformIO Core or VSCode with PlatformIO extension.
- An ESP32-based Garden133 board.
The project uses INI files for local configuration (secrets, paths, etc.) which are excluded from git.
-
Setup Secrets: Copy the example secrets file to create your local configuration:
cp secrets.ini.example secrets.ini
Edit
secrets.inito set your environment preferences:udpLogTarget: IP address for UDP logging.otaPassword: Password for Over-The-Air updates.uploadProtocol:esptool(USB) orespota(WiFi).uploadPort: Serial port (e.g.,/dev/ttyUSB0) or IP address.
-
USB vs WiFi: You can also use
secrets-usb.ini.exampleas a template for USB-connected development:cp secrets-usb.ini.example secrets.ini
-
Build the firmware:
pio run
-
Upload the firmware:
pio run --target upload
-
Upload Filesystem (LittleFS): This uploads the
data/directory containing web resources.pio run --target uploadfs
This project is licensed under the MIT License. See LICENSE for details.
