Termometr 2-kanałowy z interfejsem Bluetooth

Termometr 2-kanałowy z interfejsem Bluetooth
Pobierz PDF Download icon
Opisywany projekt jest dwukanałowym, precyzyjnym termometrem przesyłającym wynik pomiaru za pomocą Bluetooth. Dzięki temu może być umieszczony w dowolnym urządzeniu lub w pomieszczeniu, a temperatura może być odczytywana za pomocą komputera, smartfonu lub tabletu. Rekomendacje: termometr przyda się w systemie automatyki domowej.

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.

Rysunek 1. Schemat ideowy termometru z interfejsem Bluetooth

Rysunek 2. Wykres ilustrujący błąd czujnika DS18B20 w funkcji temperatury

Budowa

Schemat ideowy termometru pokazano na rysunku 1. 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 (na rysunku 2 zamieszczono charakterystykę przedstawiającą dokładność czujników). 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.

Fotografia 3. Antena BLU-ANT01R zastosowana w urządzeniu

Rysunek 4. Okno główne aplikacji

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 (fotografia 3) 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.

Rysunek 5. Schemat montażowy termometru z interfejsem Bluetooth

Rysunek 6. Okno umożliwiające wybór urządzenia

Program sterujący mikrokontrolerem napisano w środowisku Bascom AVR. W pętli głównej jest wywoływana procedura pomiaru (listing 1) 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).

Wykaz elementów

Rezystory: (SMD 1206)
R1: 10 kΩ
R2, R3: 4,7 kΩ
R4: 3,3 kΩ
R5: 6,8 kΩ
R6, R7, R8: 150 Ω

Kondensatory: (SMD 1206)
C1, C6, C7, C8, C10: 100 nF
C2, C9: 10 µF/16 V (elektrolit.)
C3, C4: 33 pF
C5: 100 µF/16 V (elektrolit.)

Półprzewodniki:
D1: dioda LED zielona
D2: dioda LED żółta
D3: dioda LED czerwona
U1: ATmega8 (TQFP32)
U2, U3: DS18B20
U4: 74HC14
U5: LM1117
U6: BTM222

Inne:
X1: kwarc 7,3728 MHz
X2: złącze SMA + antena 2,4 GHz
Z1, Z2: listwa goldpinów
CON1: złącze śrubowe ARK500/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.

Fragment programu reprezentujący obsługę zdarzenia odbioru znaków przez port szeregowy przedstawiono na listingu 2. Okno aplikacji pokazano na rysunku 4. 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.

Listing 1. Procedura pomiaru

Listing 2. Fragment programu reprezentujący obsługę zdarzenia odbioru znaków przez port szeregowy

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.

Montaż i uruchomienie

Tabela 1. Ustawienie fusebitów

W projekcie wykorzystano mikrokontroler ATmega8 w obudowie TQFP32, układ 74HC14 w obudowie SO14 oraz moduł BTM222. Istnieje kilka technik montażu powierzchniowego układów w obudowach TQFP czy SO. Jedną z nich jest użycie stacji na gorące powietrze oraz odpowiedniego topnika. Montaż można wykonać również zwykłą stacją lutowniczą wyposażoną w specjalny grot minifala lub zwykły grot szpilkowy, stosując cynę o niewielkiej średnicy.

Na rysunku 5 pokazano schemat montażowy płytki termometru. Przy montażu należy zwrócić uwagę, aby nie zrobić zwarcia między wyprowadzeniami oraz nie uszkodzić termicznie układów. Po wlutowaniu mikrokontrolera, układu 74HC14 i modułu BTM222, należy wlutować pozostałe elementy SMD, aż po zworki i elementy do montażu przewlekanego, od najmniejszych po największych.

Wszystkie potrzebne sygnały do programowania mikrokontrolera zostały wyprowadzone na złączu szpilkowym Z1, dzięki czemu nie trzeba programować mikrokontroler w dedykowanej podstawce przed wlutowaniem, a można tego dokonać po zmontowaniu układu. Bity konfiguracyjne mikrokontrolera należy ustawić zgodnie z tabelą 1 (fuse high byte: 0xD9, fuse low byte: 0xFD).

Na płytce zamontowano trzy diody świecące. Świecenie zielonej reprezentuje pracę układu (zasilanie), żółtej stan połączenia, a czerwona sygnalizuje, że moduł odbiera dane. Po wlutowaniu wszystkich elementów i zaprogramowaniu mikrokontrolera układ jest gotowy do użycia.

Przed włączeniem programu, należy ustawić wirtualny kanał szeregowy COM do którego będzie podłączony moduł Bluetooth. W tym celu należy kliknąć na ikonę modułu Bluetooth prawym przyciskiem myszy i wybrać Dodaj urządzenie.

Po ukazaniu się okna, jak na rysunku 6 należy wskazać znalezione urządzenie i kliknąć Dalej. W kolejnym oknie należy wybrać opcję Wprowadź kod parowania urządzenia (rysunek 7). Następnie, należy wpisać kod "1234" i zakończyć proces parowania.

Rysunek 7. Wprowadzenie kodu parowania

Rysunek 8. Informacja o numerze portu COM

W tym momencie zostanie wyświetlone okno informujące, do którego portu zostało przyłączone wybrane urządzenie (rysunek 8). Należy zapamiętać pierwszą nazwę (w omawianym przypadku COM5). Po zakończeniu procesu parowania należy włączyć program wyświetlający temperaturę.

W pierwszym kroku należy z listy wyboru wybrać wcześniej otrzymaną nazwę portu (w omawianym przykładzie COM5) i wcisnąć Otwórz port. W tym momencie żółta dioda powinna przestać migać i świecić ciągłym światłem, co świadczy o poprawnym zestawieniu połączenia programu z urządzeniem.

Krzysztof Gońka
krzysztof.gonka@interia.pl

Artykuł ukazał się w
Elektronika Praktyczna
kwiecień 2016
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik listopad 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio listopad - grudzień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje październik 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna listopad 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich listopad 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów