9.10.2024

foto Petr Bravenec

Petr Bravenec
Twitter: @BravenecPetr
+420 777 566 384
petr.bravenec@hobrasoft.cz

Úvod

Meshtastic (více zde: Meshtastic - síť pro zombie apokalypsu) je síť, která je alespoň v mém okolí využívana jako komunikační prostředek. Ale ke stanicím Meshtastic lze snadno připojit i různý hardware – to jsou ty „věci“ v obecně používaném slovním spojení „Internet věcí“.

Vyzkoušeli jsme, jak přes síť Meshtastic posílat informace z PIR čidla – detektoru pohybu. PIR čidlo je tradiční součástí automaticky spínaných světel či poplašných systémů a používá se všude, kde je potřeba velmi levně detekovat pohyb osob (a koček, kun… při špatném nastavení i komárů). Rozsvěcet přes Meshtastic světlo je samozřejmě zbytečný kanón, ale například u jednoduchého poplašného systému někde v zahradním domku bez elektřiny je Meshtastic velmi vhodné řešení.

Celý Meshtastic řetěz zařízení může vypadat například takto:

  • První zařízení v režimu „tichý klient“ s připojeným PIR čidlem v případě detekce pohybu začne do sítě posílat informaci o události.
  • Druhé zařízení v režimu „klient“ či „tichý klient“ s připojenou sirénou při přijetí informace začne vřeštět.
  • Není-li mezi zařízeními přímé propojení, může se do cesty vložit třetí zařízení v roli routeru - prostředníka, který předá informaci od detektoru až k siréně.

Nastavení komunikačního kanálu

Meshtastic posílá informace v jednom frekvenčním kanálu. Tento kanál je sdílený a zařízení Meshtastic bez dalšího nastavení rozesílá informace na všechny strany. Informace z PIR čidla není vhodné rozesílat veřejně: jednak taková informace obtěžuje ostatní a druhak jde o únik bezpečnostních, privátních informací. Meshtastic pro tyto účely umožňuje vytvořit privátní šifrovaný kanál. Nejsnáze lze celou spojovací cestu vytvořit v mobilní aplikaci.

  • Připojte se přes Bluetooth na zařízení s PIR čidlem a v nastavení najděte stránku „Channels“. Měli byste vidět minimálně jeden kanál (v default nastavení LongFast, v ČR se často používá MediumFast).
  • Vytvořte nový kanál – název zvolte dle vlastního uvážení, například PIR – a pro tento kanál vytvořte šifrovací klíč (PSK - klíč „AQ==“ je prázdny, bez šifrování). Tento kanál potřebujete dostat na první pozici s číslem nula - do tohoto kanálu se budou posílat všechny informace z připojeného hardware (zde PIR čidlo). Smažte proto všechny kanály s nižším číslem, pravděpodobně zde najdete kanál „MediumFast“.
  • PSK klíč k tomuto kanálu si zkopírujte do schránky pro nastavení v druhém zařízení.
  • Bez kanálu „MediumFast“ nebudete moci přijímat zprávy z veřejného prostoru, ale u PIR detektoru to většino není na závadu. Pokud by vám kanál „MediumFast“ chyběl, můžete jej vytvořit v tento moment, připojí se na konec seznamu.
  • Přes Bluetooth se připojte ke druhému zařízení se sirénou. Zde vytvořte stejně pojmenovaný kanál a zkopírujte PSK klíč ze zařízení s připojeným PIR čidlem. Protože toto zařízení bude sloužit pro příjem informací, pořadí jednotlivých kanálů není tak kritické, klidně můžete nechat na první (nulté) pozici kanál „MediumFast“.
  • Tento okamžik je velmi vhodný i na vytvoření kanálu pro dálkovou správu: stejným způsobem vytvořte kanál „admin“ (musí se jmenovat právě takto) a zkopírujte si do schránky jeho PSK klíč.
  • Opět se připojte přes Bluetooth k zařízení s PIR detektorem a vytvořte kanál „admin“ i zde, PSK klíč musí být shodný jako na druhém zařízení.
  • Po otestování komunikace na kanálu PIR a dálkové administrace můžete na zařízení s PIR detektorem vypnout Wifi, Bluetooth, zapnout úsporný režim a přepnout do režimu „tichý klient“ (CLIENT_MUTE). V této konfiguraci by měla být spotřeba tohoto zařízení minimální.

Se zprovozněnou dálkovou administrací se můžete natrvalo připojit přes Bluetooth k zařízení s připojenou sirénou a provádět všechna potřebná nastavení odtud.

Zařízení s připojeným detektorem

PIR čidlo má v nastavení vlastní stránku: „Detection Sensor“. Podrobný popis je k dispozici na stránkách Meshtastic: Detection Sensor Module Usage. Kritické jsou zde tři volby:

  • GPIO pin to monitor - na kterém vývodu je připojené PIR čidlo. Na našem zařízení Heltec V3 odpovídá značení vývodů číslům na desce. Není to pravděpodobné, ale u jiných zařízení může být rozdílné číslování v aplikaci od číslování na desce. U volby GPIO pinu jsme se nesetkali s žádným zádrhelem, fungovalo to na několika různých vývodech.
  • Detection is triggered on HIGH – normálním výstupem z čidla je logická 1 (detekce) nebo 0 (žádný pohyb). Čidlo ale nemusí být snadno připojitelné přímo – my jsme museli použít spínací tranzistor. Ten ovšem signál z čidla invertuje a proto je nutné zapnout tuto volbu: při detekci posílá obvod s tranzistorem logickou 0, v klidu pak logickou 1. Špatné nastavení poznáte snadno: zařízení bude hlásit poplach v situacích, kdy se nic neděje. Uklidní se až v momentě, kdy začne detekovat pohyb.
  • Use INPUT_PULLUP mode – nepodařilo se nám připojit čidlo napřímo. Signál (logická 1) z čidla je velmi slabý a nedokáže se přetlačit se zařízením Heltec. Proto jsme museli použít spínací tranzistor, který dokáže signál z čidla posílit. Pullup rezistor v klidovém stavu drží GPIO signální vývod udržet v úrovni logická 1, spínací tranzistor „zkratuje“ při detekci GPIO k zemi a nastaví úroveň na logickou 0. Při použití spínacího tranzistoru je pullup nutný, ale pokud jej nedokáže poskytnout zařízení (Heltec to umí), dá se snadno doplnit externě.

Nastavení lze otestovat i bez připojeného PIR čidla. V klidovém stavu nesmí zařízení posílat žádné zprávy. Při propojení GPIO se zemí odešle zařízení zprávu o detekci. Toto chování odpovídá následujícímu nastavení:

  • Detection triggered on HIGH – vypnuto
  • Use INPUT_PULLUP mode – zapnuto

Připojení PIR čidla

K dispozici máme tři různá PIR čidla. Jako nejlepší se v praxi jeví to největší (HC-SR501). Menší, jednoduchá čidla totiž nelze nastavit. Pokud je citlivost příliš vysoká, bude vám čidlo hlásit každou mouchu, která proletí kolem a bude tak vyvolávat velké množství falešných poplachů. U čidla HC-SR501 lze mimo citlivosti nastavit i dobu sepnutí (čidlo je zjevně určeno při spínání světel) a chování čidla při detekci (první režim: dokud se hýbe, je rozsvíceno, druhý režim: pohybem se zapne, po nastavené době se vypne bez ohledu na další pohyb).

Čidlo při detekci pohybu nastaví výstup na logickou 1. Signál lze změřit například digitálním voltmetrem (starší analogový voltmetr může mít příliš malý vnitřní odpor a ovlivnit tak měření). Při připojení k zařízení Heltec ale nestačí signál z čidla k přetlačení obvodů v Meshtastic zařízení, potřebuje proto posilu v podobě spínacího tranzistoru. Použili jsme šuplíkový BS170 (spínací FET), ale s velikou pravděpodobností vyhoví i spousta různých spínacích bipolárních tranzistorů.

Tranzistor pracuje proti internímu pullup rezistoru v zařízení Heltec. U některých zařízení nemusí být pullup rezistor k dispozici, pak je možné použít externí pullup. Externí rezistor nakreslený ve schematu v našem případě nebyl potřeba.

Připojení sirény

Pro experimenty s PIR čidlem sirénu nepotřebujete, vystačíte si s připojením k Meshtastic zařízení přes Bluetooth. Mobilní telefon je schopný vás jemně upozornit na vzniklou událost. Hlasitě ječící siréna je však vhodným doplňkem pro bezpečnostní poplašné zařízení v rutinním provozu.

Siréna je připojená k druhému, přijímajícímu zařízení. Použili jsme jednoduchý miniaturní speaker vykuchaný ze starého PC. Ve stejném balení lze ale narazit i na skutečnou sirénu, na první pohled nelze sirénu od reproduktoru rozlišit. Jejich chování je ale různé, použít lze obojí:

  • Siréna – při připojení napájecího napětí ve správné (!) polaritě hlasitě píská. Může být výrazně hlasitější než speaker, ale nikdy vám nezahraje žádnou melodii, vždy bude jen odporně ječet.
  • Speaker – při připojení napájecího napěti pouze lupne, hřeje a po krátké době shoří. S tímto zařízením má Meshtastic více práce, na druhou stranu lze na speaker ze zařízení poslat i jednoduchou melodii.

Mimo sirénu lze k zařízení Meshtastic připojit i signální LED nebo vibrační motorek (ze starého telefonu). LED i sirénu lze připojit přímo, i když jednoduchý zesilovač v podobě spínacího tranzistoru nemusí být na škodu, V případě vibračního motorku bych asi použil spínací tranzistor vždy (nezkoušel jsem to).

U sirény jsme na narazili na zásadní chybu: speaker nám nechtěl fungovat jinde, než na GPIO 0 (pravděpodobně jen zde lze použít PWM).

Nastavení najdete na stránce „External Notification“, podrobný popis najdete na stránkách Meshtastic: External Notification Module Configuration.

Kritická nastavení jsou tato:

  • Output buzzer (GPIO) – fungovalo nám pouze GPIO 1, přičemž výstup byl k dispozici na vývodu 0 zařízení Heltec. Dá se předpokládat, že siréna bude fungovat na libovolném GPIO (podobně jako nam fungovala LED).
  • Use PWM buzzer – pokud máte pouze speaker, je nutné volbu zapnout. U sirény by mělo být vypnuto.
  • Ringtone – zde je možné nastavit vhodnou melodii, zápis dostatečně alarmujícího zvuku vypadá například takto: „siren:d=8,o=5,b=100:d,e,d,e,d,e,d,e“. Popis na stránce Meshtastic je poměrně strohý, některé doplňující detaily lze zjistit i na stránkách ESPHome: Rtttl Buzzer.
  • Ostatní volby jsou poměrně přímočaré a na jejich použití jistě přijdete sami

Podobně lze připojit i LED, relé spínající skutečnou lodní sirénu na buzení mrtvých či libovolné jiné poplach vyvolávající zařízení.

Zajímavým počinem může být připojení I²S zařízení, do kterého se posílá akustický signál digitálně (podobně jako MIDI nebo I²C sběrnice). Aliexpres nabízí v ceně kolem jednoho či dvou dolarů přehršel různých zesilovačů, ke kterým stačí připojit reproduktor a zdroj napětí. To jsme ovšem nezkoušeli.

Odkazy

Hobrasoft s.r.o. | Kontakt