2024. április 19., péntek

Gyorskeresés

Napelemes kakukkos óra készítése

Írta: | Kulcsszavak: ESP32 . kakukkos óra . Arduino IDE

[ ÚJ BEJEGYZÉS ]

Szeretem a mindenféle zenélő, mozgó fali és álló órákat, szóval egy nap felkeltem, és azt mondtam magamnak, hogy kell egyet építenem.

Mivel a fával való munkához semennyire sem értek, és hát vercájg sincs hozzá, ezt próbáltam megúszni, így aprón nézelődtem rossz kakukkos órák után, de közben rájöttem, hogy alapvetően mindegyik orosz Majak típusú, és ez nem igazán megfelelő. Elkezdtem kínai barátainknál is nézelődni, hátha valamelyik madáretető megfelelő volna, rendeltem is egyet, de egyrészt kicsi volt, másrészt már előre össze volt ragasztva /rejtély, hogy jött meg postán/, így ha akartam volna sem tudtam volna bele építeni. Maradt a saját gyártás.

Ebay-ről rendelt házikó

Hobbi boltból rendeltem 8 mm vastag préselt falapot, és ebből vágtam ki a ház részeit. Itt annyit megjegyeznék, hogy Pesten egy boltban sem kaptam ilyen lemezt, így kénytelen voltam neten rendelni, de utólag láttam, hogy papírüzletben árulnak hasonló falapot, nyilván nem ilyen célra, de az ugye mellékes. Tervrajz volt, de már kidobtam, és amúgy sem egy nagy ördöngösség 6 falapot méretezni /mondjuk nekem pont nem is sikerült rendesen :D /, úgyhogy ezt nem tudom megmutatni. Mint mondtam, rendes szerszámaim nincsenek, így eléggé felemás lett a végeredmény, kedvem is lett volna akkor az egészet kidobni, főleg azután, hogy ragasztáskor nem igazán passzoltak a méretek. Ragasztás után kapott egy kis smirglit, a benyomódásokat pedig mestertapasszal javítottam.

Tapaszolás/csiszolás után/közben

A hátsó lemezt, amely kivehető, próbáltam apró neodímium mágnesekkel rögzíteni, de 4 is annyira gyenge volt, hogy nem tartott rendesen, de ez nem volt gond, mert a tető felragasztása után a lemez amúgy is beszorult a helyére. A kakukk ajtaját egy egyszerű mini ajtópánt tartotta. Ezután már csak az akrilfestékes festés maradt hátra, és kész is volt a ház.

Festés közben

Az elektronikával sokáig nem jutottam dűlőre. Végtelen mennyiségű kombináció van, ahogy meg lehet valósítani egy ilyen berendezést. Amit figyelembe kellett vennem:
- milyen akkumulátorok legyenek
- fix hardver vagy mikrovezérlő
- idő szinkronizálás hogyan legyen megoldva
- kell-e akku feszültség visszajelzés vagy naplózás
- kakukkot mi mozgassa
- óra modul saját maga járjon, vagy mi mozgassuk
- minek a hatására induljon a kakukk
- stb.

Az nyilvánvaló volt, hogy mindent az alacsony áramfogyasztásnak kell alávetnem, és mivel a lakás elég sötét /éljenek a pesti gangos társasházak/, ez hatványozottan fontos volt. Egyszerűen nem akartam, hogy hetente kelljen töltenem az órát, igazából az volt az elképzelés, hogy sosem kelljen, de kb. 3 havonta egy töltés még belefér.

Milyen lehetőségeink vannak akksi terén? Li-ion, LiFePO4, NiMH, Pb. A lítiumnak rendes töltés kell, ami amennyire én tudom, nem megoldható ilyen alacsony teljesítményű napelemekkel. Aztán lehet hogy tévedek, de inkább nem kockáztatok meg egy túltöltést. A legkisebb ólomakksi is elég nagy, így ez is kiesett. Maradt a 4 db. sorba kötött NiMH, amiből 4,4 V - 6 V között tudunk töltést kivenni. A házat már úgy terveztem, hogy pontosan ráférjenek a 6 V napelemek, mert úgy gondoltam, hogy 2 sorba kötve még árnyákban is több feszültséget ad, mint 5 V, így tölteni fog. Spoiler alert: a napelemeknek napfény kell a működéshez :D

A napelemek párhuzamosan vannak kötve az akkumulátorokkal egy schottky-diódán keresztül. Ez ugye kell a visszáram megakadályozásához, ill. nagyon hasznos a töltőáram méréséhez. A napelemek értelem szerűen a tető 2 oldalán vannak, és feltűnt, hogy nem igazán akarnak tölteni még napsütésben sem. Utána olvasva kiderült, hogy sorba kötött napelemeknél mindegyikre kell egy áthidaló diódát rakni, amely az árnyékban levő napelem helyett vezeti az áramot.

A fix hardver opciót nagyon gyorsan elvetettem, mert inkább szoftveres ember vagyok, mint a nyákmaratós típus. Nem igazán akartam valami egzotikus mikrovezérlővel szívni, így maradt két opció: Arduino akármi vagy ESP32. Arduinokban nevetségesen kevés flash és RAM van, így a hangfájlnak nem volna hely, ezért SD/MMC kártyáról kellene felolvasni, ill. rendes DAC /digitális-analóg átalakító/ sincs. Így maradt az ESP32, és mivel ez tud WiFi-t, megoldódott az idő szinkronizáció és a feszültség naplózás kérdése is.

A kakukk mozgatásához használhatnánk szervót, egyszerű motort vagy léptetőmotort. Rendeltem is egy szervót, de nagyon lassú és hangos volt, így az ötletet gyorsan kukáztam is. Volt otthon egy öreg nyomtatóból kiszuperált léptetőmotor, és a sima motorhoz amúgy is kellene valami érzékelő, hogy tudjuk, mikor ért ki a madár, ezért az előbbit használtam. Először wave drive-val /mi ez magyarul?/ terveztem meghajtani, de a nyomaték nem volt kielégítő, így módosítottam full-step meghajtásra. Az igazi egy áttételes motor lett volna, de 1:8 vagy hasonló áttételűt nem találtam, így ez maradt.

A léptetőmotor felfogatása és az ajtónyitó szerkezet

Az óra egy egyszerű filléres kínai modul volt. A ketyegős verziót választottam, mert mint kiderült, a folyamatosan járó, amely egyben halk is, jóval többet fogyaszt, ez meg beéri 150 uA-ral is. A táplálást először úgy oldottam meg, hogy a 4 akkumulátorból 1 ezt táplálta, de a modul nem annyira szereti az 1,3 V alatti feszültséget, így végül egy MCP1702-1502E stabilizátorral csináltam fix 1,5 V-ot.

Az óra mozgatása azért érdekes, mert össze kell szinkronizálni a kakukkot az óramutatókkal. Az egyszerű kínai óramodult elvileg meg lehet hajtani változó polaritású négyszögjellel, de ehhez a mikrovezérlőnek fel kellene ébrednie minden másodpercben, és ezt nem akartam. Azt találtam ki, hogy a fába rakok egy reed relét, a nagymutatóra pedig egy mágnest, és minden egész órakor a relé felkelti deep sleepből az ESP32-t. Ez egészen addig jó ötletnek tűnt, amíg nem törtem össze az üvegből készült relét. A pótmegoldás az lett, hogy két vékony drótot érint össze a mutató. Ez egész jól működött, de rájöttem, hogy az ESP32-nek van beépített RTC-je /real time clock - óramodul/, így azt kezdtem el használni. Hiába fogyaszt csak 5 uA-t az ESP32 deep sleepben, ha lapon levő stabilizátornak nagy a vesztesége, és egy hónap alatt leszívta az akkumulátort. Másik megoldás után kellett néznem, ez pedig egy külső RTC lett egy PCF8563 személyében, amely nagyon alacsony áramigényű. Az alap elgondolás az, hogy a mikrovezérlőt és a perifériákat egy FET-en keresztül az RTC kapcsolja. Az RTC-ben a ESP32 mindig beállítja mikor szeretne ébredni, kikapcsolja az ébresztést, ezzel elvágja maga alatt a delejt. Mikor az idő annyi, amennyi be van állítva, az RTC ébreszt, és az egész ismétlődik. Ezzel a konfiggal most 2,5 hónapja megy az óra.

Az ESP32-ből Adafruit HUZZAH32 Feather klónt választottam, mert ez natívan tudja mérni a tápfeszültséget. Gondolkodtam azon is, hogy lecserélem a lapon levő stabilizátort egy takarékosabbra, de a belső RTC nem volt valami pontos, így kézenfekvőbbnek tűnt egy külső RTC.

A mikrovezérlőnek van DAC lába, így ezt használtam a hang lejátszásához. Kerestem egy szimpatikus kakukkhangot, ezzel a konverterrel generáltam belőle tömböt. A hanglejátszás annyi, hogy végigmegyünk a tömbön, és mindig kiírjuk az adott értéket a DAC lábra. Ez egy feszültségosztón keresztül, amellyel a hangerősséget állítottam be, egy PAM8403 erősítőre van kötve, ez pedig egy 5 cm-es hangszórót hajt, amelyet darvinya fórumtárstól kaptam, és ezúton is köszönöm. Az erősítő modulon sajnos be van kötve a kikapcsolás és némítás láb, így minden alkalommal, mikor feszültség alá helyeztem a modult, pattanás hallatszott. Ezt úgy oldottam meg, hogy szikével kivágtam a két láb táplálását, és a mikrovezérlőre kötöttem, amely ébredés után rögtön némítja a modult.

Hát igen, nagyobb ház kellett volna...

A kiskakukkot letöltött modell alapján egy ismerősöm 3D nyomtatta.

Azt hiszem, ennyi elég is beszámolónak, a végeredményt itt lehet megcsodálni működés közben /még az RTC előtti verzió, de egyébként más nem változott/, a kód pedig itt található, hátha valaki talál benne bármi hasznosat.

[Frissítés - 2019-07-30]

Picivel több, mint 3 hónap után lemerült, aztán kiraktam az ablakba. Látható, hogy szép időben simán elmenne töltés nélkül, de sajnos ez nálunk nem opció.

Hozzászólások

(#1) UnA


UnA
Korrektor

Azt hittem, lesz benne inga is :)

(#2) Uzsito


Uzsito
csendes tag

Hát bmeg ez beteg :DD

Grat, jó project.

Melyik az a Huzzah klón?

-Aaaapaaa...már...itt van a karácsony?! -Igen, itt van. -Hol?!

(#3) weiss válasza Uzsito (#2) üzenetére


weiss
addikt

Ez volt az.

I did nothing, the pavement was his enemy!

(#4) weiss válasza Uzsito (#2) üzenetére


weiss
addikt

Most esett le, hogy valszeg nem erre gondoltál, hanem hogy mi az eredeti Adafruit. Az viszont az ESP32 Feather.

I did nothing, the pavement was his enemy!

(#5) Fred23


Fred23
nagyúr

Szuper lett! :C

(#6) domos


domos
senior tag

Nagyon tetszik, szép munka. :R

If you don't do it enough, nothing's gonna really happen.

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.