Browsed by
Tag: wemos

Automatizace závlahy – softwareová část

Automatizace závlahy – softwareová část

V minulém článku jsem popsal kompletní postup sestrojení automatické závlahy z Arduina, nyní tu zrekapituluju tu programovací část.

 

Začneme od NodeRED, takže vlastně trochu z prostředka. Dost se mi osvědčilo mít Wemosy co nejhloupější, stejně tak po Loxonu toho raději moc nechtít. Takže hlavní logiku mám v NodeRED, kde se dobře upravuje i testuje. Diagram ovládání jde vidět na obrázku nahoře. Defakto jen překlad Http volání do MQTT topiců a k tomu troška logiky.

Pro každý ventil mám v NodeRED jednu Http URL adresu, pomocí které ho ovládám. Takže například zapnutí vody z vodovodního řadu vypadá takto: http://nodered.dum/irrigation/input/water?state=on. Pokud zadám tuhle adresu, chytne ho tento node. Veškeré parametry za otazníkem převede do Json objektu a předá dál.  Takže z Http nodu vylézá objekt typu { “state” : “on” }.

Funkce Payload from state je zase vcelku jednoduchá. Jediné, co udělá, je, že ze vstupního objektu vyčte hodnotu “state” a tu pošle dál. Je to proto, že tato hodnota pak vstupuje do MQTT nodu, přes který se hodnota odešlě na MQTT server. Pokud bychom to propojili napřímo, vložil by se celý objekt.

Takže, jak jsem psal, z { “state”:”on” } se stává “on” a to se posílá do MQTT. Konkrétně jako topic “zavlaha/relay/0”. Pro každé relé mám udělaný samostatný topic, který pak wemosy naslouchají a podle toho relé nastavují. O tom dále.

Poslední, co by asi stálo za zmínění v NodeREDu, je hlídač na automatické vypnutí. Jakmile přijde jakýkoli příkaz na závlahu, automaticky se spouští counter, který automaticky vše po 60ti minutách vypne. Je to proto, že z Loxonu povel například nemusí dorazit a tak by se zalévalo donekonečna. Takto, dokud přicházejí povely, coutner se resetuje. A když nic nedorazí, pro jistotu se ještě vše vypne (PS: Je potřeba použít prvek trigger, nikoli delay. Delay se totiž dalším impulzem neresetuje, ale notifikuje pak všechny).

Od NodeREDu se teď posuňme k Loxonu. Opět, v Loxonu žádná magie. Jen hromada virtuálních výstupů, které volají definované HTTP endpointy. A k tomu pár časovačů, které pak dělají samotnou automatizaci.

 

Výstupy mám pak napojené na tlačítka, abych mohl v případě potřeby ovládat závlahu i ručně. A tlačítka jsou pak automatizované pomocí časovačů.

 

A to je celé kouzlo v Loxonu. Jen tupý program, co ukáže tlačítka a v daný čas ho spustí. To by snad Loxone neměl pokazit :)))). Výhledově pak ještě musím dodělat detekci deště a zautomatizovat napojení retenčky. Tam mne čeká ještě čidlo úrovně hladiny vodz. Takže se pak LoxConfig ještě trošku zkomplikuje.

A teď k Arduinu a programu pro Wemos. S ním ještě nejsem úplně spokojený a jestli si najdu čas, chtěl bych celou logiku ještě více zobecnit a zjednodušit. Logika pro relátka vychází z programu, co jsem měl pro ovládání vánočního stromečku. Ono je totiž téměř jedno, co člověk spíná.

Teda, skoro jedno. Původní program totiž fungoval tak, že poslouchal MQTT topic /christmastree/relaystate. Když přišel řetězec typu 0100100 tak podle toho věděl, že má vypnout první relé, zapnout druhé relé, vypnout třetí a čtvrté, zapnout páté,….. To je fajn, když ovládáte světýlka stromečku, ale naprd, když chcete v danou chvíli ovládat jen některá relé.

A tak jsem firmware upravil tak, že krom kompletního stavu umí ještě naslouchat na více různích topicách pro jednotlivá relé, konkrétně /rele-identifikator/rele/0-n. Takže pak jde například zapnout relé 5 tak, že do topicu /rele-identifikator/rele/5 zapíšeme buď 1, nebo “on”.

A podle toho, co za topic dorazí, se pak buď parsuje celý řetězec, nebo jen konkrétní relé. Krom úpravy na různé topicy ale bylo potřeba ještě vyřešit komplikace se dvěma Wemosama. Z pohledu MQTT jsem nechtěl topicy nijak odlišovat, takže bylo potřeba jednotlivé Wemosy naučit, od jakého indexu relátka obsluhují.

Takže, pro každý modul je samostatný ifdef, kde je definovan jeho mqtt client name (protože ten musí být pro každé zařízení unikátní), od kterého indexu relé tento modul obsluhuje, a které digitální výstupy jsou v jakém pořadí použity.

Jenže, to je přesně to,co se mi vůbec nelíbí. Toto bych chtěl předělat do nějaké online konfigurace, aby po prvním najetí šlo přes HTTP tuhle konfiguraci zadat a nemuselo se při flashování nahrávat vše napevno. Něco podobného už má vyřešený Martin Doubek pro svůj Swifitch. Takže mu na to budu muset mrknout a okopčit :))

Cílem je, abych měl jednotný firmware, který budu moct nahrát do jakéhokoli Wemosu a jen mu pak dynamicky nastavil, které výstupy ovládají která relátka, které topicy má poslouchat, atd. Dalším vylepšením pak ještě chci udělat, aby po sepnutí relé zapsal do nějakého dalšího topicu stav po sepnutí. Tzn aby bylo vidět, že akci opravdu provedl. Jestli se k tomu někdy dostanu, tak bych z toho pak udělal nějaký veřejný firmware, co by si každý mohl stáhnout a nahrát do Wemosu, aniž by musel bojovat s programováním.

 

 

Automatizace závlahy – hardwareová část

Automatizace závlahy – hardwareová část

To je děs, jak ten čas frčí. Koukám, že poslední článek je už zase měsíc starý. Ale bylo toho teď zas nějak moc. Pořádal jsem rozlučku, pak jsem dělal o týden později svědka a o další týden později jsme byli na týden u móóře. Konkretétně v Chorvatsku, kde se všichni asi už úplně zbláznili, protože zdražili na dvojnásobek a kvalitu služeb ještě zhoršili. No nic…

Ale k dnešnímu tématu. Už nějakou dobu mám hotovou závlahu po technologické stránce. Jen nějak furt nebyl čas a materiál na automatizaci. A tak jsem pořád chodil kroutit ventilama ručně :).

Něco málo z elektroniky jsem stihl ještě před dovolenou, ale první nasazení se nakonec uskutečnilo až dnes. Není to sice stále úplně hotové, ale už to umí zalévat a já to nebudu muset dělat ručně. Závlahu jsem postavil nad WemosD1 a relé boardem. Hlavice se mají ovládat pomocí 24V, ale stačí jim i 12V.

Bohužel, trochu jsem to nedomyslel s počtem okruhů. Ačkoli jich mám jen sedm, tak mám ještě dva vstupy (retenčka a vodovodní řad), což dělá celkem devět hlavic a tím pádem devět relé. No, takže 8-relé board byl málo. Takže 8+2 relátek. No a druhý problém byl s Wemosem. Devět výstupů se mi nepovedlo rozchodit. Výstup D4 je využívaný stavovou diodou a D8 mi stávkoval.

Takže bylo nutné nasadit wemosy dva :). Ale zase kdo to má, žejo, blbá závlaha řízená dvěma procesorama :).

O napájení se stará zdroj 12V/5A z Aliny (co jsem měřil, vypadá na tyhle účely dostatečně), k tomu pak DC-DC měnič na 12V-5V pro Wemosy a 12V přes relé na jednotlivé hlavice.

Vše pokusně pospojovat, ověřit funkčnost a otestovat, že se to do té krabičky nějak vejde :). Tou dobou jsem sice ještě nevěděl, jak to nakonec udělám, ale to mne nějak moc netrápilo a tak jsem pokračoval dál :).

Nakonec jsem koupil na relátka a Wemosy ještě o trochu vyšší krabičku a samostatné prostupky. Tou dobou jsem už tušil, jak asi komponenty v krabici rozmístím a tak jsem začal vrtat a skládat.

Abych nemusel všechno kompletovat v kuse až venku, připravil jsem si spoustu věcí pomocí různých spojek a konektorů. Takže jsem toho mohl většinu dodělat ještě u sebe v technické místnosti na stole a venku jsem pak už řešil “jen” konektory.

Tady jde vidět finální test komponent před kompletací krabičky. Nakonec jsem to vymyslel tak, že 8-relé board je přišroubovaný ke dnu krabice, zatímco 2-relé, 2x Wemos a DCDC měnič jsou přilepeny pomocí tavné pistole na bocích krabice.

Trochu jsem se bál, jak to bude držet a vypadat, ale je to naprosto supr. Pistole za pár dolarů z Aliny a kolik parády to udělalo.

Myslím, že by to mohlo držet navěky. Že dřív budu potřebovat něco vyměnit, než že by to pustilo. Oba Wemosy jsem si dal schválně USBčkem nahoru, protože ještě předpokládám update firmwaru (a updatu na dálku zas tak nevěřím).

Druhá krabička je pak o dost méně zajímavá. V ní je jen samotný zdroj, přívod 230V a odchozích 12V. Zatím mám zdroj připojený na klasickou 230V zásuvku, protože mne ještě čeká natahání elektriky ven přes chráničky, dozapojení v rozvaděči, atd. Takže zatím to mám napojené přes prodlužku (trošku na prasáka, no…).

A tady už jsou pak další fotky z dneška, kdy jsem se pustil do instalace venkovní části. Postupně jsem si ven zvládl vynosit tak polovinu dílny, jelikož mi furt něco chybělo.

Nejdřív jsem udělal konektory na ventily v levém boxu. To ještě šlo, protože délka kabelů od ventilů byla dostatečná. Takže akorát propojit s konektorem a trochu zpacifikovat jednotlivé kabely, aby v tom byl pořádek.

Horší to bylo v pravém boxu. Tam už kabely nedosáhly, takže jsem to musel prodlužovat a ještě pak napojovat na konektory. To byl fakt opruz.

A takhle pak vypadalo pozapojování ventilů k relátkům.

A tady už první testování. Kupodivu všechno fungovalo hned napoprvé.

Jediný zádrhel je, že když se krabičky zavřely a daly nalevo od ventilů, došel wifi signál. Takže musí být momentálně krabička s Wemosama těsně pod víkem šachty, aby byla online. To ale výhledově vyřeším tak, že dám na půdu ještě jeden Unify AP a nasměruju ho na zahradu. Tím bych měl pokrýt vše i pro další čidla/ovládání, které plánuju.

A takhle vypadá výsledek. Ten červený kabel vlevo je ta zmiňovaná prodlužka. Ta teď bude dočasně vše napájet, než udělám finální venkovní elektriku. Pro jistou je to ještě zabalené v igelitu a zatažené stříbrnou izolepou. A to je pro teď vše. Pak už následovalo ladění SW a propojení s Loxonem. O tom v dalším článku.

 

Nový firmware do vánočního stromečku

Nový firmware do vánočního stromečku

Začnu trochu od konce. Dělal jsem toho za svůj život už hodně, ale dneska poprvé jsem seděl pod vánočním stromečkem, do notebooku připojený USB kabel, co od něj vede, a debugoval a upgradoval jeho firmware ;-)).

Ale od začátku. Dostali jsme vánoční světýlka na stromeček. Bohužel, měly drobnou vadu. Po zapnutí elektriky se samy nerozsvítily. Bylo ještě potřeba na zdroji zmáčknout tlačítko. A to pokaždé, když se elektrika znovu zapnula.

No a to je naprd. Přece v chytrém domě nebudu ručně rozsvěcet vánoční stromeček, žejo. Takže začlo zkoušení a vymýšlení, jak problém vyřešit.

Problémů k vyřešení bylo hned několik. Jak ledky napájet, jak je spínat, čím spínat relátka a jak to propojit do Loxonu.

Napájení se nakonec vyřešilo elegantně. Od původního plánu napájet to 24V zdrojem s napěťovým děličem jsem se přes svůj laboratorní zdroj a měření spotřeby dostal až k USB 2A nabíječce, která krásně splinila zadání.

Další problém byly relátka. Z číny dorazil 8-modulový relé modul, jenže na spínání je potřeba 5V a to můj Wemos čip neměl. Tak jsem wemos vyměnil za Arduino UNO a zkusil to zapojit na něm. A relé se poprvé seplo, to bylo radosti.

Jenže jen do chvíle, kdy jsem si uvědomil, že UNO nemá ani ethernet, ani wifi. Takže pro dálkové spínání naprd. Takže zpět k Wemosu a jeho wifi.

Další cesta tak vedla přes samostatné napájení relé modulu 5V a pokusu, jestli náhodou relé pak nejde sepnout pomocí 3V z Wemosu. A abych to netestoval rovnou na Wemosu, využil jsem opět laboratorní zdroj (fakt ho miluju) a na napájení opět využil USB nabíječku.

A hle, prošlo to. Takže tudy by to mohlo jít. Takže jsem zkusil popropojovat Wemos a relátko, wemos napájet z USBčka, relé přes uřízlý USB kabel taky z USB nabíječky, a k tomu LEDky také z USB nabjíčeky.

To máme spoustu USB nabíječek ;-). Naštěstí relé modul a wemos utáhne jedna, a druhá na LEDky. To už jde. A časem koupím 5V 4A zdroj a bude to.

A protože s jedním relé není žádá sranda, tak sem to rozšířil na dub-step čtyř relátek 😉

Když byl hotový proof-of-concept, začal jsem to celé propojovat. Tady byla největší brzda nedostatek materiálu (tím jsem trpěl už i zkoušení, ale tady to byl extrém). Nejvíc mi chyběly kabílky na propojování PINů. Zatím jich dorazilo jen pár a tak jsem si zbytek povyráběl, z čeho šlo (hlavně pak z těch černých male-female patic, které lze stříhat štípačkama a dělat multi-konektory, viz ty žlutě zalepené konektory).

Po propojení a ověření, že vše bliká a cvaká, jak má, byla další mise nacpat to do nějaké krabičky, aby to vypadalo alespoň trochu civilizovaně a mohlo se to válet v obyváku. To se našetěstí povedlo také docela rychle a tak bylo řešení téměř hotové.

Nakonec pak už jen řetězy rozmotat, přenést do obyváku, znovu otestovat, a… vyhodit elektriku v celém baráku. Samozřejmě v deset večer, takže tma jak v řiti. A samozřejmě vyhozeno až venku na ulici.

I I. se přišla podivat, co jsem to zas udělal ;-). Kupodivu ale na vině nebylo moje udělátko, ale očividně dosloužilý zdroj k notebooku, co jsem si potřeboval zapojit. Po nahození se tím pádem mohlo pokračovat dál ;-).

Dneska jsem přesunul do obyváku stromek a ověsil ho lampičkama. Na řadu tak přišla softwareová část. Samoblikání je sice pěkné, ale chtělo to hlavně to zapínání a vypínání přes Loxone.

Plán byl využít už připravené MQTT komponenty z minula a jen to použít na něco konkrétního. Založil jsem další topic christmas-tree/relay a začal propojovat. Část v arduinu byla snadná. Vzít data ve formátu 101011 a podle toho postupně pozapínat/povypínat relátka. Easy.

Pak upravit Node-Red tak, aby se daly MQTT data posílat a testovat přes něj. Opět easy. Trochu složitější pak bylo parsování dat dle typu, tzn. když přijde z Loxonu “christmas-tree/relay/xxxx”, tak aby to poslal na správný kanál se správnýma datama. Ale stačilo zjistit, jak fungují v MQTT funkce, že je to Javascript a zjistit, jak se v JS pracuje se stringama. Easy.

EDIT: Večer jsem měl ještě chvilku čas, tak jsem si pohrál s Node-RED nastavením. Nutno říct, že je to naprosto impozantní a lze tam udělal naprosto cokoli (hlavně díky možnosti scriptovat pomocí JS). Takže nyní má stromeček ještě pět režimů blikání 🙂

Pak ale přišel kámen úrazu. To, co jsem očekával, že bude to nejjednodušší, tak nefungovalo. V Loxonu se mi nedařilo rozběhnout virtuální výstupy HTTP. Ať jsem dělal, co jsem dělal, tak z Loxonu data prostě nelezly. Nejen do Node-Red, ale ani na testovací app, ani do aplikace Hercules, co Loxon doporučuje, a ani nebyly vidět přes Ethereal či Wireshark.

A tak jsem zkoušel a zkoušel, nastavoval, ptal se na fóru a to, co všem funguje, mně nejelo. Nakonec jsem to všechno natvrdo zrestartoval a pakety začaly chodit. Bohužel, HTTP výstupy u mne mají cca 15sekund prodlevu. Pokud pošlu 10 signálů, místo aby přišly hned, dorazí vždy jeden, 15s pauza, další, zase pauza, …

Co naštěstí funguje bleskově jsou přímé TCP spojení. A protože HTTP nepotřebuju a TCP je přes NodeRED mnohem rychlejší/jednodušší, zůstal jsem u něj a HTTP dál neřešil.

A to byla poslední část potřebná k tomu, aby se z mobilu dal poslat příkaz do Loxonu, který pošle příkaz do NodeRED, který pošle MQTT zprávu na Ubuntu server, kde je pak zpráva poslána do Wemosu, který přes digitální výstupy pošle impulzy do relátek, které rozsvítí vánoční stromeček.

Jako jo, šlo by to asi o něco jednodušeji, ale takhle je to prostě cooool 😉

PĚKNÉ VÁNOCE VÁM VŠEM!

NodeRED – Propojení všeho se vším, od Arduina po Loxone

NodeRED – Propojení všeho se vším, od Arduina po Loxone

Jak jsem psal v předchozím článku, MQTT i NodeRed instaluji na Ubuntu linuxu. Jde ale rozběhat třeba i na Raspberry Pi  nebo Turrisu (OpenWRT).

Instalace NodeRED je relativně jednoduchá. Do ubuntu jsem musel nejprve doinstalovat aplikaci npm (což jsem zjistil, že je balíčkovací služba pro javascript) a následně pak pomocí npm aplikace nainstalovat NodeRED.

sudo apt-get install npm
sudo npm install -g --unsafe-perm node-red

Po samo-doinstalování obrovského množství dalších navazujícíh balíků měl začít fungovat příkaz `node-red`. Ale prdlajs. Takže další postup pak byl:

sudo apt-get install nodejs-legacy
node -v
##v4.2.6

sudo apt-get install npm
npm -v
##3.5.2

sudo npm install -g --unsafe-perm node-red node-red-admin

Dál bylo potřeba otevřít firewall port 1880, který node-red používá pro komunikaci

sudo ufw allow 1880
##Rules updated
##Rules updated (v6)

A pak už node-red konečně naběhl.

node-red

Welcome to Node-RED
===================

9 Dec 15:41:14 - [info] Node-RED version: v0.15.2
9 Dec 15:41:14 - [info] Node.js version: v4.2.6
9 Dec 15:41:14 - [info] Linux 4.4.0-53-generic x64 LE
9 Dec 15:41:14 - [info] Loading palette nodes
9 Dec 15:41:14 - [warn] ------------------------------------------------------
9 Dec 15:41:14 - [warn] [rpi-gpio] Info : Ignoring Raspberry Pi specific node
9 Dec 15:41:14 - [warn] ------------------------------------------------------
9 Dec 15:41:14 - [info] Settings file : /home/dev/.node-red/settings.js
9 Dec 15:41:14 - [info] User directory : /home/dev/.node-red
9 Dec 15:41:14 - [info] Flows file : /home/dev/.node-red/flows_home-server.json
9 Dec 15:41:14 - [info] Creating new flow file
9 Dec 15:41:14 - [info] Server now running at http://127.0.0.1:1880/
9 Dec 15:41:14 - [info] Starting flows
9 Dec 15:41:14 - [info] Started flows

Další krok je nastavení, aby se NodeRED spouštěl sám po startu. To už nebudu popisovat, protože bych jen kopíroval návod, podle kterého jsem postupoval. Ten jde najít v tomto super článku (bod 3 a dál).

Použití NodeRED

Tak jo, nainstalované to je, co teď s tím dál ;-). Vraťme se k naší ukázce z minulého článku o MQTT. V levym okně máme příkaz na poslání zprávy přes kanál(topic) hello/world. V pravém okně nahoře je pak příjemce této zprávy, abychom viděli, že vše funguje.

V pravo dole pak nasloucháme nové zprávě “bye/world”. Jak jde vidět z následujících screenshotů, při poslání zprávy na “hello/world” se tato zpráva ukáže i na “bye/world”. Jak to?

Protože NodeRED ;-). Jako první jsem pro otestování funkčnosti NodeRED a jeho napojení na MQTT udělal jednoduché přeposlání přijaté zprávy z jednoho kanálu na druhý.

A takhle to vypadá v NodeRED. Vlevo je MQTT consumer, nastavený tak, aby naslouchal topic hello/world

V pravo pak MQTT publisher, který přijatou zprávu pošle po kanálu (topicu) bye/world.

Dole pak mám ještě debug výstup, který zobrazuje přijaté zprávy.

A co loxone, jde to propojit?

No jasně! ;-). Pro testování jsem použil zatím jen REST Api loxone, ale NodeRED podporuje i websockets, navíc jsou pro Loxone už naprogramované přímo rozšíření pro NodeRED (viz dále).

Nyní nám ale pro jednoduchý test stačí RestAPI. Upravíme diagram tak, aby po přijetí jakékoli zprávy v topicu hello/world se nám rozsvítilo (nebo zhaslo) světlo v pracovně. To je cool ne? 😉

Samotné nastavení HTTP požadavku vypadá nějak takto. Nic složitého, jen se zavolá HTTP GET na adrese /dev/sps/io/WebApiTest/PulseDown.

Co se týká URL adresy, tak Loxone dokumentace stojí za starou bačkoru. Podle návodu by měla být adresa /prikaz/control/hodnota, coz ale /dev/sps/io/INPUT/PRIKAZ rozhodne není.

Touto url říkáme, že chceme na virtuální vstup “WebApiTest” poslat Impuls Down-Up. V Loxonu tak musíme tento virtuální vstup vytvořit a propojit se světlem.

A to je všechno. Nyní, kdykoli se objeví zpráva, světlo se přepne. Naprostá paráda. Nevím jak vy ostatní, ale já jsem nadšen. Těch možností, k čemu se to využít, je totiž neomezeně. Díky kombinaci NodeRED+Loxone tak jde do Loxonu dostat spoustu nových dat, od Arduino senzorů, dat z externích databází až po informace z Twitteru, Email nebo cokoli jiného vás jen napadne.

Co dál

NodeRED má obrovskou komunitu a kromě základních bloků (Nodes) má parádní knihovn dalších rozšíření – http://flows.nodered.org/. Jsou tam například i bloky na komunikaci s Modbus, KNX nebo Loxone.

Nyní to chce pořádně vyzkoušet a pohrát si s tím víc. V základu mám ověřeno, že vše funguje. Nyní zkusím zprovoznit nad Arduinem nějaký ten senzor a přes MQTT-NodeRed ho posílat do Loxonu. A uvidíme, jak to bude šlapat. Co jsem zatím testoval, tak problémy žádné, ale běží mi to jen chvilku.

Pokud ale vše pojede opravdu jak má a bude to 100% stabilní, vidím v tom obrovský potenciál. Navíc v případě, že by Loxone pokračoval se svými gestapáckými manýry a ještě více uzavíral jeho systém, tak se takto dá udělat kompletní rozšíření a defakto z architektury “Loxone je ten hlavní” udělat “NodeRED je ten hlavní” a Loxone mít jen jako podružný systém.

Použité linky

forumlink
Link na diskuzní fórum o Loxonu a Arduinu

Arduino – nastavení vývojového prostředí

Arduino – nastavení vývojového prostředí

Ačkoli mi zatím ještě stále nedorazila z Aliexpressu dávka IoT hraček, mám půjčený jeden WeMos D1 čip na hraní už teď. A protože se mi tu hormadí linky v prohlížeči, je čas na nový článek.

Jak se budu postupně Arduinem prokousávat, budu postupně psát i články. Takže uvidíme, s jakou pravidelností to bude. Zatím jsem ve fázi, kdy umím rozblikat diodu. Díru do startupového světa s tím asi neudělám, ale někde se začít musí.

javaw_2016-12-04_10-51-25

Většina návodů na internetu je o tom, jak rozběhat Arduino IDE. Pro začátek dobrý, ale jinak, co si budem nalhávat, IDE je to odporné. A protože mým denním chlebem je primárně Visual Studio od Microsoftu, bude i tento článek o tom, jak vyvíjet pomocí Visual Studia.

Paradoxne, první krok však stejně je stažení Aruduino IDE ;-). To se dá stáhnout zde https://www.arduino.cc/en/Main/Software

Po stažení pak přichází část, která mi přijde v ostatních článcích docela blbě vysvětlená.

2016-12-04_10-58-47

Pokud používáte jiný HW než oficiální Arduino, potřebujete získat definici tohoto zařízení. Nakonec jsem objevil tento Github list, který shrnuje zřejmě všechny definice na jednom místě https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls

V případě Wemos D1 je potřeba získat tuto URL http://arduino.esp8266.com/stable/package_esp8266com_index.json , která je společná pro více ESP8266 zařízení.

2016-12-04_11-00-48

Tuto URL pak vložit (stále v arduino IDE) do políčka “Additional boards manager URLS” v menu File->Preferences.

2016-12-04_11-04-071

Pak je potřeba otevřít Board Manager v menu Tools-> Board a chvilku vydržet. Sám se načte nový seznam dostupných zařízení. Úplně na konci je ESP8266. Ten je potřeba vybrat a dát Install.

2016-12-04_11-03-39

Jako poslední krok je pak potřeba vybrat “Wemos D1 R2&Mini” v menu Tools->Board.

2016-12-04_11-05-49

Tím je nakonfigurované ArduinoIDe k tomu, aby vědělo, jak buildovat věci pro Wemos.

2016-12-04_11-07-09

A nyní už k tomu, jak to teď celé rozběhat ve Visual Studiu. Podpora pro Arduino je dostupná od VS2013 po nejnovější VS2017 RC. Jsou podporovány jak komerční licence VS, tak i community.

Pokud tedy nemáte plnou verzi VS, lze si stáhnout zdarma komunitní verzi zde https://www.visualstudio.com/vs/community/

2016-12-04_11-12-27

Dále je potřeba stáhnout Arduino IDE for Visual Studio z VS Marketplace. Oboje nainstalujte. Nic složitého, defakto jen Next-Next-Next-Finish ;-).

2016-12-04_11-14-21

Po prvním spuštění Visual studia spolu s addinem pro Arduino uvidíte tento dialog. Vyplňte následující:

  • nechte vyplněné Arduino 1.6
  • do druhé “Ide folder location” vyplňte adresář, kam jste nainstalovali Arduino IDE.
  • do třetí položky můžete vyplnit adresář, kam budete ukládat své projekty (v Arduinu absurdně pojmenované jako sketchbook, nechápu).
  • a do poslední položky znovy vyplňte URL adresu pro ESP8266

2016-12-04_11-17-48

Po nastavení by se Vám ve VS mělo ukázat několik toolbarů pro nastavení, kompilaci a ovládání Arduina.

V druhém comboboxu vyberte opět WemosD1 R2&mini, ve třetím pak virtuální COM port, který se využije pro komunikaci s Arduinem.

2016-12-04_11-19-07

Tento com port se mi v mém případě nainstaloval automaticky po připojení Wemosu. Některé návody uvádí, že je potřeba stahovat ještě nějaké ovladače. To jsem dělat nemusel, takže netuším.

2016-12-04_11-24-11

IDE pro visual studio má verzi zdarma, ale pokročilé funkce jsou pak placené. Například velmi dobře vypadající debugger, rychlejší kompilaci a hromadu dalšího.

Cena pro non-commercial využití je více než příznivá, 19GBP. Takže jen co se do toho pustím víc, učitě budu kupovat.

2016-12-04_11-26-26

A to je z nastavení IDE vše. Pro kompilaci lze využít klasické zkratky VS, případně v toolbaru třetí ikonka od konce udělá Build&Upload do zařízení.

A takhle pěkně Vám pak může WeMos blikat ;-).

Další články bude o tom, jak propojit Arduino a MQTT message broker (pravděpodobně Mosquitto) a jak to pak propojit s NodeRED, což je krásný visuální nástroj na propojování mraky událostí, čidel a aktorů.

Další krok pak bude propojení s Loxone, načítání hodnot do Loxonu, případně ovládání Wemosu z Loxonu. To už bude aspoň zajímavé ;-).

PS: Tyto články původně sliboval jeden známý, co mne k tomu celému dovedl (že, B. 🙂 ), ale nějak je ne a ne napsat. Tak jsem se do toho pustil sám, ať mám linky někde schované. Pořád ale doufám, že minimálně svoji anabázi s Arduinem a odpáleným domovním zvonkem sepíše 🙂

forumlink
Link na diskuzní fórum o Arduino vývoji