58 lines
1.5 KiB
Markdown
58 lines
1.5 KiB
Markdown
# 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:
|
|
|
|
```bash
|
|
./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:
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
pio run --target upload --upload-port /dev/cu.usbserial-2110
|
|
```
|