9.10.2024
Ú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