Systém včasné výstrahy před lokální povodní

| Kategorie: Diplomové, bakalářské práce  | Tento dokument chci!

Cílem této diplomové práce je návrh lokálního protipovodňového výstražného systému. Systém se skládá ze dvou základních typů jednotek. První jednotka je umístěna v terénu a pomocí čidel vyhodnocuje přítomnost vody v jinak suchém místě. V případě zatopení posílá varovnou zprávu pomocí bezdrátové technologie. Druhá jednotka varovné zprávy vyhodnocuje a informuje pověřenou osobu o vzniklé situaci pomocí sms zprávy. Venkovní zařízení je plně autonomní a trvale umístěné ve venkovním prostředí. Systémje navržen na bázi 8-bitových mikrokontrolérů. Mezi hlavní parametry zařízení patří nízká spotřeba, mechanická odolnost a spolehlivost.

Vydal: FEKT VUT Brno Autor: Luděk Svoboda

Strana 60 z 95

Vámi hledaný text obsahuje tato stránku dokumentu který není autorem určen k veřejnému šíření.

Jak získat tento dokument?






Poznámky redaktora
Baud Rate nastavena 9600. Funkce vypisuje zadaný znakový obsah USART linku.1.1. Sledováním počtu těchto znaků docíleno efektivního zadávání příkazů.6 Zadávání příkazů K zadávání příkazu pro GSM modul využito funkce printf() obsažené v knihovně stdio. zadání každého příkazu nutné čekat přijetí různého počtu znaků 0x0A, aby byl zadaný příkaz správně proveden. ISR(USART0_RX_vect) { unsigned char data; deklarace proměnné while !(UCSR0A (1<<RXC)) čekání dokončení příjmu data=UDR0; uložení přijatého znaku if(data==0x0A) sledovani prijmu znaku 0x0A { uk=uk+1; zvyseni poctu znaku 0x0A } return; } 51 . Kompletní nastavení je opět řešeno vlastní funkcí pro inicializaci.UBRR= f OSC 8∗BAUDRATE −1= 1000000 8∗9600 −1=12 (6) Formát USART komunikace varovné jednotky GSM nastavena jako asynchronní, bitů, 1stop bit. printf("ATZ0\n"); odeslání příkazu uk=0; vynulování počtu přijatých znaků 0x0A while(uk!=2); čekání přijetí dvou znaků Počítání přijatých znaků 0x0A sledováno přerušení přijímače. Zadání příkazu čekací smyčka uvedena následující ukázce kódu.h. Čekání realizováno smyčkou while(). 7. void USART0_Init( void) { UBRR0H (unsigned char)(myubrr>>8); UBRR0L (unsigned char)(myubrr); UCSR0A (1<<U2X); UCSR0B (1<<RXCIE)|(0<<TXCIE)|(0<<UDRIE)|(1<<RXEN)|(1<<TXEN); UCSR0C (0<<UMSEL1)|(0<<UMSEL0)|(0<<USBS)|(1<<UCSZ1)|(1<<UCSZ0); return; } Aby byla zajištěna minimální spotřeba během spánku, nutné USART linku inicializovat probuzení před uspáním zase vypnout