We are planning to redo our garden. And I am making a water and light plan for it.
I thought I could do it myself using 12V and RS485/Modbus.
So these are my plans. (NOTE, this is a work in progress)
I’m going to put 4-wire ground cable in our garden, and a RS485/Modbus master controller in my shed. 4 Wires will have 12V low voltage, ground and RS485 A/B wires. This way I can control till 64 devices on a single cable.
Below, a USB stick to connect the RS485 cables to a Raspberry Pi? Software is probably going to be a NodeRed instance connected to Home Assistant.
On/Off lights using a RS485 board and relay. These can be bought on a single PCB and can control 220V. I am probably going to use generic outside lamps and refit them for 12V led or 220v, with those RS485 controllers.
Test PCB
The above left part will be encased in resin or alike. Right PCB is for testing only.
For dimming RGB lights, I made the below design.
NOTE: This needs 120ohm end resistor and capacitors over the 7805.
12V to 5V using a 7805, RS485 8pin DIL/DIP and a ATTiny85 8pin DIL/DIP. Plus a 4×4 RGB Matrix. These also encased in resin.
More information on the ATTiny85 and programmer can be found here:
While I made this for my Commodore C64, it is applicable for many things.
It started with some cheap displays from Ali, and some leftover Wemos D1 from my Pressure Lab project.
I Started measuring the audio output from sound devices and from my C64. I soon discovered that I needed some way to get the offset and amplification correct for the analogue input of a Wemos. (0-3v3)
So a little op-amp circuit was born, but not without some struggles. I forgot many things about amplifiers. It was one of the first school books I got rid of. (Sorry mister Rafaela)
After searching the internet and posting a question on Reddit I ended up with the following.
R1 and R2 are 100M. The potentiometer P1 allows me to set the offset. R3 is 1M C1 is 100nF to decouple the audio signal from the RCA.
R4 is 47K and C2 is 330nF (thanks tycho205) Cimportant=1/(2Ï€fR2) where f is the lowest frequency of interest. In this case Cimportant should be about 330nF
LM324 is a quad amplifier, leftover from another project. Note, the SINGLE RAIL power.
P2 potentiometer is 2M (leftover) and gives me a variable amplifying opportunity.
A = Audio input
B = Setting the offset with P1
C = Setting the amplification
Below input signal (note negative values) above amplified signal with offset!
The displays are 3 Wemos controllers with a cheap I2C display. These are just fast enough to do FFT.
Analogue in is the output from the OP-amp offsetter ..
CODE
Needs cleaning up, and a better stabilize routine.
PC Volume control using motorized potentiometer. Sends state to PC using media buttons (HID-device) Uses python script to update pot position. Probably replace Raspberry Pico with Arduino Pro
Maze Wars (1970s) in javascript using MQTT backend for multiple users
substitutions:
name: usb-relay
friendly_name: "USB Relay"
default_state: "RESTORE_DEFAULT_OFF"
esphome:
name: xyusb1
friendly_name: xyusb1
esp8266:
board: esp01_1m
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "ndm8xxxxxxxxxxxxxxxxxjlvrggJv3a1BkY="
ota:
- platform: esphome
password: "12cc9xxxxxxxxxxxxxxxxfb6a01e672"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Xyusb1 Fallback Hotspot"
password: "xxxxxxxxxxx"
captive_portal:
time:
- platform: homeassistant
# Blue LED
status_led:
pin:
number: GPIO16
# Relay
switch:
- platform: gpio
id: switch_relay
pin: GPIO5
# Green LED
- platform: gpio
pin: GPIO14
id: green_led
inverted: true # start on
# Switch template to link relay and green LED states
# LED is on when relay is off
- platform: template
id: relay
name: "${friendly_name}"
lambda: |-
if (id(switch_relay).state) {
return true;
} else {
return false;
}
turn_on_action:
- switch.turn_on:
id: green_led
- switch.turn_on:
id: switch_relay
turn_off_action:
- switch.turn_off:
id: green_led
- switch.turn_off:
id: switch_relay
# Button
binary_sensor:
- platform: gpio
id: hardware_button
pin:
number: GPIO04
mode: INPUT_PULLUP
inverted: True
on_press:
- switch.toggle: relay
# WiFi Signal Sensor
sensor:
- platform: wifi_signal
name: "WiFi Status"
update_interval: 60s
# Restart button
button:
- platform: restart
name: "Restart"
Reflashed my USB Volume button and added a LED-Ring.
Example is green and blue.
Funny text on box
What is a termianl assortment? LOL
Wireless Temperature/Humidity sensor for ESPHome.
Wemos D1 mini with deep sleep, voltage monitoring using A0 line. BME280 Temperature/Humidity sensor. And a 18650 battery with TP4065 battery manager. Now 3D print a little case.