Meshtastic Vejledning – Fjernbetjening af Hardwaremodul

Fjernbetjent Hardwaremodul muliggør læsning, skrivning og overvågning af GPIO-pins på en fjernnode. Konfigurationsmulighed: Aktiveret.
Bemærk: For firmwareversioner over 2.5.3 kræver dette modul, at du kompilerer din egen firmware og fjerner -DMESHTASTIC_EXCLUDE_REMOTEHARDWARE=1 build-flaget fra platformio.ini. Selvom konfigurationsmuligheder for dette modul kan vises i klienter, understøttes GPIO-indstilling og -læsning i øjeblikket kun via Meshtastic Python CLI.

Konfigurationsparametre for Fjernbetjent Hardware

Sørg for, at modulet er aktiveret.

Tilgængelighed af Fjernbetjent Hardwaremodul i klienter

Android

Alle konfigurationsmuligheder for Fjernbetjent Hardwaremodul er tilgængelige i Android-appen. Åbn Meshtastic-appen og gå til Indstillinger > Fjernbetjent Hardware.

Æble

Alle konfigurationsmuligheder for Fjernbetjent Hardwaremodul er tilgængelige i iOS-, iPadOS- og macOS-apps (version og nyere) under Indstillinger > Modulkonfiguration > Fjernbetjent Hardware.

CLI

Alle konfigurationsindstillinger for Fjernbetjent Hardwaremodul kan administreres via Python CLI.

Web

Ikke implementeret.

Fjernbetjent hardwaremodul-drift

Tip: Adgang til GPIO-pins indebærer iboende risici, da forkerte indstillinger kan beskadige eller ødelægge dit hardware. Sørg for, at du fuldt ud forstår skemaet for din specifikke enhed, før du fortsætter, da der ikke ydes nogen garanti. Brug denne funktion på eget ansvar.

Understøttede operationer

Du kan indstille enhver GPIO, læse enhver GPIO og modtage mesh-notifikationer, når en GPIO ændrer tilstand. Bemærk, at hurtige overgange—såsom knaptryk—ikke kan opdages; til disse brugstilfælde henvises til Detection Sensor-modulet. Resultaterne af GPIO-læsninger samt notifikationer om GPIO-tilstandsændringer offentliggøres også over MQTT (hvis aktiveret) i JSON-format (hvis aktiveret).

Opsætning

Du kan installere de nyeste Python-værktøjer og biblioteker ved at køre pip3 install --upgrade meshtasticWindows, Linux eller OS‑X. Se Python-sektionen for yderligere detaljer.
For at forhindre uautoriseret adgang skal du først oprette en GPIO kanal, der giver autentificeret adgang til denne funktion. Denne kanal skal tilføjes til både den lokale og den fjernstyrede node, og modulet skal være aktiveret på begge enheder.
Trinnene ved brug af Python-kommandolinjeværktøjet er som følger:
  1. Tilslut den lokale enhed via USB
  2. Aktivér Remote Hardware-modulet
 meshtastic --set remote_hardware.enabled true
  1. Opret en GPIO-kanal:
 meshtastic --ch-add gpio
  1. Bekræft, at kanalen er oprettet, og kopier derefter den lange “Komplette URL”, som inkluderer alle kanaler på enheden.
 meshtastic --info
  1. Tilslut den fjernstyrede enhed via USB, eller få adgang til den gennem mesh-netværket ved hjælp af remote admin-funktionen.
  2. Aktivér Remote Hardware-modulet på den fjernstyrede enhed.
 meshtastic --set remote_hardware.enabled true
  1. Konfigurer den fjernstyrede enhed til at tilslutte GPIO kanalen, du tidligere oprettede.
 meshtastic --seturl denurlduduplikeredeistrin3
Begge enheder bør nu kunne kommunikere gennem GPIO-kanalen. For at bekræfte, send en tekstbesked fra den ene enhed til den anden. Du kan også køre --nodes for at sikre, at den anden node bliver opdaget.

Masker

En maske bruges til at angive, hvilke GPIO'er der skal styres. For GPIO 1, sættes bit 1 i masken (hexadecimal 0x2); for GPIO 2, sættes bit 2 i masken (0x4); og så videre. For at bestemme den korrekte maske for den/de pin(er), du vil bruge, kan Python-programmet (og dets output) vist nedenfor være nyttigt.
 >>> for i in range(1,45):
...     print(f'GPIO:{i} mask:{hex(2**i)}')
...
GPIO:1 maske:0x2
GPIO:2 maske:0x4
GPIO:3 maske:0x8
GPIO:4 maske:0x10
GPIO:5 maske:0x20
GPIO:6 maske:0x40
GPIO:7 maske:0x80
GPIO:8 maske:0x100
GPIO:9 maske:0x200
GPIO:10 maske:0x400
GPIO:11 maske:0x800
GPIO:12 maske:0x1000
GPIO:13 maske:0x2000
GPIO:14 maske:0x4000
GPIO:15 maske:0x8000
GPIO:16 maske:0x10000
GPIO:17 maske:0x20000
GPIO:18 maske:0x40000
GPIO:19 maske:0x80000
GPIO:20 maske:0x100000
GPIO:21 maske:0x200000
GPIO:22 maske:0x400000
GPIO:23 maske:0x800000
GPIO:24 maske:0x1000000
GPIO:25 maske:0x2000000
GPIO:26 maske:0x4000000
GPIO:27 maske:0x8000000
GPIO:28 maske:0x10000000
GPIO:29 maske:0x20000000
GPIO:30 maske:0x40000000
GPIO:31 maske:0x80000000
GPIO:32 maske:0x100000000
GPIO:33 maske:0x200000000
GPIO:34 maske:0x400000000
GPIO:35 maske:0x800000000
GPIO:36 maske:0x1000000000
GPIO:37 maske:0x2000000000
GPIO:38 maske:0x4000000000
GPIO:39 maske:0x8000000000
GPIO:40 maske:0x10000000000
GPIO:41 maske:0x20000000000
GPIO:42 maske:0x40000000000
GPIO:43 maske:0x80000000000
GPIO:44 maske:0x100000000000

Styring af GPIO'er via Python CLI

Bemærk: Du kan styre eller overvåge GPIO'erne på din USB-forbundne node ved at sætte --dest til den lokale nodes ID. I dette tilfælde kræves ingen GPIO-kanal.

Skriver til en GPIO

Eksempel: tænder 'på' GPIO4

 meshtastic --port /dev/ttyUSB0 --gpio-wrb 4 1 --dest 28979058
 # Forbundet til radio
 # Skriver GPIO-maske 0x10 med værdi 0x10 til !28979058

Læser en GPIO

Eksempel: læser GPIO4
 meshtastic --port /dev/ttyUSB0 --gpio-rd 0x10 --dest 28979058
 # Forbundet til radio
 # Læser GPIO-maske 0x10 fra !28979058
 # GPIO læserespons gpio_value=16
Bemærk: Hvis masken og gpio_value matcher, er værdien "tændt". Hvis gpio_value er 0, er værdien "slukket".

Overvåger GPIO-ændringer

Eksempel: overvåger GPIO4 for ændringer
 meshtastic --port /dev/ttyUSB0 --gpio-watch 0x10 --dest 28979058
 # Forbundet til radio
 # Overvåger GPIO-maske 0x10 fra !28979058
 # Modtaget RemoteHardware typ=GPIOS_CHANGED, gpio_value=16
 # Modtaget RemoteHardware typ=GPIOS_CHANGED, gpio_value=0
 # Modtaget RemoteHardware typ=GPIOS_CHANGED, gpio_value=16
 # < tryk ctrl-c for at afslutte >

Test af GPIO-operationer

Du kan udføre GPIO-operationer direkte fra din egen Python-kode ved at bruge Meshtastic RemoteHardwareClient-klassen. For yderligere detaljer, se Python API-dokumentationen.
For at bekræfte at GPIO-operationerne fungerer korrekt, kan du tilslutte en simpel LED og modstand som test. Brug den medfølgende vejledning som reference.

Krav

  • 2× Meshtastic-enheder (den ene tilsluttet en lokal computer, den anden blot tændt og brugt til LED-forbindelsen)
  • 2× ledninger (ofte sort til jord og gul til signal, men alle farver kan bruges)
  • LED
  • 1× 220 Ω modstand (valgfrit men anbefalet)
  • 1× breadboard (valgfrit)

Forberedelse

  1. Frakobl den eksterne enhed fra dens strømkilde (batteri eller USB).
  2. Fastgør modstanden til det længere (positive) ben på LED’en, og tilslut derefter den gule ledning til den anden ende af modstanden.
  3. Tilslut den modsatte ende af den gule ledning til en sikker GPIO-pin (for eksempel kan du på TLoraV1 bruge GPIO21).
  4. Tilslut den sorte jordledning fra enhedens jordpin (på TLoraV1 er dette endepinnen ved siden af RST-knappen) til den kortere (negative) ben på LED’en.
  5. Gendan strømmen til enheden.

Validering

Som standard kan en pin enten være “slukket” eller “tændt” (oftest “slukket”). Se trinnene nedenfor for at køre kommandoer. For eksempel, når du bruger GPIO21, er den tilsvarende maskeværdi 0x200000.

Tilmeld dig vores nyhedsbrev

Få de seneste oplysninger om vores produkter og særlige tilbud.

Website Feedback

Help us improve OpenELAB

Found a website issue or have an idea? Tell us what would make your experience better.