Krzysztof Bolek III rok Koło Naukowe Techniki Cyfrowej dr inż. Wojciech Mysiński opiekun naukowy AN ON OFF TEMPERATURE CONTROLLER WITH A MOBILE APPLICATION DWUPOŁOŻENIOWY REGULATOR TEMPERATURY Z APLIKACJĄ MOBILNĄ Keywords: Arduino, temperature regulation, mobile application Słowa kluczowe: Arduino, regulacja temperatury, aplikacja mobilna 1. Założenia projektu Projekt ma służyć do sterowania ogrzewaniem w domu, jego sercem jest mikrokontroler Arduino Leonardo. Wybór padł na właśnie ten mikrokontroler z uwagi na prostotę jego programowania, oraz ilość dostępnych bibliotek. W projekcie ponadto zostały użyte następujące elementy: czujniki Dallas DS1820, zakres pomiarowy -55 do +125, wyświetlacz LCD alfanumeryczny 16x2 został podłączony przez port I2C za pomocą Expandera PCF8574, moduł Bluetooth HC-06 podłączony przez konwerter napięć, moduł RTC DS1307, przekaźnik NT75 2C 8A/250VAC lub 8A/30VDC, konwerter napięć. Ustawianie temperatury zostało zrealizowane za pomocą aplikacji mobilnej na system Android. Układ zawiera wyświetlacz LCD, na którym jest wyświetlana temperatura w pomieszczeniu i na zewnątrz (zależy od umiejscowienia czujnika). W późniejszym etapie prac został dodany również zegar. Tryb wyświetlacza zmienia się za pomocą przycisku, który jest obsługiwany przez przerwanie sprzętowe mikrokontrolera.
Rysunek 1: Schemat blokowy projektu 2. Pierwsze prace 2.1 Zasilacz Jako pierwszy element został zaprojektowany i wykonany zasilacz stabilizowany, posiadający dwa napięcia wyjściowe 3,3V oraz 5V. Rysunek 2: Schemat ideowy zasilacza
Zasilacz został wykonany na płytce uniwersalnej, diody służą do sygnalizacji obecności napięcia. Użyto dwóch osobnych mostków oraz transformatora dwu-uzwojeniowego, aby zwiększyć wydajność prądową obu wyjść. Dwa napięcia wyjściowe podyktowane są potrzebą zasilania urządzeń posiadających dwa różne rodzaje poziomów logicznych. 2.2 Wyświetlacz LCD Kolejnym zadaniem było podłączenie wyświetlacza LCD tak, aby nie zajmować zbyt wielu pinów cyfrowych. Zostało to zrealizowane za pomocą układu PCF8574 oraz portu I2C. Rysunek 3: Schemat ideowy podłączenia wyświetlacza LCD Układ został zlutowany na płytce uniwersalnej nadawanie adresu układowi zostało zrealizowania na przełącznikach bistabilnych. 3. Pomiar temperatury Czujniki łączą się z mikrokontrolerem za pomocą magistrali szeregowej One Wire, do której można podłączyć kilka czujników jednocześnie.
Rysunek 4: Schemat podłączenia czujników Rozdzielczość czujników została ustawiona na 10 bitów, co odpowiada 0.25 stopnia Celcjusza. Jest to wystarczająca dokładność do pomiaru i sterowania temperaturą w mieszkaniu. Zmierzoną temperaturę pokazuje na wyświetlacz LCD poprzez wcześniej wykonaną przystawkę. Pomiar temperatury został również wykorzystany do regulacji dwu położeniowej ogrzewania. Rysunek 5: Wyświetlacz LCD 4. Sterowanie temperaturą 4.1 Przełączanie Do przełączania elektrozaworów zastosowany został przekaźnik 230VAC/8A. Umożliwia to podłączenie układu do dowolnego elektrozaworu dostępnego na rynku. 4.2 Sterowanie Temperatura jest zadawana za pomocą aplikacji Android przez Bluetooth. Pętla histerezy została ustawiona na 1 stopień w programie.
Komunikacja odbywa się za pomocą modułu HC-06, który komunikuje się z Arduino za pomocą interfejsu UART przez konwerter napięć. 5. Data i godzina Aktualny czas pokazywany jest na wyświetlaczu LCD. Za jego pomiar odpowiada moduł RTC DS1307, podłączony do Arduino przez magistrale I2C. Czas jest ustawiany tak samo jak temperatura za pomocą aplikacji Android. 6. Aplikacja Aplikacja została stworzona w oparciu o środowisko RoboRemo na Android. Jego obsługa jest bardzo intuicyjna. Aplikacja umożliwia nam odczytanie w dowolnym monecie temperaturę zmierzoną, zadaną oraz godzinę i datę. Umożliwia nam również ustawianie godziny daty oraz zadawanie temperatury. Rysunek 5: Ekran z aplikacji mobilnej
Temperatura aktualna wyświetlana jest w lewym górnym rogu, w prawym jest zadana. Czas ustawiamy przyciskami + i, jednak jest on zapamiętany dopiero po kliknięciu SET. 7. Zabezpieczenia 7.1 Błędy krytyczne Program został zabezpieczony przed błędami krytycznymi mogącymi spowodować jego zawieszenie się. W tym celu wykorzystano funkcję Arduino: watchdog. Która jeśli nie zostanie zresetowana w określonym czasie powoduje reset całego mikrokontrolera. 7.2 Poparzenia Zabezpieczenie przed poparzeniem o gorący grzejnik, jeżeli jego temperatura przekroczy 60 zostanie on wyłączony.