Você está na página 1de 4

Bezprzewodowy rejestrator P temperatury ROJEKTY

Bezprzewodowy rejestrator temperatury


AVT-542
W artykule autor prezentuje bezprzewodowy system odczytu temperatury mierzonej przez czujnik. Jest to prosty i atwy do wykonania ukad zrealizowany w celu zademonstrowania, e cay wiat nie koczy si na 51 i Bascomie. Rekomendacje: niezalenie od motywacji autora urzdzenie spenia swoj rol i moe by polecone wszystkim borykajcym si z problemem pomiaru temperatury w warunkach, w ktrych realizacja odczytu przewodowego jest niewygodna lub niemoliwa.

Urzdzenie opisane w artykule powstao z dwch powodw: pierwszym bya potrzeba bezprzewodowego pomiaru temperatury kolejno w kilku miejscach obiektu. Drug, determinujc sam wybr mikrokontrolera i tworzenie jego firmwareu, by wstpniak sierpniowego numeru EP (z roku 2003), w ktrym wypowiedziano opini cakowicie zgodn ze zdaniem autora tego projektu, na temat sytuacji szeroko pojtej elektroniki w Polsce. Postawiono za cel udowodnienie, e bez Bascoma i bez 8051 mona szybko i efektywnie stworzy ukad oparty na mikrokontrolerze i wykorzystujcy peryferia, ktre tak atwo jest oprogramowa w Bascomie. Bezprzewodowy termometr skada si z nadajnika (schemat elektryczny pokazano na rys. 1 ) z czujnikiem temperatury DS18B20 oraz odbiornika (schemat elektryczny pokazano na rys. 2) z interfejsem RS232 oraz moliwoci podczenia wywietlacza alfanumerycznego (HD44780). Nadajnik komunikuje si z odbiornikiem za porednictwem hybrydowych

moduw radiowych Telecontrolli o czstotliwoci nonej 433 MHz. Odwieenie pomiaru temperatury nastpuje w konfigurowalnych w pewnych granicach odstpach czasu. W ukadzie modelowym wynosi on ok. 10 s. Aby zapewni pen mobilno ukadu nadajnika zasilany jest on z baterii. Uyto litowej baterii 3,6 V stosowanej do podtrzymania zegara BIOS-u komputera.

Nadajnik

Opis ukadu

Schemat elektryczny nadajnika pokazano na rys. 1. Najwaniejszym elementem jest mikrokontroler PIC16F84A (uyto przemysowej wersji ukadu ze wzgldu na szeroki zakres pomiarowy ukadu DS18B20) taktowany kwarcem 4 MHz. Do wyprowadzenia 0 portu A mikrokontrolera podczono ukad DS18B20 z rezystorem podcigajcym lini danych do plusa zasilania. Producent czujnika zaleca stosowanie rezystora o wartoci 4,7 kV jednak w celu obnienia konsumpcji energii przez ukad nadajnika zastosowaem rezystor 10 kV. Przeprowadzone testy nie wykazay adnych problemw w zwizku z t modyfikacj. Do wypro-

Elektronika Praktyczna 12/2004

35

Bezprzewodowy rejestrator temperatury


Odbiornik

Rys. 1. Schemat elektryczny nadajnika

wadzenia 0 portu B doczono hybrydowy nadajnik RT4. Wybr tego ukadu zosta wymuszony do niskim napiciem zasilania caego ukadu, a jak wynika z noty katalogowej, RT4 moe pracowa w zakresie napi od 2 do 14 V. Jedynym mankamentem RT4 jest konieczno stosowania zewntrznej anteny. Jako, e z zaoenia ukad nadajnika mia mie mae gabaryty zdecydowano na wykonanie go wycznie z elementw SMD, co spowodowao konieczno programowania mikrokontrolera w systemie. PIC16F84A wspiera t metod programowania, nazwan przez Microchipa In Circuit Serial Programming. Z programowaniem ICSP powizany jest do nietypowy obwd zerowania. Konieczne byo zastosowanie diody D2 separujcej linie MCLR od reszty ukadu w momencie programowa-

nia. Dioda D1 suy do oddzielenia obwodu zasilania mikrokontrolera w przypadku, gdy podczas programowania napicie zasilajce pobierane jest z programatora. Ma to znaczenie wwczas gdy stosujemy programatory zasilane bezporednio z portw komputera (np. JDM), ktrych wydajno prdowa jest niewystarczajca do zasilenia caego ukadu. W praktyce najpewniejszym rozwizaniem, dajcym 100% poprawno programowania okazao si stosowanie zewntrznego zasilania caego ukadu. Na pytce drukowanej nadajnika znajduj si pola lutownicze suce do programowania w systemie. Dioda LED w nadajniku sygnalizuje rozpoczcie kolejnej transmisji danych. Anten, tak nadajnika, jak i odbiornika stanowi odcinek przewodu miedzianego o dugoci okoo 17 cm.

Schemat elektryczny odbiornika przedstawiono na rys. 2. Podobnie jak w przypadku nadajnika, odbiornikiem steruje PIC16F84A, tym razem w obudowie DIL. Za konwersj poziomw logicznych przy transmisji szeregowej pomidzy odbiornikiem a komputerem odpowiada MAX232, a za odbir danych z nadajnika modu RR3. Zcze suy do podczenia opcjonalnego wywietlacza LCD (HD44780), a potencjometr montaowy PR1 umoliwia regulacj jego kontrastu. Dioda LED sygnalizuje poprawny odbir ramki danych. Cao zmontowana jest na jednostronnej pytce drukowanej, z montaem przewlekanym. Podobnie jak w nadajniku, mikrokontroler jest taktowany z czstotliwoci 4 MHz. Ukad zasilany jest z zewntrznego zasilacza 5 V. Moliwe jest stosowanie napi zasilajcych w przedziale od 3 do 5 V, jednak gdy jest uywany wywietlacz LCD, napicie zasilania powinno wynosi 5 V. W modelowym urzdzeniu napicie to musiao by wysze ni 4 V ze wzgldu na stae podwietlenie uytego wywietlacza.

Program(y)

Algorytm dziaania tak nadajnika, jak i odbiornika jest nastpujcy. Po wczeniu zasilania mikrokontroler znajduje si w trybie sleep (ze wzgldu na may pobr prdu, wynoszcy w tym trybie okoo 7 mA), z ktrego cyklicznie wychodzi co zadany (za pomoc timera-watchdoga) czas, po czym przesya do ukadu

Rys. 2. Schemat elektryczny odbiornika

36

Elektronika Praktyczna 12/2004

Bezprzewodowy rejestrator temperatury


mitowana sekwencja startowa, informujca kontroler aby rozpocz odczyt danych z odbiornika. Sekwencj t jest stan wysoki trwajcy przez okres dwch bitw. Informacja ta jest dla kontrolera jednoznaczna, ze wzgldu na kod Manchester, w ktrym taka sytuacja nigdy nie wystpi i jest interpretowana jako nadchodzca nowa ramka danych. Odbiornik czeka w ptli na t sekwencj i po jej zakoczeniu rozpoczyna odbir pierwszego bajtu ramki, ktrym jest ustalona wczeniej i nigdy nie zmieniana warto (w modelu byo to 73). Jeli odbiornik stwierdzi e warto ta jest inna, to caa ramka zostaje odrzucona. Kolejne miejsce w ramce zajmuj kolejno mniej i bardziej znaczcy bajt wartoci temperatury, a po nich znajduje si jednobajtowa suma kontrolna. Odbiornik po odebraniu ramki oblicza sum kontroln z jej trzech pierwszych bajtw i porwnuje j z czwartym bajtem ramki, czyli z odebran CRC. Jeli obie wartoci s identyczne, caa ramka (oprcz preambuy i sekwencji startowej) zostaje przetransmitowana do portu szeregowego. Na koniec cyklu warto temperatury zostaje obliczona w kontrolerze (z dokadnoci do jednoci) i wysana do wywietlacza LCD.
WYKAZ ELEMENTW Nadajnik Rezystory R1,R2: 10 kV R3: 330 V Kondensatory C1: 100 nF C2, C3: 15 pF C4: 4,7 mF/6 V Pprzewodniki D1, D2: 1N 4448 LED1: LED SMD0805 IC1: PIC16F84A/SO (zaprogramowany) IC2: DS18B20 IC3: RT4 Telecontrolli Rne JP1: Goldpin 4x1 X1: rezonator kwarcowy 4 MHz Odbiornik Rezystory R1: 10 kV R2: 330 V PR1: 4,7 kV Kondensatory C1: 4,7 mF/6 V C2...C5: 10 mF/16 V C6,C7: 15 pF C8...C11: 100 nF Pprzewodniki LED1: LED 3 mm IC1: MAX232 IC2: PIC16F84 (zaprogramowany) IC3: RR3 Telecontrolli Rne JP1: Goldpin 2x1 JP2: Goldpin 8x2 X1: Rezonator kwarcowy 4 MHz

Rys. 3. Budowa ramki danych

DS18B20 komend ustalenia rozdzielczoci przetwornika na 11 bitw (domylnie jest to 12 bitw, jednak dla zminimalizowania poboru energii przez ukad zdecydowano si na rozdzielczo 11-bitow, co skrcio czas konwersji o poow tzn. do 375 ms) oraz rozpoczcia konwersji (44h) temperatury na posta cyfrow. Jest to moliwe jedynie w ustalonej sekwencji zdefiniowanej dla magistral 1-wire (inicjalizacji, komenda ROM-u, komenda operacji). Po wydaniu komendy konwersji mikrokontroler przechodzi znw w tryb sleep na okoo 0,8 s (czas potrzebny na przeprowadzenie przez DS18B20 konwersji temperatury na sowo 12bitowe). Po przebudzeniu wysyana jest komenda odczytu zawartoci rejestrw DS18B20 (BEh). Odczytuje si jedynie dwa pierwsze bajty, zawierajce informacje o temperaturze. Nastpnie formowana jest ramka danych wysyana do odbiornika. Struktur ramki przedstawiono na rys. 3. Transmisja realizowana jest z uyciem kodowania Manchester, co oznacza w praktyce, e logiczna jedynka transmitowana jest jako sekwencja 10, natomiast logiczne zero jako 01 (kod (2n,n). Preambua skada si z czterech bajtw o wartoci FFh. Bezporednio po niej jest trans-

Aplikacja

Program zbierajcy wyniki przesyane z odbiornika do komputera zosta napisany w LabVIEW 5.1. Pomimo tego, i aktualna wersja LabVIEW nosi numer 7.1, to na potrzeby rejestratora wersja 5.1 jest w

Rys. 4. Kod aplikacji przygotowanej za pomoc programu LabView

Elektronika Praktyczna 12/2004

37

Bezprzewodowy rejestrator temperatury


nelu czoowym liczb cykli. Program naley uruchamia w cyklu jednokrotnym (strzaka w prawo). Do przerwania dziaania programu w dowolnym momencie suy czerwony przycisk po prawej stronie strzaki. Po zakoczeniu komponent Serial Port Close.vi zamyka port szeregowy komputera. Widoczne komponenty timera su do obliczania czasu trwania kolejnej iteracji, a wic odstpu od poprzedniego pomiaru.

Rys. 5. Wygld panelu czoowego aplikacji

zupenoci wystarczajca. Kod programu przedstawiono na rys. 4. Po inicjalizacji portu szeregowego (ikona Serial Port Init.vi) i wybraniu pliku do ktrego bd zapisywane dane z rejestratora, program wchodzi w ptl gwn, w ktrej komponent Serial Port Read.vi oczekuje na cztery bajty danych. Po odebraniu ramki komponent Read formuje wyjciowy strumie stringw, ktry nastpnie konwertowany jest to postaci tablicy bajtw. Tablica ta zostaje nastpnie dwukrotnie zaadresowana w celu wyuskania dwch rodkowych bajtw nioscych informacje o temperaturze. Nastpnie te bajty zostaj poczone w jedn 16 bitow zmienn. Najstarszy bit testowany jest na obecno jedynki w celu zidentyfikowania znaku tempe-

ratury. Identyfikacja ta decyduje, ktry z wariantw struktury case zostanie zastosowany do zdekodowania wartoci temperatury. Na rys. 4 jest widoczny przypadek, kiedy mamy do czynienia z liczb ujemn (warto temperatury zapisana jest w kodzie U2), liczba ta zostaje zanegowana, a nastpnie zwikszona o jeden. Poniewa odczytujemy warto temperatury z dokadnoci do 4 cyfr po przecinku, uzyskana warto zostaje podzielona przez 16 (dziesitnie), a nastpnie odjta od zera. Tak zdekodowana liczba zostaje wysana na panel uytkownika (rys. 5) jako wskanik o nazwie Temp (z precyzj dwch miejsc po przecinku). W tym samym czasie warto temperatury zostaje dopisana do wybranego wczeniej pliku. Caa ptla powtarza si zadan na pa-

Uwagi kocowe

Ukad by testowany w caym dopuszczalnym dla DS18B20 zakresie temperatur. Pracowa stabilnie zarwno przy temperaturze 20 oC, jak i +125 oC (w tej temperaturze umieszczony by jedynie czujnik). Naley jednak pamita, e bd pomiarowy DS18B20 w takim zakresie temperatur wynosi 2 oC, a zapewniana przez producenta dokadno 0,5 oC obowizuje jedynie w przedziale od 10 do +85 oC. Nadajnik pracuje poprawnie z napiciem zasilania od 3 do 5 V. Marcin Chruciel chrusciel2@wp.pl

38

Elektronika Praktyczna 12/2004

Você também pode gostar