- Zasilanie 5 V DC/0,2 A.
- Pomiar temperatury z użyciem 2 czujników DS18B20.
- Zakres pomiarowy -55…+125°C.
- Połączenie za pomocą Bluetooth.
- Sygnalizacja stanu za pomocą diod LED.
- Moduł Bluetooth BTM-222, mikrokontroler ATmega8.
Dzięki zastosowaniu czujnika DS18B20 mającego rozdzielczość pomiarową 12 bitów można mierzyć temperaturę z zakresu od -55°C do +125°C z rozdzielczością 0,1°C. Urządzenie nie wymaga dodatkowych odbiorników radiowych i wymaga jedynie programu służącego do odczytu parametrów zainstalowanego na komputerze z odbiornikiem Bluetooth, który obecnie jest montowany w każdym laptopie.
Budowa
Sercem układu jest mikrokontroler ATmega8 pracujący z zewnętrznym rezonatorem kwarcowym o częstotliwości 7,3728 MHz. Częstotliwość taktowania mikrokontrolera dobrano tak, aby otrzymać jak najmniejszy błąd prędkości transmisji asynchronicznego interfejsu UART. Rezystor R1 o rezystancji 10 kΩ podciąga wyprowadzenie Reset do napięcia zasilającego.
Do pomiaru temperatury zastosowano cyfrowe czujniki DS18B20 o dużej rozdzielczości i dokładności pomiaru. Dołączono je do niezależnych wyprowadzeń mikrokontrolera, ponieważ zwiększa to szybkość wykonywania pomiaru i zapewnia bezproblemową wymianę danego czujnika bez potrzeby rozpoznawania i zapamiętywania adresu nowego czujnika.
Jako moduł komunikacyjny Bluetooth użyto BTM-222 firmy Rayson pracujący w klasie 1, co zapewnia zasięg do 100 m. Do uzyskania takiego zasięgu jest wymagana antena zewnętrzna. W projekcie zastosowano antenę BLU-ANT01R o impedancji 50 Ω, pracującą w zakresie częstotliwości 2,4…2,5 GHz z zyskiem energetycznym 1 dBi. Antenę dołączono do pozłacanego gniazdka SMA umieszczonego na płytce PCB w jak najmniejszej odległości od modułu Bluetooth.
Komunikacja z modułem odbywa się za pomocą UART. Moduł jest zasilany napięciem 3,3 V, natomiast mikrokontroler 5 V, dlatego zastosowano konwerter poziomów logicznych zbudowany z użyciem bramki zawartej w układzie 74HC14 oraz dzielnika rezystancyjnego R4, R5. Wejścia niewykorzystanych bramek dołączono do masy.
Program sterujący mikrokontrolerem napisano w środowisku Bascom AVR. W pętli głównej jest wywoływana procedura pomiaru oraz jest wysłana ramka zawierająca zmierzone dane do modułu Bluetooth. Ramka może mieć następującą postać:
„1:0:23:9:1:0:24:0:a”.
Dane są oddzielone dwukropkami. Cztery pierwsze liczby dotyczą kanału pierwszego, a cztery kolejne kanału drugiego. Na końcu jest przesyłany znak „a” oznaczający koniec ramki. Pierwszy bit oznacza, że temperatura została zmierzona poprawnie, drugi określa jaki jest jej znak („0” to temperatura dodatnia, a „1” temperatura ujemna). Kolejne liczby reprezentują ułamkową cześć temperatury w postaci liczby całkowitej. W podanym przykładzie jest przysłany wynik 23,9°C (kanał 1) oraz 24,0°C (kanał 2).
Oprogramowanie
Opisywane urządzenie jest jedynie przystawką do komputera, laptopa lub telefonu komórkowego. Aby w pełni wykorzystać drzemiące w niej możliwości, konieczny jest program komputerowy lub aplikacja dla smartfonu. Dla przykładu wykonałem aplikację dla komputera PC za pomocą C# .NET Framework. Do jej uruchomienia jest wymagane zainstalowanie środowiska Microsoft .NET Framework w wersji 4.0 lub nowszej.
Po odczytaniu całej linii (do znaku przejścia do nowej linii) program rozdziela zmienne na trzy osobne łańcuchy znaków, po czym sprawdza zawartość zmiennych bitowych i na ich podstawie formatuje i wyświetla wyniki pomiarów. Program przy uruchomieniu pobiera wszystkie dostępne nazwy portów szeregowych i ładuje je do listy rozwijanej. Termometr należy włączyć przed uruchomieniem programu, ponieważ inaczej nie zostanie on wyświetlony na liście urządzeń. Jeśli termometru nie ma na liście, to można użyć przycisku „Odśwież”. Po kliknięciu w ten przycisk zostaną pobrane aktualne nazwy portów, w tym również wirtualnych, dodawanych przez sterownik Bluetooth. Dodatkowo ikona ta służy do zamykania otwartego portu i może być wykorzystana, gdy użytkownik chce zmienić nazwę portu w trakcie działania programu.