Chytrý dům na bázi kontrolérů Arduino: návrh a organizace řízeného prostoru
Rozvoj automatizačních prostředků vedl k vytvoření komplexních systémů, které zlepšují kvalitu lidského života. Mnozí známí výrobci elektroniky a softwarových prostředí nabízejí hotová typová řešení pro různé objekty.
Samostatné projekty a sestavení “chytrého domu” na Arduino podle vlastních potřeb zvládne i nezkušený uživatel. Hlavní je pochopit základy a nebát se experimentovat.
V tomto článku se podíváme na princip tvorby a základní funkce automatizovaného domu na bázi zařízení Arduino. Také se podíváme na používané typy desek a hlavní moduly systému.
Obsah článku:
Tvorba systémů na platformě Arduino
Arduino – platforma pro vývoj elektronických zařízení s automatickým, poloautomatickým nebo ručním ovládáním. Je postavena na principu stavebnice s jasně definovanými pravidly interakce mezi prvky. Systém je otevřený, což umožňuje nezávislým výrobcům podílet se na jeho rozvoji.
Klasický “chytrý dům” se skládá z automatizovaných bloků, které plní následující funkce:
- shromažďují potřebné informace pomocí senzorů;
- analyzují data a přijímají rozhodnutí pomocí programovatelného mikroprocesoru;
- realizují přijatá rozhodnutí vysíláním příkazů různým zařízením.
Platforma Arduino je skvělá právě tím, že není omezena na konkrétního výrobce, ale umožňuje spotřebiteli vybrat si komponenty, které mu vyhovují. Jejich výběr je obrovský, takže lze realizovat prakticky jakékoliv nápady.
Doporučujeme se seznámit s nejlepšími chytrými zařízeními pro domácnost.

Kromě rozmanitosti připojitelných zařízení přidává variabilitu programovací prostředí realizované v jazyce C++. Uživatel může nejen využít vytvořené knihovny, ale také sám naprogramovat reakci komponentů systému na vzniklé události.
Základní prvky desek
Hlavním prvkem “inteligentního domu” je jedna nebo několik centrálních (mateřských) desek. Ty jsou zodpovědné za interakci všech prvků. Teprve po definování úkolů, které je třeba vyřešit, lze přistoupit k výběru hlavního uzlu systému.
Mateřská deska v sobě sdružuje následující prvky:
- Mikrokontrolér (procesor). Jeho hlavním účelem je vydávat a měřit napětí na portech v rozsahu 0–5 nebo 0–3,3 V, ukládat data a provádět výpočty.
- Programátor (není u všech desek). Pomocí tohoto zařízení se do paměti mikrokontroléru nahrává program, podle kterého bude “inteligentní dům” pracovat. K počítači, tabletu, smartphonu nebo jinému zařízení se připojuje pomocí USB rozhraní.
- Stabilizátor napětí. Je nutné zařízení na 5 voltů, které je potřeba k napájení celého systému.
Pod značkou Arduino se vyrábí několik modelů desek. Liší se od sebe formátem (velikostí), počtem portů a kapacitou paměti. Právě podle těchto ukazatelů je třeba vybrat vhodné zařízení.

Existují dva druhy portů:
- digitální, které jsou na desce označeny písmeny “d”;
- analogové, které jsou označeny písmenem “a”.
Díky nim mikrokontrolér provádí komunikaci s připojenými zařízeními. Libovolný port může pracovat jak pro příjem signálu, tak pro jeho vysílání. Digitální porty s označením “pwm” jsou určeny pro vstup a výstup signálu typu PWM (pulsně šířková modulace).
Proto před zakoupením desky je nutné alespoň přibližně odhadnout úroveň jejího zatížení různými zařízeními. To umožní určit potřebné množství portů všech typů.
Přitom je třeba si uvědomit, že systém “inteligentní dům” nemusí být nutně svázán do řídicí jednotky založené na jedné mateřské desce. Funkce jako například zapínání umělého osvětlení přilehlého pozemku v závislosti na denní době a udržování rezervy vody v akumulační nádrži jsou na sobě nezávislé.
Z hlediska zajištění spolehlivosti provozu elektronického systému je lepší rozdělit nesouvisející úkoly do různých bloků, což koncepce Arduino snadno umožňuje. Pokud se na jednom místě spojí mnoho zařízení, může dojít k přehřátí mikroprocesoru, konfliktům softwarových knihoven a potížím při hledání a odstraňování softwarových a hardwarových závad.

Každý mikroprocesor je vybaven třemi typy paměti:
- Flash Memory. Hlavní paměť, kde je uložen kód řídicího programu systému. Malou část (3-12 %) zabírá vložený zaváděcí program (bootloader).
- SRAM. Operační paměť, kde se ukládají dočasná data potřebná při běhu programu. Vyznačuje se vysokou rychlostí.
- EEPROM. Pomalejší paměť, kde lze také ukládat data.
Hlavní rozdíl mezi typy paměti pro ukládání dat spočívá v tom, že při vypnutí napájení se informace uložená v SRAM ztrácí, zatímco v EEPROM zůstává. Energeticky nezávislý typ má však i nevýhodu – omezený počet zapisovacích cyklů. To je třeba mít na paměti při tvorbě vlastních aplikací.
Na rozdíl od použití Arduina v robotice, pro většinu úloh “chytrého domu” není potřeba mnoho paměti ani pro programy, ani pro ukládání informací.
Druhy desek pro sestavení chytrého domu
Podívejme se na základní typy desek, které se nejčastěji používají při sestavování systému chytrého domu.
Typ #1 — Arduino Uno a jeho deriváty
Nejčastěji se v systémech “chytrý dům” používají desky Arduino Uno a Arduino Nano. Disponují dostatečnou funkcionalitou pro řešení typických úloh.

Základní parametry Arduino Uno Rev3:
- procesor: ATMega328P (8bitový, 16 MHz);
- počet digitálních portů: 14;
- z nich s funkcí PWM: 6;
- počet analogových portů: 6;
- flash memory: 32 KB;
- SRAM: 2 KB;
- EEPROM: 1 KB.
Nedávno vyšla modifikace – Uno Wi-Fi, která obsahuje integrovaný modul ESP8266, umožňující výměnu informací s jinými zařízeními podle standardu 802.11 b/g/n.
Rozdíl mezi Arduino Nano a jeho objemnějším analogem spočívá v absenci vlastní napájecí zdířky pro 12 V. To je provedeno za účelem dosažení menší velikosti zařízení, což umožňuje jej snadno schovat do malého prostoru. Také pro tyto účely je standardní USB připojení nahrazeno čipem s mini-USB kabelem. Arduino Nano má oproti Uno o 2 analogové porty více.
Existuje ještě jedna modifikace desky Uno – Arduino Mini. Je ještě menší než Nano a pracovat s ní je mnohem složitější. Zaprvé, absence USB portu vytváří problém s firmwarem, protože pro to bude nutné použít USB-Serial Converter. Zadruhé, tato deska je náročnější na napájení – je nutné zajistit rozsah vstupního napětí 7-9 V.
Z výše uvedených důvodů se deska Arduino Mini používá jen zřídka pro práci “chytrou domácnost”. Obvykle se používá buď v robotice, nebo při realizaci již hotových projektů.
Typ #2 — Arduino Leonardo a Micro
Deska Arduino Leonardo je podobná Uno, ale je o něco výkonnější. Zajímavou vlastností tohoto modelu je, že se při připojení k počítači identifikuje jako klávesnice, myš nebo joystick. Proto se často používá k vytváření originálních herních zařízení a simulátorů.

Hlavní parametry Arduino Leonardo jsou následující:
- procesor: ATMega32u4 (8 bit, 16 MHz);
- počet digitálních portů: 20;
- z nich s funkcí PWM: 7;
- počet analogových portů: 12;
- flash memory: 32 KB;
- SRAM: 2,5 KB;
- EEPROM: 1 KB.
Jak je patrné z uvedeného seznamu parametrů, Leonardo má více portů, což umožňuje tuto desku zatížit větším počtem senzorů.
Pro Leonardo existuje také zcela identický miniaturní analog s názvem Micro. Chybí u něj napájení z 12 V a místo plnohodnotného USB vstupu je přítomen čip pro mini-USB kabel.
Modifikace Leonardo s názvem Esplora je čistě herní model a pro potřeby “chytré domácnosti” není vhodná.
Typ #3 — Arduino 101, Arduino Zero a Arduino MKR1000
Někdy je pro provoz systémů “chytré domácnosti” postavených na Arduino potřeba větší výpočetní výkon, který 8bitové mikrokontroléry nejsou schopny poskytnout. Úkoly jako rozpoznávání hlasu nebo obrazu vyžadují rychlý procesor a značný objem operační paměti pro taková zařízení.
Pro řešení takových specifických úkolů se používají výkonné desky fungující podle koncepce Arduino. Počet portů u nich je přibližně stejný jako u desek Uno nebo Leonardo.

Jedna z nejsnadněji použitelných, ale výkonných desek – Arduino 101 má následující vlastnosti:
- procesor: Intel Curie (32 bit, 32 MHz);
- flash memory: 196 KB;
- SRAM: 24 KB;
- EEPROM: ne.
Deska je navíc vybavena funkcionalitou BLE (Bluetooth Low Energy) s možností jednoduchého připojení hotových řešení, jako je senzor srdečního tepu, získávání informací o počasí za oknem, odesílání textových zpráv atd. Do zařízení je také integrován gyroskop a akcelerometr, ale používají se hlavně v robotice.
Další podobná deska – Arduino Zero má následující ukazatele:
- procesor: SAM-D21 (32 bit, 48 MHz);
- flash paměť: 256 KB;
- SRAM: 32 KB;
- EEPROM: ne.
Charakteristickým rysem tohoto modelu je přítomnost vestavěného debuggeru (EDBG). S jeho pomocí je mnohem snazší vyhledávat chyby při programování desky.

Arduino MKR1000 je další model vhodný pro náročné výpočty. Má mikroprocesor a paměť podobné Zero. Jeho hlavním rozdílem je přítomnost integrovaného Wi-Fi čipu s protokolem 802.11 b/g/n a kryptočipu s podporou algoritmu SHA-256 pro ochranu přenášených dat.
Typ #4 — modely řady Mega
Někdy je nutné použít velké množství senzorů a ovládat značný počet zařízení. Například je to potřeba pro automatické fungování systémů distribuované klimatizace, které udržují určitou teplotu v jednotlivých zónách.
Pro každou lokální oblast je nutné sledovat údaje dvou teplotních senzorů (druhý se používá jako kontrolní) a v souladu s algoritmem provádět nastavení polohy klapky, která určuje množství přiváděného teplého vzduchu.
Pokud je v domě více než 10 takových zón, je pro řízení celého systému potřeba více než 30 portů. Samozřejmě lze použít několik desek typu Uno pod společným řízením jedné z nich, to však vytváří další komplikace s propojením. V tomto případě je vhodné použít modely rodiny Mega.

Deska Arduino Mega je postavena na základě poměrně jednoduchého 8bitového 16MHz mikroprocesoru aTMega1280.
Má velkou kapacitu paměti:
- flash paměť: 128 KB;
- SRAM: 8 KB;
- EEPROM: 4 KB.
Ale její hlavní předností je přítomnost mnoha portů:
- počet digitálních portů: 54;
- z nich s funkcí PWM: 15;
- počet analogových portů: 16.
Tato deska má dvě moderní varianty:
- Mega 2560 je založena na mikroprocesoru aTMega2560, který se vyznačuje větší kapacitou flash paměti – 256 KB;
- Mega ADK je kromě mikroprocesoru aTMega2560 vybavena USB rozhraním s možností připojení k zařízením založeným na operačním systému Android.
Při připojení telefonu k USB vstupu může nastat následující situace: pokud telefon potřebuje nabíjení, začne ji “tahat” z desky. Proto je zde dodatečný požadavek na zdroj elektrické energie – musí zajistit proud 1,5 ampéru. Při napájení z baterií je třeba tuto podmínku zohlednit.

Due – další model od Arduino, který spojuje výkon mikroprocesoru s velkým množstvím portů.
Jeho specifikace jsou následující:
- procesor: Atmel SAM3X8E (32 bit, 84 MHz);
- počet digitálních portů: 54;
- z nich s funkcí PWM: 12;
- počet analogových portů: 14;
- flash memory: 512 KB;
- SRAM: 96 KB;
- EEPROM: ne.
Analogové kontakty této desky mohou pracovat jak v obvyklém 10bitovém rozlišení Arduino, které je zachováno pro kompatibilitu s předchozími modely, tak ve 12bitovém, které umožňuje získat přesnější signál.
Specifika interakce modulů přes porty
Všechny moduly, které budou připojeny k desce, mají alespoň tři výstupy. Dva z nich jsou napájecí vodiče, tj. “zem” a napětí 5 nebo 3,3 V. Třetí vodič je logický. Po něm probíhá přenos dat k portu. Pro připojení modulů se používají speciální vodiče seskupené po třech, které se někdy nazývají jumpery.
Protože modely Arduino mají obvykle jen jeden port s napětím a 1–2 porty s “zemí”, pro připojení více zařízení bude nutné buď pájet vodiče, nebo použít nepájivé pole (breadboard).

Pájení je spolehlivější a používá se v zařízeních vystavených fyzickému namáhání, například u řídicích desek robotů a kvadrokoptér. Pro chytrou domácnost je lepší použít nepájivá pole, protože je to jednodušší jak při instalaci, tak při odstraňování modulu.
U některých modelů (např. Arduino Zero a MKR1000) je provozní napětí 3,3 V, proto pokud je na porty přivedeno vyšší napětí, může dojít k poškození desky. Všechny informace o napájení jsou k dispozici v technické dokumentaci zařízení.
Rozšiřující desky (shields)
Pro rozšíření možností základních desek se používají shieldy – přídavná zařízení rozšiřující funkcionalitu. Vyrábějí se pro konkrétní formát, což je odlišuje od modulů, které se připojují k portům. Shieldy jsou dražší než moduly, ale práce s nimi je jednodušší. Jsou také vybaveny hotovými knihovnami kódu, což urychluje vývoj vlastních řídicích programů pro “chytrou domácnost”.
Shieldy Proto a Sensor
Tyto dva standardní shieldy nepřinášejí žádné speciální funkce. Používají se pro kompaktnější a pohodlnější připojení velkého množství modulů.
Proto Shield je prakticky úplnou kopií originálu co se týče portů, a uprostřed modulu lze přilepit nepájivé pole. To usnadňuje montáž konstrukce. Taková rozšíření existují pro všechny plnoformátové desky Arduino.

Ale pokud je zařízení velmi mnoho (více než 10), je lepší použít dražší přepínací desky Sensor Shield.
Nemají vestavěný breadboard, ale ke všem pinům portů je individuálně přivedeno napájení a zem. To umožňuje nezamotat se v drátech a propojkách.

Také na této desce jsou konektory pro jednoduché připojení několika modulů: Bluetooth, SD karty, RS232 (COM-port), rádia a ultrazvuku.
Připojení pomocných funkcí
Shieldy s integrovanou funkcionalitou jsou určeny pro řešení složitých, ale typických úloh. Při potřebě realizace originálních nápadů je lepší vybrat vhodný modul.
Motor Shield. Je určen pro řízení rychlosti a otáčení nízkovýkonných motorů. Originální model je vybaven jedním čipem L298 a může pracovat současně se dvěma stejnosměrnými motory nebo s jedním servomotorem. Existuje také kompatibilní díl od třetího výrobce, který má dva čipy L293D s možností řízení dvakrát většího počtu pohonů.
Relay Shield. Často používaný modul v systémech “chytrý dům”. Deska se čtyřmi elektromechanickými relé, z nichž každé umožňuje průchod proudu o síle až 5 A. To je dostatečné pro automatické zapínání a vypínání kilowattových spotřebičů nebo osvětlovacích okruhů určených pro střídavý proud 220 V.
LCD Shield. Umožňuje zobrazovat informace na vestavěné obrazovce, kterou lze upgradovat na TFT zařízení. Toto rozšíření se často používá pro vytváření meteorologických stanic s údaji o teplotě v různých obytných místnostech, přístavbách, garáži a také teplotě, vlhkosti a rychlosti větru venku.

Data Logging Shield. Hlavním úkolem modulu je zaznamenávat data z čidel na plnohodnotnou SD kartu o kapacitě až 32 GB s podporou souborového systému FAT32. Pro záznam na micro-SD kartu je třeba zakoupit adaptér. Tento shield lze použít jako úložiště informací, například při záznamu dat z videorekordéru. Výroba americké firmy Adafruit Industries.
SD-card Shield. Jednodušší a levnější verze předchozího modulu. Taková rozšíření vyrábí mnoho výrobců.
EtherNet Shield. Oficiální modul pro připojení Arduino k internetu bez účasti počítače. Je zde slot pro micro-SD kartu, což umožňuje zaznamenávat a odesílat data prostřednictvím celosvětové sítě.
Wi-Fi Shield. Umožňuje bezdrátovou výměnu informací s podporou šifrovacího režimu. Slouží k připojení k internetu a zařízením, která lze ovládat přes Wi-Fi.
GPRS Shield. Tento modul se obvykle používá pro komunikaci “inteligentního domu” s majitelem prostřednictvím mobilního telefonu přes SMS zprávy.
Moduly “chytrého domu”
Připojení modulů od výrobců třetích stran a možnost práce s nimi pomocí vestavěného programovacího jazyka – to je hlavní výhoda otevřeného systému Arduino oproti “značkovým” řešením pro “inteligentní dům”. Hlavní je, aby moduly měly popis přijímaných nebo vysílaných signálů.
Způsoby získávání informací
Zadávání informací může být realizováno přes digitální nebo analogové porty. To závisí na typu tlačítka nebo čidla, které přijímá informaci a přenáší ji na desku.

Signál k mikroprocesoru může být odeslán člověkem, který k tomu používá dva způsoby:
- Stisknutí tlačítka (klávesy). Logický vodič v tomto případě vede k digitálnímu portu, který přijímá hodnotu “0” v případě uvolněného tlačítka a “1” v případě jeho stisknutí.
- Otáčení čepičky otočného potenciometru (rezistoru) nebo posun páčky posuvného. V tomto případě vede logický vodič k analogovému portu. Napětí prochází analogově-digitálním převodníkem, načež data postupují k mikroprocesoru.
Tlačítka se používají ke spuštění nějaké události, například zapnutí a vypnutí světla, topení nebo ventilace. Otočné knoflíky se používají ke změně intenzity – zvýšení nebo snížení jasu světla, hlasitosti zvuku nebo rychlosti otáčení lopatek ventilátoru.

Pro automatické určování parametrů prostředí nebo původu nějaké události se používají senzory.
Pro fungování “chytré domácnosti” jsou nejvíce žádané následující jejich druhy:
- Senzor zvuku. Digitální varianty tohoto zařízení se používají k aktivaci nějaké události pomocí tlesknutí nebo hlasového povelu. Analogové modely umožňují rozpoznávat a zpracovávat zvuk.
- Senzor světla. Tato zařízení mohou pracovat jak ve viditelném, tak v infračerveném spektru. Ty poslední mohou být použity jako systém upozornění na požár.
- Teplotní senzor. Pro domácnost a venkovní použití se používají různé modely, protože venkovní jsou lépe chráněny proti vlhkosti. Existují také venkovní zařízení na drátě.
- Senzor vlhkosti vzduchu. Do interiéru se hodí model DHT11, a do exteriéru – dražší DHT22. Obě zařízení také umí poskytnout údaj o teplotě. Připojují se k digitálnímu portu.
- Senzor tlaku vzduchu. Pro spolupráci s deskami Arduino se osvědčily analogové barometry firmy Bosh: bmp180, bmp280. Ty také měří teplotu. Model bme280 lze nazvat meteorologickou stanicí, protože navíc udává i hodnotu vlhkosti.
- Senzory pohybu a přítomnosti. Používají se pro bezpečnostní účely nebo pro automatické zapínání světla.
- Dešťový senzor. Reaguje na dopad vody na jeho povrch. Může být také použit pro aktivaci alarmu při úniku vody z vodovodního nebo topného okruhu.
- Senzor proudu. Používají se k detekci nefunkčních elektrických spotřebičů (prasklých žárovek) nebo k analýze napětí, aby se zabránilo přetížení.
- Senzor úniku plynu. Používá se k detekci a reakci na zvýšenou koncentraci propanu.
- Senzor oxidu uhličitého. Používá se ke stanovení koncentrace oxidu uhličitého v obytných místnostech a ve speciálních prostorech, jako jsou vinné sklepy, kde probíhá kvašení.
Existuje ještě mnoho různých senzorů pro specifické úkoly, například pro měření hmotnosti, rychlosti průtoku vody, vzdálenosti, vlhkosti půdy atd.

Mnoho senzorů a čidel lze vyrobit samostatně s použitím jednodušších součástek. To vyjde levněji. Ale na rozdíl od použití sériových zařízení bude nutné věnovat čas kalibraci.
Ovládání přístrojů a systémů
Kromě sběru a analýzy informací by “inteligentní dům” měl reagovat na vznikající události. Přítomnost pokročilé elektroniky na moderních domácích spotřebičích umožňuje obracet se na ně přímo pomocí Wi-Fi, GPRS nebo EtherNet. Obvykle se pro systémy Arduino realizuje komunikace mikroprocesoru s vysoce technologickými zařízeními prostřednictvím Wi-Fi.
Aby bylo možné pomocí Arduina zapnout klimatizaci při vysoké teplotě v domě, zablokovat televizi a internet v noční době v dětském pokoji nebo spustit topný kotel k příchodu majitelů, je nutné provést tři úkony:
- Nainstalovat modul Wi-Fi na základní desku.
- Najít neobsazené frekvenční kanály, aby se předešlo konfliktu systémů.
- Porozumět příkazům zařízení a naprogramovat akce (nebo použít hotové knihovny).
Kromě “komunikace” s počítačově řízenými zařízeními často vznikají úkoly spojené s prováděním nějakých mechanických činností. Například k desce lze připojit servomotor nebo malý reduktor, který bude z ní napájen.

V případě potřeby připojení výkonných zařízení napájených z externího zdroje se používají dvě možnosti:
- Zapojení relé do obvodu.
- Připojení výkonového spínače a triaku .
Do elektrického obvodu zapojované elektromagnetické nebo polovodičové relé uzavírá a rozpojuje jeden z vodičů na základě příkazu z mikroprocesoru. Jejich hlavní charakteristikou je maximální povolený proud (např. 40 A), který může tímto zařízením procházet.
Pokud jde o připojení výkonového spínače (MOSFET) pro stejnosměrný proud a triaku pro střídavý proud, mají nižší hodnotu povoleného proudu (5-15 A), ale mohou plynule zvyšovat zátěž. Právě k tomu slouží PWM porty na deskách. Této vlastnosti se využívá při regulaci jasu osvětlení, rychlosti otáčení ventilátorů atd.
Pomocí relé a výkonových spínačů lze plně automatizovat všechny elektrické obvody domu a spouštět generátor při výpadku proudu. Proto je na bázi Arduina reálné realizovat autonomní zajištění bytu nebo budovy, včetně všech obzvláště důležitých funkcí – topení, zásobování vodou, odvodnění, větrání a zabezpečovací systém.
Chcete, aby váš dům byl chytřejší, ale s programováním jste na “Vy”? V takovém případě doporučujeme podívat se na hotová řešení od Xiaomi a Apple, která lze snadno nainstalovat a nastavit i pro začátečníka. A zadávat příkazy a kontrolovat jejich plnění můžete dokonce ze svého chytrého telefonu.
Více o chytrém domě od Xiaomi a Apple v následujících článcích:
- Inteligentní dům Xiaomi: specifika návrhu, přehled hlavních uzlů a pracovních prvků
- Chytrý dům Apple: nuance organizace systémů řízení domu od „jablečné“ společnosti
Závěry a užitečné video k tématu
Příklad samostatně sestavené sady základní úrovně pro “inteligentní dům”:
Otevřenost platformy Arduino umožňuje používat komponenty od různých výrobců. To umožňuje snadno zkonstruovat “inteligentní dům” podle požadavků uživatele. Proto, pokud máte alespoň základní znalosti v oblasti programování a připojování elektronických zařízení, stojí za to věnovat pozornost tomuto systému.
Máte praktické zkušenosti s platformou Arduino a chcete se podělit o své zkušenosti s nováčky v tomto oboru? Nebo možná chcete doplnit výše uvedený materiál užitečnými doporučeními nebo poznámkami? Napište své komentáře pod tento příspěvek.
Pokud máte dotazy ohledně návrhu systému automatizovaného domu na bázi Arduina, zeptejte se našich odborníků a ostatních návštěvníků webu v bloku níže.
