wersja mobilna | kontakt z nami

Termometr 2-kanałowy z interfejsem Bluetooth

Numer: Kwiecień/2016

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.

Pobierz PDFMateriały dodatkowe

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

Pozostałe artykuły

Gra elektroniczna Snake

Numer: Listopad/2016

Niegdyś budowanie konsol do gier było zarezerwowane tylko dla potentatów branży rozrywki. Wymagało bowiem użycia podzespołów, które albo były niedostępne dla przeciętnego użytkownika, albo podzespoły i/lub oprogramowanie niezbędne do wykonania urządzenia tego typu były koszmarnie drogie przy zakupie do celów pojedynczego projektu. Współcześnie każdy elektronik konstruktor, który zna się na programowaniu i aplikacjach mikrokontrolerów ...

Przedwzmacniacz mikrofonowy o wysokiej jakości

Numer: Listopad/2016

Mimo popularności np. karaoke, rzadko kiedy przedwzmacniacz mikrofonowy jest wbudowany we współczesnym sprzęcie audio. Często, jeśli jest w niego wyposażona np. karta muzyczna komputera PC, to jest on przeznaczony do współpracy z tanimi mikrofonami pojemnościowymi. Niestety, zwykle parametry takiego wejścia odbiegają od oczekiwań oraz w większości wypadków uniemożliwiają zastosowanie mikrofonów z "górnej półki". Ten problem rozwiązuje ...

Zaawansowany, funkcjonalny termostat

Numer: Listopad/2016

Optymalne ustawienie termostatu polega na uzyskaniu kompromisu pomiędzy jak najmniejszą amplitudą zmian temperatury i jak najmniejszą częstotliwością włączania urządzenia, którym steruje termostat. Dlatego zwykle określonej temperaturze towarzyszy zakres dopuszczalnych zmian temperatury nazywany histerezą. Można też po prostu określić temperatury graniczne: minimalną i maksymalną. Prezentowany termostat pozwala na ustawienie parametrów ...

Nieskomplikowany termometr-rejestrator

Numer: Listopad/2016

Wiedza o aktualnej temperaturze jest informacją, z której korzystamy na co dzień i to wielokrotnie. Niekiedy jednak oprócz wiedzy o aktualnej temperaturze, równie przydatna jest informacja o jej wahaniach w dłuższym przedziale czasu. Termometr-rejestrator zapamiętuje te zmiany, a następnie zapisane pomiary można obejrzeć jako wykres liniowy temperatury w funkcji czasu. Całe urządzenie składa się z 10 elementów. Jest małe, przystosowane ...

Sterownik silnika do napędu

Numer: Październik/2016

Prezentowane urządzenie służy do sterowania silnikiem prądu stałego i umożliwia jego pracę w obu kierunkach obrotu przy regulowanej prędkości obrotowej. Sterownik wyposażono w funkcjonalność łagodnego startu, z zatrzymaniem za pomocą krańcówek, po określonym czasie lub w wypadku przeciążenia.Rekomendacje: dzięki swojej funkcjonalności sterownik może pełnić funkcję np. sterownika napędu bramy, rolety i innych.

Mobilna
Elektronika
Praktyczna

Elektronika Praktyczna

Styczeń 2018

PrenumerataePrenumerataKup w kiosku wysyłkowym

Elektronika Praktyczna Plus

lipiec - grudzień 2012

Kup w kiosku wysyłkowym