IX. TavIR programozói verseny: Rostás István (rostasc3): Beszélő óra + hőmérő + fénymondó

Beszélő óra-hőmérő-fénymérőA pályázatban megvalósításra került beszélő óra, hőmérő és fénymondó eredetileg testvéremnek készült, aki egyáltalán nem lát. Azért készült, mert a kereskedelemben nem nagyon lehet magyarul beszélő órát kapni. A hőmérő célja az volt - a rendes hőmérséklet mérésén kívül -, hogy a kazán vízhőmérsékletét is mérhesse és riaszthasson adott érték alatt illetve fölött. De ha már van egy beszélő áramköröm, akkor elmondhatná azt is, hogy mennyire van világos!

Az óra tíz hónapja működik 79 éves anyukám nagy örömére (ő kapta meg végül), aki szintén nem lát, és neki még nagyobb problémája volt az idegen nyelven beszélő óra.

A készülék funkciói tehát:

  • idő és dátum bemondása (a hét napját is bemondja),
  • hőmérséklet bemondása (a készülékben van hőmérő, de egy külső is csatlakoztatható hozzá - a hőmérséklethez egy minimum és maximum érték is beállítható, ami alatt v. fölött a készülék riaszt: ezt a funkciót kazánhőmérséklet ellenőrzésére terveztem),
  • fény érzékelése (öt fokozatban, a fotoellenállás egy kis ablak mögött helyezkedik el, így irányérzékeny).

Részleteiben a Beszélő óra + hőmérő + fénymondó

A készülék működése során két jellemző állapottal rendelkezik. Rendesen a három gomb egyikének lenyomására a készülék elmondja a pontos időt és a dátumot (piros), a piroshoz közelebbi kék gomb lenyomására elmondja a mért belső – és ha van csatlakoztatva külső hőmérő is, akkor a külső – hőmérsékletet is, a szélső kék gomb lenyomására pedig  tájékoztat a készülék előlapjának irányában észlelhető fény erősségéről, öt fokozatban (sötét van … nagyon világos van). A készülék bekapcsolás után igényel egy kis időt az ’éledésre’ (kb. 3 mp: a chipben benne hagytam a bootloadert a programozás miatt és az SD kártya kezelésére is kell idő), így a működéskész állapotát rövid hanggal jelzi. A doboz előlapján található kivágás mögött van a fénymérő (a képen a piros és kék nyomódomb között) és a jobb oldalán egy jack dugó a külső hőmérő csatlakoztatására.

A piros és a szélső kék gomb 5 másodpercig való együttes lenyomására a beállítási üzemmód lesz aktív, amit a készülék ki is mond. A beállítható értékek a piros gombbal léptethetők a következő sorrendben: óra, perc, év, hónap, nap, hét napja, hőmérséklet minimum illetve maximum. A kiválasztott beállítási lehetőség (pl. óra beállítás, perc beállítás, év beállítás, stb.) értéke a piros melletti kék gombbal csökkenthető, a pirostól távolabbi kék gombbal növelhető. Amikor valamelyik kék gombot rövid ideig nyomjuk, akkor csak egy rövid sípjelzés hallható, hogy gyorsabban állíthassunk be bármilyen értéket. Hosszabban lenyomva hangosan kimondja a beállított értéket, ami vagy szám, vagy a hónap vagy hét neve lehet. Az egyes kategóriák értékei minimum-maximum értékek közé vannak kényszerítve: pl. nem lehet -1. vagy 25. óra, és 32 nap egy hónapban. A hőmérséklet min-max értéke: 0-120, a többi értelem szerinti.

A készülék tápellátása négy ceruzaelemről történik, a fordított polaritástól diódával védem. A feszültséget egy 5V-os stabilizátorral korlátozom. Az áramfogyasztás csökkentése érdekében a végerősítő, az a/d átalakító, fénymérő és az óra tápfeszültségét kikapcsolom, amikor egyik gombot sem nyomják le, de a <3mA még így is sok, így az elemek élettartamának növelésére egy ki-be kapcsoló került beépítésre, amit ajánlatos használni is. Naponta többször használva így már 7 hónapja működik elemcsere nélkül. Ha a készülék bekapcsolva marad, de nem nyomják le egyik gombját sem, a fenti tápfeszültség lekapcsolás mellett a mega328 sleep üzemmódba kerül, amiből pár percenként magától felébred, ha hőmérsékletriasztás van beállítva, hogy megmérhesse a hőmérsékletet - és riasszon, ha kell. A chip nem használt lábait a sleep alatt olyan szintre állítom, hogy azzal is a lehető legkisebb fogyasztást érhessem el. Az óra IC kikapcsolt állapotban természetesen külön gombelemről megy. Elemcseréhez a hátlapot négy csavarral bontani kell.

A hangokat egy SD kártyán tárolom, ami most 2GB-s - nem találtam kisebbet. A hangokat sima kártyaolvasóban másoltam a kártyára, ezt is mellékeltem a pályázathoz. A nyugalmi áramfelvételhez az SD kártya kb. 1mA-val járul hozzá.

A program esetleges javítgatására, hardvermódosítást nem igénylő funkciók beépítése miatt a chip foglalatban van, amit kivéve és áthelyezve az AVR-Duino alappanelbe a programozás ott megoldható.  A programhoz felhasználtam a wavehc, a hőmérő és az sd kártyakezelő könyvtárak interneten talált mintaprogramjait.

Rostás István/rostasc3

Fájlmelléklet: 

TavIR-Facebook