System pomiaru parametrów środowiskowych. Ze zdalnym raportowaniem i sterowaniem przez sieć komórkową

System pomiaru parametrów środowiskowych. Ze zdalnym raportowaniem i sterowaniem przez sieć komórkową
Pobierz PDF Download icon

W artykule opisano zaprojektowany i wykonany przez autora prototypowy system M2M. System ten realizuje pomiar temperatury powietrza/wilgotności powietrza/ciśnienia atmosferycznego, wyświetla te dane na wyświetlaczu i wysyła je do użytkownika wiadomością SMS, umożliwia także za pomocą wiadomości SMS włączanie/wyłączanie dołączonych do systemu urządzeń.

Rysunek 1. Zilustrowanie działania systemu

M2M to skrót, którego rozwinięciem jest hasło "Machine to Machine". Pojęcie to nie jest nowe i funkcjonuje od lat, jednak dopiero od niedawna można mówić o jego ogromnej popularności. Co zatem oznacza? Udzielenie odpowiedzi na to pytanie prawdopodobnie sprawiłoby kłopot niejednej osobie. Jest tak, gdyż M2M nie jest związane z konkretną usługą, ani też konkretnym produktem. Czym zatem jest M2M?

Tabela 1. Sposób komunikacji użytkownika z systemem M2M

Można określić je jako koncepcję, według której urządzenia elektroniczne mogą komunikować się ze sobą bez udziału człowieka (komunikacja rozumiana jest jako przesyłanie informacji). Z jakimi rozwiązaniami należy zatem kojarzyć M2M? Po pierwsze są to technologie związane z transmisją danych, zarówno przewodową, jak też bezprzewodową (np. GSM, LTE, ZigBee, Wi-Fi, NFC, Bluetooth). Po drugie są to podzespoły wykorzystujące technologie M2M (np. moduły transmisji danych). Po trzecie są to kompletne systemy, w których zastosowano podzespoły M2M.

Rysunek 2. Schemat blokowy budowy systemu

Nie sposób jest w kilku zdaniach opisać wszystkie rodzaje występujących systemów M2M. Dla pewnego rozeznania lepszym rozwiązaniem jest wymienienie jednej z grup takich systemów wraz z podaniem przykładów. Taką grupą może być np. Smart City (tak zwane inteligentne miasto), a więc systemy M2M znajdujące zastosowanie w środowisku miejskich, usprawniające życie mieszkańców. Są to przykładowo systemy parkingowe, wypożyczalnie rowerów, inteligentne liczniki (np. wody, energii), terminale płatnicze, systemy zarządzające oświetleniem ulicznym oraz sygnalizacją świetlną, systemy śledzenia przesyłek/floty pojazdów i wiele, wiele innych.

Koncepcja działania wykonanego systemu M2M

Rysunek 3. Zdjęcie płytki FRDM-KL25Z

Rozwiązania M2M nierzadko wykorzystywane są do zastosowań telemetrycznych, a więc przesyłania wartości pomiarowych na odległość. Tego typu system został zaprojektowany i zbudowany przez autora. Pierwszą funkcjonalnością systemu jest wykonywanie pomiaru wielkości będących podstawowymi parametrami środowiskowymi: temperatury powietrza, wilgotności powietrza i ciśnienia atmosferycznego.

Drugą funkcjonalnością jest udostępnianie użytkownikowi danych z czujników. Może się to odbywać na dwa sposoby: poprzez wizualizację wyników pomiarów w formie liczbowej na wyświetlaczu LCD, bądź poprzez wysłanie wiadomości SMS z treścią będącą również liczbową reprezentacją wyników pomiarów.

Rysunek 4. Schemat elektryczny płytki z czujnikami

Trzecią funkcjonalnością jest możliwość zdalnego włączania lub wyłączania przez użytkownika urządzeń dołączonych do systemu. Realizowane jest to poprzez wysłanie przez użytkownika wiadomości SMS z określoną treścią.

Sposób w jaki użytkownik komunikuje się z systemem przez sieć GSM zaprezentowano w tabeli 1. Schemat ilustrujący działanie systemu pokazano na rysunku 1.

System o opisanej funkcjonalności może mieć bardzo praktyczne zastosowanie. Może on służyć jako rozwiązanie do zdalnego monitoringu i zmiany jakości powietrza wewnątrz budynku/obiektu np. mieszkania lub szklarni. Aby tak się stało, wystarczy jako urządzenia dołączone do systemu wykorzystać zasilane elektrycznie przyrządy do zmiany parametrów środowiskowych np. klimatyzację, wentylację itp.

Tabela 2. Parametry techniczne czujników

W takiej sytuacji użytkownik poprzez wiadomość SMS uzyskuje informację o wartości mierzonych przez system wielkości. W sytuacji, gdy są one niezgodne z oczekiwaniami, użytkownik poprzez wiadomość SMS może zadecydować o włączeniu dołączonych urządzeń. Po upływie pewnego czasu użytkownik ponownie sprawdza wartości mierzonych wielkości i jeśli go one satysfakcjonują, może zadecydować o wyłączeniu urządzeń.

Budowa wykonanego systemu M2M

Rysunek 5. Layout płytki z czujnikami

System o opisanej powyżej funkcjonalności powinien składać się z określonych bloków funkcjonalnych. Są to: blok sterujący systemem, blok czujników, blok włączający/wyłączający dołączone urządzenia, blok komunikacji, blok wizualizacji danych oraz blok zasilania. Schemat pokazujący sposób w jaki połączone zostały ze sobą elektrycznie bloki funkcjonalne systemu przedstawiono na rysunku 2. Każdy z bloków zostanie oddzielnie przedyskutowany.

Prezentację budowy systemu rozpocznie opis bloku sterującego. Tworzy go płytka z mikrokontrolerem. Jest nią FRDM-KL25Z (rysunek 3) - tania platforma sprzętowa dla mikrokontrolerów Kinetis L z rdzeniem Cortex-M0+ firmy Freescale.

Na płytce umieszczono nie tylko mikrokontroler (model MKL25Z128VLK4 wyposażony w 128 kB pamęci Flash i 16 kB pamięci SRAM), ale także między innymi zintegrowany programator/debuger OpenSDA z interfejsem USB, dzięki czemu FRDM-KL25Z stanowi kompletną platformę uruchomieniową. Ponadto na płytce znajdują się sygnałowe gniazda rozszerzeniowe pozwalające w łatwy sposób podłączyć do mikrokontrolera dodatkowe układy i moduły elektroniczne, dioda LED RGB, dotykowy suwak pojemnościowy oraz czujnik przyspieszenia (akcelerometr).

Rysunek 6. Zdjęcie płytki z czujnikami

Drugim blokiem funkcjonalnym systemu są czujniki parametrów środowiskowych. Do pomiaru temperatury powietrza, wilgotności powietrza oraz ciśnienia atmosferycznego wybrano odpowiednio czujnik STLM20 firmy STMicroelectronics, HIH-5031 firmy Honeywell oraz MP3H6115A firmy Freescale. Cechą wspólną wszystkich trzech czujników jest taki sam interfejs - analogowy napięciowy.

Jeden interfejs czujnikowy upraszcza programową implementację czujników w systemie. Do obsługi czujników analogowych mikrokontroler wykorzystuje przetwornik A/C. Wymagane są trzy kanały przetwornika (jeden dla każdego czujnika). Przetwornik dokonuje w każdym kanale próbkowania napięcia wytwarzanego na wyjściu czujnika, po czym konwertuje je na postać cyfrową.

Następnie wartości liczbowe odpowiadające poziomom napięcia zostają podstawione do wzorów (podanych przez producentów w dokumentacji czujników) określających zależność między napięciem a mierzoną wielkością. Tak wyznaczone zostają liczby, które w pewnej jednostce wyrażają zmierzone wielkości. Parametry techniczne wybranych na potrzeby projektu czujników przedstawiono w tabeli 2.

Rysunek 7. Schemat elektryczny bloku włączającego/wyłączającego dołączone do systemu urządzenia

W celu łatwego dołączenia czujników do mikrokontrolera znajdującego się na płytce FRDM-KL25Z zaprojektowano dedykowaną płytkę. Jej schemat elektryczny przedstawiono na rysunku 4. Do czujników na płytce doprowadzone jest wspólne napięcie zasilania oraz masa.

Dodatkowo między linią zasilania i linią masy każdego czujnika umieszczony jest filtrujący napięcie zasilające kondensator o pojemności 100 nF. Linia zasilania, masy oraz trzy linie połączone z wyjściem czujników doprowadzone są do gniazda sygnałowego. Layout płytki pokazano na rysunku 5. Zdjęcie płytki zaprezentowano na rysunku 6.

Trzecim blokiem funkcjonalnym systemu jest blok włączający/wyłączający dołączone urządzenia. Tworzy go klucz tranzystorowy. Schemat elektryczny pokazano na rysunku 7. W centralnym miejscu znajduje się tranzystor bipolarny typu NPN - model BC547. Obciążenie (w tym przypadku jest to wentylator) dołączane jest do zacisków znajdujących się między kolektorem tranzystora i napięciem zasilania.

Sterowanie z kolei odbywa się przez zacisk złącza połączonego przez rezystor z bazą tranzystora. Podanie logicznego stanu wysokiego aktywuje tranzystor, co oznacza włączenie napięcia zasilania dołączonego urządzenia. Z kolei logiczny stan niski wywoła efekty odwrotny - wyłączy napięcie zasilania dołączonego urządzenia.

Rysunek 8. Zdjęcie płytki M95EB

Jako, że zaprezentowany klucz tranzystorowy pozwala na włączenia i wyłączanie zasilania dla obciążenia małej mocy, w przypadku urządzeń większej mocy można zastosować układ sterowania oparty na triaku lub przekaźniku.

Za bezprzewodową wymianę informacji między użytkownikiem i systemem odpowiada blok komunikacji. Jest to przede wszystkim moduł GSM/GPRS - model M95 firmy Quectel. Jest to jeden z najmniejszych czterozakresowych (850/900/1800/1900 MHz) modułów GSM/GPRS - jego wymiary to zaledwie 19.9 × 23.6 × 2.65 mm. To co jeszcze wyróżnia ten produkt, to z pewnością możliwość obsługi dwóch kart SIM.

Rysunek 9. Zdjęcie modułu KAmodTFT2

Aby w łatwy sposób użyć modułu M95 wykorzystano dedykowaną płytkę ewaluacyjną M95EB z oferty firmy Soyter. Płytka ta to kompletna platforma uruchomieniowa, wyposażona (oprócz samego modułu) w blok zasilania z gniazdem, złącze na dwie karty SIM, gniazdo antenowe, przyciski, diody sygnalizacyjne LED oraz interfejs (UART i USB w formie wirtualnego portu COM). Zdjęcie płytki M95EB pokazano na rysunku 8.

Kolejnym elementem systemu jest blok wizualizacji danych. W celu wizualizowania użytkownikowi danych z czujników wykorzystano wyświetlacz LCD. Zastosowany w opisywanym projekcie wyświetlacz to model, który stosowany jest w telefonach Nokia 6100/6610. Jest to kolorowy, graficzny wyświetlacz typu LCD TFT z matrycą o rozdzielczości 132×132 pikseli, wyświetlający obraz z 12-bitową głębią (4096 kolorów).

Rysunek 10. Schemat elektryczny bloku zasilania systemu

Komunikacja z wyświetlaczem odbywa się przy wykorzystaniu interfejsu szeregowego kompatybilnego z SPI. Interfejs składa się z trzech linii: danych (SDIN), zegarowej (SCLK) oraz aktywacji transmisji (SCE).

Pozostałe wyprowadzenia wyświetlacza to linie zasilania (VCC, GND, VLED+, VLED- ) oraz linia resetu (RESET). Pojedyncze słowo przesyłane do wyświetlacza składa się z dziewięciu bitów: ośmiu bitów danych i jednego bitu informującego czy dane mają być interpretowane jako komenda konfiguracyjna, czy dane do wyświetlenia.

Rysunek 11. Zdjęcie wykonanego systemu M2M

Aby w łatwy sposób podłączyć wyświetlacz do mikrokontrolera znajdującego się na płytce FRDM-KL25Z, wykorzystano moduł o nazwie KAmodTFT2 z oferty sklepu Kamami.pl. Moduł ten jest płytką, na której zintegrowano wyświetlacz telefonu Nokia 6100/6610, gniazdo szpilkowe połączone z wyprowadzeniami wyświetlacza, bufory linii sterujących, zworkę pozwalającą na wybór napięcia zasilania (3 lub 5 V) oraz obwód zasilania składający się z regulatora napięcia (do zasilania wyświetlacza) i przetwornicy podwyższającej napięcie (do zasilania diod podświetlenia wyświetlacza). Wygląd modułu KAmodTFT2 pokazano na rysunku 9.

Ostatnim z bloków funkcjonalnych systemu jest moduł zasilania. Źródłem napięcia zasilania jest akumulator litowo-jonowy o nominalnej wartości napięcia 3.7 V i pojemności 1200 mAh. Napięcie akumulatora służy do bezpośredniego zasilania płytki z modułem GSM oraz dołączonych do systemu urządzeń.

Pozostałe bloki funkcjonalne wymagają napięcie o niższym potencjale. Aby je wytworzyć, użyto regulatora napięcia MCP1825S firmy Microchip. Jego najważniejsze parametry to: zakres napięcia wejściowego do 6 V, wydajność prądowa do 500 mA, siedem opcji napięcia wyjściowego (0.8/1.2 /1.8/2.5/3.0/3.3/5.0 V), trzy opcje obudowy (DDPAK, TO-220, SOT-223).

Zastosowany model regulatora to MCP1825S-30, który charakteryzuje się napięciem wejściowym na poziomie 3.0 V. Schemat elektryczny bloku zasilania przedstawiono na rysunku 10. Zdjęcie wykonanego systemu M2M pokazano na rysunku 11.

Opis wykonanej aplikacji

Rysunek 12. Schemat blokowy działania aplikacji

Schemat blokowy działania aplikacji przedstawiono na rysunku 12. Mikrokontroler Kinetis L swoje działanie rozpoczyna od skonfigurowania wewnętrznych zasobów sprzętowych, których użycie wymagane jest przez aplikację. Pierwszym zasobem jest przetwornik A/C. Trzy jego kanały, przyporządkowane do wyprowadzeń PTD1, PTD5 i PTD6, używane są do odczytywania poziomu napięcia na wyjściu czujników, kolejno czujnika ciśnienia atmosferycznego, czujnika temperatury powietrza oraz czujnika wilgotności powietrza.

Drugi niezbędny do wykorzystania zasób sprzętowy to interfejs UART. Służy on do komunikowania się mikrokontrolera z modułem GSM/GPRS. Wyprowadzeniami wybranymi do realizacji transmisji danych przez ten interfejs są PTA1 (UART RX) oraz PTA2 (UART TX). Ostatni konfigurowany przez mikrokontroler zasób sprzętowy to porty wejścia/wyjścia. Użyto ich w sumie pięć.

Tabela 3. Komendy AT użyte na potrzeby aplikacji

Pierwszym z nich jest PTE0. Za jego pomocą realizowane jest sterowanie kluczem tranzystorowym odpowiadającym za włączanie i wyłączanie dołączonych do systemu urządzeń. Pozostałe porty są używane do sterowania wyświetlaczem: PTC0 - linia RES, PTC1 - SCE, PTC2 - CLK, PTC3 - DIN. Po zakończeniu konfiguracji przetwornika A/C, interfejsu UART oraz portów wejścia/wyjścia, mikrokontroler przystępuje do przygotowania do pracy komponentów zewnętrznych: wyświetlacza i modułu GSM/GPRS.

W pierwszej kolejności zainicjowany zostaje wyświetlacz LCD, po czym ustawione zostaje tło ekranu (biały kolor) oraz wyświetlone zostają nazwy mierzonych wielkości oraz ich jednostki. W następnej kolejności konfigurowany jest moduł GSM/GPRS. Odbywa się to za pomocą komend AT (skrót AT pochodzi od słowa 'ATtention'), a więc standardowej formy sterowania modemami.

Rysunek 13. Mikrokontroler wyświetla na wyświetlaczu dane z czujników

Każda komenda ma następującą postać: przedrostek AT, znak plusa, nazwę instrukcji ,dodatkowe znaki zależne od danej komendy oraz znak nowej linii i znak powrotu karetki. Listę wysyłanych przez mikrokontroler do modułu M95 komend AT (zarówno w fazie konfiguracji, jak też na potrzeby wysłania wiadomości SMS) oraz ich znaczenie przedstawiono w tabeli 3.

Po zakończeniu tego etapu działania aplikacji mikrokontroler rozpoczyna wykonywanie operacji w nieskończonej pętli. Wewnątrz niej wyróżnić można trzy zadania. W pierwszym zadaniu wykorzystywany jest przetwornik A/C.

Mikrokontroler za jego pomocą odczytuje poziom napięć wyjściowych czujników. Następnie wartości napięcia przeliczane są na wartości mierzonych wielkości.

Drugie zadanie polega na wyświetlaniu obliczonych wartości na wyświetlaczu (rysunek 13). Ostatnim, trzecim zadaniem jest sprawdzanie czy moduł GSM/GPRS odebrał nową wiadomość SMS, a jeśli tak, odpowiednie na niego reagowanie. W zależności od treści odebranego SMSa, a więc znaku '1', '2' lub '3', mikrokontroler odpowiednio włącza klucz tranzystorowy, wyłącza klucz tranzystorowy lub odsyła do nadawcy wiadomość SMS zawierającą dane z czujników (rysunek 14).

Listing 1. Kod programu obsługującego czujniki

Listing 2. Procedura komunikacji za pomocą modemu GSM/GPRS

Kod źródłowy aplikacji stworzony został przy użyciu środowiska programistycznego CodeWarrior firmy Freescale. Interfejs programistyczny do peryferiów (przetwornika A/C, interfejsu UART i portów wejścia/wyjścia) został wygenerowany przez zintegrowane w środowisku CodeWarrior narzędzie Processor Expert. Bazując na tym interfejsie napisany został kod źródłowy implementujący przewidziane systemowi funkcjonalności. Przykładowo, wygenerowany interfejs programistyczny udostępnia kilka przydatnych funkcji do obsługi przetwornika A/C:

  • AD1_SelectSampleGroup() - funkcja do wyboru kanału przetwornika A/C,
  • AD1_StartSingleMeasurement() - funkcja rozpoczynająca pomiar napięcia w aktywnym kanale,
  • AD1_GetMeasuredValues() - funkcja odczytująca wartość zmierzonego napięcia w aktywnym kanale.

Rysunek 14. Treść wysłanych przez użytkownika wiadomości SMS do systemu M2M oraz treść wiadomości SMS (odpowiedzi) wysłanej przez system M2M do użytkownika

Na bazie tych funkcji stworzony został kod źródłowy obsługujący czujniki (listing 1).

Innym przykładem może być obsługa modułu GMS/GPRS. Interfejs programistyczny udostępnia dwie funkcje dedykowane do kontroli transmisji UART:

  • AS1_ReceiveBlock() - funkcja odbierająca dane przez interfejs UART,
  • AS1_SendBlock() - funkcja wysyłająca dane przez interfejs UART.

Korzystając z tych funkcji mikrokontroler może komunikować się z modułem GSM/GPRS wysyłając i odbierając wiadomości SMS. Odbywa się to w następujący sposób. Wiadomość SMS od razu po odebraniu przez moduł GSM/GPRS jest przekazywana interfejsem UART do mikrokontrolera. Dane te mikrokontroler wczytuje poprzez funkcję AS1_ReceiveBlock() do 60-elementowej tablicy.

Następnie w tablicy tej wyszukiwany jest koniec wiadomości - liczba 10 oznaczająca nową linię). Gdy już zostanie określony indeks końca wiadomości, sprawdzana jest wartość wiadomości, która znajduje się na pozycji o dwa mniejszej od pozycji końca wiadomości - znajduje się tam jednocyfrowa treść wiadomości (ostatni element to wspomniany znak nowej linii, przedostatni element to z kolei znak powrotu karetki).

Jeśli wartość ta wynosi 3, mikrokontroler używając funkcji AS1_SendBlock() wysyła do modułu komendy AT, których skutkiem jest wysłanie SMSa zwrotnego z informacją o zmierzonych parametrach środowiskowych. Odpowiedni kod źródłowy pokazano w listingu 2.

Szymon Panecki, EP

Artykuł ukazał się w
Elektronika Praktyczna
wrzesień 2014
DO POBRANIA
Pobierz PDF Download icon
Zobacz też
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik wrzesień 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio wrzesień 2020

Świat Radio

Magazyn użytkowników eteru

Automatyka Podzespoły Aplikacje wrzesień 2020

Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna wrzesień 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich sierpień 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów