Dar iki pradedant statyti namą laisvu laiku pradėjau domėtis ką pasirinkti įvesčių/išvesčių valdymui. Paieškas pradėjau dar kokiais 2016 metais. Kadangi tai pakankamai universalūs prietaisai ir juos galima pritaikyti kitur, per ilgą laiką atsisiunčiau ir vienaip ar kitaip išbandžiau juos visus, kuriuos aprašysiu. Šiuo įrašu apžvelgsiu visus svarstytus variantus, ir pagaliau parodysiu ką išsirinkau. Apie visus aprašytus variantus nesiūlau nuomonės priimti už gryną pinigą. Gali būti, kad kai kur pasidomėjau ne iki galo, kai ką gal būtų galima komplektuoti kitaip ir išvengti kai kurių problemų kurios man atrodė didelės.
Arduino/ESP32/STM32
Jei stipriai negalvojant, ir domintis apie laidines sistemas tai pirmas į galvą ateinantis pasirinkimas. Seniai žinomi ir naudojami mikrovaldiklių „dev board’ai”. Pagrindiniai privalumai, kad pigu ir lengvai programuojama. Arduino IDE su laiku tapo labai paprastu įrankiu programuoti šiuos mikrovaldiklius su krūva visokių bibliotekų. Su tuo ateina ir minusai, kad kai kurios bibliotekos parašytos kreivai arba gali greitai suėsi atmintį skirtą programai. Net labai nesigilinant ar tai STM ar ESP ar arduino, mėgstu ir naudoju šituos mikrovaldiklius paprastiems projektams, ir naudosiu juos name. Kažkiek. Tačiau kaip pagrindinį I/O modulį naudoti nepanorau. Ilgą laiką sekiau darauBle blogą, jis darėsi savo modulius paremtus STM32. Taip pat kolegos darbe darėsi valdiklį paremtą ESP32. Abu projektai susidūrė su tokiomis pat problemom: dėl parazitinių indukcinių srovių kartais iš oro pagaudavo įvestis kai jų nebūdavo! DarauBle berods sukeitė loginį 0 su loginiu 1, įžemino ir dar pasidarė paprastą filtravimo grandinę ant įvesčių. Kolega su ESP32 tiesiog įžemino. Abiem atvejais problemos baigėsi. Moduliai veikia labai žemose įtampose (5V arba išvis 3.3V) todėl lengva prisigaudyt parazitinių įtampų. Iš to gaunasi, kad jungiant tiesiai viską prie mikrovaldiklių kojelių, didesnė parazitinė iškrova gali net užlenkti mikrovaldiklį. Finale gaunasi, kad bet kokiu atveju reikia kurit savo „custom” PCB. Ir net jei ir nedarysite filtravimo ir apsaugos grandinių ant input, tai bent dėl gražaus laidų prijungimo verta pasidaryt PCB su terminalais kur laidus galima prisukti varžčiukais, o patį ESP32 ar ką ten lengvai pakeist. Nekenčiu kai ant snarglių viskas sujunginėta. Kuriant savo PCB lieka vietos klaidoms, ir apskritai gali būt amžiaus neužbaigtas projektas, nes dings motyvacija.
Plečiamumas: pritrūkus laisvų kojelių „inputams”, galima analogišką antrą prietaisą statyti gretimai, truputį paprogramavus daugiau, galima padaryti kad vienas su kitu bendrautų ir žinotų vienas apie kito statusą. Tarkim ESP32 ir STM32 nesunkiai prisijaukina CAN Bus, tai viską galima lengvai pajungt į vieną magistralę. Galima jungti ir įvairius išorinius rėlių blokus.
Programavimas: Kadangi tai I/O modulis, didelių sudėtingų logikų toks modulis neturėtų atlikinėti, todėl programavimas yra pakankamai tiesmukas. DarauBle berods viską rašė ant C/C++. Kolega ant ESP32 užkūrė MicroPython. Įmanoma ir NodeJs taip pat pasileist. MicroPython visai sužavėjo, gerokai palengvėja darbas su JSON ir MQTT jei būtų noras, vis gi kartais galima susidūrti su spartos problemom ar bibliotekų trūkumu. Yra ir trečias variantas, kuris gal visai būtų priimtiniausias: VisualDuino. Galima grafiškai sudėlioti programą, bet mokamas. Gerai tai, kad visus šiuos mikrokontrolerius lengvai arba pasikrapščius galima priversti programuotis per LAN arba WiFi. Neturėčiau jokio noro bėgiot su USB kabeliu ir kompu po namą. Norint normaliai „debugginti” teks ir paprograminti daugiau.
Palaikymas: tiek programą tiek hardware reikės palaikyti savo rankytėmis. Nebent žinote kas nors gerą projektą githube, tai komentaruose pasidalinkite.
Kaina: pigiau grybo, nebent WT32-ETH01 (čia ESP32 su LAN jungtim) tada truputį brangesni.
ZigBee, XBee, FreeWave ir panašus belaidis velnias
Pastaruoju metu rinka užsipildė įvairiais „gadžetais” kurie veikia belaidžiu ZigBee ar kitokiu Bee protokolu. Ir manau, kad tai labai puikūs prietaisai ir geras ėjimas… Jei turi iš seniau pastatytą namą ir naujų laidų tampytis nėra noro ar būtų neprotinga. Arba jei kažkur pamiršai laidą atitempt (galvoju kad ir man poroj vietoj prireiks to). Naujos statybos namuose remtis belaidėm technologijom – na kažkaip meh… Bet gal dėl to, kad aš neesu belaidžių technologijų fanas. Nežiūrint į tai, esu atsisiuntęs ir tokio brūdo pabandymui. ZigBee I/O moduliai galėtų išspręsti didelę dalį problemų, kurios kyla su „arduino and co” naudojant ilgus laidus. Tokius modulius būtų galima montuoti vos ne kiekvienam kambary kur reikalingas valdymas. Svarbu pasirūpint maitinimu arba ant baterijų (????). Kažkas panašaus kaip galvoja a-namas daryti. Vis gi custom PCB išvengti greičiausiai nepavyks, ir vistiek reikės kažką lituotis arba siųstis jau pagamintus (mačiau yra). Bet labiausiai kas mane neramina, kad ZigBee kamuoja tos pačios problemos kaip ir visas belaides technologijos. ZigBee kaip protokolas saugus. Šiandien. Gal dar ryt. Bet nebūtinai poryt. Tobulėja technologijos, tobulėja programišiai ir vieną dieną ZigBee gali pasidaryti nesaugus. Kaip WiFi pradiniai saugumo algoritmai kažkada buvo įveikti, kaip mobilių tinklų GSM A5/2 algoritmas šiandien lengvai įveikiamas ir nebenaudojamas pas operatorius, bet dar net šiandien jį galima panaudoti norint perimti pokalbius/žinutes. Net nežiūrint į belaides technologijas, tuose pačiuse procesoriuose (palietė tiek Intel, tiek ARM ir kitus) sugebėjo rast spragų (Spectre ir Metldown) taip ir ZigBee vieną dieną gali pasidaryti nebesaugus. Ir lengvai pasiupdatint greičiausiai neišeis. Kitas dalykas jei vaikas užaugs visas į tėtį (mane) tai gali ant smagumo sugalvot „nujammint” signalą, ir tada nebus smagu kai kažkas nebeveiks dėl neaišku ko. Dar blogiau jei kaimynas ar kažkas iš gatvės sugalvos taip padaryt. Taip pat reiktų atkreipti dėmesį pasirenktant kanalus. Kai kurie ZigBee kanalai sutampa su WiFi kanalais. WiFi pats iš savęs gerai su tuo susidoroja, o vat ZigBee nemoka su tuo dorotis, ir gali būti veikimo sutrikimų.
Plečiamumas: kadangi ten palaiko visokius mesh network ir pan, tai plečiasi ir tarpusavy bendrauja nesunkiai (praktiškai neišbandžiau)
Programavimas: Trumpai apibūdinant – tragiškas. Sudėtinga programavimo aplinka (bent jau to kontrolerio kurį aš buvau paėmęs) lyginant su Arduino, mažoka informacijos, daugiau manualą skaityt reikia. Teko užtrukti kol pavyko įkelt pirmą programą į ZigBee kontrolerį. Pajungimas ir nėra paprastas. Kai dalykai ilgai užtrunka ir nėra aiškūs, aš dažniausiai metu tokius dalykus į šoną ir net nebenoriu naudot. Čia nutiko būtent taip.
Palaikymas: tas pats kaip ir su arduino – savo rankytėm.
Kaina: nebrangus.
Raspberry Pi ir alternatyvos
Įkaliau „clickbaitin’ę” antraštę, nes jei ant raspberio galima microsoft technologijas leisti, tai kodėl antraštė negali būti tokia? Kai reikia ant kelio duobę užlyginti, juk nekviečiat diplomuoto statybos inžinerijos magistranto, kad suorganizuotų greiderį dėl vienos duobės. Mašinos variklio kompas ir yra paprastas mikrovaldiklis, net mašinos multimedijoj radijos kontroleris yra atskirtas nuo bendros multimedijos ir pradeda groti kol multimedia dar neužsikrovė. Net visokius langus ir šviesas ir valdo paprasti mikrokontroleriai. Tai rimtai nesuprantu, kam ant daikto, kuris gali paleist web serverį, kuris gali paleist daug web serverių, kuris gali leisti sudėtingus AI algoritmus, paleidinėti tokį paprastą dalyką kaip I/O valdymą? Nemaišom čia OpenHAB ar HomeAssistant, nes jų paskirtis truputį kitokia. Mano nuomone, įvestys/išvestys turi veikti kaip įmanoma paprasčiau, ir tikrai nereikia papildomų sluoksnių kaip operacinė sistema, laukt kol ji užsikraus/persikraus. Ar tiesiog visą sistemą nugriauti dėl kernelio update, kuriame pasikeitė dalykai, ar biblioteka gavo „major” update. Jau nekalbu apie SD kortos problemas apie kurias buvau rašęs. Arba dar geriau! Pamenat mano senolį pirmos kartos raspberry. Šią (2021m) vasarą kalė žaibas dar kartą, ir šį kartą su savimi pasiėmė routerį ir tos avietės USB/LAN kontrolerį, ir dar kartu anapilin iškeliavo USB<->RS232 kuris buvo tuo metu prijungtas. Tai raspberis vis dar veikia, bet neįgalus (USB ir LAN lizdai nebeveikiantys) Gal kur nors panaudosiu. Prasta „atmaskė” jei ir ant to pačios avietės turit visą UI, microsoft technologijomis parašytą, pasileidę valdymui, ar išorinis rėlių blokas pajungtas prie raspberry. Vistiek manau kad I/O modulis turi būti nepriklausomas nuo jokių OS ir kuo paprastesnis ir patikimas. GPIO kojelės veikia žema įtampa (5V ar tai 3.3V), tad kamuoja tos pačios problemos kaip ir „arduino ir co” lengvai galima užlenkt, ir reikės custom PCB.
Plečiamumas: kadangi yra LAN ir USB jungtys, tai plečiamumas priklauso tik nuo noro programuoti 🙂
Programavimas: Su programavimu viskas gerai, daug programavimo kalbų, net jei turit fetišą microsoftui tai ir su tuo galima. Galima programuoti ir grafiškai su kokiu NodeRED ir t.t. Bet pasikartosiu Raspberi Pi neturėtų būti naudojamas kaip I/O modulis ir viskas.
Palaikymas: programinės įrangos palaikymas neblogas, nes yra bent keletas neblogų opensource projektų kaip NodeRED ar OpenPLC. Su geležim, tai turbūt nepavyks išvengti custom PCB ir savų rankų.
Kaina: baziniai modeliai kainuoja nedaug jei nežiūrėt į galingiausius.
PLC
PLC – Programmable logic controller. Nėra naujas daiktas rinkoj. Atvirkščiai, senesnis už visokius arduinus ir raspberius. Ilgą laiką buvo brangus industrinis sprendimas, bet per paskutinius dešimt metų galima rasti prieinamų naudotų ir naujų variantų, todėl pamažu ateina ir į paprastų vartotojų rinką. Privalumų turbūt daug: dizainas daugeliu atvejų orientuotas į pakabinimą ant DIN bėgelio, veikia gerokai aukštesne, bet vis dar saugia įtampa: 12V-24V. Turi terminalus laidams prisukti, apsaugines grandines nuo neteisingo sujungimo, filtravimo grandines ir panašiai. Gan dažnai yra LED prie kiekvieno įėjimo ar išėjimo. Iš fizinės pusės niekuo nereikia rūpintis, ir jokių PCB gamint nereikės.
Plečiamumas: priklausomai nuo modelio stackable ar ne, praplėsti galima atskirais moduliais. Pvz rėlių moduliai, ar papildomais, I/O moduliais ir t.t.
Programinė įranga: Tradiciniai PLC naudoja savo OS (jei taip galima pavadint), persikrauna/užsikrauna labai greitai, turi bateriją kad neprarast laiko ar programos statuso. Dažniausiai viskas paprasta ir labai patikima, nes stipriai ir nuo seniai naudojami gamybos industrijoj, dideliuose pastatuose ir pan. Gan lengva „debugginti” nes galima matyti kaip vaikšto duomenys per registrus viduj PLC.
Jungiamumas: nėra įspūdingas – priklausomas nuo komplektacijos. Kai kur integruota į pagrindinį modulį, kai kur kaip papildomi. Galima pajungt prie LAN, RS485, RS232 naujesni jau siūlo ir WiFi ar bluetooth, neretas naujesnis jau turi ir MQTT palaikymą. Beveik visi palaiko ModBus RTU, Modbus TCPIP, Siemens mėgsta Artnet.
Programavimas: šita vieta turbūt ir pliusas ir minusas viename. Tradiciniai PLC programuojami „Ladder logics” grafiniu būdu, arba „flowchartais”, dar kai kurie palaiko paprastą programavimo kalbą kuri nelabai panaši į man žinomas. Basic dalykus programuoti labai paprasta, jei reikia kažko mandresnio ar prasidėti su bendravimu su kitais pritaisais, gali tekti pasukti galvą ir atrodo, kad su kodu būtų lengviau. Taip pat daugelis tokios programinės įrangos programuoti PLC veikia tik ant Windows.
Palaikymas: įmanoma išsikviesti automatikos specialistą kuris sutvarkys reikalus, jei kažkas nutiks.
Kaina: nuo pusė bėdos iki labai brangiai.
Gamintojai: Aliexpresse galima rasti kinų nukopijuotų senesnių Mitsubishi PLC. Tai pat daug pradedančiųjų naudoja Siemens logo, Wago brangesnis sprendimas bet ir po truputį pinga ir atsiranda naudotų, taip pat Schneider, Omron ir t.t.
Dabar jau įsigudrino gamintojai kurti ir siūlyti arduino ar raspberry pagrindu sukurtus PLC,. Fizinė dalis kaip tradicinių PLC, bet po apačia arduino arba raspberry, tokiu atveju galima programuoti tradicinėmis programavimo kalbomis. Kolkas kiek mačiau tokie sprendimai nepigūs – vien pagrindinis modulis prasideda nuo 200-400Eur. Pavyzdžiai UniPI, Kunbus.
Egzistuoja projektas OpenPLC kurio tikslas užkurti platformą kuri ant raspberrio leidžia naudoti Ladder Logics programavimo būdą. Ten dar ir ESP32/Modbusinius įrenginius galima naudot kaip „slave node”
P pasirinkimas
Daug netuščiažodžiaujant, P pasirinko PLC. Priežastys turbūt labai asmeninės ir paprastos. P ir taip turi daug veiklos įvairios, tai nesinorėjo dar elektroniko ir programuotojo etato namie. Nors vistiek teks. Konkrečiai pasirinkau Click PLC, pigiausias „stackable” PLC rinkoje. To pačio Siemens logo man neužtektų „Input/Output” kiekio. Pirkau šustriausią tuo metu modelį su LAN senokai – 2019 metais iš automationdirect.com. Kolega iš JAV vykdamas į komandiruotę pas mus atvežė man, tad pavyko gauti pigiau nei Europoj ir sutaupiau ant siuntimo ir muitų. Galima įsigyti ir europoj. Maitinimo bloką ir input modulį pirkau iš Ebay naudotus. Pradžiai užteks. Dabar mačiau jau yra dar šustresnis modelis, kuris jau palaiko ir WiFi ir Bluetooth, ir MQTT ir suderinamas ir su senesniai praplėtimo moduliais. Bet dar pagalvosiu ar verta atsinaujint.
Detaliau aprašysiu greitai, nes jau bus paleistas name.
Dabartinis statusas
Trumpai, nes jau ilgai ir taip prie šito įrašo sėdėjau.
Turim virtuvę! Apie interjerą ir visus sprendimus kalbinsiu D, kad parašytų daugiau.
Paskutinę vasaros dieną (t.y. rytoj) kraustomės! Baigiasi nuomos sutartis, todėl kraustomės, tad greitai pradėsiu rašinių ciklą apie kelią išmanaus namo link, nes iš skydinės šviesą junginėti nelabai kieta.
2021-08-31 - 12:34
Statysi 200€ vertės blokus kurių LT net nenusipirksi?…
Kažin ar tokiu sprendimu ką sudominsi.. Skaitysim kaip egzotiką 🙂
Šiaip pastebėjau, kad kiek žmonių tiek variantų – vis dar nėra kažkokio sprendimo kuris tenkintų daugumą.
Su belaidžių kritika sutinku bet… kai daroma namui ir sau, tai saugumo ir triukšmų klausimas atkrenta. Niekam nesi įdomus, niekas neįsilaužinės, kad tavo lemputes pajunginėti 😉 Pradžioje ir aš galvojau daryti tik laidinį bet kai užmojai sumažėjo iki TIK namo namo tai pagalvojau kad Zigbee su Mesh technologija – visiškai puikus sprendimas, koduotas solidžiai ir patikimas.
Programuoti kontrolerius pačiam – pernelyg didelis užmojis. Reikia naudoti firminius ir atviro kodo sprendimus. Jų jau yra pakankamai man atrodo. Taip ir darau.
O PLC programavimas kokio lygio? Nebus per daug ten žaidimo?
Beje prajuokino nekoduotos bevielės sistemos (433Mhz) – kai kas net tokias drįsta naudoti automatizacijai 😀
„Sveiki. Gal kažkas kažką patars: turim namie problemą – sudėti liečiami šviesos jungikliai ir kažkokiu būdu reaguoja į kaimyno mašiną. Ir būtent tik į tą vieną, į visas kitas nereaguoja. Užtenka kaimynui atidaryti mašinos duris ir pas mus namie pradeda įsijunginėti šviesa. Išvažiavus ar uždarius mašiną šviesa būna lieka išjungta, būna lieka ir įjungta. Gal kas kokį patarimą kaip išspręst šią problemą? Visų jungiklių keisti nesinori. Kaimynas mašinos keisti taip pat neplanuoja.”
2021-08-31 - 14:56
Na platintojų yra ne tik USA, aš pasirinkau iš USA nes buvo galimybė įsigyti pigiau ir buvo kas atveš nemokamai. Europoj yra bent keletas platintojų kurie turi tokių dalykų, ir čia kalbam tik konkrečiai apie mano įrenginį, koks WAGO ar Siemens yra ir pigesni ir Vokiečių gaminys, tai tikrai nebus problemų įsigyti net Lietuvoj. O mano įrenginiu ir prekiauja:
http://www.ama-automation.com/ Vokietija
http://www.lamonde.com UK
http://www.plcdirect.eu Beneliuksas
Tikrai nebūtų problema atsisiųsti ir į LT.
Pavardink man firminių ir atviro kodo sprendimų su ZigBee kurie gražiai montuojasi į dėžę, o ne kažkur rozetėj ar dar kaip nors.
Dėl saugumo čia požiūrio reikalas, aš ir iš dalies mojau ranka iki CityBee (beja ir kažkoks Bee 😀 ) nutekinimo. Tai nuo to laiko smegenyse susisuko varžteliai, kad saugumas ne juokas, ir jau žiūriu visiškai kitaip į tai, juolab kad čia mano profesija. Bandymų prisijungti buvo, nes gavau kelis alertus į emailą.
PLC programavimas, kolkas atrodo labai paprastas, nes didžiąją dalį „out of the box” padengia modbusas, todėl nieko nereikia programuot integracijai su OpenHAB/HomeAssistant. Turiu jau šviesų valdymą. Greit aprašysiu kas ir kaip.
2021-09-01 - 7:32
CitiBee nutekino ne nesaugus interneto protokolas, o žmogiška klaida kaip visad – neuždėjo slaptažodžio saugyklai.
Apie vis atsirandančius p. namų smegenis parašysiu ir aš kokią žinutę savo bloge. Jų vis daugėja o sutarimo ką naudoti – vis mažėja 😀
O kai Lietuvoje p. namų ezntuziastų mažai, tai išvis kiekvienas daro kažką savo..
2021-09-01 - 12:40
Man labai patiko PLC su MQTT, kadangi MQTT mėgstu ir naudoju kasdien, tai šis variantas labai realus. Planavau aš kažkokį būtent šviesų valdiklį daryti kaip nepriklausomą prietaisą su galimybe jį valdydi iš bendros sistemos, buvau apsistojęs ties mintimis, kad teks gamintis savo plokštes, bet keli sakiniai apie PLC ir užkabino, bandysiu detaliau pasidomėti PLC ir lauksiu sekančio įrašo, tikrai sudomino. 🙂
2021-11-03 - 16:19
Na bent kiek aš randu, tai wago PLC kartais bragesnis už Click PLC