Domáce senzory pre Arduino. Inteligentný dom založený na Arduine: pokyny na montáž krok za krokom. Zoznámenie sa s Arduinom

Išiel som okolo, pozrel som a tu píšu zaujímavosti o rôznych domácich výrobkoch. Tiež som nedávno niečo vyrobil, nech napíšem, pomyslím si, možno sa to niekomu bude hodiť, alebo to bude len zaujímavé. Hovoríme o cenovo dostupnom hardvéri senzorov pre domácich majstrov na zabudovanie do panelov spínačov a zásuviek.

Ale poďme pekne po poriadku.

O automatizačné systémy pre Smart Homes sa zaujímam už relatívne dlho. Teraz tu mám niekoľko rôznych systémov spojených do jedného celku. Existujú priemyselné aj domáce komponenty. Chcem vám povedať o poslednom domácom produkte.

Pred časom som na internete narazil na systém domácej automatizácie MySensors. Celkom vyvinutý (a neustále sa ďalej rozvíjajúci) bezdrôtový systém založený na Arduino a nRF24L01+. Nie je to však o tom, kto má záujem - pozrite sa na zdroj.

Hlavnými výhodami systému pre mňa bola dobrá softvérová podpora, obojsmerná komunikácia, dostupnosť komponentov a ich nízka cena.

Keďže som sa dosť pohral s vývojovými doskami, rozhodol som sa vyvinúť zariadenie, ktoré sa dá adekvátne integrovať do domáceho interiéru (WAF nemožno ignorovať). Výsledkom je zariadenie, ktoré je možné spolu s ostatnými zapustiť do steny v štandardnej 63mm krabičke.

Toto je prvá montáž, ďalšie skúsim robiť opatrnejšie. Veľký otvor (pre svetelný senzor) bude prekrytý plexi tyčou.

V polozostavenej forme to vyzerá takto:

Pohľad z druhej strany:

Všetko pozostáva z (čínskeho) 8MHz/3,3V Arduino Pro Mini, rádiového modulu nRF24L01+, snímača pohybu HC-SR510, snímača DHT22 (teploty a vlhkosti), svetelného snímača BH1750 a štandardnej zástrčky JUNG (pravdepodobne môžete použiť aj iné, napr. Gira , Berker atď. Použil som len to, čo bolo po ruke). Celkové náklady asi 15 dolárov.

Doska plošných spojov je navrhnutá spoločnosťou Eagle. Zdroje. Objednané z ITEADStudio, dobre urobené (až na ten hodváb, nápisy dopadli tak-tak).



Pravdepodobne je písmo príliš malé a tenké. Na gerbere to vyzeralo dobre.



Počas procesu montáže sa zistili menšie nepríjemnosti, niektoré veci by sa dali vylepšiť, ale celkovo je doska celkom použiteľná.

Dobré popoludnie, dnes sa podelím o návod na výrobu hodín s izbovým teplomerom( DIY hodiny Arduino). Hodiny bežia na Arduino UNO, na zobrazenie času a teploty sa používa grafická obrazovka WG12864B. Ako snímač teploty - ds18b20. Na rozdiel od väčšiny iných hodín nebudem používať RTS (Real Time Clock), ale pokúsim sa zaobísť bez tohto prídavného modulu.

Obvody Arduino sa vyznačujú jednoduchosťou a každý sa môže začať učiť Arduino. O tom, ako pripojiť knižnice a flash Arduino, si môžete prečítať v našom článku.

Začnime.

Na vytvorenie týchto hodín budeme potrebovať:

Arduino UNO (alebo iná doska kompatibilná s Arduino)
- Grafická obrazovka WG12864B
- Snímač teploty ds18b20
- Rezistor 4,7 Kom 0,25 W
- Rezistor 100 ohm 0,25 W
- Priestor na batérie pre 4 batérie AA
- Zodpovedajúca škatuľka
- Skvelý súbor
- lak na nechty (čierna alebo telová farba)
- Nejaký tenký plast alebo lepenka
- Elektrická páska
- Spojovacie vodiče
- Obvodová doska
- Gombíky
- Spájkovačka
- Spájka, kolofónia
- Obojstranná lepiaca páska

Príprava grafickej obrazovky.
Pripojenie obrazovky na prvý pohľad predstavuje veľa problémov a ťažkostí. Ale ak najprv pochopíte ich typy, bude to oveľa jednoduchšie a jasnejšie. Na ovládači ks0107/ks0108 existuje veľa druhov a typov obrazoviek. Všetky obrazovky sú zvyčajne rozdelené do 4 typov:
Možnosť A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Možnosť B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ Displeje AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway 12864-88, Topway 12864-88, Q62 Topway 128X64128Y , TM12864L-2, 12864J-1
Možnosť C: Shenzhen Jinghua Displays Co Ltd. JM12864
Možnosť D: Wintek-Cascades WD-G1906G, Wintek - GEN/WD-G1906G/KS0108B, Wintek/WD-G1906G/S6B0108A, TECDIS/Y19061/HD61202, Varitronix/MG61202/HDLS19202/

Zoznam nie je úplný, je ich veľa. Najbežnejší a podľa môjho názoru pohodlný je WG12864B3 V2.0. Displej je možné pripojiť k Arduinu cez sériový alebo paralelný port. Pri použití s ​​Arduino UNO je lepšie zvoliť pripojenie cez sériový port – vtedy budeme potrebovať len 3 výstupy mikrokontroléra, namiesto aspoň 13 liniek pri pripojení cez paralelný port. Všetko sa spája úplne jednoducho. Je tu ešte jedna nuance: v predaji nájdete dve možnosti zobrazenia, so vstavaným potenciometrom (na nastavenie kontrastu) a bez neho. Vybral som si a radím vám to isté, so vstavaným.


Tým sa znižuje počet dielov a čas spájkovania. Pre podsvietenie sa tiež oplatí nainštalovať odpor obmedzujúci prúd 100 Ohm. Pri priamom zapojení 5 voltov hrozí vyhorenie podsvietenia.
WG12864B – Arduino UNO
1 (GND) - GND
2 (VCC) - +5V
4 (RS) – 10
5 (R/W) – 11
6 (E) – 13
15 (PSB) – GND
19 (BLA) – cez odpor - +5V
20 (BLK) – GND

Najpohodlnejším spôsobom je zostaviť všetko za obrazovkou a vytiahnuť z nej 5 vodičov, ktoré sa pripájajú k Arduino UNO. Konečný výsledok by mal vyzerať asi takto:


Pre tých, ktorí si stále vyberajú paralelné pripojenie Dám spojovaciu tabuľku.

A diagram pre obrazovky možnosti B:



Na jednu komunikačnú linku je možné pripojiť viacero senzorov. Na naše hodinky stačí jeden. Pripojíme vodič z kolíka „DQ“ ds18b20 k „kolíku 5“ Arduino UNO.

Príprava dosky s gombíkmi.
Na nastavenie času a dátumu na hodinkách použijeme tri tlačidlá. Pre pohodlie spájkujeme tri tlačidlá na doske plošných spojov a odstránime vodiče.


Pripojíme nasledovne: pripojíme vodič spoločný pre všetky tri tlačidlá k „GND“ Arduina. Prvé tlačidlo, ktoré sa používa na vstup do režimu nastavenia času a prepínanie podľa času a dátumu, je pripojené na „Pin 2“. Druhé, tlačidlo na zvýšenie hodnoty, je na „Pin 3“ a tretie, tlačidlo na zníženie hodnoty, je na „Kolík 4“.

Dávať to všetko dokopy.
Aby sa predišlo skratom, obrazovka by mala byť izolovaná. Zabalíme ho do kruhu elektrickou páskou a na zadnú stranu pripevníme pásik izolačného materiálu obojstrannou páskou, narezaný na mieru. Postačí hrubý kartón alebo tenký plast. Na papier som použil plast z tabletu. Výsledok je nasledujúci:


Pred zástenou pozdĺž okraja nalepíme obojstrannú penovú pásku, najlepšie čiernu.


Pripojte obrazovku k Arduinu:


Pripojíme plus z priestoru pre batérie k „VIN“ Arduina, mínus k „GND“. Umiestňujeme ho za Arduino. Pred inštaláciou do puzdra nezabudnite prepojiť snímač teploty a dosku pomocou tlačidiel.


Príprava a vyplnenie náčrtu.
Snímač teploty vyžaduje knižnicu OneWire.

Výstup na obrazovku sa vykonáva prostredníctvom knižnice U8glib:

Ak chcete upraviť a vyplniť skicu, musíte nainštalovať tieto dve knižnice. Existujú dva spôsoby, ako to urobiť. Tieto archívy jednoducho rozbaľte a rozbalené súbory umiestnite do priečinka „knižnice“, ktorý sa nachádza v inštalačnom priečinku Arduino IDE. Alebo druhá možnosť je nainštalovať knižnice priamo v programovacom prostredí. Bez rozbaľovania stiahnutých archívov v Arduino IDE vyberte ponuku Sketch - Connect Library. Úplne hore v rozbaľovacom zozname vyberte „Add.Zip library“. V zobrazenom dialógovom okne vyberte knižnicu, ktorú chcete pridať. Znova otvorte ponuku Sketch – Pripojiť knižnicu. Úplne dole v rozbaľovacom zozname by ste mali vidieť novú knižnicu. Teraz môže byť knižnica použitá v programoch. Po tomto všetkom nezabudnite reštartovať Arduino IDE.

Snímač teploty funguje pomocou protokolu One Wire a má jedinečnú adresu pre každé zariadenie - 64-bitový kód. Nie je praktické tento kód zakaždým hľadať. Preto musíte najprv pripojiť senzor k Arduinu, nahrať skicu nájdenú v menu Súbor – Príklady – Teplota Dallasu – OneWireSearch. Potom spustite Nástroje - Monitor portov. Arduino musí nájsť náš senzor, zapísať jeho adresu a aktuálne hodnoty teploty. Skopírujeme alebo jednoducho zapíšeme adresu nášho senzora. Otvorte skicu Arduino_WG12864B_Term, vyhľadajte riadok:

Byte addr=(0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97);//adresa môjho senzora

Adresu vášho senzora napíšeme medzi zložené zátvorky, čím nahradíme adresu môjho senzora.

zásoby:

//u8g.setPrintPos(44, 64); u8g.print(s); // Výstup sekúnd na kontrolu správnosti pohybu

Slúži na zobrazenie sekúnd vedľa nápisu „Data“. To je potrebné na presné nastavenie plynutia času.
Ak sú hodiny rýchle alebo pozadu, mali by ste zmeniť hodnotu v riadku:

If (micros() - prevmicros >494000) ( // zmeňte na niečo iné a opravte to bolo 500000

Empiricky som pomerne presne určil číslo, pri ktorom hodiny bežia. Ak sú vaše hodiny rýchle, mali by ste toto číslo zvýšiť; ak sú pozadu, znížte ho. Ak chcete určiť presnosť pohybu, musíte zobraziť sekundy. Po presnej kalibrácii čísla môžu byť sekundy komentované a tým odstránené z obrazovky.

Nápad na tento projekt sa objavil a uchvátil ma počas mojej dovolenky.

Myšlienka znela asi takto: „Bolo by skvelé mať robotické rameno, ktoré by som mohol ovládať sám!“ A po nejakom čase som začal tento projekt vyvíjať a realizovať. Dúfam, že vás to zaujme!

Hlavnými komponentmi projektu sú rukavica a samotné robotické rameno. Arduino bolo použité ako ovládač. Pohyb robotického ramena zabezpečujú servomotory. Rukavica je vybavená snímačmi ohybu: variabilné odpory, ktoré menia ich ohybový odpor. Sú pripojené na jednu stranu deliča napätia a pevných odporov. Arduino číta zmenu napätia pri ohýbaní senzorov a prenáša signál do servomotorov, ktoré sa otáčajú proporcionálne. Video pracovného projektu nájdete nižšie.

Ručný dizajn je prevzatý z open-source projektu InMoov. Na stránke projektu si môžete stiahnuť 3-D modely všetkých uzlov a vytlačiť ich na 3-D tlačiarni.

Nižšie sú uvedené všetky kroky na implementáciu vlastného robotického ramena ovládaného rukavicou.

Potrebné materiály

Pre projekt budete potrebovať:

Všetky! Môžete začať svoj projekt robotického ramena!

Tlačenie ruky

Ruka je súčasťou open-source projektu s názvom InMoov. Ide o robota, ktorý je vytlačený na 3-D tlačiarni. Ruka je len samostatná jednotka celkovej štruktúry. Stiahnite si z tejto stránky a vytlačte si nasledujúce podrobnosti:

Auriculaire3.stl

WristsmallV3.stl

Pre každý prípad pripájam rozklikávací zoznam dielov, pretože niektoré boli z hlavnej stránky projektu odstránené.

RobCableFrontV1.stl

RobRingV3.stl (v tejto časti som musel urobiť ďalšie otvory, aby sa mi servá zmestili)

RobCableBackV2.stl

RobServoBedV4.stl

(Ide o dve „kožné“ časti - nie sú potrebné z hľadiska tuhosti konštrukcie a jej fungovania)


Celkovo trvala tlač približne 13-15 hodín. Závisí od kvality tlače. Použil som MakerBot Replicator 2X. Odporúčam tlačiť časti prstov v štandardnom alebo vysokom rozlíšení, aby nedošlo k nežiaducemu treniu v dizajne.


Pripojenie snímačov ohybu k Arduinu

Na pripojenie snímačov ohybu k Arduinu musíme do obvodu zahrnúť delič napätia. Ohybové snímače sú v podstate premenlivý odpor. Pri použití v spojení s pevným odporom je možné sledovať rozdiel v napätí medzi týmito dvoma odpormi. Rozdiel môžete sledovať pomocou analógových kolíkov Arduino. Schéma zapojenia je znázornená nižšie (červený konektor je napätie, čierny je uzemnenie, modrý je konektor samotného signálu, ktorý sa pripája k analógovému vstupu Arduina).


Rezistory na fotografii majú nominálnu hodnotu 22 kOhm. Farby vodičov zodpovedajú farbám zobrazeným na schéme zapojenia.

Všetky piny GND zo snímačov sú pripojené na spoločnú zem. Uzemnenie ide na kolík GND na Arduine. +5V na Arduine je pripojených na spoločný napájací pin zo všetkých senzorov. Každý modrý signálový konektor sa pripája k samostatnému analógovému vstupu na mikrokontroléri.




Obvod som zostavil na malej doske plošných spojov. Je vhodné zvoliť menšie veľkosti dosiek, aby ste ich mohli v budúcnosti pripevniť na rukavicu. Pripojte našu rukavicu zostavený obvod možno vykonať pomocou nite a ihly. Okrem toho nebuďte leniví a okamžite použite elektrickú pásku na odkryté kontakty.




Inštalácia senzorov na rukavice

Môžeme začať inštalovať senzory a našu dosku plošných spojov na samotnú rukavicu. Najprv vyvŕtajte malý otvor do plastu snímačov. V miestach, kde skončil snímací prvok, sú vyvŕtané otvory. DÔLEŽITÉ! Nikdy nevŕtajte dieru do citlivého materiálu. Potom si nasaďte rukavicu. V hornej časti každého spoja urobte značky ceruzkou alebo perom. Tieto miesta využijete na montáž senzorov. Snímače ohybu sú pripevnené obyčajným závitom. Prišite senzory k rukavici. Použite otvor, ktorý ste urobili na koncoch snímača. V miestach, kde sú označené spoje, sú snímače „uchopené“ závitom na vrchu. To všetko je podrobnejšie znázornené na fotografii nižšie. Doska plošných spojov je prišitá k rukavici podobným spôsobom ako snímače. Upozorňujeme, že aby sa prsty mohli pohybovať, musíte ponechať určitú hranicu dĺžky vodičov. Toto je potrebné vziať do úvahy pri inštalácii našej dosky plošných spojov a výbere dĺžky konektorov z nej k snímačom.






O tomto kroku sa nebudem rozpisovať. Veľmi podrobne sa tomu venuje na webovej stránke InMoov (v časti „Náčrty zostavy“ a „Pomocník pri zostavovaní“):

Pri montáži ramena sa uistite, že sú uzly správne nainštalované z hľadiska orientácie v priestore. Nezabudnite vyvŕtať otvory v prstoch robotického ramena pre 3 mm upevňovacie prvky, aby ste znížili trenie medzi kĺbmi. S vonku Skrutky som naplnil lepidlom.


S inštaláciou linky sa neponáhľajte. Najprv skontrolujte funkčnosť servomotorov.

Kontrola servomotorov

V tomto bode by už servá mali byť nainštalované v zadnej časti vášho robotického ramena. Na pripojenie serva k Arduinu a napájanie som použil malú doštičku. Pripojte kladný kolík každého servomotora (červený) k jednej koľajnici na doštičku a záporný kolík (čierny alebo hnedý) k druhej koľajnici.

DÔLEŽITÉ! Nezabudnite pripojiť kolík Arduino ku koľajnici pomocou záporný náboj: Pamätajte, že všetky uzemňovacie kontakty musia byť navzájom spojené. Pin VCC sa môže pripojiť k rôznym zdrojom napájania, ale GND musí byť rovnaké.

Stiahnite si program do Arduina (súbor programu je priložený). Uistite sa, že pripojenia snímačov, servomotorov atď. Bolo to správne. Nasaďte si rukavicu a zapnite Arduino. Servomotory by sa mali otáčať v závislosti od toho, ktorým prstom pohnete. Ak sa servá pohybujú, potom všetko funguje!


Ak ste skúsenejší používateľ Arduina a viete, ako skontrolovať aktuálne hodnoty zo snímačov ohybu, môžete si rozsah v programe upraviť tak, aby vyhovoval vašej realite. Predpokladám, že všetky snímače ohybu sú približne rovnaké, ale ak nie, kalibrácia snímačov vám určite pomôže.

Ak servá nefungujú správne, uistite sa, že ste ich správne pripojili (napríklad, keď som pracoval na tomto projekte, ako obvykle som zabudol pripojiť GND pin Arduina ku GND zdroja a všetky servá. V tomto prípade nebude nič fungovať). Pred pokračovaním sa uistite, že všetko funguje.

Pridanie rybárskeho vlasca

Pridanie vlasca je pravdepodobne najťažšia a najnáročnejšia časť projektu robotického ramena. Na stránke InMoov sú na to pokyny. Koncept je jednoduchý, ale jeho implementácia prakticky nie je taká jednoduchá. Upozorňujeme, že táto časť projektu si vyžaduje sústredenie a trpezlivosť. Jediný rozdiel medzi mojou verziou a dizajnom na InMoov je použitie lepidla. Vďaka tomu môžeme získať flexibilnejšie nastavenia pri kalibrácii serv. Aby ste to dosiahli, stačí roztaviť lepidlo a utiahnuť skrutky, ktoré potrebujeme. Aj keď, samozrejme, spoľahlivosť dizajnu klesá. Nakoniec, po konečnom nastavení a kalibrácii, môžeme kedykoľvek použiť inú možnosť fixácie.

Ak chcete kalibrovať servá, otočte rotory tak, aby prsty robotického ramena boli na stole. Pripojte svoje Arduino a napájací zdroj. Zarovnajte vahadlá pohonu tak, aby keď rameno úplne „ležalo“, bolo napätie maximálne.


Vysvetlenie procesu kalibrácie je dosť ťažké. Navyše mi nevyhovoval napríklad návod s InMoov. To znamená, že pri upevňovaní musíte ukázať svoju predstavivosť a prispôsobiť sa realite - ako napríklad: typ hojdacieho kresla, typ vlasca alebo závitu, chyby dizajnu a montáže, vzdialenosť inštalácie servomotorov vzhľadom na kĺby robotického ramena.

Našťastie je to posledná fáza projektu!

Doslov


Napriek tomu, že existujú oveľa zložitejšie a presnejšie (a aj drahšie) návrhy, vyššie uvedený projekt je veľmi zaujímavý a má výborný potenciál pre praktické využitie. Takéto návrhy by sa nemali používať v priamom kontakte s osobou z dôvodu nepresnosti samotného konceptu. Ale priemysel, medicína atď. Pre úlohy bez zvýšených požiadaviek na presnosť kĺbových pohybov sa naše robotické rameno celkom hodí. No z pohľadu ďalšieho „upgradovania“ ruky je toto pole celkovo neorané. Počnúc bezdrôtovým ovládaním, končiac výmenou pohonov, rozmermi a vývojom ďalších stupňov voľnosti.

To je dôvod, prečo milujem Arduino: môžete veľmi rýchlo a za málo peňazí zostaviť doštičku alebo prototyp zariadenia, ktoré sa nielen ľahko naprogramuje, ale dokáže aj skutočne zaujímavé úlohy.

Zanechajte svoje pripomienky, otázky a podeľte sa o svoje osobné skúsenosti nižšie. V diskusiách sa často rodia nové nápady a projekty!

V súčasnosti sa systémy ako „inteligentná domácnosť“ zmenili z úžasnej exotiky, dostupnej len pre najbohatších jednotlivcov, na samozrejmosť, ku ktorej sa môže pripojiť každý. Je z čoho vyberať: mnohí vývojári zvládli výrobu takýchto hardvérových a softvérových systémov. Jednou z najznámejších je spoločnosť Arduino, s ktorej produktmi sa teraz zoznámime.

Čo je to „inteligentná domácnosť“

Tento výraz má zrozumiteľnejší analóg - „domáca automatizácia“. Podstatou takýchto riešení je zabezpečiť automatické vykonávanie rôznych procesov vyskytujúcich sa v domácnosti, kancelárii alebo špecializovaných zariadeniach. Najjednoduchším príkladom je automatické zapnutie osvetlenia v momente, keď niekto z obyvateľov vstúpi do miestnosti.

Systém inteligentnej domácnosti Arduino je súbor zariadení na ovládanie prevádzky rôznych zariadení pomocou mobilného telefónu na báze OS Android

V každom systéme „inteligentného domu“ možno rozlíšiť tieto komponenty:

  1. Senzorická časť. Ide o súbor zariadení, ktorých hlavnú časť predstavujú všetky druhy senzorov, ktoré umožňujú systému zaznamenávať udalosti rôzneho typu. Príklady zahŕňajú snímače teploty a pohybu. Ostatné zariadenia dotykovej časti slúžia na prenos užívateľských príkazov do systému. Ide o diaľkové tlačidlá a diaľkové ovládače s prijímačmi.

    Jedným z najčastejšie používaných prvkov inteligentnej domácnosti je pohybový senzor.

  2. Výkonná časť. Sú to zariadenia, ktoré môže systém ovládať, a tak reagovať na konkrétnu udalosť v súlade so scenárom špecifikovaným používateľom. V prvom rade sú to relé, cez ktoré dokáže ovládač inteligentnej domácnosti napájať ľubovoľnú elektrický spotrebič, teda zapnúť a vypnúť. Napríklad tlieskaním dlane (systém to bude „počuť“ pomocou mikrofónu) môžete nastaviť relé tak, aby sa zaplo a napájalo ventilátor. Poznámka: v tomto príklade môže byť ventilátorom čokoľvek. Môžete však použiť aj zariadenie špeciálne vyrobené na prácu ako súčasť konkrétneho systému. Napríklad spoločnosť Arduino vyrába elektromotory pre svoje systémy, pomocou ktorých môžete povedzme zavrieť alebo otvoriť okno a spoločnosť Xiaomi (čínsky výrobca podobných systémov) vyrába ovládacie zariadenia čističiek vzduchu. Takéto zariadenie je plne riadené systémom, to znamená, že ho môže nielen zapnúť, ale aj zmeniť nastavenia.

    Elektrický motor je pohon, ktorý je aktivovaný signálom z ovládača systému a uvádza do pohybu mechanizmus, ktorý je k nemu pripojený.

  3. CPU. Môže sa nazývať aj ovládač. Toto je „mozog“ systému, ktorý koordinuje a koordinuje prácu všetkých jeho komponentov.

    Doska procesora (alebo riadiacej jednotky) riadi akčné členy na základe vstavaného programu a údajov prijatých zo snímačov

  4. softvér. Toto je súbor inštrukcií, ktoré vedú procesor. V systémoch od niektorých výrobcov, vrátane tých od Arduina, môže používateľ napísať program samostatne, v iných používa hotové riešenia, v ktorej sú pre používateľa dostupné iba typické scenáre.

Moderné inteligentné domáce systémy sú rozdelené do niekoľkých typov:

  1. Vybavený vlastným ovládačom.
  2. Použitie procesora počítača používateľa (tabletu, smartfónu) v tejto kapacite.
  3. Spracovanie informácií pomocou vzdialeného servera, ktorý vlastní vývojárska spoločnosť (cloudová služba).

Systém dokáže nielen aktivovať konkrétne zariadenie, ale aj informovať používateľa o udalosti, ktorá nastala, zaslaním správy na telefón alebo iným spôsobom. Takto mu možno priradiť poplachové funkcie vrátane požiarneho poplachu.

Scenáre môžu byť oveľa zložitejšie, ako sme opísali v príkladoch. Môžete napríklad naučiť systém zapnúť kotol a preniesť prívod horúca voda k nemu pri vypnutí centralizovaného napájania, ak sa zistí prítomnosť niektorého z obyvateľov v dome (pomáhajú infračervené, ultrazvukové senzory, ako aj pohybové senzory).

Zoznámenie sa s Arduinom

Arduino je talianska spoločnosť, ktorá sa venuje vývoju a výrobe komponentov a softvéru pre jednoduché systémy inteligentnej domácnosti určené pre laikov. Je pozoruhodné, že tento vývojár úplne otvoril architektúru systémov, ktoré vytvoril, čo umožnilo výrobcom tretích strán vyvíjať nové a kopírovať existujúce zariadenia kompatibilné s Arduino, ako aj vydávať pre ne softvér.

Súprava Arduino Uno obsahuje potrebné komponenty na implementáciu zariadení popísaných v priloženej knihe

Tento prístup zabezpečil vysokú popularitu systémov talianskej spoločnosti, ale má aj nevýhodu: vzhľadom na to, že výrobu komponentov pre systémy Arduino takpovediac prevezme každý, kto nie je príliš lenivý, nie je vždy je možné ich kúpiť prvýkrát kvalitný výrobok. Často musíme riešiť problém kompatibility komponentov od rôznych výrobcov.

Potenciálni používatelia by mali vedieť, že od roku 2008 existujú dve spoločnosti vyrábajúce produkty pod značkou Arduino. Prvý, ktorý naštartoval tento smer, má oficiálnu stránku www.arduino.cc; druhá, novovytvorená - na www.arduino.org. To, čo bolo vyvinuté pred rozdelením, je prezentované identicky na oboch stránkach, ale ponuka nových produktov je už odlišná.

Softvér pre inteligentné domáce systémy Arduino má podobu softvérového shellu (nazývaného IDE), v ktorom môžete písať a kompilovať programy. Distribuované bezplatne. Programy sú napísané v C++.

Verzie programu Arduino IDE prezentované na týchto stránkach sú tiež veľmi odlišné, hoci majú rovnaký nielen názov, ale aj čísla verzií. Z tohto dôvodu sa dajú ľahko zmiasť. Rozdiel je v tom, že každý softvér podporuje svoje vlastné knižnice a dosky.

„Hardvér“ systému pozostáva z dosky s mikrokontrolérom (doska procesora) a na nej nainštalovaných rozširujúcich kariet, ktoré sa bežne nazývajú štíty. Pripojenie štítu k procesorovej doske vám umožní pridať nové komponenty do inteligentnej domácnosti. Zostavený systém môže byť buď úplne autonómny, alebo pracovať v spojení s počítačom cez štandardné káblové alebo bezdrôtové rozhranie.


Na dosku procesora môžete nainštalovať špeciálne rozšírenia (štíty), ktoré zvyšujú funkčnosť systému

Výhody systému Arduino

Tento hardvérový a softvérový komplex priťahuje používateľa nasledujúcimi výhodami:

  • možnosť autonómnej prevádzky vďaka prítomnosti vlastného ovládača;
  • dostatok príležitostí na prispôsobenie prevádzky systému (používateľ sám napíše program, ktorý môže obsahovať scenáre akejkoľvek zložitosti);
  • jednoduchosť procesu načítania programu do ovládača: na to nie je potrebný programátor, stačí mať USB kábel (mikrokontrolér má firmvér Bootloader);
  • dostupné náklady na komponenty v dôsledku absencie monopolných práv od jedného alebo druhého výrobcu (architektúra je otvorená).

Ak Bootloader začne nefungovať, alebo ho zakúpený mikrokontrolér nemá, používateľ má možnosť ho nezávisle flashovať. Softvérový shell IDE poskytuje na tento účel podporu pre množstvo najdostupnejších a najpopulárnejších programátorov. Navyše takmer všetky procesorové dosky Arduino majú hlavičku, ktorá umožňuje programovanie v obvode.

Program Arduino IDE prezentovaný na stránke arduino.cc obsahuje možnosť vytvárať vlastné hardvérové ​​a softvérové ​​platformy, zatiaľ čo verzia programu na arduino.org takúto funkciu nemá.

Aké riešenia ponúka Arduino?

Keďže sa výrobou senzorov a zariadení kompatibilných s Arduino zaoberá veľa spoločností, rozsah týchto produktov je pomerne široký. Tu je to, čo sa používa najčastejšie:

  1. Senzory, ktoré monitorujú klimatické parametre:
  2. Senzory, ktoré vám umožňujú určiť priestorovú polohu objektu, ku ktorému sú pripojené:
  3. Senzory, ktoré umožňujú registrovať prítomnosť rôznych objektov:
  4. Núdzové senzory:
  5. Iné zariadenia, napr.
    • mikrofón;
    • hodinky;
    • snímač otvárania dverí;
    • Diaľkové ovládače (rádiofrekvenčné a infračervené) s prijímačmi;
    • diaľkové tlačidlá.

Niektoré z týchto zariadení sú súčasťou základnej súpravy Arduino Start, ktorú niektorí výrobcovia nazývajú StarterKit.


Štartovacia sada Arduino obsahuje procesorovú dosku a niekoľko bežne používaných zariadení.

Výkonná časť obsahuje obrovskú sadu zariadení, napríklad:

  • elektrické motory;
  • relé a rôzne spínače;
  • stmievače (umožňujú plynule meniť intenzitu osvetlenia);
  • zatvárače dverí;
  • ventily a 3-cestné ventily so servopohonom.

Ak plánujete pripojiť osvetlenie cez relé Arduino, je správnejšie ho použiť ako lampy LED žiarovky. Pri pripojení cez takéto relé žiarovky rýchlo horia.

Video: Začíname s Arduinom – ovládanie LED cez webové rozhranie

Vytvorenie projektu na Arduine

Ukážeme si proces vytvárania a nastavovania Arduino „inteligentnej domácnosti“ na príklade systému, ktorý bude obsahovať nasledujúce funkcie:

  • monitorovanie vonkajšej a vnútornej teploty;
  • sledovanie stavu okna (otvorené/zatvorené);
  • monitorovanie poveternostných podmienok (jasno/dážď);
  • generovanie zvukového signálu pri spustení snímača pohybu, ak je aktivovaná funkcia alarmu.

Systém nakonfigurujeme tak, aby údaje bolo možné prezerať pomocou špeciálnej aplikácie, ako aj webového prehliadača, to znamená, že používateľ to môže urobiť z akéhokoľvek miesta, kde je prístup na internet.

Použité skratky:

  1. "GND" - uzemnenie.
  2. "VCC" - napájanie.
  3. "PIR" - pohybový senzor.

Komponenty potrebné na vytvorenie systému inteligentnej domácnosti

Pre inteligentný domáci systém Arduino budete potrebovať nasledovné:

  • doska mikroprocesora Arduino;
  • Ethernetový modul ENC28J60;
  • dva snímače teploty značky DS18B20;
  • mikrofón;
  • senzor dažďa a snehu;
  • Pohybový senzor;
  • jazýčkový spínač;
  • relé;
  • odpor s odporom 4,7 kOhm;
  • krútená dvojlinka;
  • Ethernetový kábel.

Všetky komponenty stoja približne 90 dolárov.


Na výrobu systému s funkciami, ktoré potrebujeme, budeme potrebovať sadu zariadení v cene približne 90 dolárov

Zostavenie „inteligentného domu“: pokyny krok za krokom

Toto je poradie, v ktorom musíte konať.

Pripojenie akčných členov a senzorových zariadení

Všetky komponenty spájame podľa schémy.


Zostavenie systému spočíva hlavne v pripojení akčných členov k príslušným kontaktom dosky procesora

Vývoj programového kódu

Používateľ napíše celý program do shellu Arduino IDE, pre ktorý je tento vybavený textovým editorom, projektovým manažérom, kompilátorom, preprocesorom a nástrojmi na nahrávanie programového kódu do mikroprocesora dosky Arduino. Verzie IDE boli vyvinuté pre operačné systémy Mac OS X, Windows a Linux. Programovacím jazykom je C++ s určitými zjednodušeniami. Používateľské programy pre Arduino sa zvyčajne nazývajú skice alebo skice, program IDE ich ukladá do súborov s príponou „.ino“.

Funkciu main(), ktorá je v C++ povinná, vytvára automaticky shell IDE a špecifikuje v nej množstvo štandardných akcií. Používateľ musí napísať funkcie setup() (vykonané raz počas spúšťania) a loop() (vykonané v nekonečnej slučke). Obe tieto funkcie sú potrebné pre Arduino.

Do programu nie je potrebné vkladať hlavičkové súbory štandardných knižníc - IDE to robí automaticky. Toto sa netýka užívateľských knižníc – tie musia byť špecifikované.

Pridávanie knižníc do IDE „Project Manager“ sa vykonáva niekoľkými spôsobmi: neobvyklým spôsobom. Ako zdroje napísané v C++ sa pridávajú do špeciálneho priečinka v pracovnom adresári shellu IDE. Potom sa názvy týchto knižníc objavia v príslušnej ponuke IDE. Tie, ktoré používateľ vyberie, budú zahrnuté do zoznamu kompilácií.

IDE poskytuje minimum nastavení a vôbec nie je možné prispôsobiť kompilátor. Začínajúci programátor je tak chránený pred chybami.

Tu je príklad najjednoduchšieho programu, vďaka ktorému LED pripojená na kolík 13 dosky bliká každé 2 sekundy:

void setup() ( pinMode (13, OUTPUT); // Priraďte Arduino pin 13 ako výstup)

void loop () ( digitalWrite (13, HIGH); // Zapnite pin 13, parameter pre volanie funkcie digitalWrite HIGH - znak vysokej logickej úrovne

oneskorenie(1000); // Oneskorená slučka na 1000 ms - 1 sekunda

digitalWrite(13, LOW); // Vypnite pin 13, zavolajte parameter LOW - znak nízkej logickej úrovne

oneskorenie(1000); // Oneskorená slučka na 1 sekundu)

V súčasnosti však používateľ nie vždy čelí potrebe osobne napísať program: na internete je zverejnených veľa hotových knižníc a náčrtov (pozrite sa tu: http://arduino.ru/Reference). Pre systém, o ktorom sa uvažuje v tomto príklade, existuje hotový program. Je potrebné ho stiahnuť, rozbaliť a importovať do IDE. Text programu je opatrený komentármi vysvetľujúcimi princíp jeho fungovania.


Všetky programy Arduino fungujú na rovnakom princípe: používateľ odošle požiadavku procesoru a ten nahrá potrebný kód na obrazovku počítača alebo smartfónu

Keď používateľ stlačí tlačidlo „Obnoviť“ v prehliadači alebo aplikácii nainštalovanej na smartfóne, mikrokontrolér Arduino odošle údaje tomuto klientovi. Z každej zo stránok označených ako „/tempin“, „/tempout“, „/rain“, „/window“, „/alarm“ je prijatý programový kód, ktorý sa zobrazí na obrazovke.

Inštalácia klientskej aplikácie na smartfóne (pre OS Android)

Ak chcete prijímať dáta zo systému inteligentnej domácnosti online, môžete si stiahnuť hotovú aplikáciu.

Vlastník modulu gadget musí urobiť:


Pomocou tejto aplikácie môžete nielen prijímať informácie zo systému inteligentnej domácnosti, ale ho aj ovládať – zapínať a vypínať alarm. Ak je povolená, pri spustení snímača pohybu sa do aplikácie odošle upozornenie. Aplikácia vyzve systém Arduino na aktiváciu snímača pohybu raz za minútu.

Aktivovaním ikony „Nastavenia“ môžete upraviť svoju IP adresu.

Konfigurácia prehliadača na prácu s inteligentným domom

Do panela s adresou prehliadača zadajte XXX.XXX.XXX.XXX/all, kde „XXX.XXX.XXX.XXX“ je vaša IP adresa. Potom bude možné prijímať údaje zo systému a spravovať ich.

Tu uvedený programový kód vám umožňuje zapínať a vypínať svetlo prostredníctvom prehliadača, pričom takáto funkcia nie je implementovaná v aplikácii pre smartfóny so systémom Android.

Práca s routerom


Založenie účtu na noip.com

Tento krok je voliteľný, ale je povinný, ak chcete k adrese priradiť názov domény. Ak to chcete urobiť, musíte sa zaregistrovať na webovej stránke https://www.noip.com/, prejsť do časti „Pridať hostiteľa“ a zadať adresu IP systému.


Po registrácii na stránke noip.com môžete do systému pristupovať nielen podľa IP adresy, ale aj celého názvu domény

Vytvorenie projektu je dokončené, môžete skontrolovať funkčnosť systému.

Video: inteligentná domácnosť pomocou Arduina

Vlastnosti niektorého hardvéru Arduino

Vzhľadom na to, že komponenty kompatibilné s Arduino vyrába mnoho spoločností tretích strán, ktorých kvalitu produktov nekontroluje samotné Arduino, používateľ si pravdepodobne zakúpi komponent, ktorý nefunguje úplne správne.

Podobná situácia sa vyvinula aj v oblasti vývoja osobných počítačov. IBM svojho času otvorila architektúru svojich počítačov, v dôsledku čoho mnohé spoločnosti začali vyrábať počítače a jednotlivé komponenty kompatibilné s IBM. V dôsledku toho sa „osobné vybavenie“ tohto typu rozšírilo do celého sveta, avšak kvalita komponentov a stupeň ich kompatibility v mnohých prípadoch neboli na najvyššej úrovni. Apple zvolil opačnú taktiku. Obmedzil počet vývojárov, ktorí mali prístup k architektúre, a zaviedol rovnakú politiku v oblasti vývoja softvéru. V dôsledku toho sa počítače Apple ukázali ako menej bežné a drahšie, ale ich kvalita je rádovo lepšia ako zariadenia kompatibilné s IBM so systémom Windows.

Používatelia si všimli nasledujúce skutočnosti týkajúce sa niektorých komponentov pre systémy Arduino:

  1. Snímač teploty DHT11, dodávaný so základnou súpravou (StarterKit), udáva významnú chybu 2-3 stupne. Odporúča sa používať snímač teploty DHT22 v interiéri, ktorý poskytuje presnejšie údaje, a pre vonkajšiu inštaláciu - DHT21, ktorý je schopný prevádzky pri mínusových teplotách a je chránený pred mechanickým poškodením.
  2. Na niektorých doskách mikroprocesorov Arduino, keď sú k nim pripojené relé skratované, COM port zlyhá. Z tohto dôvodu sa skica nedá načítať do mikrokontroléra: akonáhle sa spustí nahrávanie, procesor sa reštartuje. Súčasne relé klikne, COM port sa vypne a proces načítania náčrtu sa zastaví.
  3. Okenný/dverový senzor občas prekvapí v podobe falošných poplachov. Berúc do úvahy túto skutočnosť, náčrt je napísaný tak, že systém vykoná požadovanú akciu iba po prijatí niekoľkých signálov za sebou.
  4. Pre nastavenie riadenia procesu pomocou tlieskania si niektorí používatelia z dôvodu neskúsenosti namiesto mikrofónu objednajú zvukový detektor s manuálnym nastavením prahu. Tento komponent nie je vhodný na takéto účely, pretože má príliš krátky dosah: musíte tlieskať nie ďalej ako 10 cm od detektora. Tento snímač navyše prenáša signály v impulzoch krátkeho trvania, takže ak dôjde k veľkému náčrtu, ktorého spracovanie trvá pomerne dlho, mikrokontrolér ich jednoducho nestihne zaznamenať.
  5. Požiarne poplachové zariadenie by malo používať skôr detektor dymu ako požiarny detektor. Ten zaregistruje plameň nie ďalej ako 30 cm od seba.
  6. V prípade poruchy mikrokontroléra alebo chyby v kóde je lepšie použiť normálne zatvorené relé s ručnými spínačmi zapojenými do série.

Aby ste sa vyhli nákupu nekvalitných komponentov, skúsení používatelia odporúčajú najprv si preštudovať recenzie o nich uverejnené na internete. Lacné snímače je možné zakúpiť v niekoľkých variantoch, aby ste si sami vyskúšali, ktorý z nich funguje najlepšie.

Systém inteligentnej domácnosti od spoločnosti Arduino možno nie je najkvalitnejší, no vďaka najširšiemu výberu komponentov a ich dostupnej cene je určite jedným z najobľúbenejších. Pomocou našich tipov sa rýchlo naučíte vytvárať projekty Arduino, automatizovať rôzne domáce procesy.



zdieľam