2015. szeptember 25., péntek

WiFi mindenhez #4 - Haletető

Egyesek kutyát tartanak, mások inkább a macskákat szeretik. Nekem akváriumi halaim vannak. Néha sajnos előfordul, hogy úgy megyek el reggel otthonról, hogy elfelejtem őket megetetni. Mi lehetne erre a megoldás?


Azért, hogy ne éhezzenek a halaim, vásároltam egy automata akváriumi haletetőt. Nem volt szükség semmiféle flancos tudásra és funkcióra. Egyedül arra ügyeltem, hogy a választott modell a lehető legegyszerűbb legyen elektronikai szempontból, mivel a használat előtt először mindenképp át akartam alakítani.

A terv az volt, hogy az etető eredeti áramkörét lecserélem egy saját fejlesztésűre, amely támogat WiFi csatlakozást. Tehát a megoldás végső soron egy olyan online haletető lett, amely egy weboldalon keresztül működésbe hozható távolról bármely olyan eszközről, amely internethez csatlakozik és fut rajta böngésző.

Belső

Eredeti áramkör

Nyomógomb az azonnali etetésre és egy kapcsoló a 12/24 órás periódus kiválasztásához

A saját áramkör fejlesztése egy PIC24FJ64GA002 típusú, 16-bites mikrovezérlőn alapult. Első lépésként az újonnan létrehozott projekthez hozzáadtam a használt WiFi modulhoz általam fejlesztett szoftveres (beágyazott) HTTP szerver függvénykönyvtárat, utána pedig megírtam a kezelőfelületként szolgáló HTML+JavaScript kódokat.

Mikrovezérlő

A nagyon olcsó WiFi modul :)

Az első tesztelések során bebizonyosodott, hogy a régi-új etető jól működik, ennek ellenére egy idő után a rendszer leáll. Ez abban nyilvánult meg, hogy innentől kezdve megszűnt a böngésző HTTP kéréseinek a kiszolgálása. A logikai analizátoros mérések megmutatták, hogy a probléma forrása az alkalmazott mikrovezérlő sebességéből adódik: A WiFi modul által küldött bájtok (soros busz) túlcsordulást idéznek elő a periféria vételi pufferében. Így hát a hibát a soros busz bitsebességének a csökkentésével javítottam ki, amely így 115200-ról 38400 bit/másodpercre változott.

Angol és magyar nyelvű főoldal

A létrehozott HTML oldal fő képessége az etető állapotának a folyamatos nyomonkövetése. Ez azt jelenti, hogy az aktuális állapot "valós időben" látható, ami az 500ms-os frissítési gyakoriságból következik, és a felhasználó csak abban az esetben kattinthat az Etetés gombra, ha az etető tétlen (Kész) állapotban van, tehát nincs etetés éppen folyamatban. Máskülönben a gomb le van tiltva. Másrészről az etetés befejezéséről is az állapotból kapunk visszajelzést. A Kijelentkezés oldal értelemszerűen kijelentkezésre szolgál, amely védelmet nyújt az esetleges troll barátok ellen :-)


Ha majd elkészül a haletető végleges változata, akkor a következő bejegyzésben bemutatom, hogy hogyan is működik a rendszer élesben.

1 megjegyzés:

  1. Le a kalappal, nagyon menő kis projekt!
    Én is ezt szeretném megvalósítani, csak pár helyen még egyszerűbben.

    Pl. A weboldal nekem nem kéne, sajna nem értek hozzá. Inkább VPN es RDP-s aktiválást használnék. Gondoltam rá, hogy veszek egy wifis táp kapcsolót és a haletető (most etess gombját) állandóra rakom. Már csak azt kéne beállítanom ha lehet ilyet a wifis kapcsolónál, hogy egy aktiválásra csak x másodpercig adja neki az áramot és utána szakítsa meg.

    Persze, ez nem annyira profi megoldás mint a tied de a célnak megfelelne nekem.

    Szerinted működhet? Tudnál tanácsot adni az ötletemhez?

    Köszönettel,
    Kovi

    VálaszTörlés