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)
|
|
./relay 1 /dev/cu.usbserial-XXXX # poort expliciet opgeven (alleen als auto-detect faalt)
|
|
```
|
|
|
|
Zonder poortargument zoekt het script de module 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.
|
|
|
|
## 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
|
|
```
|