Sziasztok ! Épuletautomatizálással foglalkozom véletlen kerürltem kapcsolatba az arduinoval, nagyon tetszik. Az lenne a kérdésem, hogy milyen hosszú vezetéket lehet csatlakoztatni a bemenetre, amivel stabilan műkődik. Mennyire alkalmas épületautomatizálásra?
A vészes csak az az egy lehet lehet a százból, amikor pl. 24 V egyenáram lakozik a végén (az persze más kérdés, hogy ha fogyasztót kötünk rá, akkor mekkora áramot bír).
1. a szobatermosztát kimenete 100ból 99szer egy relé. tehát földfüggetlen, potenciálmentes, egy kapcsoló.
2. minek a szobatermosztát? az arduinora tehetsz hőmérőt és kész.
3. a kazán fele neked is egy kontaktust kell adj. nem használhatsz ide ssr-t, mert nem tudod hogy a kazán 12V, 230V, egyen vagy váltóáramot tol ide. kis kockacukor relé és kész.
4. mindenképpen kell watchdog, vagy valami más ellenőrző cucc. ha lefagy a proci amikor nem vagy otthon és bekapcsolva marad a kazán, az a pénztárcának sem jó, meg akár veszélyes is lehet. pl egy olcsó szobatermosztát 26 fokra állítva és sorbakötve a kazán termosztát bemenetével?
5. kicsit okoskodhatsz, hogy lehetőleg egyszerre menjen a két kör, ne felváltva. a kazánnak jó ha sokan viszik el róla a hőt egyszerre, nem egyetlen szobát fűt. mondjuk amikor már egyik kör sem kér fűtést, akkor a kovetkező kerek félóráig (egészig vagy félig, ami előbb) semmiképp nem fűtesz, és bízol hogy addigra már mindkét kör kéri a meleget. akkor elkezded mindkettőt tolni, először kiszáll az egyik, aztán a másik, aztán újra megvárod amíg kerek az idő.
Ha az 1. szobatermosztát bekapcsolna akkor bekapcsolná az 1. szivattyút és a cirkónak is zárná a termosztát körét indulna a cirkó.
Ha az 2. szobatermosztát bekapcsolna akkor bekapcsolná az 1. szivattyút és a cirkónak is zárná a termosztát körét indulna a cirkó.
Úgy érted, hogy a 2. szivattyút kapcsolja?!
Alap kérdésem, hogy a szobatermosztát kapcsoló körét rá lehet-e kötni az arduino egyik kapcsoló lábára?
Próbáltam technikai specifikációt nézni a vevő egységről. Alapvetően az a válasz, hogy „attól függ”. Direktben több okból sem kötném rá (a kazán műszaki hibája esetén visszacammogó sokszáz volt vagy erős impulzus szép fekete füstté disszipálná a kontrollert minimum, rossz esetben az egész házat. Meg kell nézni, hogy hogyan kapcsol, illetve pontosan mit kapcsol), és ennek megfelelően kell kábelezni. Azt kell elérni, hogy a jel csak egy irányba menjen és a megfelelő erősséggel, ne oda-vissza, pláne nem túl sok naftával.
Gondolom ez már csak programozási logikában kell jól beállítani?
Igen, pontosan. De nagy vonalakban azt mondom, ehhez (szinte) felesleges az Arduino, sima logikai kapcsolókkal, akár relékkel is meg lehet oldani.
Mi az amire alapból nem gondoltam? :-)
1. Van-e szükségmegoldás (mi van, ha leáll az Arduino?)
2. Tovább akarod-e fejleszteni később (kijelzés, naplózás, szofisztikáltabb mérés stb.)?
Kb. ennyi. A szoftveres rész nyersen 10 perc programozás nagyjából, alaposan megírva persze valamivel több, de úgy sem vészes.
void setup() { wdt_disable(); // бесполезная строка до которой не доходит выполнение при bootloop Serial.begin(9600); Serial.println("Setup..");
Serial.println("Wait 5 sec.."); delay(5000); // Задержка, чтобы было время перепрошить устройство в случае bootloop wdt_enable (WDTO_8S); // Для тестов не рекомендуется устанавливать значение менее 8 сек. Serial.println("Watchdog enabled."); }
int timer = 0;
void loop(){ // Каждую секунду мигаем светодиодом и значение счетчика пишем в Serial if(!(millis()%1000)){ timer++; Serial.println(timer); digitalWrite(13, digitalRead(13)==1?0:1); delay(1); } // wdt_reset(); }
a Lua-val kapcsolatban, lehet szeretni meg nem, de elvitathatatlan előnye a REPL. Fejlesztés közben egy-egy funkciót úgy meghívni, hogy kiküldünk egy parancsot és kiolvashatunk változókat, lekérhetünk függvények eredményeit nagyon meg tudja könnyíteni a fejlesztést/próbálkozást.
Én használom PC-n is a lua-t, az üzleti logikát teszem bele, a program meg c++, pascal vagy c#. Annyira könnyű nyelv, hogy elméletileg egy laikus is bele tud nyúlni. A gyakorlatban persze nem így történik, de ha megszokja az ember nagyon átlátható.
Természetesen értem az érvet ellene ebben az esetben.
Nem használok mellé másik mikrokontrollert, a legtöbb projektemhez nem szükséges. Van 17 GPIO lába, SPI, I2C, PWM (mindegyik lábon), UART, stb. A lábak funkciói szabadon felcserélhetőek.
Programozás.
AT parancsos dolog nem jön be. Körülményes.
LUA script sem tetszik. Plusz réteg köztem, és a MCU között.
Espressif SDK. Minden más firmware és fejlesztőeszköz is erre épül, mert ez tartalmazza a CPU, WiFi HAL-t. Egyre több funkció, rendszeres bugfixek. Támogatott fórum, rengeteg komplett mintaprogram. Tetszik, de még nem próbáltam, ugyanis csak Linux alatt támogatott. Vannak fórumos leírások, hogy hogyan fordítsuk le Windows alatt, hozzuk össze a kedvenc fejlesztőeszközünkkel, de erre még nem volt időm.
És ami többeket érdekelhet ebben a fórumban:
Arduino IDE. 1.6.4-től kezdve csak egy URL-t kell megadni, ahonnan az IDE letölti, és telepíti a board-ot. Onnantól kezdve elérhető a board menüpontban. Így van ez az esp8266 esetében is. A fent említett Espressif SDK hívásait szépen becsomagolták a megszokott Arduino-s stílusba. Innentől WiFi.begin("SSID", "PASSORD"), és már fent is vagy a hálózaton. Minden a szokásos. Lehet használni delay()-t, úgy van megírva, hogy a háttérben azért lekezeli a hardweres, hálózati taskokat. Tehát a loop() végén mindig végigmegy a saját dolgain, mielőtt újra kezdené a loop() metódust. Természetesen jobb callback-eket használni. Például a webszerver elindítása is egy sor, aztán a különböző (virtuális) könyvtárak eléréséhez mindenféle callback metódust lehet hozzárendelni. Ugyanígy a LED villogtatásra is érdemesebb az SDK szolgáltatását (ticker) használni. A legtöbb funkcióhoz mintaprogram is tartozik.
És a bónusz: Természetesen a Visual Micro is támogatja, így az Atmel Studio 6/7 is használható a fejlesztésre, feltöltésre. (Az Arduino IDE-ve továbbra sem vagyok kibékülve, számomra használhatatlan.)
Start bootloader: Reset, miközben GPIO_0 LOW. Érdemes az USB-TTL átalakító DTR lábát kötni ide, a resetre pedig az RTS lábát, és akkor az esptool automatikusan rángatja ezeket a lábakat, így feltöltéskor nem kell nyomogatni semmit.
Amikor először találkoztam a Raspberry Pi-vel és az Arduino-val nagyon hamar elszaladt a fantáziám smart home témakörben. A szenzorokat és reléket akartam pakolni mindenhova, mozgásérzékelőket, Raspicam modulokból biztonsági kamerákat, gázérzékelőket a kazán mellé stb... és úgy képzeltem hogy mindezt a nappaliban a tévé HDMI bemenetére kötött Raspberry Pi-n keresztül felügyelném a tévé irányító kihasználatlan gombjait felhasználva. A szenzorok, relék mikrovezérlők lassan megérkeztek Kínából, de aztán a lelkesedés alább hagyott. Rádiós átvitel vagy RS-485? Esetleg a szenzorok lógjanak 20-30 méter hosszú kábeleken? Cat5e vagy elég a telefonkábel? Zavar- és túlfeszültségvédelem? Vezérlőfelület programozása? Szóval nem lenne egyszerű feladat.
Nemrég viszont rábukkantam a MySensors projektre, amelyben Arduino (Uno, Mini, Nano) vezérlőket és Nordic nRF24L01+ 2,4 GHz-es modulokat felhasználva szenzorokat lehet hálózatba szervezni. Van egy fő Arduino vezérlő, vannak Arduino végpontok amelyekre a szenzorokat aggatjuk rá csillagpontosan és ha nagy a terület üzembe helyezhetünk gateway-eket, amelyek átjátszóként továbbíthatják a szenzorok adatait a fő vezérlő felé, másrészt egy modul kiesése esetén más úton küldik az adatokat (kis Internet :) A szenzoros Arduino-k energiatakarékos módban működnek jellemzően, csak a mérés idejére ébrednek fel, így hónapokig működhetnek akkuról.
Az először nem tudtam mi ez az nRF24L01+ és azt nézegettem, hogy lehetne lecserélni az alap filléres 433Mhz adó-vevőkre amiből van több darabom. Aztán kiderült a modul ár-érték arányban egy Zigbee killer szuper chip, ami pont-multipont átvitelt, csomagkezelést, hibakezelést egy szóval mindent intéz.
A grafikus frontend-hez egy a MySensors-szal kompatibilis Smart Home controller-t kell telepíteni jellemzően egy Raspberry Pi-re. Ezek a szoftverek többnyire Java alapúak és jelenleg 16 közül lehet választani. Én A PiDome-mal fogom kezdeni az ismerkedést ha megjöttek a Nordic modulok. Az infra távirányítós vezérlési lehetőség miatt főleg, de valószínűleg más szoftverek is tudják ezt.
A MajorDomo oldalán is ígéretes képernyőfotók vannak, de sajnos több hónapja nem frissítették a szoftvert.
A Nordic modulokból rengeteg féle kivitel létezik, a lényeg hogy nRF24L01+ chip legyen rajta. A sima nRF24L01 nem tud 250kbit/s átviteli sebességet csak 1 és 2 Mbit/s-t emiatt kisebb a hatótávolság másrészt hack-elni kell hozzá a driver-t.
Én 3 féle nRF24L01+ modult rendeltem. Sima "NYÁK antennást", bot antennást, és bot antennást erősítővel. A központi egységhez illetve a gateway-ekhez javasolnak egy nagyobb nyereségű antennával ellátott modult.
Most várom hogy befussanak a Nordic modulok, Arduino-im és szenzorok már megvannak.
ilyen áramkorlátozásról még nem hallottam, de lehet. egyszerűen nem lehet megcsinálni, ahhoz hogy csökkentse az áramot nőnie kellene az ellenállásának, attól meg még jobban melegszik.
az ilyen ellenőrzések jók. plusz nézz utánna a watchdognak.
Valóban. Olvastam, hogy egyes SSR-ekben van thermal degradation (ha jól írom), azaz ha túl meleg, akkor elkezd kevesebb áramot átengedni??
Másik tanulság a padlófűtéssel: a film kicsit elcsúszott a szőnyeg alatt, nem volt elég jól rögzíve. A film alatti hőmérő a szélén volt, így a hőmérő nem tudta mérni azt, hogy milyen meleg a film, ezért nem kapcsolt le a relé. Ugyan arra gondoltam, hogy hőmérő nélkül kapcsoljon le a rendszer (<5 fok vagy >30 fok vagy nem válaszol a hőmérő), de most az történt, hogy a vezérlő adta a jelet, hogy fűtés, de a hőmérő ugyanúgy 23 fokot mutatott, hiszen elcsúszott. Persze tudom, hogy ez telepítési (rögzítési) hiba, nem szoftverhiba, de most azon gondolkozom, hogy az is lehet hibaesemény, ha a vezérlő fűtésre ad jelet, de X idő múlva se változik a visszacsatolt hőmérséklet.
Köszönöm! SSR-nél ugye még az a fontos, hogy kell-e rá hűtőborda vagy sem. Ehhez persze el kell olvasni az adatlapot (megnézem), de egy 25A-es SSR-nél talán 4-5 ampernél még nem kell?
Fotek SSR-40 DA. Itt van a kütyüsszortimentben. 40 A szerintem több, mint 4-5. És nem mondom, hogy minden 10. fázisváltásnál érdemes kapcsolni, de kétlem, hogy 1100 W-tól megborulna. És volt kb. 4 dollár. Se. De ha félsz, akkor keress olyat, ami tényleg CE-papíros (kicsit drágább), az üzembiztos (vagy ha nem, akkor mehetsz pereskedni velük). Lomex: http://lomex.hu/hu/webshop/#/page,0/stype,1/search,42-15-78/sidx,7 2250 huf.
A szabályzás jó, csak kattog (picit). Annyi lendület/tehetetlenség van a padlóban, hogy 10 másodperc kikapcsolás alatt azért nem süllyed le a hőmérséklet jelentősen.
A szilárdtest relétől kicsit félek, mert itt kb. 1100 W teljesítmény megy át (4-5 Amper), tudom, hűtőborda meg nem szabad kínait venni, de ez mégis csak gyerekszoba. Inkább kattogjon halkan, mint hogy kigyulladjon. Reléből szerintem tudok venni olyat, ami nagyobb ciklus terhelésre van (sok kapcsolást bír). Egy FI-relét még berakok az egész elé (van is kéznél konnektoros fi relém), legyünk inkább túlzottan óvatosak.
Jó a kérdésed :-) Most a legprimitívebb az algoritmus: a fűtőfólia a szőnyegpadló alatt van, az alatt pedig egy DS18S20-as hőmérő.
Ha hőmérséklet (egészre kerekítve) > 30 fok, akkor kikapcsol, amúgy be. Ez kb. fél-1 fok lengést jelent. Az algoritmus 10 másodpercenként értékeli a helyzetet, azaz ennél gyakrabban nem kapcsol.
Nagyon kellemes amúgy, de a 30 fok sok a lábnak/fenéknek, lejjebb fogom venni. A szobában van radiátoros fűtés, de a szoba alatt garázs van, ami nincs fűtve, és hiába van szigetelés a padlón, csak hűvös, főleg a gyereknek, aki ott ül és játszik.
Még egy Wifi modult is teszek hozzá hamarosan (ESP8266), ez opcionális távvezérlés/konfigurálás (pl. letiltás, vagy hőfok állítás) és monitoring lesz (MQTT).