Detektor garážových vrat: Haló, krabičko, jak se k tobě dostanu z internetu?

  • Minule jsme si postavili detektor garážových vrat
  • Jeho řídící čip je skrze Wi-Fi připojený do domácí sítě
  • Dnes si ukážeme několik technik, jak se k němu dostat z internetu

Zkraje února jsme si ukázali, jak pomocí laserového nebo ultrazvukového dálkoměru a drobné destičky s Wi-Fi čipem ESP8266 postavit jednoduchý zabezpečovací systém do garáže.

Prototyp jsme připevnili na strop a ve smyčce stále dokola měřili vzdálenost k nejbližší překážce pod ním. Z těchto dat jsme pak mohli vyčíst, zda je pod senzorem automobil nebo jsou otevřená vrata.

Základní HTTP server v LAN

Jelikož jsme programovali Wi-Fi čip ESP8266, náš firmware se hned po startu připojil do domácí sítě, získal místní IP adresu a na standardním TCP portu 80 spustil jednoduchý HTTP server. Pak už jen stačilo dohledat adresu čipu třeba skrze populární mobilní aplikaci Fing, vyťukat ji do webového prohlížeče a podívat se, jak je na tom právě teď vaše garáž.

Klepněte pro větší obrázekKlepněte pro větší obrázek
Ultrazvukový dálkoměr na stropě garáže jako jednoduchý detektor otevřených vrat a zaparkovaných automobilů

Primitivní HTTP server běžící přímo na drobném čipu sice v prostředí Arduino naprogramujete velmi jednoduše na několika řádcích kódu, ale má to jeden principiální háček. Web našeho dálkoměru bude ve výchozím stavu dostupný jen z naší vlastní sítě. Sice se tedy podíváme na stav garáže, ale pouze v případě, že budeme doma, což trošku postrádá smysl.

Klepněte pro větší obrázek
Jednoduchá webová stránka Wi-Fi čipu

Jak tedy fungují všechny ty ostatní komerční krabičky internetu věcí počínaje chytrými zásuvkami a konče žárovkami, se kterými se skrze mobilní aplikaci spojíme klidně i z dovolené v Bulharsku? Dnes si ukážeme několik technik, s jejichž pomocí by to mohl domácí bastlíř jednoduše vyřešit.

Přesměrování portů

Tím zdaleka nejjednodušším způsobem, byť zároveň nejméně bezpečným, je primitivní pootevření vrátek do naší domácí sítě s veřejnou internetovou IP adresou.

Pokud bude Wi-Fi čip běžet třeba na LAN adrese 192.168.1.10 a jeho HTTP server na TCP portu 80, na domácím Wi-Fi routeru můžeme v sekci přesměrování portů (port forwarding) nastavit pravidlo, že když se někdo z vnějšího internetu pokusí přihlásit na naši veřejnou internetovou IP adresu a TCP port 80, router jej přesměruje na 192.168.1.10:80.

Klepněte pro větší obrázek
Přesměrování vnějšího TCP portu na vnitřní na routerech se systémem OpenWrt

IPv4 adres je ale relativně omezené množství (zhruba 4 miliardy), a tak celý veřejný rozsah průběžně procházejí roboti z Číny, Ruska a dalších končin a zkoušejí, zda na nich nejsou otevřené právě některé z těchto typických TCP portů. Suma sumárum, náš webový server na ESP8266 by se brzy dostal do obřího indexu vyhledávače internetu věcí Shodan. A to fakt nechcete!

Má to nějaké řešení? Pokud chceme zachovat princip přesměrování portů, podstatnou část podobných automatických čmuchalů odstřelíme volbou nějakého atypického portu, kterým může být prakticky jakékoli kladné celé 16bitové číslo. Zatímco na TCP port 80 se podívá každý bot, takový port 20123 už zkontroluje leda v případě hloubkové analýzy.

Technik, jak zabezpečit přesměrovaný port, je samozřejmě více. Základem je šifrování, nějaká forma autentizace, omezení spojení jen na vybrané IP adresy klientů (white list), anebo třeba namísto přesměrování portů přistupovat do domácí sítě LAN skrze šifrovaný VPN tunel.

HTTP server v internetu

No dobrá, ale co když veřejnou a ideálně neměnnou IP adresu nemáme a do naší domácí LAN se zvenčí prostě nedostaneme? V tom případě můžeme celou komunikaci otočit. Namísto toho, abychom se připojovali k HTTP serveru na čipu ESP8266, se budeme připojovat k libovolnému webovému serveru kdesi na internetu. Buď si jej zaplatíme u některé z běžných hostingových společností, Microsoft Azure, Amazon AWS, anebo využijeme Google Cloud.

Klepněte pro větší obrázekKlepněte pro větší obrázekKlepněte pro větší obrázek
Management Google Cloudu a nejslabší virtuální server s Ubuntu, který se však vejde do měsíční bezplatné kvóty – viz přiložená faktura za leden. Spravovat jej mohu třeba skrze standardní konzoli SSH.

Google totiž u svých cloudových služeb nabízí poměrně slušnou základní bezplatnou kvótu, do které se běžný domácí kutil bez velkých nároků hravě vejde. Zdarma dosáhnete v rámci služby Compute Engine dokonce i na nejnižší virtuální stroj f1-micro s Ubuntu600 MB RAM10GB úložištěm a hlavně veřejnou statickou IP adresou.

Klepněte pro větší obrázekKlepněte pro větší obrázekKlepněte pro větší obrázek
Webový správce mojí chytré domácnosti, o kterou se stará Raspberry Pi 4. Webový frontend ale neběží přímo na Raspberry Pi, ale právě na virtuálním serveru Google Cloud, který se teprve skrze technologii WebSocket šifrovaně a hlavně obousměrně spojí se základnou v bytě a streamuje z ní údaje v reálném čase ve formátu JSON.

Získáte tedy zhruba výkon Raspberry Pi Zero, který sice opravdu není na to, abyste na něm rozjeli vlastní Facebook, bude však bohatě stačit k tomu, aby na něm poslouchal jednoduchý server s webovou prezentací jen pro naše soukromé účely. Tedy jakási brána naší vlastní zbastlené chytré domácnosti.

Pokračování článku patří k prémiovému obsahu

Získejte neomezený přístup a Živě bez reklam už za 41 Kč měsíčně

Témata článku: Pojďme programovat elektroniku, Python, Arduino, C++, Články z Computeru


Určitě si přečtěte

Japonská MANA může být 80× výkonnější než sebelepší tranzistorový procesor

Japonská MANA může být 80× výkonnější než sebelepší tranzistorový procesor

** Tranzistory současných počítačů vyzařují při přepínání teplo ** Na Tokijské univerzitě proto vyvíjejí adiabatické procesory ** Využívají supravodivost a jsou 80× úspornější

Jakub Čížek | 48

Jakub Čížek
TranzistoryProcesoryTechnologie
Archivovat data do cloudu, na HDD, SSD, DVD, nebo Blu-ray? Co je nejvýhodnější?

Archivovat data do cloudu, na HDD, SSD, DVD, nebo Blu-ray? Co je nejvýhodnější?

** Kam doma natrvalo uložit data? Vyplatí se ještě optická média? ** Jaké kapacity disků a médií má smysl koupit? ** Cenovou výhodnost si ukážeme na příkladech s 2TB úložištěm

Lukáš Václavík | 125

Lukáš Václavík
ZálohováníÚložištěPevné disky
Výmluvy filmových pirátů jsou stejně ostudné jako český autorský zákon (komentář)

Výmluvy filmových pirátů jsou stejně ostudné jako český autorský zákon (komentář)

** Autorský zákon vůbec nerespektuje internet a současnou realitu. ** Je stahování filmů legální a jaké se na to vztahují výjimky? ** Proč a za co všechno platíme výpalné?

Lukáš Václavík | 361

Lukáš Václavík
PirátstvíHudba, filmy, seriály
26 užitečných rozšíření pro Chrome: Naučte prohlížeč nové věci

26 užitečných rozšíření pro Chrome: Naučte prohlížeč nové věci

** Prohlížeč Chrome obsahuje širokou škálu funkcí, neumí ale všechno ** Jeho schopnosti můžete rozšířit pomocí rozšíření ** Vybrali jsme pro vás zajímavé a užitečné doplňky

Karel Kilián | 47

Karel Kilián
Doplňky do prohlížečeChromeProhlížeče
Messenger a Instagram přicházejí v Evropě o funkce. Kvůli nové směrnici o soukromí
Vladislav Kluska
EvropaInstagramFacebook Messenger
Jak najít hranice území obcí a okresů, abyste věděli, kde se můžete pohybovat
Filip KůželJakub Čížek
KoronavirusMapy
Nejlepší příslušenství k počítači. Tipy na osvědčené klávesnice, tiskárny, routery…

Nejlepší příslušenství k počítači. Tipy na osvědčené klávesnice, tiskárny, routery…

** Tipy na užitečné příslušenství k počítačům ** Poradíme, s jakými produkty neuděláte chybu ** Od drobností do USB až po routery a tiskárny

David Polesný, Stanislav Janů | 20

David PolesnýStanislav Janů
Příslušenství
Týden Živě: On fakt dnes ještě někdo stahuje filmy z Ulož.to?

Týden Živě: On fakt dnes ještě někdo stahuje filmy z Ulož.to?

** Kauza Ulož.to a proč my dva už (moc) newarezíme ** Windows 10X existují, ale nabízí se otázka proč ** Nissan ukázal vizi kanceláře v podobě karavanu

Jakub Čížek, Vladislav Kluska | 152

Jakub ČížekVladislav Kluska
Týden ŽivěVideo
Šestikolku Perseverance pohání prehistorický procesor. Podobný měl i Apple iMac G3

Šestikolku Perseverance pohání prehistorický procesor. Podobný měl i Apple iMac G3

** Rover pohání prehistorický čip PowerPC 750, prolétlo internetem ** Ve skutečnosti je to složitější, je to jeho kosmická verze ** Jmenuje se BAE RAD750 a příliš nezestárnul

Jakub Čížek | 16

Jakub Čížek
PerseveranceProcesory