520 likes | 641 Views
Řízení technologie pomocí SMS. Karel Nový. Obsah prezentace. Seznámení účastníků s různými verzemi zadání Návod k obsluze a ovládání zařízení Ukázka funkce zařízení Hardware Software Prameny. Původní verze zadání. Pomocí SMS sepnout spínací kontakt
E N D
Řízení technologie pomocí SMS Karel Nový
Obsah prezentace • Seznámení účastníků s různými verzemi zadání • Návod k obsluze a ovládání zařízení • Ukázka funkce zařízení • Hardware • Software • Prameny
Původní verze zadání • Pomocí SMS sepnout spínací kontakt • Pomocí SMS rozepnout již sepnutý kontakt • V aplikaci bude použit mobilní telefon Ericsson R520m • Propojení řídící jednotky a telefonu bude realizováno originálním datovým kabelem Ericsson • V řídící jednotce bude použit procesor Texas Instruments MSP 430
Finální verze řešení • Základní funkce jednotky • Po přijetí SMS s povelem „Zapni“ sepne relé a pošle zpětné potvrzení o provedené akci • Po přijetí SMS s povelem „Vypni“ rozepne relé a následně pošle zpětné potvrzení o provedené akci • Po přijetí SMS s povelem „Stav“ zjistí v jakém stavu je relé a následně odpoví, zda je sepnuto či rozepnuto • Pokud je na zařízení zasláno cokoliv jiného, tak je na tuto SMS odpovězeno návodem k ovládání zařízení
Finální verze řešení • Doplňkové funkce zařízení • Zabezpečení je zajištěno takzvanými „oprávněnými uživateli“, což jsou lidé, jejichž telefonní čísla jsou uložena na SIM kartě na pozicích 1 – 8 • Za číslo oprávněného uživatele se považuje takové číslo, které je v mezinárodním formátu užívaném například v Česku • S těmito lidmi zařízení komunikuje, pokusy o komunikaci od ostatních uživatelů ignoruje, avšak pro kontrolu jejich zprávy zobrazuje na displeji • Automatické dobíjení telefonu zajišťuje bezproblémový chod aplikace
Finální verze řešení • Reset systému • Dilema – má reset úplně resetovat systém nebo ne … ? • Vzhledem k tomu, že seznam povolených uživatelů je uložen v procesoru, tak se dá očekávat, že se „reset“ bude používat především pro nové načtení uživatelů ze SIM karty • Z tohoto důvodu „reset“ nenuluje stav bitu, který ovládá sepnutí kotle
Finální verze řešení • Současná verze komunikuje s telefonem Ericsson R520m, výhledově se připravuje verze spolupracující s telefonem Ericsson A2618 a A1018 • Jako jádro systému byl zvolen procesor Atmel 89C4051, protože disponuji kompletním vývojovým zázemím pro procesory této řady a dále mám s těmito procesory více než 8 leté zkušenosti
Finální verze řešení • Aplikace musí být odolná proti rušení. Ani tento motor jí neohrozí
Finální verze řešení • Design
Obsluha a ovládání • 1. Konektor pro připojení kotle. Kontakt je dimenzován zhruba na 50V a 1A. Limitujícím faktorem je zde použitý konektor a relé. • 2. Indikátor sepnutého kotle. Pokud je kotel ( relé ) sepnuto, tak svítí i tato dioda. • 3. Kontrolka zobrazující komunikaci s telefonem. Jestliže se po kabelu komunikuje s telefonem, tak tato dioda bliká v rytmu přenášených dat. • 4. Napájení. Pokud tato dioda svítí, tak napájecí zdroj je připojen. • 5. Napájecí konektor, napětí 12 V, proud alespoň 0,7 A, aby bylo zajištěno bezproblémové nabíjení. Přístroj je jištěn proti přepólování a přivedení střídavého napětí.
Obsluha a ovládání • 6. Konektor pro připojení mobilního telefonu. Pozor, tento kabel zajišťuje současně i dobíjení telefonu. Vzhledem k tomu, že se zde komunikuje s napěťovými úrovněmi TTL, tak v žádném případě nepřipojujte pomocí tohoto kabelu telefon k počítači na sériovou linku • Toto řešení bylo zvoleno ze tří důvodů • Originální kabel stojí cca 1000 Kč, moje řešení vyšlo na 140 Kč • Nutnost vyřešit napájení a dobíjení telefonu by vedla k zásahu do kabelu. • Převed TTL úrovně na RS 232 a nazpět, na TTL úrověň je velice neefektivní postup
Obsluha a ovládání • 7. Reset mikroprocesoru. Pokud budete například zadávat nového uživatele do SIM telefonu na patřičnou pozici, tak tímto způsobem donutíte procesor k opětovnému načtení nového seznamu uživatelů • Pokud je stisknuto tlačítko, tak svítí kontrolní oranžová dioda nad tlačítkem. • Tento reset nemění stav relé, které ovládá kotel • Při stisku tohoto tlačítka se zmrazí dění na displeji • Po uvolnění aplikace nabíhá znova
Obsluha a ovládání • 8. Displej se informacemi o tom, co se děje. • V horní části displeje se periodicky zobrazuje číslo, ze kterého přišla poslední SMS a datum s časem, kdy přišla • Ve spodní části displeje je zobrazeno prvních 16 znaků příchozí SMS • 9. Bypass – paralelně ke spínacímu relé je připojen tento spínač, který umožňuje testování, popřípadě je možné tímto spínačem vyřadit celý přístroj z možnosti ovlivňovat spínání
Praktická ukázka provozu • Následující ukázka má za cíl ve zkratce zobrazit, jak daná aplikace funguje a jak se chová vůči uživateli • Vzhledem k rozsahu aplikace jsem vybral pouze některé stěžejní body, ze kterých je na první pohled jasné, jak celé zařízení funguje • Fotografie byly pořízeny při testovacím provozu na nepájivém kontaktním poli
Praktická ukázka provozu • Úvodní hláška programu, zobrazuje název aplikace a jméno autora
Praktická ukázka provozu • Číslo verze a datum jejího vzniku
Praktická ukázka provozu • Program testuje periferie
Praktická ukázka provozu • Bylo zjištěno, že mobilní telefon není připojen, následně je na displeji zobrazena výzva, aby tak bylo učiněno
Praktická ukázka provozu • A nyní se zobrazuje seznam oprávněných uživatelů
Praktická ukázka provozu • Šipky, které simulují otáčení hlavou znamenají, že program se rozhlíží po příchozí SMS
Praktická ukázka provozu • Nyní se v horní řádce zobrazuje datum a čas, který je obsažen v příchozí SMS
Praktická ukázka provozu • A na mobilní telefon autora příkazu přišla potvrzující zpráva
Praktická ukázka provozu • Datum a čas, kdy dotaz přišel
Praktická ukázka provozu • Odpovědí je informace o tom, že kotel je zapnut
Praktická ukázka provozu • Nesmyslný příkaz
Praktická ukázka provozu • Návod k ovládání ….
Praktická ukázka provozu • Aplikace je stavěná tak, že je možno paralelně telefonovat a ovládat kotel pomocí SMS
Praktická ukázka provozu • Příchozí hovor na telefon na který byla zapojena aplikace
Praktická ukázka provozu • Zde je vidět, že ani uskutečněný hovor se nepodepsal na stabilitě programu
Napájení • Jako stabilizátor napájecího napětí jsem zvolil integrovaný obvod 7805 s patřičně dimenzovaným chladičem, aby byla zajištěná bezpečná funkce zařízení i při dobíjení zcela vybitého telefonu • Parametry IO • Výstupní proud 1A • Výstupní napětí 5V v toleranci vhodné pro TTL logiku
Zobrazovací jednotka • Byl použit LCD displej MC 1602E – TGR • Obsahuje standardní řadič HD 44780 od firmy Hitachi • Zobrazuje 16 x 2 znaky • Datová sběrnice může být 8 nebo 4 bitová • Napájení a komunikace po sběrnicích je kompatibilní s TTL napěťovými úrovněmi • Tento displej je vyroben technologií TN, lepší čitelnost zobrazených dat se dá dosáhnout s displeji na bázi STN, ty však nejsou momentálně dostupné
Zobrazovací jednotka • Význam jednotlivých vývodů z displeje • 1. GND, společná zem • 2. + 5V, napájecí napětí • 3. Kontrast displeje, napětí mezi 0 až 5 volty • 4. R/S - Registr Select, určuje, zda na datové sběrnici jsou data pro zobrazení na displeji nebo řídící instrukce • 5. R/W - Read/Write, zápis nebo čtení z displeje • 6. E – Enable, povolení přenosu dat mezi displejem a okolím • 7. – 14. – Datová sběrnice, komunikace s displejem může probíhat buď 8 bitově nebo 4 bitově. Výhoda 4 bitového připojení je úspora vodičů popřípadě portů procesoru.
Zobrazovací jednotka • Displej
Srdce řídící jednotky • Mikrokontrolér Atmel 89C4051 • Harwardská architektura • 8 bitová instrukční sada • Oddělená paměť programu a paměť pro data • 4 kB FLASH ROM • 128 B RAM • Taktovací kmitočet až 24 MHz, já používám 11,0592 MHz • Snadné programování • Integrované sériové rozhraní • Dobrá dostupnost, přijatelná cena
Srdce řídící jednotky • Programátor procesorů Atmel, připojuje se na sériové rozhraní
Ericsson R520m • Li-Pol baterie • HSCSD a GPRS • Bluetooth • HW modem • Výborně zpracovaný manuál pro vývojáře aplikací na webu Ericssonu
Konektor Ericssonu R520m • pin1: Audio vstup • pin2: Audio výstup • pin3: CTS • pin4: Vstup dat • pin5: Výstup dat • pin6: Příslušenství • pin7:Příslušenství • pin8:Audio GND • pin9:Servis • pin10:Digitální GND • pin11:Napájenítelefonui přísl. !
Ericsson R520m • Parametry komunikace • rychlost přenosu: 9600 bit/sec • počet bitů (DATA): 8 • počet STOP bitů:1 • parita: N
Software • Vzhledem k tomu, že procesor disponuje pouze 4 kB FLASH ROM a pouho pouhými 128 B RAM, tak jsem se rozhodl tuto aplikaci naprogramovat v jazyce symbolických adres ( nesprávně asembler ) • Protože zdrojové texty mají přes 2000 řádek, tak jsem se rozhodl publikovat jen ty nejzajímavější pasáže
Software • Úspora místa v procesoru • Mobilní telefon posílá číselné hodnoty hexadecimální soustavy jako znaky …. Neefektivní • Pokud provedu převod na hexadecimální soustavu, tak ušetřím polovinu místa v paměti
Komprimace dat • Princip spočívá v tom, že od hex. hodnoty znaků „1“ až „9“ odečteme určitou hodnotu, čímž získáme jejich vyjádření v hex. Soustavě • Od znaků „A“ až „F“ musíme odečítat jinou hodnotu … • Následně se provádí rotace a podobně …
Komunikace s telefonem • S telefonem se komunikuje pomocí AT příkazů, což znamená, že se telefonu pošle po sériové lince určitá sekvence znaků, která se nazývá AT příkaz • Například na sekvenci znaků AT telefon odpoví OK, což znamená, že je v pořádku
SMS Submit • Odesílání SMS
SMS deliver • Pokud mobilní telefon vhodně naprogramujeme, tak příchozí SMS se automaticky objeví na jeho sériovém výstupu • AT+CNMI=3,3,0,0 • A následně ji můžeme zpracovávat
Dekódování PDU • Klasická SMS používá přenos 7 bitů, takže 8 bit se automaticky považuje za nulový • Výhodou je možnost odeslat 160 znaků místo 140 • Nevýhodou je nemožnost používat znaky v horní polovině ASCI tabulky • SMS s diakritikou používá kódování jednoho znaku do 2 oktetů • Délka takovéto SMS je pouze 70 znaků • Mobilní telefony Sagem tyto SMS neumí dekódovat …