Okos otthon is fókuszban

Arduino kalandok

Arduino kalandok

433 MHz - part 2

2018. február 05. - denx

Mivel nem tudtam hogy is fogjak hozzá a hőmérő jeleinek elkapásához, így először próbálkoztam mindenféle zsákutca-módszerrel, de most inkább a jó megoldást osztom meg

Adatok Elemzése

Első körben kíváncsi voltam, hogy egyáltalán ad-e használható adatot a vevő egység. Erre láttam több helyen is egy nagyon egyszerű módszert: a vevőegység adat lábáról érkező jeleket - némi szintillesztés után (értsd ellenállásokkal) - egy PC-s hangkártya line in bemenetére kötve egy hangszerkesztő programmal simán lehet addig nagyítani a hullámot, míg végül látható és elemezhető jel lesz belőle. Mivel nekem csal laptopom van, amin már kb 10 éve nem gyárt senki line in csatlakozó, így ezt egy USB-s hangkártyával lehetett volna megoldani. Igen, ebből már talán ki is derült, hogy én nem ezt a módszert választottam. 

Tovább

Gázóra projekt

Kicsit hasonló a projekt, mint a mosógép- vagy villanyóra okosítás: úgy tervezem figyelni a lakás gázfogyasztását, hogy ne kelljen hozzá nagy beruházás, vagy komolyabb beavatkozás. Természetesen semmiféle illegális dologról nem lesz itt szó, csupán megpróbálom figyelni a gázórám analóg számlálóját, ezt pedig elemezni fogom ha már lesz elég információm.

Tovább

433 MHz és az Ardu

A lakásban van több 433 MHz-en működő dolog is, úgy mint távirányítható konnektoraljzatok és vezeték nélküli hőmérők, vagy ahogy néhányat nagyképűen nevez a gyártója "időjárás állomások". A termosztát projekt kapcsán jön képbe ez a téma. Az igazsághoz hozzá tartozik, hogy ezen a téren voltak már kalandjaim... Raspberry Pi-m már évek óta van és eredetileg ezt a termosztát projektet is arra akartam építeni, de amikor belekóstoltam az Ardu világába rögtön egyértelművé vállt, hogy arra is ez lesz a leg megfelelőbb. Egyszerűbb és stabilabbnak tűnik, márpedig itt fontos a stabilitás.

Tovább

Mosógép Projekt - okosítsunk

Manapság nagy divat lett az okosBÁRMI eladása, horribilis pénzért. Ezzel nekem azon túl, hogy aránytalannak érzem a többletköltséget az még a bajom, hogy az okos háztartási eszközeim biztonsági szintjéről egyáltalán nem lehetek meggyőződve! Napról napra jönnek elő kritikus biztonsági rések internetre kötött eszközökben, amiket jó esetben a gyártó javít, rosszabb esetben a felhasználó nem is tud a problémáról!

Ebben a projektben az a terv, hogy meglévő mosógépemet és külön álló szárítógépemet szeretném olyan módon felokosítani, hogy szóljon, ha végzett (bármelyik).

Tovább

Ennyi az idő! - RTC part 2

Látva az RTC bejegyzésem olvasottságát megosztom egy másik ötletemet is. Én a real time clock eszközöket úgy használom, hogy úgynevezett breakout board-okat rendelek Kínából, ezekbe rakok elemet (ha épp nem azzal együtt érkezik) és beállítom rajtuk az időt mielőtt beépíteném a kész eszközökbe. De hogyan? Erre több megoldás is létezik, ezek az én ötleteim, tapasztalataim:

Tovább

Garázs projekt - 4. rész

Publikáció

Úgy alakult, hogy ráakadtam egy instructables-ős pályázatra, pont amikor elkészült a mű - legalábbis egy első verziója. Ennek köszönhetően gyorsan összedobtam róla egy pár lépéses leírást, ami itt van: http://www.instructables.com/id/Garage-Parking-Helper-With-Arduino/

Sokat tanultam a dologból, de a Fritzing használatáról majd egy külön bejegyzés fog készülni.

Séma

Íme a schematic ábra, ami leírja, hogy mi mivel hogyan van összekötve:

garage-sketch_schem.png

Breadbord

Lemodelleztem a próbapanelon összerakott kapcsolást egy kicsit átláthatóbb módon is:

garage-sketch_bb.png

Folytatás...

Közben jöttem rá, hogy hol lehetne még javítani a dolgon:
- a 7 szegmenses kijelzőhöz kapcsolódó ellenállásokat inkább a katód lábakra kell rakni, így nagyjából azonos fényerő érhető el a digiteknél akkor is, ha csak 1-2 szegmens világít, meg ha mind.
- a 2 ledet át lehet rakni a második shift register üres lábaira
- mivel rengeteg kábel és viszonylag kevés alkatrész van a kapcsolásban, így érdemes nyákot gyártani hozzá, erre is jó a Fritzing, de itt van csak igazán sok tanulnivalóm! 
- arra jutottam, hogy a kijelző részről fogok csinálni egy külön panelt: 2 shift register, 4 külön led (4 színű) és a szükséges ellenállások. Ennek lesz 5 vezetéknyi bemenete és ezt már elég könnyű lesz bármilyen célra összerakott kapcsoláshoz illeszteni.

Garázs Projekt - 3. rész

Miután sikerült a kijelzőt kitökölnöm, hogy hogy is csinálja mit kell, elgondolkodtam, hogy ha már egy ilyen világító cucc fog lógni a garázsomban, akkor az mutasson már valamit akkor is, amikor épp nem parkolok! Innen jött az ötlet, hogy mit lehet még kiírni egy ilyen primitív kijelzőre: hát persze hogy az időt! A rendszert nem bonyolult kibővíteni egy RTC-vel, már csak azon kellett kicsit gondolkodni, hogy mikor írja ki az időt és mikor a közeledő autó távolságát? Erre találtam egy frappáns megoldást: 

Fényszenzor. A képen látható kis eszköz már egy egészen összetett cucc, mivel a végéből kiálló fényérzékeny ellenálláson eső feszültséget össze tudja hasonlítani egy referencia feszültséggel, amit a kis kék ú.n. trimmer potméterrel maga állíthat be az ember. 3 lába is elég logikusan működik: kimenet, föld, táp. A kimenetet a szerint kapcsolja magas, vagy alacsony állapotba, hogy a beállítottnál több, vagy kevesebb fény érkezik az érzékelőre.

Ez nekem azért jó, mert arra jöttem rá, hogy a kocsim automatikus fényszórója mindig felkapcsol a fedett (és sötét) garázsba behajtva, vagyis ha a szenzort valahova a fényszóró vetítési képének fényes részére rakom, akkor meg tudom állapítani, hogy közelben van-e a kocsi! Ha van, akkor a távolságot kell kiírni, ha nincs autó, akkor kisebb fényerővel mehet ki az idő. Mivel a DS3231-es RTC-t használom és annak van egy különleges funkciója, így még a hőmérsékletet is ki tudom írni (felváltva az idővel).

A végeredmény próbapanelon pedig így néz ki:

img_20180103_215129.jpg

Elég kusza és nehezen követhető, de lássuk mi is van a képen:
- probapanel
- rajta bal oldalon egy Aruino Nano
- középen fent egy DS3231-es RTC
- jobb oldalon az említett kijelző
- mellette jobbra és balra 1-1 shift regiszter (kábelektől nem nagyon látszanak)
- a panelon a sűrűjében van egy zöld és egy piros LED is, amik szólnak olyan módon is, hogy "gyere még"/"állj"
- külön köldökzsinóron bal alul az ultrahangos távolságérzékelő
- szintén zsinóron alul a fényérzékelő


Ezen a képen épp az az állapot látszik, amikor nincs világítás a szenzor előtt, vagyis az időt láthatjuk és a két LED is alszik. (Igen, este készült a kép.)

Hamarosan érkezik a kapcsolási rajz, majd a program is... Stay tuned!

Garázs Projekt - 2. rész

Eljutottam odáig, hogy próbapanelon sikerült működésre bírni a cuccot, de lássuk a részleteket!

Ahogy az előző részben is említettem, olyan műszert szeretnék összehozni, ami segít centikre megközelíteni a garázs végében lévő tereptárgyakat (konkrétan egy padlásra vezető létra a legfőbb akadály) a kocsi orrával. Az említett ultrahangos távolságmérő szenzor adatait annál kicsit pontosabban szerettem volna megjeleníteni, hogy "jó/nem jó"! Az információ kijelzésének egyik legolcsóbb (de valószínűleg nem a legegyszerűbb) módja egy 7 szegmenses 4 számjegyű kijelző használata. Ez azért jó, mert relatíve nagy számokat lehet rajta megjeleníteni és nekem most amúgy sem kell túl szofisztikált grafikai megjelenés.

A képen látható eszköznek van 1-2 különlegessége, ami avatatlan szemnek talán fel se tűnik:
- minden számjegy után van tizedes pont
- a második és harmadik számjegyek között van kettőspont és tizedespont is
- a képen 6 láb látható, természetesen az eszköz felső oldalához közel is van még egy sor ezekből, vagyis összesen 12 láb jellemzi a terméket.

A neten sok olyan leírást lehet találni, ami ebből egy primitív digitális órát varázsol, azonban pont ilyen kijelzővel sehol nem találkoztam: legtöbbször 16 lábú példányt használnak mindenhol, ahol netán 12 lába van, ott viszont vagy tizedespontok nincsenek, vagy kettőspont nincs. Némi kutatás (értsd pár óra) után ráakadtam a következő sematikus ábrára, ami után már kicsit könnyebben mentek a továbbiak:

Ahogy a képen is látható ez az úgynevezett közös anódos 7 szegmenses 4 digites LED kijelző elég érdekesen van összedrótozva. Ha ugye az lenne az igényünk, hogy minden egyes szegmenst (azaz LED-et) egyszerre és külön-külön is meg tudjuk szólítani, akkor 4x8 (4 digit x 7 szegmens plusz a pont, vagyis 8 szegmens), azaz 32 katód mellé kellene legyen 1 anód, ami ezért elég sok láb egy ilyen egyszerű eszközön! Ebben az iparban egy bevett gyakorlat ilyen módon közösíteni a lábakat, vagyis a különböző digitekhez tartozó azonos szegmensek katódjai közös lábra vannak kivezetve. Ez elsőre bajosan hangzik, de mivel ledekről beszélünk, ezért a gyakorlatban ezeket elég csak egy nagyon rövid időre felvillantani és kihasználva az emberi szem lassúságát ha egymás után villogtatjuk a digitek szegmenseit, akkor a szem az összeset egyszerre látja égni.

Mivel a 12 láb még mindig nagyon sok (gyakorlatilag szinte az össze kimenetét csak a kijelző használná szegény kis Arduino-nknak) így erre is van iparági standard megoldás: shift register. A 74HC595 típust szokták erre leggyakrabban használni, ami röviden a következőkt tudja:
- vagy egy soros bemenete, mellette egy órajelet is fogad
- vagy egy olyan lába, amin keresztül érzékeli, hogy nem fog több üzenet jönni, vagyis amit eddig kapott azt kell kiraknia a...
- 8 kimenetére
- vagy egy kilencedik kimenete, ami azért jó, mert azon keresztül a beérkezett, de kimenetre nem helyezhető adatot továbbítani tudja, így sorba lehet kötni több ilyen IC-t is.

Praktikusan úgy érdemes ezt használni, hogy az első ilyen IC legyen a 8 darab katódra kötve, a második ilyen IC első 4 kimenete pedig a 4 darab anódra. Ezután kiküldünk mindig 2 darab 8 bites jelet, amiből az első azonosítja, hogy melyik karaktert fogjuk most megjeleníteni, a második 8 bit pedig, hogy melyik szegmensek égjenek. Egymás után rakunk 4 ilyen utasítást, amivel gyorsan kirakunk 4 karaktert, majd egy 5-ik ilyen utasítással kioltjuk az utolsó karaktert is. Ezután várunk kicsit, majd újra megtesszük ugyanezt a kört. (A várakozási idő változtatásával lehet azt beállítani, hogy mekkora fényerővel világítsanak a ledek, vagyis a kijelző.)

Eddig a pontig nagyjából 2 este alatt jutottam el, de innen már a könnyebb része volt csak hátra! Rá kellett akasztanom az Ardura az ultra szenzort, amit az első részben is magyaráztam és az arról érkező jelet kellett kirakni a kijelzőre.

Virág projekt

Van a feleségem és köztem egy örök vita: mennyire kell öntözni a virágokat? Nekem bevallom nem sok virágom van, talán azért, mert én a hasznos dolgokat kedvelem. Növényből például azokat, amik ehető és nekem tetsző terméseket hoznak. Konkrétan 2 növényt kedvelek, a koktélparadicsomot termő bokrot és a chili paprikát termő növényeket. Nyilván ez is egy first world problem - mint az összes másik projektem - de ha csak egy kicsit is okosabbá tudom tenni az otthonomat, akkor már az alkotás élményéért is megéri a belefektetett időt és energiát a projekt! 

A képen látható eszközt sikerült beszereznem Aliról - pontosabban egy ehhez nagyon hasonlót küldtek a kedves kínai emberek nekem kevesebb mint egy dollárért. Működési elve igen egyszerű, a villa alakú NYÁK-darabot bele kell szúrni a növény földjébe és a kicsi kis áramkörre rákötni a 2 kapott vezetékkel. Annyit tud a szerkezet, hogy a villa két vége között méri a közeg elektromos ellenállását. A panelon van még egy úgynevezett feszültség komparátor IC is, meg egy trimmer potméter. (Akinek ezek a fura szavak nem sokat mondanak, csupán egy állítható ellenállásról van só, meg egy olyan áramkörről, ami össze tudja hasonlítani, hogy a beállítottnál több, vagy kevesebb a villán mért ellenállás.) Azért van a panelon 4 láb, mert sorrendben balról jobbra:
- analog kimenet
- digitális kimenet
- föld - na nem virágföld :)
- tápfeszültség.

Szóval van lehetőségünk fokozatmentesen is megmérni a virágföld nedvességtartalmát és a potméterrel beállíthatunk egy "riasztási szintet" is, amit a digitális lábon tudunk ellenőrizni. Terveim szerint eredetileg az egészet egy Nano köré építettem volna, de arra jutottam, hogy kijelzőt nem akarok a virág tövébe rakni, szóval valami módon távolról szeretném ellenőrizni, hogy a növényem szomjazik-e. Ebből a célból vettem egy Bluetooth modult is, amit első terveim szerint a Nano-ra kötöttem volna és BLE segítségével kommunikáltam volna vele, ám arra jutottam, hogy a Nano-t annyira energiatakarékossá tenni, hogy elemről is sokáig működhessen nagyon nagy kihívás egyelőre, de találtam más megoldást!

Az AT-09 névre hallgató Bluetooth Low Energy modul kicsit többre is képes, mint csupán egy mikrokontrollerrel kommunikálni! Találtam egy nagyon kimerítő alapossággal megírt blogbejegyzést, amiből kiderül, hogy az alkatrész lelkét adó NYÁK a NYÁK-on szinte egy kis mikrokontrollernek is elmegy! Amiket tud és amik már nekem elegendőek: tud analóg és digitális ki és bemeneteket kezelni (szám szerint 12 darabot) és mindezt távolról, egyszerű parancsokkal! Szóval terveim szerint a dolog Arduino nélkül fog standalone működni, de a BT modul beállításához fogok még Ardut használni! A rendszer kliense egy egyszerű kis Android programocska lesz, nem tervezek bonyolult dolgot, nagy grafikát, csak a funkcionalitásra fogok majd fókuszálni! Reményeim szerint sokat el fog tudni menni egy Li-ion akksiról, vagy 3 ceruzaelemről.

Villanyóra Projekt

Igazából rögtön az elején tisztázzuk: csak legális okosításról lesz itt szó.

A minap jött szembe egy Ardu projekt, ami annyira megtetszett, hogy kedvet kaptam valami hasonló megépítéséhez én is. Arról van szó, hogy találtam egy olyan elektromos alkatrészt, amivel meg lehet mérni, hogy a vezetéken - amit meg sem kell bontani - mennyi áram folyik át a mérés pillanatában. Ezt úgy hívják, hogy áramváltó, angol nevének rövidítése CT. Itt van róla egy kimerítő magyar leírás: Link

Akit nagyon érdekel a téma, az végigolvashatja a teljes Wikipedia cikket, engem ilyen mélységben nem szórakoztat. Ami miatt elkezdtem gondolkodni a dolgon az az, hogy viszonylag könnyen tudok grafikont rajzolni abból, hogy a házban mikor mennyi "áram fogy" - ahogy laikusok mondják.

A képen az az eszköz látható, amit megrendeltem Aliról. Pontosabban amiből 3-at rendeltem, mivel a házban 3 fázis van bekötve, a villanyórám is háromfázisú. A használata viszonylag egyszerűnek tűnik: a jack-dugó 2 szélső érintkezője között helyezkedik el a tekercs. A kék műanyag bilincs-szerű dolgot rá kell csattintani 1-1 fázis vezetékre, majd a spéci áramkörünket rábírni, hogy terhelje meg a dugón jelentkező feszültséget. Ezt egy nem túl bonyolult kapcsolás segítségével be tudjuk majd kötni az Ardu analóg lábaira és már meg is vagyunk.

No persze ez addig igaz, amíg csak meg akarjuk mérni és mondjuk ki akarjuk írni valahova. Amint ezt folyamatosan jegyezni, netán összegezni is szeretnénk, már szükségünk lesz egy számítógépes hálózati kapcsolatra, de minimum egy SD kártyára. mivel én felügyelet nélkülire tervezem az eszközt, így az nem opció, hogy időről időre járkálok a villanyóraszekrényhez cserélgetni az SD kártyákat! Igen, ez az egész akkor nyert értelmet, ha az egész ház fogyasztását tudjuk követni, ennek pedig a leghatékonyabb helye a villanyóra után van. (Ettől nem fog se kevesebbet, se többet mérni az óra, kb annyi hatása lesz a lakás elektromos rendszerére, mint amikor egy orvos hozzáérinti a sztetoszkópot a beteg mellkasához.)

Szóval a nem túl bonyolult kapcsolás segíteni fog illeszteni a szenzort az Ardu analóg bemeneteire, majd jón a kalibrálás: össze kell hozni, hogy a gépünk úgy számolja át a megjelenő feszültséget  Amperré, hogy az megfeleljen a valóságnak. Innen már csak egy lépés, hogy kWh-t számoljunk belőle (egy akkora lépés, amit még egy ilyen limitált eszköz is képes megugrani, mint az Ardu). Ha számolgatjuk a felhasznált villamos teljesítményt, akkor jó lenne ezt valahova lementeni is, erre gy egyszerű kis weboldalt fogok majd létrehozni, az Ardura meg rádugok egy olcsó Wifi modult. Kb. ez a terv, aztán majd menet közben meglátjuk mi lesz belőle. A CT eszközök már úton vannak, szóval stay tuned!

süti beállítások módosítása