No description
  • Python 77.1%
  • C++ 22.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-13 13:23:30 +02:00
.omp/skills/usbtoggle-relay Remove port override, fail on detection failure 2026-08-13 13:23:30 +02:00
include Initial commit 2026-07-11 00:31:10 +02:00
lib Initial commit 2026-07-11 00:31:10 +02:00
src Add module identification command (relay id) 2026-08-13 12:17:54 +02:00
test Initial commit 2026-07-11 00:31:10 +02:00
.gitignore Initial commit 2026-07-11 00:31:10 +02:00
platformio.ini Move relay to GPIO5, harden relay script, add monitor_speed 2026-08-13 12:08:15 +02:00
README.md Remove port override, fail on detection failure 2026-08-13 13:23:30 +02:00
relay Remove port override, fail on detection failure 2026-08-13 13:23:30 +02:00

USB Toggle

ESP8266 (Wemos D1 Mini) firmware om een relais te schakelen via seriële USB.

Dit project is tot stand gekomen met vibecoding.

Gebruik

Sluit aan via USB en stuur commando's:

./relay 1   # relais aan
./relay 0   # relais uit
./relay id  # toont module-ID (chip-ID, uniek per chip, onafhankelijk van USB-poort)

Het script zoekt de module altijd zelf: het probeert alle CH340-poorten met het id-commando en gebruikt de eerste die ID usbtoggle-relay antwoordt — waar de module ook is aangesloten. Kan de module niet gevonden worden, dan faalt het script met een foutmelding (exit 1).

Linux

Het script draait ongewijzigd op Linux. Vereisten:

# Fedora / RHEL
sudo dnf install python3-pyserial
# Debian / Ubuntu
sudo apt install python3-serial

De seriële poort is op Linux meestal /dev/ttyUSB0 en eigendom van root:dialout. De gebruiker moet in de dialout-groep zitten, anders weigert het script de poort te openen:

sudo usermod -aG dialout $USER
# opnieuw inloggen om de groep actief te maken

De poortnaam is verder niet relevant: de auto-detectie vindt de module zonder dat een pad opgegeven hoeft te worden.

Pinnen

Component GPIO
Relais (shield IN) 5 (D1)
LED LED_BUILTIN

Relais-IN zit op D1 (GPIO5): GPIO0 is bewust vermeden (boot-strapping pin — laag houden kan het board in flash-modus laten booten bij reset).

Build & Flash

pio run --target upload --upload-port /dev/cu.usbserial-2110