Az "MCU Control over Ethernet" program rövid bemutatása, PIC (és AVR) mikrovezérlők irányítása Android operációs rendszerrel rendelkező telefon segítségével.
Eredetileg egy "okos" termosztát elkészítésének gondolata fogalmazódott meg bennem, az alábbi funkciókkal:
1. külső/belső hőmérséklet mérése
2. az adatok SD kártyán való rögzítése
3. soros porton keresztüli kommunikáció: adatok áttöltése PC-re további feldolgozásra, pl.: grafikus megjelenítés, illetve a PC-n elkészített termosztátprogram letöltése a mikrokontrollerbe
4. GSM kapcsolat, távolról SMS-ben lekérdezhető hőmérséklet
5. természetesen LCD kijelző az adatok megjelenítéséhez, valamint egy külön (pl. Nokia) mátrix az aktuális hőmérséklet, idő, vagy egyéb kijelzésére, esetleg színesben...
Az élet azonban időnként keresztül húzza a dolgok menetét... A részletekkel nem kívánok senkit untatni, a lényeg, hogy néhány évre fiókba került a dolog. Mára viszont megérett arra, hogy - elsősorban anyagi okok miatt, de - valamilyen formában folytassam a munkát. Az idő szűke miatt egyelőre több dologról lemondtam, viszont az új élethelyzet, a mindennapok szülte igény lett, hogy távolról ki-, illetve be tudjam kapcsolni az otthoni fűtést. Első körben a már megszokott GSM alapú SMS-re gondoltam, de ahhoz kell(-ene) egy plusz előfizetés vagy kártya, ami ugyancsak kiadás... Ezért irányult a figyelmem az internetes vezérlés, és annak megvalósítása felé.
A most bemutatott program, illetve kapcsolás (ez utóbbi az interneten több helyen és formában is megtalálható, nem saját) a cél felé vezető úton tett kis kitérő, illetve tanulás eredménye.
1. külső/belső hőmérséklet mérése
2. az adatok SD kártyán való rögzítése
3. soros porton keresztüli kommunikáció: adatok áttöltése PC-re további feldolgozásra, pl.: grafikus megjelenítés, illetve a PC-n elkészített termosztátprogram letöltése a mikrokontrollerbe
4. GSM kapcsolat, távolról SMS-ben lekérdezhető hőmérséklet
5. természetesen LCD kijelző az adatok megjelenítéséhez, valamint egy külön (pl. Nokia) mátrix az aktuális hőmérséklet, idő, vagy egyéb kijelzésére, esetleg színesben...
Az élet azonban időnként keresztül húzza a dolgok menetét... A részletekkel nem kívánok senkit untatni, a lényeg, hogy néhány évre fiókba került a dolog. Mára viszont megérett arra, hogy - elsősorban anyagi okok miatt, de - valamilyen formában folytassam a munkát. Az idő szűke miatt egyelőre több dologról lemondtam, viszont az új élethelyzet, a mindennapok szülte igény lett, hogy távolról ki-, illetve be tudjam kapcsolni az otthoni fűtést. Első körben a már megszokott GSM alapú SMS-re gondoltam, de ahhoz kell(-ene) egy plusz előfizetés vagy kártya, ami ugyancsak kiadás... Ezért irányult a figyelmem az internetes vezérlés, és annak megvalósítása felé.
A most bemutatott program, illetve kapcsolás (ez utóbbi az interneten több helyen és formában is megtalálható, nem saját) a cél felé vezető úton tett kis kitérő, illetve tanulás eredménye.
Amint arról már említést tettem, az áramkör, mint deszkamodell
(laglábbis jelen kiépítettségében) nem saját ötleten alapul, többféle
vezérlőhöz is fellelhető az interneten hasonló "alapkapcsolás".
Mivel nekem idehaza PIC18F452 mikrokontrollerem volt elfekvőben, ezért esett a választásom erre a típusra. Elsőre bonyolultnak tűnhet a kapcsolás, de ez ne tévesszen meg senkit, ennél jóval kevesebb a forrasztanivaló. Az ENC28J60 a hozzá kapcsolódó kiegészítő elemekkel az alábbi formában nagyon olcsón, 6 € körüli összegért, több helyről (pl. eBay) is beszerezhető:
Fórumokban olvastam, hogy a PIC és az ENC28J60 közötti szintillesztést végző 74HCT08N minden probléma nélkül elhagyható, nekem is így működik. Természetesen, ha valaki úgy gondolja, a biztonság kedvéért beépítheti.
A beüzemeléshez szükséges a szokásos IP-cím, Alapértelmezett átjáró, DNS-kiszolgáló, és Alhálózati-maszk valamint a MAC-cím értékeinek beállítása. Kézenfekvő módon az EEPROM-ból olvassa be ezeket a program, így bármikor könnyen módosíthatóak az igényeknek megfelelően.
IP-cím: $00-$03
Alapértelmezett átjáró: $04-07
DNS-kiszolgáló: $08-$0B
Alhálózati-maszk: $0C-$0f
MAC-cím: $10-$15
Az áramkör működése, illetve a "kommunikációs protokoll" azon része, amely minket érint, nagyon egyszerű. Az Android oldalon beállításra került kontroller cím kiegészül a küldendő parancsnak megfelelő betűkombinációval, nevezetesen:
/s - a portok állapotának lekérdezése
/tX - ahol "X" a 0-7 értéket veheti fel, a beállítandó portnak megfelelően
A válasz mindkét esetben 16 karakter hosszúságban 0 és 1 számjegyek sorozata, a kiolvasott értékeknek megfelelően. Ez kerül feldolgozásra az Android oldalon.
A program a "B" és a "D" port állapotát jeleníti meg grafikus formában, valamint "D" port kimenetként definiált lábainak állapotát tudjuk változtatni külön-külön. Indítást követően lehetőségünk van a "PORT képernyő" valamint a "Névjegy" közül választani, utóbbira került az URL cím beállítási lehetősége.
A "PORT képernyő" kb. 6 másodperces, automatikus frissítéssel rendelkezik. Kísérletezéssel állítottam be, ezzel még 2G hálózaton és buszon utazva sem volt probléma a válaszidő miatt, legfeljebb ha már térerő sem volt. Természetesen WIFI-n és 3G-n a megfelelő sebességnek köszönhetően másodpercenként többször is ki-/bekapcsolható egy-egy port. A kimenet kapcsolása esetén az időzített frissítésen felül is elküldésre és kijelzésre kerülnek a port-értékek, tehát azok minden esetben a valós értéket mutatják.
A program futtatásához legalább Android 2.2.2 operációs rendszer szükséges, 320x480 felbontásra optimalizált, illetve a nevezett felbontású telefonon (Telenor OneTouch) lett kipróbálva.
Mivel nekem idehaza PIC18F452 mikrokontrollerem volt elfekvőben, ezért esett a választásom erre a típusra. Elsőre bonyolultnak tűnhet a kapcsolás, de ez ne tévesszen meg senkit, ennél jóval kevesebb a forrasztanivaló. Az ENC28J60 a hozzá kapcsolódó kiegészítő elemekkel az alábbi formában nagyon olcsón, 6 € körüli összegért, több helyről (pl. eBay) is beszerezhető:
Fórumokban olvastam, hogy a PIC és az ENC28J60 közötti szintillesztést végző 74HCT08N minden probléma nélkül elhagyható, nekem is így működik. Természetesen, ha valaki úgy gondolja, a biztonság kedvéért beépítheti.
A beüzemeléshez szükséges a szokásos IP-cím, Alapértelmezett átjáró, DNS-kiszolgáló, és Alhálózati-maszk valamint a MAC-cím értékeinek beállítása. Kézenfekvő módon az EEPROM-ból olvassa be ezeket a program, így bármikor könnyen módosíthatóak az igényeknek megfelelően.
IP-cím: $00-$03
Alapértelmezett átjáró: $04-07
DNS-kiszolgáló: $08-$0B
Alhálózati-maszk: $0C-$0f
MAC-cím: $10-$15
Az áramkör működése, illetve a "kommunikációs protokoll" azon része, amely minket érint, nagyon egyszerű. Az Android oldalon beállításra került kontroller cím kiegészül a küldendő parancsnak megfelelő betűkombinációval, nevezetesen:
/s - a portok állapotának lekérdezése
/tX - ahol "X" a 0-7 értéket veheti fel, a beállítandó portnak megfelelően
A válasz mindkét esetben 16 karakter hosszúságban 0 és 1 számjegyek sorozata, a kiolvasott értékeknek megfelelően. Ez kerül feldolgozásra az Android oldalon.
A program a "B" és a "D" port állapotát jeleníti meg grafikus formában, valamint "D" port kimenetként definiált lábainak állapotát tudjuk változtatni külön-külön. Indítást követően lehetőségünk van a "PORT képernyő" valamint a "Névjegy" közül választani, utóbbira került az URL cím beállítási lehetősége.
A "PORT képernyő" kb. 6 másodperces, automatikus frissítéssel rendelkezik. Kísérletezéssel állítottam be, ezzel még 2G hálózaton és buszon utazva sem volt probléma a válaszidő miatt, legfeljebb ha már térerő sem volt. Természetesen WIFI-n és 3G-n a megfelelő sebességnek köszönhetően másodpercenként többször is ki-/bekapcsolható egy-egy port. A kimenet kapcsolása esetén az időzített frissítésen felül is elküldésre és kijelzésre kerülnek a port-értékek, tehát azok minden esetben a valós értéket mutatják.
A program futtatásához legalább Android 2.2.2 operációs rendszer szükséges, 320x480 felbontásra optimalizált, illetve a nevezett felbontású telefonon (Telenor OneTouch) lett kipróbálva.
A programok a jelen állapotukban használható párost alkotnak, de
gondolatébresztőnek is szántam a cikket, a lehetőségeknek gyakorlatilag
csak a fantázia szab(-hat) határt.
PIC18F452 firmware: MCUControl_PIC18F452.hex
Android MCUControl v1.0: MCUControl.apk
Sok sikert kívánok a felhasználáshoz illetve kísérletezéshez!
PIC18F452 firmware: MCUControl_PIC18F452.hex
Android MCUControl v1.0: MCUControl.apk
Sok sikert kívánok a felhasználáshoz illetve kísérletezéshez!
Nincsenek megjegyzések:
Megjegyzés küldése