🌱💧 An open source DIY soil moisture sensor
Nordic has published an errata for the nRF Connect SDK for versions >1.8.0 where a Zigbee End Device can end up getting stuck if the parent device does not acknowledge the "Device Announcement packet". They have a suggested workaround to implement in the SDK, which has been adapted for the custom signal handler used here. This is an effort to solve issues where my parasites would occasionally drop off my network and require a reboot. After 24Hrs, I've not yet had a device disappear but it has taken >weeks before a device would fail. Unforunately it's hard to debug the board as the chips are in a low power state when this occurs. |
||
|---|---|---|
| .devcontainer | ||
| .github | ||
| bridge | ||
| case | ||
| code | ||
| data/adc-moisture-estimation | ||
| experimental/rotisserie | ||
| flashing/pyocd | ||
| img | ||
| kicad | ||
| .gitignore | ||
| kitspace.yaml | ||
| README.md | ||
b-parasite
b-parasite is an open source soil moisture and ambient temperature/humidity/light sensor.
Features
- Capacitive Soil moisture sensor - see this blog post, this Twitter thread, and this post for nice resources on how they work
- Air temperature and humidity sensor using a Sensirion's SHTC3
- Light sensor using an ALS-PT19 phototransistor
- Powered by a common CR2032 coin cell, potentially for over two years
- Support for nRF52840 and nRF52833 modules
- Open hardware and open source design
Software
This repository also hosts a few different firmware samples for b-parasite.
| Sample | Description | Extra Documentation |
|---|---|---|
| samples/ble | This is the most battle-tested and useful firmware. It periodically reads all sensors and broadcast them via Bluetooth Low Energy (BLE). It works with Home Assistant out of the box. | Docs |
| samples/zigbee | An experimental/educational/exploratory basic Zigbee sample built on nRF Connect + ZBOSS. It integrates with Home Assistant via ZHA or Zigbee2MQTT. | Docs |
| samples/blinky | The classic "Hello, world" | - |
| samples/soil_read_loop | Reads the soil moisture sensor on a loop. Useful for experimenting and calibrating the sensor. | - |
| samples/input | Handles button presses. Useful for power profiling GPIO interrupts and testing debouncing for push switches on boards that have them. | - |
Documentation
Information about how to order, assemble, build the samples, protect the sensor and flash the firmware is on the Wiki.
Repository Organization
- code/nrf-connect/ - Common library and samples, built with Nordic's nRF Connect SDK.
- kicad/ - KiCad schematic, layout and fabrication files for the printed circuit board (PCB)
- data/ - data for testing and sensor calibration
- bridge/ - an ESPHome-based BLE-MQTT bridge
- case/ - a 3D printable case
Case
We have three different 3D-printable cases:
- Original snap-on case - case/Top.stl, case/Bottom.stl
- High airflow - case/b_parasite_case_high_airflow.stl
- Mushroom-style - available on Printables
License
The hardware and associated design files are released under the Creative Commons CC BY-SA 4.0 license. The code is released under the MIT license.