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
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 .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. 7.1. Čekání realizováno smyčkou while(). 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í každého příkazu nutné čekat přijetí různého počtu znaků 0x0A, aby byl zadaný příkaz správně proveden. Kompletní nastavení je opět řešeno vlastní funkcí pro inicializaci. Funkce vypisuje zadaný znakový obsah USART linku. Sledováním počtu těchto znaků docíleno efektivního zadávání příkazů.1.6 Zadávání příkazů K zadávání příkazu pro GSM modul využito funkce printf() obsažené v knihovně stdio.h. Baud Rate nastavena 9600. Zadání příkazu čekací smyčka uvedena následující ukázce kódu. 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