Move relay to GPIO5, harden relay script, add monitor_speed
This commit is contained in:
parent
126c6a93d8
commit
73dc2f188f
4 changed files with 53 additions and 5 deletions
|
|
@ -9,15 +9,18 @@ Sluit aan via USB en stuur commando's:
|
|||
```bash
|
||||
./relay 1 # relais aan
|
||||
./relay 0 # relais uit
|
||||
./relay 1 /dev/cu.usbserial-XXXX # poort opgeven als default afwijkt
|
||||
```
|
||||
|
||||
## Pinnen
|
||||
|
||||
| Component | GPIO |
|
||||
|-----------|------|
|
||||
| Relais | 0 |
|
||||
| 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
|
||||
|
|
|
|||
|
|
@ -12,3 +12,4 @@
|
|||
platform = espressif8266
|
||||
board = d1_mini
|
||||
framework = arduino
|
||||
monitor_speed = 115200
|
||||
|
|
|
|||
50
relay
50
relay
|
|
@ -1,3 +1,47 @@
|
|||
#!/bin/bash
|
||||
[ $# -ne 1 ] || [ "$1" != "0" -a "$1" != "1" ] && { echo "Usage: relay 0|1"; exit 1; }
|
||||
python3 -c "import serial; s=serial.Serial('/dev/cu.usbserial-2110',115200,timeout=2); s.write(b'$1'); print(s.read(10).decode())"
|
||||
#!/usr/bin/env python3
|
||||
"""Toggle the USB relay via serial: ./relay 1|0 [serial_port]."""
|
||||
import sys
|
||||
import serial
|
||||
|
||||
DEFAULT_PORT = "/dev/cu.usbserial-2110"
|
||||
|
||||
def main() -> int:
|
||||
if len(sys.argv) not in (2, 3) or sys.argv[1] not in ("0", "1"):
|
||||
print(f"Usage: {sys.argv[0]} 0|1 [serial_port]", file=sys.stderr)
|
||||
return 1
|
||||
command = sys.argv[1]
|
||||
port = sys.argv[2] if len(sys.argv) == 3 else DEFAULT_PORT
|
||||
try:
|
||||
# dtr/rts expliciet uit vóór open: voorkomt (of beperkt) de CH340
|
||||
# auto-reset (DTR->RST) bij het openen van de poort. pyserial 3.5
|
||||
# accepteert geen dtr=/rts= kwargs in de constructor, maar de
|
||||
# states worden wél geëerd door open().
|
||||
s = serial.Serial()
|
||||
s.port = port
|
||||
s.baudrate = 115200
|
||||
s.timeout = 2
|
||||
s.dtr = False
|
||||
s.rts = False
|
||||
s.open()
|
||||
except serial.SerialException as exc:
|
||||
print(f"ERROR: cannot open {port}: {exc}", file=sys.stderr)
|
||||
return 1
|
||||
try:
|
||||
# Als het board toch reset bij open: wacht op de boot-banner en
|
||||
# gooi die weg, zodat de reply niet vervuild raakt. Geen banner
|
||||
# binnen 2 s (timeout, readline geeft b"") = geen reset: door.
|
||||
s.readline()
|
||||
s.reset_input_buffer()
|
||||
s.write(command.encode())
|
||||
s.flush()
|
||||
reply = s.readline().decode(errors="replace").strip()
|
||||
finally:
|
||||
s.close()
|
||||
if reply in ("ON", "OFF"):
|
||||
print(reply)
|
||||
return 0
|
||||
print(f"ERROR: no valid reply from board (got {reply!r})", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#include <Arduino.h>
|
||||
|
||||
#define RELAY_PIN 0
|
||||
#define RELAY_PIN 5 // D1 — relay shield IN; GPIO0 is a boot-strapping pin (must be HIGH at reset, else UART download mode)
|
||||
#define LED_PIN LED_BUILTIN
|
||||
|
||||
void setup() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue