Bezprzewodowy czujnik warunków atmosferycznych

Bezprzewodowy czujnik warunków atmosferycznych
Pobierz PDF Download icon

Czujnik warunków zewnętrznych, to doskonały projekt do rozpoczęcia przygody z Internetem rzeczy (IoT). Projekt może służyć jako termometr na biurko lub autonomiczna stacja pogodowa warunków zewnętrznych. Walory użytkowe podnosi interfejs bezprzewodowy, dzięki któremu czujnik może współpracować z komputerem, tabletem, smartfonem lub stacją pogodową.

Rekomendacje: precyzyjny czujnik temperatury wilgotności i ciśnienia, który zadowoli każdego metrologa.

Podstawowe parametry:
  • 4-cyfrowy, 7-segmentowy wyświetlacz LED.
  • Interfejs Bluetooth do komunikacji.
  • Możliwość zasilania ogniwami Li-Ion.
  • Możliwość zasilania z USB.
  • Możliwość ładowania przez ogniwo fotowoltaiczne.
  • Interfejs UART.

Czujnik warunków zewnętrznych to projekt odpowiedni dla każdego elektronika. Służy do pomiaru warunków atmosferycznych: temperatury wilgotności i ciśnienia. Nadaje się do monitorowania warunków pogodowych wewnętrznych (w domu lub pracy), zewnętrznych, a także specjalnych (szklarnie, chłodnie). Zastosowany mikrokontroler umożliwia wiele trybów prędkości pracy, a także zaawansowane opcje zarządzania zasilaniem. Urządzenie zaprojektowano w taki sposób, aby mogło być zastosowane w wielu rozwiązaniach. Dla zastosowań stacjonarnych miernik wyposażono w 4-cyfrowy wyświetlacz i możliwość zasilania z USB. Dla zastosowań mobilnych i zewnętrznych urządzenie wyposażono w moduł Bluetooth do komunikacji, możliwość zasilania ogniwami litowo – jonowymi oraz możliwość ładowania przez ogniwo fotowoltaiczne. Dla zastosowań specjalnych, z urządzeniem komunikować się można za pomocą interfejsu UART.

Czujnik, który chciałbym zaprezentować, ma budowę modułową i wiele zastosowań, a ograniczony pobór mocy umożliwia zasilanie z ogniw Li-ion. Warto zwrócić uwagę na użycie nowoczesnych podzespołów, które upraszczają całą aplikację. Urządzenie ma dwie zworki, które umożliwiają nadanie adresu, dzięki czemu poszczególne punkty pomiarowe mogą być identyfikowane przez współpracujące urządzenie.

Jak to działa?

Schemat ideowy czujnika pokazano na rysunku 1. Linia zasilająca zaczyna się od układu zarządzającego ładowaniem akumulatora Li-ion TP4056 (U4). Zasilanie odbywa się przez złącze goldpin (P7) lub złącze USB (P3). Jeśli akumulator nie jest dołączony, układ U4 pełni rolę bufora. Do złącza P3 można podłączyć ogniwo fotowoltaiczne o napięciu maksymalnym 5 V. W czasie ładowania powinna zaświecić się dioda D6. W razie braku akumulatora Li-ion lub w stanie pełnego naładowania świeci się dioda D7. W stanie braku ładowania nie świeci się żadna z diod.

Rysunek 1. Schemat ideowy bezprzewodowego czujnika pogodowego
Rysunek 1. c.d.

Moduł Bluetooth jest zasilany napięciem z układu TP4056, ponieważ ma własny stabilizator napięcia. Stabilizator pozostałej części układu to niskoszumny układ LDO typu RT9193-33 zapewniający napięcie 3,3 V. Mikrokontroler użyty w aplikacji to STM32F103C8T6 (U1). Mikrokontrolery tego typu mają sprzętowe interfejsy I2C, USB, UART, SPI i CAN. Na płytce przewidziano montaż oscylatora w wersji półprzewodnikowej.
Moduł Bluetooth komunikuje się z mikrokontrolerem za pomocą UART. Wyświetlacz 4 cyfry×7 segmentów jest dołączony za pomocą dwóch rejestrów przesuwnych, aby zmniejszyć liczbę wyprowadzeń mikrokontrolera używanych do komunikacji i połączyć je z mikrokontrolerem za pomocą szyny SPI.

Rysunek 1. c.d.
Rysunek 1. c.d.

Czujnikiem użytym w układzie jest moduł sensora BME280 (P1). Użyto interfejsu I2C, aby w razie potrzeby rozbudować aplikację o kolejne moduły czujników. Przy zastosowaniu czujnika BME280 użycie gotowego modułu jest dobrym rozwiązaniem, ponieważ sensor ma obudowę powierzchniową, którą łatwo uszkodzić przy lutowaniu za pomocą stacji na gorące powietrze. Dane dotyczące czujnika zamieszczono w tabeli 1.

Porównanie poboru energii przez układy w stanie aktywnym pokazano na rysunku 2.

Rysunek 2. Porównanie poboru energii przez układy w stanie aktywnym

Oprogramowanie

Mikrokontroler został zaprogramowany za pomocą oprogramowania dostarczonego przez firmę STM, przy użyciu bibliotek HAL, w języku C. Cały program napisano w oparciu o przerwania czasowe i zgłaszane przez Bluetooth. Aplikacja działa w oparciu o algorytm z rysunku 3. W repozytorium znajdują się pliki projektu oraz gotowe wsady dla wersji energooszczędnej i stacjonarnej.

Rysunek 3. Algorytm działania programu

Przerwania zgłaszane są w sposób programowy, a następnie obsługiwane są w głównej pętli main. W przypadku modułu Bluetooth przerwanie zgłaszane jest gdy użytkownik po połączeniu się z urządzeniem wyśle dowolny znak (np. litera a). W aplikacji energooszczędnej procesor oraz czujnik są usypiane, aby obniżyć zużycie energii. Nie ma w niej też obsługi wyświetlacza LED.

Montaż i uruchomienie

Układy można zmontować na dwustronnych płytkach drukowanych, których schemat montażowy pokazano na rysunku 4.

Rysunek 4. Schemat montażowy bezprzewodowego czujnika pogodowego

Standardowo montujemy układ, zaczynając od elementów najmniejszych, a kończąc na największych. Warto zauważyć fakt, że jeżeli układ będzie pracował w warunkach zewnętrznych, warto zamiast złączy żeńsko – męskich goldpin, moduły przylutować wprost do płytki za pomocą złączy męskich goldpin. Jeżeli układ ma pracować w zastosowaniu energooszczędnym, nie ma potrzeby montażu wszystkich elementów. Elementy niezbędne dla tego rozwiązania zaznaczono w spisie elementów za pomocą gwiazdki. Aby nadać urządzeniu odpowiedni numer, należy zrobić zworę w miejscach oznaczonych J3 i J4 według tabeli umieszczonej na schemacie(wartość 1 to zwarcie do VCC a wartość 0 zwarcie do szyny GND), co pokazano na rysunku 5.

Rysunek 5. Ustalanie adresu modułu czujnika

Urządzenie należy zaprogramować przy pomocy programatora ST-Link lub podobnego, przez złącze SWD. Najpierw należy ustawić zworę J1 (BOOT0) na wartość 1 (zwarcie do VCC) i zworę J2 (BOOT1) na wartość 0 (zwarcie do GND) aby wgrać bootloader do procesora. Następnie należy ustawić obydwie zwory (J1 i J2) na wartość 0, aby wgrywać kod programu. Układ po podłączeniu zasilania powinien zadziałać od razu. Przy czujnikach BME280 produkowanych przez różne firmy, zdarza się że po kilku sekundach działania, należy wcisnąć przycisk reset, po czym czujnik dopiero wysyła prawidłowe dane. Komunikacja z Bluetooth odbywa się po sparowaniu urządzenia i wysłaniu jednego znaku z terminala Bluetooth, smartfona lub komputera – jak przedstawiono na rysunku 6.

Rysunek 6. Przebieg transmisji danych

Płytka z powodzeniem mieści się w obudowie firmy Kradex Z-77. Urządzenie można umieścić w obudowie radiacyjnej, jeśli urządzenie będzie narażone na zewnętrzne warunki atmosferyczne. Na biurku urządzenie doskonale prezentuje się w obudowie wykonanej z giętego paska pleksiglasu – fotografia 7. Przykładowe rodzaje obudów zaprezentowane są na zdjęciu tytułowym.

Fotografia 7. Montaż płytki czujnika na pasku pleksiglasu

Możliwości zmian

Płytka została zaprojektowana z myślą o różnych zastosowaniach – można odłamać część z wyświetlaczem lub przetwornicą, a także podłączyć inny wyświetlacz (modyfikując oprogramowanie) i podłączyć go do padów TP1 – TP5 dostępnych z drugiej strony płytki. Diody D2 – D5 nie są wykorzystane – można je wykorzystać zmieniając oprogramowanie. Aby znacznie zmniejszyć zużycie energii w wersji energooszczędnej warto nie montować diody (lub ją usunąć) z modułu Bluetooth.

W celu zmniejszenia poboru prądu warto zastosować moduł bluetooth HC-08 BLE (Bluetooth Low Energy v4.1) i ustawić moc nadawania na najniższą. Spowoduje to spadek poboru energii przy trybie stand-by poniżej 1 mA co wpłynie na dłuższą pracę przy zasilaniu z ogniw Li-ion. Do połączenia się z urządzeniem w systemie Android można wykorzystać prostą aplikację Serial Bluetooth lub inny terminal bluetooth. Nagrania wideo z działania urządzenia można znaleźć pod adresem https://bit.ly/2KjSkc5 oraz https://bit.ly/2tRKoU2.

Tomasz Pachołek
pacholek.tomasz@gmail.com

Wykaz elementów:
Rezystory: (SMD 0805)
  • R1*, R2*: 100 kΩ
  • R3: 10 kΩ
  • R4*, R5*: 1 Ω
  • R6*…R8*, R10*: 1 kΩ
  • R9: 1,2 kΩ
Kondensatory:
  • C1, C2: 20 pF (SMD 0805)
  • C3*…C7*, C10*: 100 nF (SMD 0805)
  • C8*: 1 mF/16 V (SMD 0805)
  • C9: 100 mF/16 V (SMD „B”)
  • C11: 22 nF (SMD 0805)
Półprzewodniki:
  • U1: STM32F103C8T6 (LQFP48)
  • U2, U3: 74HC595 (SO16)
  • U4: TPA4056
  • U5: RT9193
  • D2…D7: LED (SMD 0805)
Inne:
  • D1: wyświetlacz 4-cyfrowy LED
  • P1, P2: złącze goldpin żeńskie 4×1
  • P3, P4*, P6: złącze goldpin męskie 2×1
  • P5: złącze goldpin męskie 6×1
  • P7: złącze micro USB
  • S1: microswitch smd
  • Q1: 32,768 kHz MC – 306 smd
Artykuł ukazał się w
Październik 2018
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik czerwiec 2021

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio czerwiec 2021

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka Podzespoły Aplikacje maj 2021

Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna czerwiec 2021

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich czerwiec 2021

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów