Garden monitoring system using m328p and m2560 Arduino Uno boards

Overview

Garduino-Uno

References

Arduino Garden Controller

Components & Controllers

  • 1-2 Uno R3 m328p
    • Soil moisture sensor + sunlight sensor: m328p-sensors
  • 2 Uno R3 m2560
    • OLED display shields for values on board near garden
    • Boards B & C (displays): m2560-oled-shields

Board: Arduino Uno R3 m328p (sensors)

Controls all sensors, captures soil moisture and sunlight inputs, batches them, and outputs them to the logger board.

Connections:

  • In: Soil & sunlight sensors
  • Out-Channel 1: m2560 OLED displays
  • Out-Channel 2: SD (logger)

Dev

There are a few ways to compile the system.

With both boards plugged in (builds and flashes to board)

avr-garduino/m328-sensors $ cargo run
avr-garduino/m2560-oled-shields $ cargo run

From root with provided aliases:

avr-garduino $ cargo build-328p && cargo build-2560

From root manual:

avr-garduino $ cargo build --verbose --package m328p-sensors --target=m328p-sensors/spec/avr-atmega328p.json
avr-garduino $ cargo build --verbose --package m2560-oled-shields --target=m2560-oled-shields/spec/avr-atmega2560.json

From package:

avr-garduino/m328p-sensors $ cargo build --verbose
avr-garduino/m2560-oled-shields $ cargo build --verbose

Special Thanks

I want to extend my gratitude to the contributors of the avr-hal crate. This project couldn't have done it without them :)

You might also like...
wasm actor system based on lunatic

Wactor WASM actor system based on lunatic. Actors run on isolated green threads. They cannot share memory, and communicate only through input and outp

Make any NixOS system netbootable with 10s cycle times.

nix-netboot-serve Dynamically generate netboot images for arbitrary NixOS system closures, profiles, or configurations with 10s iteration times. Usage

EIP 1337 Subscription Billing System

CasperLabs EIP 1337 Token Subscription for the CasperLabs platform. Install Make sure wasm32-unknown-unknown is installed. $ make prepare Build Smart

A custom invoke system for Tauri that leverages a localhost server

Tauri Invoke HTTP This is a crate that provides a custom invoke system for Tauri using a localhost server. Each message is delivered through a XMLHttp

A super super super voting system on near block chain :)

Disp41r-Super-Voting-System a super super super voting system on near block chain :) Finish! I call it super voting system, because it is really cool!

The system for remote workers to prevent their family members from interrupting conference calls
The system for remote workers to prevent their family members from interrupting conference calls

onair The system for remote workers to prevent their family members from interrupting conference calls. The system is designed to automatically detect

Massayo is a small proof-of-concept Rust library which removes AV/EDR hooks in a given system DLL

Massayo Massayo is a small proof-of-concept Rust library based on UnhookingPOC, which removes AV/EDR hooks in a given system DLL. I tried to reduce fi

Original Version Management System based on Git
Original Version Management System based on Git

nss (noshishi) Original Version Management System based on Git. Learning git and rust for good developer. Usage Install cargo install nssi how to nss

A K8s-optimized operating system, based on CoreOS

Kanopy Ultramarine Kanopy is a lightweight and easy to setup operating system optimized for Kubernetes. It is based on Ultramarine Linux, a Fedora rem

Comments
  • Write tests and configure them to run with stdlib

    Write tests and configure them to run with stdlib

    Testing in no_std seems clunky. It would be optimal to write and build tests with the stdlib so we can use macros like 'dbg!' and 'assert_eq!'.

    For this to work we need to tell rustc to compile our tests with a different target than our main programs (since tests will run on the host and not the target boards, we can compile with target: 'x86_64-unknown-linux-gnu')

    enhancement help wanted wontfix tests 
    opened by ethgallucci 0
Releases(v0.1.3)
  • v0.1.3(Apr 8, 2022)

  • v0.1.0(Apr 8, 2022)

    This release marks the successful flashing/running of m328p-sensors on our Uno R3 atmega328p.

    While there is much to still be done, this is an important milestone! Now that we know our code is flashing and running successfully on our board, we can pivot our focus to refactoring and improving the logic.

    Source code(tar.gz)
    Source code(zip)
  • v0.0.1(Apr 6, 2022)

    v0.0.1 pre-release notes:

    • Prototypes for ADC communication via m328p soil sensors
    • Fork avr-hal in case we need to patch something later, add it as a submodule
    • Setup package and workspace configurations, build scripts, etc.
    Source code(tar.gz)
    Source code(zip)
Owner
Ethan Gallucci
Ethan Gallucci
Arduino Uno 9 axis acceleration sensor (BMX055) reader implemented in Rust.

Arduino Uno Accelaration reader in Rust Components Arduino Uno (Probably possible with other AVR microcontrollers) BMX055 (Japanese website) Datasheet

Katsu Uchiyama 3 Dec 15, 2022
Hardware Abstraction Layer for AVR microcontrollers and common boards

avr-hal Hardware Abstraction Layer for AVR microcontrollers and common boards (for example Arduino). Based on the avr-device crate. This is a new vers

Rahix 776 Jan 1, 2023
⚙️ Crate to discover embedded programming with uno r3 project

⚙️ Crate to discover embedded programming with uno r3 project

null 0 Feb 3, 2022
1️⃣ el lisp number uno - one lisp to rule them all 🏆

luno el lisp number uno luno is the one lisp to rule them all. Still experimental, do not use it in production yet. goals embeddable small size simple

Eva Pace 3 Apr 25, 2022
Arduino Nano frequency counter with atomic clock accuracy

Arduino Nano frequency counter with atomic clock accuracy Project description and test setup With this project you can measure a frequency from less t

Frank Buss 24 Apr 3, 2022
Board Support Crate for Arduino Leonardo in Rust

Deprecation Note: This crate will soon be deprecated in favor of avr-hal. avr-hal is a new approach to writing the HAL crate, that was designed with s

Rahix 5 May 6, 2021
🖥 Simple Arduino Serial Monitor

Born out of the desire to connect to an Arduino without having to run the whole Arduino suite.

Robin Schroer 2 Mar 19, 2022
How to use an Arduino library in a Rust project?

Example of an Arduino library usage in a Rust project The project tested with Arduino UNO on Fedora 35. It demonstrates the usage of LiquidCrystal_I2C

Konstantin 6 Dec 27, 2022
A tool for investigating file system and folder contents and their changes.

Sniff A tool for investigating file systems and folder contents and their changes. Sniff can create snapshots of file systems and folders, storing has

Niclas Schwarzlose 6 Jan 14, 2023
Async implementation of the StatusNotifierItem and DbusMenu protocols for building system trays.

System Tray An async implementation of the StatusNotifierItem and DbusMenu protocols for building system trays. Requires Tokio. Example use system_tra

Jake Stanger 3 Mar 29, 2024