- 8 niezależnych kanałów pomiarowych do podłączenia czujników temperatury typu 18B20 lub 18S20,
- czas pomiędzy kolejnymi pomiarami ustawiany przez użytkownika w zakresie od 2 sekund do 23 godzin 59 minut 59 sekund,
- wyzwalanie nowego cyklu pomiarowego z programu sterującego lub po naciśnięciu przycisku na rejestratorze,
- zapis pomiarów w formie pliku tekstowego na wymiennym nośniku danych: pendrive,
- możliwość częściowego odczytu danych podczas aktywnego cyklu pomiarów,
- zasilanie napięciem stałym +5 V z portu USB lub zasilacza z gniazdem USB,
- pobór prądu zależny od użytego nośnika, zazwyczaj od 50 mA do 100 mA.
Dokładny i czytelny sposób działania rejestratora opisują poniższe zasady:
- Rejestrator może znajdować się w jednym z dwu stanów: gotowości lub w cyklu pomiarów. Przejście do cyklu pomiarów lub jego zakończenie następuje po wysłaniu komendy z programu sterującego uruchomionego na komputerze lub, jeśli taka opcja jest ustawiona, po 3-sekundowym naciśnięciu przycisku S1.
- Gdy jest aktywny cykl pomiarów z zaprogramowaną częstotliwością, testowane są wszystkie kanały i po wykryciu dołączonych czujników odczytywana jest temperatura. Jeżeli odczyt z czujnika zakończy się sukcesem, zapala się dioda sygnalizacyjna skojarzona z kanałem. W przypadku błędu odczytu lub jeśli do kanału nie jest podłączony czujnik, dioda jest gaszona. Kolejne dane pomiarowe dodawane są do utworzonego pliku tekstowego w wymiennej pamięci masowej, czyli na pendrivie. Nazwa pliku składa się z liter "MT" i numeru cyklu np.: MT_001.txt. W przypadku kolejnego 9 i następnych cykli pomiarów, numeracja rozpoczyna się ponownie od 1, a dane starego pliku o takiej samej nazwie zostają nadpisane. Wszystkie pliki pomiarów zapisywane są w utworzonym podkatalogu o nazwie "Pomiary Temperatury".
- W trybie gotowości można ustawiać parametry rejestratora, w tym: czas pomiędzy kolejnymi pomiarami, włączać lub wyłączać aktywność przycisku S1 służącego do ręcznego wyzwalania cyklu pomiarowego, programowo wyzwolić cykl pomiarowy.
- Dane on-line można importować z pendrive'u korzystając z gniazda USB transmisji oznaczonego na Rysunku 1 jako X2. Można to robić zarówno gdy rejestrator jest w trybie gotowości, jak i gdy aktywny jest cykl pomiarów.
- Po włączeniu zasilania rejestrator odtwarza swój stan w momencie sprzed odłączenia. Gdy był aktywny, cykl pomiarów urządzenie kontynuuje pomiary tak, aby wznowione rejestracje były zgodne z zaprogramowanym okresem pomiarów.
- W czasie cyklu pomiarów dostępne są informacje o statusie: dacie i czasie startu, liczbie zarejestrowanych pomiarów, sygnalizacji utraty 1 lub więcej kolejnych pomiarów na skutek zaniku zasilania, wystąpienia błędów zapisu na pendrive.
Budowa rejestratora
Na płytce rejestratora umieszczono 8 gniazd śrubowych do podłączenia maksymalnie 8 czujników temperatury. Oprócz tego zamontowano gniazdo USB-A dla pendrive'u i USB-B służące zarówno do podłączenia zasilania, jak i do komunikacji z oprogramowaniem sterującym uruchomianym na komputerze. Schemat ideowy rejestratora pokazano na rysunku 1. Ze względu na łatwość tworzenia szkieletu oprogramowania przez ogólnodostępne narzędzie CubeMX, jako kontroler wybrano STM32F401 w obudowie z 64 wyprowadzeniami. Wszystkie czujniki, sygnalizacje i gniazdo pendrive'u obsługiwane są bezpośrednio przez porty kontrolera. Mostek USB, oznaczony na schemacie jako U3, umożliwia połączenie linii USART1 kontrolera z portem USB komputera.
Układ U2 jest zintegrowanym przełącznikiem dostarczającym napięcie zasilania +5 V do pendrive'u i wszystkich dołączonych czujników temperatury. Dobierając wartość opornika R3, można ustawić górny limit prądu, jaki może być pobrany z przełącznika i tym samym zabezpieczyć przed przeciążeniem port USB, który zasila całe urządzenie. Wartość oporu można obliczyć, korzystając z wzoru:
Rset Ω = 230 V/Ilimit A
przy dopuszczalnym zakresie 154 Ω < Rset < 2,29 kΩ.
Stabilizator U4 dostarcza zasilania 3,3 V do kontrolera i pamięci EEPROM U5, w której przechowywane są ustawienia, które nie powinny zostać utracone w czasie odłączenia rejestratora od zasilacza. Bateria litowa G1 służy do podtrzymania działania wewnętrznych rejestrów zegara czasu rzeczywistego w kontrolerze.
Diody LED1 i LED2 sygnalizują przepływ danych portem USB podczas wymiany danych pomiędzy rejestratorem a programem sterującym. Świecenie diod LED3...LED10 sygnalizuje dołączenie do poszczególnych kanałów czujników temperatury i ich prawidłowy odczyt. Ciągłe świecenie lub migotanie diody LED11 informuje o stanie, w jakim znajduje się rejestrator.
Dodatkowo na płytce zamontowane są dwa przyciski S1 i S2. Naciśnięcie S2 wymusza zerowanie kontrolera, natomiast dłuższe naciśnięcie S1 powoduje rozpoczęcie lub zakończenie cyklu pomiarów, o ile ustawienia rejestratora zezwalają na uaktywnienie tego przycisku.
Program sterujący Multi Rejestrator
Oprogramowanie Multi Rejestrator służy do sterowania rejestratorem, ustawiania parametrów pracy, kontrolowania przebiegu cyklu pomiarów, wizualizacji zgromadzonych pomiarów. W trybie off-line, kiedy rejestrator nie jest podłączony do komputera, program pozwala przeglądać zgromadzone na twardym dysku historyczne zapisy rejestracji. Gdy płytka rejestratora jest podłączona, oprogramowanie może na bieżąco kontrolować przebieg rejestracji.
Program Multi Rejestrator wyświetla się jako zestaw 4 zakładek: Tryb Tekstowy, Tryb Graficzny, Sterowanie, Import.
Zakładka Sterowanie
Po uruchomieniu programu należy przejść do zakładki Sterowanie. Początkowo żaden element na zakładce nie jest aktywny, dopóki nie zostanie nawiązane połączenie z płytką rejestratora. Służy do tego przycisk na pasku narzędziowym , automatyczne wyszukiwanie podłączonego urządzenia. Program przeszukuje wszystkie dostępne do otwarcia porty, wysyłając zapytanie. Gdy uzyska prawidłową odpowiedź identyfikującą dołączoną do portu płytkę, wyświetla informację o numerze płytki i wersji oprogramowania, tak jak to widać na rysunku 2. Po naciśnięciu na pasku narzędziowym przycisku, odświeżanie, na zakładce wyświetlają się dodatkowe informacje oraz zostaje odblokowany dostęp do pozostałych elementów.
Gdy rejestrator jest w trybie gotowości, można przesłać do zegara RTC na płytce czas systemowy komputera. Można zaprogramować okres między kolejnymi pomiarami, wpisując wartości w polach godzin, minut i sekund, które to ustawienia po naciśnięciu klawisza Akceptacja nowego ustawienia, przesyłane są do płytki rejestratora i zapamiętywane w pamięci nieulotnej. Zaznaczając opcję przycisk START/STOP aktywny, można aktywować przycisk S1 ręcznego wyzwalania cyklu pomiarów na płytce. W końcu można z poziomu programu zainicjować tryb pomiarów, zaznaczając opcję START pomiarów lub naciskając na pasku narzędziowym ikonę przycisku start/stop.
Gdy rejestrator jest w trybie aktywnego cyklu pomiarów, po każdorazowym naciśnięciu klawisza Odświeżanie wyświetlone zostają informacje o dacie i czasie startu cyklu pomiarów, ścieżka dostępu do pliku z danymi aktualnych pomiarów oraz uaktualnione informacje o numerze pomiaru i statusie.
Zakładka Import
Służy do odczytu zawartości plików zapisanych na pendrivie umieszczonym w gnieździe X1 płytki rejestratora. Funkcje zakładki stają się aktywne po nawiązaniu połączenia z rejestratorem. Na rysunku 3 pokazano przykładowy wygląd zakładki. Tabela zostaje zapełniona listą dostępnych do importu plików, po naciśnięciu ikony klawisza Odświeżanie informacji o dostępnych plikach pomiarów. Oprócz nazwy pliku wyświetlają się informacje o: dacie i czasie pierwszego oraz ostatniego pomiaru, liczbie pomiarów, rozmiarze pliku. Wskazanie pozycji tabeli kursorem i kliknięcie lewym przyciskiem myszki wyświetla zakres danych pliku, które można zaimportować. Zakres można zawęzić, korygując punkty czasowe odpowiadające początkowi importowanych danych i Końcowi importowanych danych. Podany czas należy traktować orientacyjnie. Będzie on zgodny z rzeczywistymi zapamiętanymi w pliku danymi, o ile w trakcie rejestracji nie doszło do zaniku zasilania i utraty cykli pomiarowych. Po naciśnięciu ikony klawisza Import danych rozpocznie się przesyłanie danych. Zapełnienie paska postępu na dole karty informuje o ilości przesłanych danych.
Zakładki Tryb tekstowy i Tryb graficzny
Służą do prezentacji danych pomiarowych zaimportowanych do programu Multi Rejestrator. Na rysunku 4 pokazano wygląd zakładki Tryb tekstowy z pomiarami wyświetlonymi w formie tabeli. Każda pozycja zawiera zebrane dane jednego pomiaru. W kolejnych polach podana jest data i czas pomiaru oraz informacje o temperaturach odczytanych ze wszystkich 8 kanałów. Jeżeli do kanału nie był podłączony czujnik albo wystąpił błąd odczytu, zamiast cyfr temperatury wyświetlane są znaki podkreślenia. Wskazanie kursorem pola z pomiarem i kliknięcie lewym przyciskiem myszy spowoduje zaznaczenie pola na czerwono i pominięcie jego zawartości podczas prezentacji graficznej wykresów temperatur. Możliwe są także wykluczenia grupowe.
Po wpisaniu np. wartości "37" w polu edycyjnym na dole zakładki Tryb tekstowy i kliknięciu ikony przycisku Zaznacz pomiar, wszystkie komórki tabeli zawierające odczyty z temperaturą 37°C zostaną zaznaczone na czerwono i pominięte przy sporządzaniu wykresu temperatur. Kliknięcie ikony przycisku Usuń zaznaczenie kasuje wszystkie zaznaczenia.
Pomiary zgromadzone w tabeli prezentowane są w formie wykresu zarejestrowanych temperatur na zakładce Tryb graficzny, której przykładowy wygląd pokazano na rysunku 5. Zakresy na osiach temperatury i liczby pomiarów dopasowują się automatycznie do prezentowanych wykresów temperatur. Ikony kolorowych przycisków z cyframi od 1 do 8 włączają lub wyłączają wyświetlanie pomiarów kanału o odpowiadającym numerze. Jeżeli w trakcie rejestracji czujnik przez pewien czas nie był prawidłowo odczytywany, na wykresie temperatur kanału pojawi się przerwa.
Zapis i odczyt plików pomiarów
Pomiary zgromadzone w tabeli na zakładce Tryb tekstowy można zapisać jako plik historyczny na twardym dysku komputera. Po naciśnięciu przycisku na pasku narzędziowym Zapis pliku pomiarów na dysk, należy podać katalog i nazwę pliku, pod jaką pomiary z tabeli mają zostać zapisane. W podanej lokalizacji na dysku zostanie utworzony plik tekstowy z danymi.
Po naciśnięciu przycisku na pasku narzędziowym Odczyt z dysku pliku pomiarów można odczytać dane zapisanego wcześniej pliku pomiarów historycznych. Dane zostaną umieszczone w tabeli i można je będzie oglądać w formie wykresów temperatur.
Taki sam sposób odczytu można zastosować w przypadku plików zgromadzonych na pendrive, który po wyjęciu z gniazda rejestratora należy podłączyć do wolnego portu USB komputera. To szybszy sposób odczytu danych niż ich import, gdy pendrive znajduje się w gnieździe płytki rejestratora.
Funkcje zapisu i odczytu plików są aktywne nawet wtedy, gdy rejestrator nie zostanie podłączony do komputera. Objętość pojedynczego pliku pomiarów jest ograniczona do 1 MB.
Format pliku pomiarów
Plik pomiarów jest czystym plikiem tekstowym. Składają się na niego dane kolejnych pomiarów zapisywane ze stałą liczbą znaków:
N:190824;Time:143143;T1= ___._’C;T2= ___._’C;T3= 24.8’C;
T4= 26.3’C;T5= 26.0’C;T6= ___._’C;T7= ___._’C;T8= 24.6’C; CR LF
Na początku znajduje się informacja o dacie pomiaru w formacie 2 cyfry roku, 2 cyfry miesiąca i 2 cyfry dnia. Dalej w podobny sposób zapisywana jest informacja o czasie rejestracji: godzina, minuta, sekunda. Następnie w kolejności od 1 do 8 podawane są temperatury odczytane z kolejnych kanałów pomiarowych. Za etykietą kanału np. "T1=" występuje spacja lub znak minus w przypadku temperatur ujemnych. Trzy kolejne pozycje przeznaczone są na cyfry temperatury w stopniach. Po znaku kropki jedno miejsce jest zarezerwowane na cyfrę części dziesiętnej stopnia. W przypadku braku prawidłowego odczytu zamiast cyfr pojawiają się znaki podkreślenia. Za cyframi temperatury kanału występują dwa znaki: apostrof oraz "C". Kolejne pozycje danych rozdzielone są znakiem średnika. Linia danych pomiarowych zakończona jest kodami powrotu karetki i nowej linii, w przykładzie zaznaczonymi jako CR i LF. Bezpośrednio za tymi kodami zapisywane są dane temperatur zarejestrowane w kolejnym cyklu pomiarowym.
Przeprowadzanie pomiarów
Typowy proces przeprowadzania pomiarów może wyglądać następująco:
- Płytka rejestratora podłączana jest do komputera, na którym został uruchomiony program Multi Rejestrator.
- Po nawiązaniu połączenia między programem a płytką można sprawdzić i ewentualnie skorygować: ustawienie zegara RTC rejestratora i ustawienie okresu, jaki ma upłynąć pomiędzy kolejnymi pomiarami.
- Zaznaczane jest pole opcji zezwalającej na wykorzystanie klawisza STARTU/STOPU cyklu rejestracji.
- Płytka rejestratora jest odłączana od komputera i przenoszona w docelowe miejsce.
- Do zacisków gniazd wybranych kanałów podłączane są czujniki. W minimalnej konfiguracji należy podłączyć masę każdego z czujników i wyprowadzenie magistrali 1-Wire (na płytce są to środkowe zaciski gniazd, oznaczone cyfrą odpowiadającą numerowi kanału). Dodatkowo, jeśli są dostępne, można połączyć wyprowadzenia VCC czujników temperatury 18B20 z wyprowadzeniami +5 V na płytce.
- Do gniazd USB płytki należy podłączyć pendrive i zasilanie. Jeżeli dioda STATUS-u LED11 migoce w sekwencji błysków: dłuższy i dwa krótsze, przycisk START/STOP S1 na płytce jest aktywny.
- Po jego naciśnięciu i przytrzymaniu przez około 3 s migotanie diody STATUS-u powinno ustać. Rozpocznie się cykl pomiarowy a diody kanałów, do których są podłączone czujniki temperatury, powinny się świecić bez przerwy.
W czasie trwania cyklu pomiarów można na bieżąco kontrolować status rejestracji a także ściągać cząstkowe wyniki pomiarów. Wymaga to podłączenia do gniazda X2 kabla USB. Będzie on służył jednocześnie do zasilania i do komunikacji z komputerem, na którym jest uruchomiany program Multi Rejestrator. Rejestracja kończy się po ponownym naciśnięciu przez 3 sekundy klawisza S1 na płytce. Diody sygnalizacyjne kanałów powinny zgasnąć a dioda STATUS-u zacznie migotać.
Opis rozkazów serwisowych i poleceń sterujących
Do komunikacji i sterowania rejestratorem wykorzystywana jest transmisja szeregowa obsługiwana portem UART1 kontrolera U1. Parametry transmisji są stałe: szybkość 115200 bodów, 8 bitów danych, bez parzystości. Tą drogą przesyłane są rozkazy serwisowe i polecenia. Protokół opiera się na wysyłaniu przez program nadzorujący komend i oczekiwaniu na odpowiedzi rejestratora.
Ponieważ rozkazy istotnie wpływają na funkcjonowanie urządzenia, są przez nie przyjmowane tylko w trybie serwisowym. Inicjacja trybu serwisowego następuje po wysłaniu 3 znaków "+++" poprzedzonych i zakończonych okresem ciszy równym co najmniej czasowi wysłania 2 znaków przy szybkości 115200. Rejestrator wchodzi w tryb serwisowy, potwierdzając swój stan komunikatem "OK\r" i trwałym zapaleniem diody STATUS-u. Jeżeli w ciągu 10 sekund nie zostaną przesłane kolejne prawidłowo zdekodowane rozkazy, tryb serwisowy automatycznie jest zamykany, o czym informuje zgaszenie diody LED STATUS-u. Każdy odebrany rozkaz automatycznie przedłuża czas trwania trybu serwisowego o kolejne 10 sekund. Wyjątkiem jest rozkaz " ATO\r", który wymusza zakończenie trybu serwisowego.
Z wyjątkiem transmisji "+++" wszystkie rozkazy i potwierdzenia kończone są kodem powrotu karetki "\r" CR. W tabeli 1 zostały zebrane wszystkie rozkazy serwisowe, na które odpowiada rejestrator.
Polecenia sterujące nie wpływają na bieżące ustawienia rejestratora. Związane są z importem danych z plików na pendrivie i są obsługiwane w trybie normalnej pracy, także gdy aktywny jest cykl pomiarowy. Wszystkie polecenia i potwierdzenia kończone są kodem powrotu karetki "\r" CR.
"PLIK_LIST\r" polecenie odczytu informacji o dostępnych plikach zapisanych w katalogu pomiarów na pendrivie.
Zależnie od sytuacji rejestrator może odpowiedzieć następującym komunikatem:
path ST:RRMMDD,GGMMSS;SP:RRMMDD,
GGMMSS;IE:xx;RR:xx\r
gdzie:
path – ścieżka do pliku pomiarów
ST: – data RRMMDD, czas GGMMSS startu pomiarów zapisanych w pliku
SP: – data RRMMDD, czas GGMMSS zakończenia pomiarów zapisanych w pliku
IE: – liczba zapisanych w pliku cykli pomiarów
RR: – rozmiar pliku w bajtach
Po odebraniu danych można do rejestratora wysłać komunikat "OKF\r" oznaczający oczekiwanie na przesłanie danych o kolejnym pliku.
Gdy przesłane zostaną informacje o wszystkich dostępnych plikach lub na pendrivie nie ma żadnych plików pomiarów albo odczyt z pendrive'u jest niemożliwy, rejestrator przesyła w odpowiedzi komunikat "OK\r".
"PLIK_RETRY\r" polecenie przesłania pomiarów z ostatnio dopisywanego pliku lub
"PLIK_RETRY path\r" polecenie przesłania pomiarów z pliku wskazanego ścieżką dostępu path, lub
"PLIK_RETRY path;start;stop\r" polecenie przesłania pomiarów z pliku wskazanego ścieżką dostępu path od numeru pomiaru start do numeru pomiaru stop.
W odpowiedzi rejestrator przesyła zapis kolejnego pojedynczego pomiaru. Po odebraniu danych można do rejestratora wysłać komunikat "OKF\r" oznaczający zachętę do przesłania kolejnej pozycji pomiarów w pliku. Jeżeli zostały przesłane wszystkie dane pomiarowe, rejestrator odpowiada komunikatem "OK\r".
Montaż
Rejestrator mieści się na pojedynczej płytce drukowanej o wymiarach 98×72 mm, której schemat wraz z rozmieszczeniem elementów pokazano na rysunku 6. Zbudowany jest głównie z elementów SMD o małym rastrze, więc montaż wymaga doświadczenia i dokładności. Pomocna przy montażu będzie fotografia 7, na której pokazano zmontowaną płytkę.
Ryszard Szymaniak, EP
- R4: 10 kΩ SMD 0805
- R3: 180 Ω SMD 0805
- R10, R13, R15, R17, R19, R21, R23, R25, R27, R28: 1 kΩ SMD 0805
- R1, R2, R5, R6: 22 Ω SMD 0805
- R7, R8: 270 Ω SMD 0805
- R12, R14, R16, R18, R20, R22, R24, R26: 2 kΩ SMD 0805
- R9, R11: 3 kΩ SMD 0805
- C4…C8, C13, C14, C19: 100 nF SMD 0805
- C18: 10 μF/16 V SMD
- C2, C3, C9, C10: 15 pF SMD 0805
- C16, C17: 1 μF SMD 0805
- C15: 470 pF SMD 0805
- C11, C12: 47 pF SMD 0805
- C1: 4,7 μF SMD 0805
- LD3…LD11: LED przewlekane 3 mm
- LD1, LD2: LED SMD 0805
- U5: 24C64 EEPROM SO-08
- U3: FT230XS SSOP16
- U2: MIC2544-1 SO-08
- U1: STM32F401RB TQFP64
- U4: TC1185-3V3 SOT25
- S1, S2: mikroprzyciski
- X3…X10: złącza śrubowe 3 pola raster 5 mm
- JP1: goldpiny 2 styki
- Q2: kwarc zegarkowy 32,768 kHz przewlekany
- BAT1: koszyk baterii litowej CR2430 przewlekany
- Q1: 8 MHz kwarc SMD SM49
- X1: gniazdo USB-A przewlekane
- X2: gniazdo USB-B przewlekane