Pojďme programovat elektroniku

Postavili jsme 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

Už dříve jsme 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.

Tento článek je součástí balíčku PREMIUM+

Odemkněte si exkluzivní obsah a videa bez reklam na devíti webech.

Vyzkoušet za 1 Kč Nebo samostatné Živě Premium

Témata článku: Pojďme programovat elektroniku, Články z Computeru, Python, C++, Arduino, WiFi síť, Compute Engine, JSM, Rey, Bulhar, Fingerprint, Port Forwarding, MJPEG, WebSock



Sex manželských párů? Jen výjimečně. Ložnice ovládnou roboti s umělou inteligencí

Sex manželských párů? Jen výjimečně. Ložnice ovládnou roboti s umělou inteligencí

** Sex manželských párů jen při zvláštních příležitostech. ** Ložnice ovládnou sexuální roboti s umělou inteligencí. ** I to je jeden ze závěrů Mezinárodní robotické konference.

Filip KůželJiří Liebreich
RobotiSexUmělá inteligence
Horší než covid, mobilní výrobci zažívají krušné časy. Samsungu uvízlo po světě 50 milionů neprodaných telefonů

Horší než covid, mobilní výrobci zažívají krušné časy. Samsungu uvízlo po světě 50 milionů neprodaných telefonů

** Dozvuky pandemie, nedostatek čipů a teď zase válka ** (Nejen) mobilní výrobci zažívají krušné časy ** Samsung má např. ve skladech na 50 milionů neprodaných telefonů

Martin Chroust
Nižší třídaStřední třída
Tuto českou základnu plnou satelitů nesmíte vidět. V Mapy.cz je každá anténa pečlivě vyretušovaná

Tuto českou základnu plnou satelitů nesmíte vidět. V Mapy.cz je každá anténa pečlivě vyretušovaná

** Zapomeňte na rozčtverečkovaná místa, kterých si každý všimne ** Mapy.cz musely dokonale zakrýt desítky parabol ** Základnou se přitom na webu chlubí i její majitel. Kocourkov

Jakub Čížek
ČeskoMapy.czMapy
Oppo a OnePlus nesmí v Německu prodávat telefony. Zákaz hrozí i v dalších zemích EU

Oppo a OnePlus nesmí v Německu prodávat telefony. Zákaz hrozí i v dalších zemích EU

** Patentové spory většinou ústí k tomu, že jedna z firem zaplatí ** Oppo ani OnePlus však nechtějí platit 2,50 EUR za každý telefon ** Firmy už v Německu nesní prodávat, a to může platit i o dalších trzích

Martin Chroust
NěmeckoPatentSmartphony
15 praktických tipů a triků pro Mapy.cz, které možná neznáte

15 praktických tipů a triků pro Mapy.cz, které možná neznáte

** Mapy.cz neslouží jen k zobrazení podkladů a plánování tras ** Nabízejí celou řadu dalších praktických funkcí a možností ** Vybrali jsme 15 tipů a triků, o kterých možná nevíte

Karel Kilián
Mapy.czMapyTipy
Kurvítka v základní výbavě, výrobci mají umělé zastarávání v malíku. Začalo to bateriemi, pokračuje softwarem

Kurvítka v základní výbavě, výrobci mají umělé zastarávání v malíku. Začalo to bateriemi, pokračuje softwarem

** Nejen mobilní výrobci jsou naučeni rok od roku prodávat stále více telefonů ** Tento trend se však zákonitě musí někdy zastavit ** Jenže, co naplat, když jsou starší zařízení „uměle“ nepoužitelná?

Martin Chroust
Prasklý displejBaterieAktualizace softwaru
Google není jen vyhledávač: 15 užitečných funkcí, o kterých možná ani nevíte

Google není jen vyhledávač: 15 užitečných funkcí, o kterých možná ani nevíte

** Google umí kromě vyhledávání i spoustu dalších věcí ** Vybrali jsme více než 15 užitečných funkcí a schopností ** Stačí zadat do vyhledávače ta správná klíčová slova

Karel Kilián
TipyVyhledávačeGoogle
Nastal pravý čas na výměnu telefonu. Jak poznat, že ten váš už dosluhuje?

Nastal pravý čas na výměnu telefonu. Jak poznat, že ten váš už dosluhuje?

** Jak poznat, že váš telefon má nejlepší dny za sebou? ** Vypadá potlučeně, má pavučinu nebo nedostává aktualizace? ** Ukážeme si, kdy má smysl jeho oprava, a kdy už jen koupě nového

Martin Chroust
Prasklý displejVysloužilý mobilSmartphony