Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/plantineers/edge
The microcontroller firmware of plantbuddy
https://github.com/plantineers/edge
embedded-rust esp-now esp32 esp32-c3 plantmonitor rust
Last synced: 3 days ago
JSON representation
The microcontroller firmware of plantbuddy
- Host: GitHub
- URL: https://github.com/plantineers/edge
- Owner: plantineers
- License: gpl-3.0
- Created: 2023-04-03T15:07:54.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-18T12:38:05.000Z (about 1 year ago)
- Last Synced: 2024-08-02T20:44:29.945Z (3 months ago)
- Topics: embedded-rust, esp-now, esp32, esp32-c3, plantmonitor, rust
- Language: Rust
- Homepage:
- Size: 95.7 KB
- Stars: 12
- Watchers: 0
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
- awesome-esp-rust - plantineers-edge - Firmware for edge devices for an Open Source Plant Monitoring solution using esp-now (Projects / `no_std`)
README
# Plantbuddy-edge
![Build](https://img.shields.io/github/actions/workflow/status/plantineers/edge/ci.yml?style=flat-square)
![License](https://img.shields.io/github/license/plantineers/edge?style=flat-square)
## IntroductionPlantbuddy is a solution for monitoring your plants. This is the repository containing the aggregator Firmware for the ESP32C3. Is is responsible for collecting data from the sensors and sending it to the [esp-gateway](https://github.com/plantineers/esp-gateway) via ESP-Now to ensure long range communication. It is written in bare-metal Rust running via [esp-hal](https://github.com/esp-rs/esp-hal) and [embassy](https://github.com/embassy-rs/embassy).
## Getting Started
### Prerequisites
- [Rust](https://rustup.rs/)
### Installation
1. Clone the repository
```sh
git clone https://github.com/plantineers/edge.git
```2. Install Rust nightly and the required target
```sh
rustup toolchain install nightly
rustup target add riscv32imc-unknown-none-elf
rustup component add rust-src
```3. Install cargo-espflash
```sh
cargo install espflash --git https://github.com/esp-rs/espflash/
```4. After plugging in the ESP32C3, allow access to the serial port and flash the firmware
```sh
sudo chmod a+rw /dev/ # To permanently allow access, add your user to the dialout or uucp group depending on the distro
cargo run --release --features "" # See below for available features
```## Features
For every sensor there is a feature that can be enabled to include it in the build. The following features are available:
| Feature | Description | Output |
| --------- | ------------------------------------------------ | ------------------------------------------------------ |
| `tsl2591` | Enable the TSL2591 light sensor | `{"light": }` |
| `hw390` | Enable the HW390 soil moisture sensor | `{"soil-moisture": }` |
| `dht11` | Enable the DHT11 temperature and humidity sensor | `{"temperature": , "humidity": }` |
| `dht22` | Enable the DHT22 temperature and humidity sensor | `{"temperature": , "humidity": }` |The dht11 and dht22 features are mutually exclusive. Only one of them can be enabled at a time.