From 93a86f57ca9a620b873c66706747d9863d071ee0 Mon Sep 17 00:00:00 2001 From: Joseph Nelson Date: Thu, 1 Oct 2026 23:35:55 -0700 Subject: [PATCH] adding in notes of what I did to setup the sprinkler controller --- README.md | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..885e3b7 --- /dev/null +++ b/README.md @@ -0,0 +1,122 @@ +# README + +## Description +I am documenting how I created my own Single Board Computer (SBC) sprinkler controller to be used for my home. + +This setup will outline each step I took to make this setup work using Home Assistant, Docker, MQTT, Portainer. + +## Product I bought +- Power Supply for SBC: [https://www.amazon.com/dp/B0190MCSS0?ref=ppx_yo2ov_dt_b_fed_asin_title](https://www.amazon.com/dp/B0190MCSS0?ref=ppx_yo2ov_dt_b_fed_asin_title) +- Heatsink: [https://www.amazon.com/dp/B0792VXBVH?ref=ppx_yo2ov_dt_b_fed_asin_title](https://www.amazon.com/dp/B0792VXBVH?ref=ppx_yo2ov_dt_b_fed_asin_title) +- SBC: [https://www.amazon.com/dp/B078RT6H8X?ref=ppx_yo2ov_dt_b_fed_asin_title](https://www.amazon.com/dp/B078RT6H8X?ref=ppx_yo2ov_dt_b_fed_asin_title) +- SD Card: [https://www.amazon.com/dp/B076TBYNKS?ref=ppx_yo2ov_dt_b_fed_asin_title](https://www.amazon.com/dp/B076TBYNKS?ref=ppx_yo2ov_dt_b_fed_asin_title) +- Terminal Block: [https://www.amazon.com/dp/B07CLR3MLK?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1](https://www.amazon.com/dp/B07CLR3MLK?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1) +- Power Supply Transformer: [https://www.amazon.com/dp/B0797LCBYS?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1](https://www.amazon.com/dp/B0797LCBYS?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1) +- Wifi dongle: [https://www.amazon.com/dp/B00GFAN498?ref=ppx_yo2ov_dt_b_fed_asin_title](https://www.amazon.com/dp/B00GFAN498?ref=ppx_yo2ov_dt_b_fed_asin_title) +- Voltage Regulator: [https://www.amazon.com/dp/B07TMMTX4K?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1](https://www.amazon.com/dp/B07TMMTX4K?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1) +- Jumper Wire: [https://www.amazon.com/dp/B09FPGT7JT?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1](https://www.amazon.com/dp/B09FPGT7JT?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1) +- 8 Channel Relay: [https://www.amazon.com/dp/B07XM5GVWJ?ref=ppx_yo2ov_dt_b_fed_asin_title](https://www.amazon.com/dp/B07XM5GVWJ?ref=ppx_yo2ov_dt_b_fed_asin_title) +- Brass Hex Spacers: [https://www.amazon.com/dp/B0BZYTC581?ref=ppx_yo2ov_dt_b_fed_asin_title](https://www.amazon.com/dp/B0BZYTC581?ref=ppx_yo2ov_dt_b_fed_asin_title) +- Junction Box: [https://www.amazon.com/dp/B07KXSJ4J2?ref=ppx_yo2ov_dt_b_fed_asin_title](https://www.amazon.com/dp/B07KXSJ4J2?ref=ppx_yo2ov_dt_b_fed_asin_title) +- DC Power Adapters: [https://www.amazon.com/dp/B01ER6QWAY?ref=ppx_yo2ov_dt_b_fed_asin_title](https://www.amazon.com/dp/B01ER6QWAY?ref=ppx_yo2ov_dt_b_fed_asin_title) + +## Software Used +- Ubuntu Jammy +- Docker +- Portainer +- Home Assistant +- MQTT + +## Setup +### Installation +Ubuntu: https://releases.ubuntu.com/jammy/ + +Once setup is done and you have created your user account and password, install either libgpiod or lgpio, I did libgpiod found below: +``` +sudo apt update +sudo apt install gpiod +sudo apt update +sudo apt install libgpiod-dev +sudo apt install python3-libgpiod +sudo apt install python3-dev +pip install gpiod +```` + +Then verify from the below: +``` +gpiodetect +``` + +Docker: https://docs.docker.com/engine/install/ubuntu/ + +Portainer: https://docs.portainer.io/start/install-ce/server/docker/linux + +### After install prep +Use Portainer to download and start Home Assistant from docker hub here: https://hub.docker.com/r/homeassistant/home-assistant + +Also use Portainer to download and start MQTT Broker from docker hub here: https://hub.docker.com/_/eclipse-mosquitto + +### Setting up MQTT Config file +You will want to create a config yaml file that you will be volume mounting into the container via portainer. + +Mine looks something like this: +``` +mqtt: + host: localhost + user: [your user] + password: [your password] + topic_prefix: /home/irrigation + ha_discovery: + enabled: yes + +# GPIO +gpio_modules: + # Use the libgpio built-in GPIO + - name: gpio + module: gpiod + chip: /dev/gpiochip2 + +digital_outputs: + # Find the pins you would like to use from a schamtic of your board so you can map pins here + - name: Zone 1 + module: gpio + pin: 23 + on_payload: "1" + off_payload: "0" + - name: Zone 2 + module: gpio + pin: 16 + on_payload: "1" + off_payload: "0" + - name: Zone 3 + module: gpio + pin: 18 + on_payload: "1" + off_payload: "0" + - name: Zone 4 + module: gpio + pin: 15 + on_payload: "1" + off_payload: "0" +``` + +### Home Assistant Setup +After creating your account and logging in. + +Configure MQTT by the below: +- Click on the hamburger button +- Click Devices and Services +- Add Integration +- Select MQTT +- Configure with your settings + +### Hardware connection +- Assemble the heatsink to the SBC +- Assemble the SBC to the Junction Box peg board +- Assemble Channel Bay near by +- Add Jumper Cables from GPIO pin to Channel Bay +- Add Male to Male Jumper from Channel Bay to Terminal Block +- Add wire from Terminal Block to Power Supply Adapter Transformer + +## How everything runs +Explain how the project or application operates. \ No newline at end of file