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