Meshtastic-opas – Etälaitteiston moduulin käyttö

Etälaitemoduuli mahdollistaa GPIO-nastojen lukemisen, kirjoittamisen ja valvonnan etäsolmussa. Asetusvaihtoehto: Käytössä.
Huom: Firmware-versioissa yli 2.5.3 tämä moduuli vaatii oman firmware-käännöksen ja -DMESHTASTIC_EXCLUDE_REMOTEHARDWARE=1 -käännöslipun poistamisen platformio.ini-tiedostosta. Vaikka moduulin asetukset saattavat näkyä asiakasohjelmissa, GPIO:n asettaminen ja lukeminen on tällä hetkellä tuettu vain Meshtastic Python CLI:n kautta.

Etälaitemoduulin konfiguraatioparametrit

Varmista, että moduuli on käytössä.

Etälaitemoduulin saatavuus asiakasohjelmissa

Android

Kaikki etälaitemoduulin asetukset ovat saatavilla Android-sovelluksessa. Avaa Meshtastic-sovellus ja siirry kohtaan Asetukset > Etälaitteisto.

Omena

Kaikki etälaitemoduulin asetukset ovat saatavilla iOS-, iPadOS- ja macOS-sovelluksissa (versiosta alkaen) kohdassa Asetukset > Moduulin asetukset > Etälaitteisto.

CLI

Kaikki etälaitemoduulin asetukset voidaan hallita Python CLI:n kautta.

Verkko

Ei toteutettu.

Etälaitemoduulin toiminta

Vinkki: GPIO-nastoihin pääsy sisältää luontaisia riskejä, sillä virheelliset asetukset voivat vahingoittaa tai tuhota laitteistosi. Varmista, että ymmärrät täysin kyseisen laitteen kytkentäkaavion ennen jatkamista, sillä takuita ei ole. Käytä tätä ominaisuutta omalla vastuullasi.

Tuetut toiminnot

Voit asettaa minkä tahansa GPIO:n, lukea minkä tahansa GPIO:n ja vastaanottaa mesh-ilmoituksia aina, kun GPIO:n tila muuttuu. Huomaa, että nopeat siirtymät—kuten painikkeen painallukset—eivät ole havaittavissa; näissä käyttötapauksissa katso Detection Sensor -moduulia. GPIO-lukujen tulokset sekä ilmoitukset GPIO-tilan muutoksista julkaistaan myös MQTT:n kautta (jos käytössä) JSON-muodossa (jos käytössä).

Asetus

Voit asentaa uusimmat Python-työkalut ja kirjastot suorittamalla pip3 install --upgrade meshtastic Windowsissa, Linuxissa tai OS-X:ssä. Katso Python-osio lisätietoja varten.
Estääksesi luvattoman pääsyn, sinun on ensin luotava GPIO-kanava, joka tarjoaa todennetun pääsyn tähän ominaisuuteen. Tämä kanava on lisättävä sekä paikalliseen että etäsolmuun, ja moduuli on otettava käyttöön molemmissa laitteissa.
Vaiheet Python-komentorivityökalulla ovat seuraavat:
  1. Yhdistä paikallinen laite USB:n kautta
  2. Ota käyttöön Remote Hardware -moduuli
 meshtastic --set remote_hardware.enabled true
  1. Luo GPIO-kanava:
 meshtastic --ch-add gpio
  1. Varmista, että kanava on luotu, ja kopioi sitten pitkä “Complete URL, joka sisältää kaikki laitteen kanavat.
 meshtastic --info
  1. Yhdistä etälaite USB:n kautta tai käytä sitä mesh-verkon kautta remote admin -ominaisuudella.
  2. Ota käyttöön Remote Hardware -moduuli etälaitteessa.
 meshtastic --set remote_hardware.enabled true
  1. Määritä etälaite liittymään GPIO-kanavalle, jonka loit aiemmin.
 meshtastic --seturl theurlyoucopiedinstep3
Molempien laitteiden pitäisi nyt pystyä kommunikoimaan GPIO-kanavan kautta. Varmista tämä lähettämällä tekstiviesti yhdeltä laitteelta toiselle. Voit myös suorittaa --nodes varmistamaan, että toinen solmu havaitaan.

Maskit

Maskia käytetään määrittämään, mitä GPIO-pinnejä ohjataan. GPIO 1:lle maskin bitti 1 on asetettu (heksadesimaalinen 0x2); GPIO 2:lle maskin bitti 2 on asetettu (0x4); ja niin edelleen. Oikean maskin määrittämiseksi haluamillesi pinneille alla oleva Python-ohjelma (ja sen tuloste) voi olla hyödyllinen.
 >>> for i in range(1,45):
...     print(f'GPIO:{i} maski:{hex(2**i)}')
...
GPIO:1 maski:0x2
GPIO:2 maski:0x4
GPIO:3 maski:0x8
GPIO:4 maski:0x10
GPIO:5 maski:0x20
GPIO:6 maski:0x40
GPIO:7 maski:0x80
GPIO:8 maski:0x100
GPIO:9 maski:0x200
GPIO:10 maski:0x400
GPIO:11 maski:0x800
GPIO:12 maski:0x1000
GPIO:13 maski:0x2000
GPIO:14 maski:0x4000
GPIO:15 maski:0x8000
GPIO:16 maski:0x10000
GPIO:17 maski:0x20000
GPIO:18 maski:0x40000
GPIO:19 maski:0x80000
GPIO:20 maski:0x100000
GPIO:21 maski:0x200000
GPIO:22 maski:0x400000
GPIO:23 maski:0x800000
GPIO:24 maski:0x1000000
GPIO:25 maski:0x2000000
GPIO:26 maski:0x4000000
GPIO:27 maski:0x8000000
GPIO:28 maski:0x10000000
GPIO:29 maski:0x20000000
GPIO:30 maski:0x40000000
GPIO:31 maski:0x80000000
GPIO:32 maski:0x100000000
GPIO:33 maski:0x200000000
GPIO:34 maski:0x400000000
GPIO:35 maski:0x800000000
GPIO:36 maski:0x1000000000
GPIO:37 maski:0x2000000000
GPIO:38 maski:0x4000000000
GPIO:39 maski:0x8000000000
GPIO:40 maski:0x10000000000
GPIO:41 maski:0x20000000000
GPIO:42 maski:0x40000000000
GPIO:43 maski:0x80000000000
GPIO:44 maski:0x100000000000

GPIOjen hallinta Python CLI:n kautta

Huomautus: Voit ohjata tai valvoa USB-yhteydellä olevan solmun GPIOja asettamalla --dest paikallisen solmun ID:ksi. Tässä tapauksessa GPIO-kanavaa ei tarvita.

Kirjoitetaan GPIO

Esimerkki: kytketään GPIO4 päälle

 meshtastic --port /dev/ttyUSB0 --gpio-wrb 4 1 --dest 28979058
 # Yhdistetty radioon
 # Kirjoitetaan GPIO-maskia 0x10 arvolla 0x10 osoitteeseen !28979058

Luetaan GPIO

Esimerkki: luetaan GPIO4
 meshtastic --port /dev/ttyUSB0 --gpio-rd 0x10 --dest 28979058
 # Yhdistetty radioon
 # Luetaan GPIO-maskia 0x10 osoitteesta !28979058
 # GPIO-lukuvastaus gpio_arvo=16
Huomautus: Jos maski ja gpio_arvo täsmäävät, arvo on "päällä". Jos gpio_arvo on 0, arvo on "pois".

Valvotaan GPIO-muutoksia

Esimerkki: valvotaan GPIO4:n muutoksia
 meshtastic --port /dev/ttyUSB0 --gpio-watch 0x10 --dest 28979058
 # Yhdistetty radioon
 # Tarkkaillaan GPIO-maskia 0x10 laitteesta !28979058
 # Vastaanotettu RemoteHardware typ=GPIOS_CHANGED, gpio_value=16
 # Vastaanotettu RemoteHardware typ=GPIOS_CHANGED, gpio_value=0
 # Vastaanotettu RemoteHardware typ=GPIOS_CHANGED, gpio_value=16
 # < paina ctrl-c poistuaksesi >

GPIO-toimintojen testaus

Voit suorittaa GPIO-toimintoja suoraan omasta Python-koodistasi käyttämällä Meshtastic RemoteHardwareClient-luokkaa. Lisätietoja löytyy Python API -dokumentaatiosta.
Varmistaaksesi, että GPIO-toiminnot toimivat oikein, voit yhdistää yksinkertaisen LEDin ja vastuksen testiksi. Käytä annettua opasta viitteenä.

Vaatimukset

  • 2× Meshtastic-laitetta (toinen yhdistetty paikalliseen tietokoneeseen, toinen vain virtalähteellä ja käytössä LED-yhteyttä varten)
  • 2× johtoa (yleensä musta maadoitukseen ja keltainen signaalille, mutta voi käyttää mitä värejä tahansa)
  • LED
  • 1× 220 Ω vastus (valinnainen mutta suositeltava)
  • 1× leipälauta (valinnainen)

Valmistelu

  1. Irrota etälaite sen virtalähteestä (akku tai USB).
  2. Kiinnitä vastus LEDin pidempään (positiiviseen) johtoon, ja yhdistä sitten keltainen johto vastuksen toiseen päähän.
  3. Yhdistä keltaisen johdon toinen pää turvalliseen GPIO-nastaan (esimerkiksi TLoraV1:ssä voit käyttää GPIO21).
  4. Yhdistä laitteen maadoitusnasta (TLoraV1:ssä tämä on päätynasta RST-painikkeen vieressä) mustaan maajohtoon LEDin lyhyemmän (negatiivisen) johdon kanssa.
  5. Palauta virta laitteeseen.

Varmistus

Oletuksena pinni voi olla joko ”pois päältä” tai ”päällä” (useimmiten ”pois päältä”). Katso alla olevat vaiheet komentojen suorittamiseksi. Esimerkiksi käytettäessä GPIO21, vastaava maskiarvo on 0x200000.

Tilaa uutiskirjeemme

Saa uusimmat tiedot tuotteistamme ja erikoistarjouksistamme.

Website Feedback

Help us improve OpenELAB

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