Ogólne

Aplikacja webowa – zasada działania

Pinterest LinkedIn Tumblr

howtoNa potrzeby projektu została stworzona aplikacja webowa, która ma umożliwić użytkownikowi sterowanie układem elektronicznym oraz odczyt danych z poszczególnych czujników. Aplikacja ma formę strony internetowej, dzięki czemu jest intuicyjna i łatwa w obsłudze. Szablon aplikacji wykonany jest w technologii Responsive Web Design, dzięki czemu aplikacja dostosowuje się do urządzenia na którym jest wyświetlana. Front-end czyli wygląd oparty jest o szkielet dostarczany przez framework Twitter Bootstrap. Back-end czyli logika napisana jest w języku PHP przy wsparciu bazy danych MySQL. Aplikacja umieszczona jest na zewnętrznym serwerze www, umożliwiając dostęp do zasobów z każdego miejsca gdzie dostępna jest sieć Internet. Aby projekt mógł się komunikować w sieci niezbędne było skorzystanie z dwóch odrębnych serwisów takich jak teleduino oraz smsAPI.

Teleduino to darmowa usługa stworzona przez Nathana Kennedy’ego. To stosunkowo proste narzędzie oferuje spore możliwości w zakresie komunikacji z platformą Arduino za pośrednictwem Internetu. Po dokonaniu bezpłatnej rejestracji na stronie projektu i otrzymaniu unikalnego klucza dla naszej płytki, otrzymujemy możliwość sterowania Arduino za pomocą specjalnego adresu URL. Za pomocą Teleduino można na przykład sterować cyfrowymi pinami wyjściowymi, odczytywać stan pinów cyfrowych i analogowych.

smsAPI – usługa umożliwiająca wysyłanie smsów z powiadomieniami pod wskazane numery telefonów. Dzięki udostępnionym przez producenta bibliotekom, możliwa jest integracja z praktycznie każdym projektem. Przejrzysta dokumentacja i wsparcie techniczne sprawiają, że jest to jedno z lepszych rozwiązań dostępnych w Polsce. Konfiguracja jest bardzo prosta. Po dokonaniu rejestracji otrzymujemy klucz API, następnie pobieramy bibliotekę i na końcu uzupełniamy plik konfiguracyjny podając numer telefonu odbiorcy oraz treść wiadomości jaka ma być wysłana.

Na poniższym schemacie przedstawiono przepływ danych pomiędzy elementami systemu.

app

 

Część fizyczna czyli mikrokontroler przekazuje zebrane informacje do aplikacji w postaci odpowiednich zmiennych. Dodatkowo mikrokontroler komunikuje się z usługą Teleduino. Do usługi Teleduino wysyłane są takie informacje jak stan poszczególnych pinów cyfrowych i analogowych. Usługa Teleduino posiada odpowiednie metody, które pozwalają pełnić funkcję sterującą, wysyłając odpowiednie polecenia do mikrokontrolera.

Aplikacja czyli część logiczna, odbiera dane z Teleduino i Arduino. Następnie zapisuje je w bazie danych. Aplikacja odpowiada również, za uruchamianie odpowiednich skryptów po ingerencji użytkownika. Np. jeżeli użytkownik kliknął przycisk uruchamiający światło w pokoju dziennym to aplikacja uruchamia skrypt PHP, który wywołuje metodę zaimplementowaną w Teleduino. Następnie Teleduino wysyła odpowiednią metodę (zmiana stanu pinu) do Arduino i światło zostaje zaświecone.

case

Aplikacja sprawdza również pewne warunki związane ze zdarzeniami. Jeżeli moduł podpięty do Arduino wykryje ruch, to odpowiednia funkcja wysyła wpis do bazy danych z datą i godziną zdarzenia. Następnie aplikacja www sprawdza wpisy w bazie danych, jeżeli pojawił się nowy rekord to zostaje uruchomiony odpowiedni skrypt, który uruchamia usługę SMS API i wysyła sms z informacją o zdarzeniu. Chyba że powiadomienia o zdarzeniach zostały wyłączone w ustawieniach. Wtedy wpis w bazie widnieje, lecz nie podejmowana jest żadna akcja. Takie sytuacje zdarzają się kiedy użytkownik jest w domu.

blank

Funkcjonalności aplikacji webowej:

  1. Odczytywanie danych z czujników w formie tabel

Aplikacja umożliwia wyświetlanie danych ze wszystkich podłączonych czujników. W projekcie występuje czujnik gazów łatwopalnych, czujnik ruchu, czujnik otwarcia okien jak również zestaw termometrów. W przypadku termometrów zastosowanie magistrali 1-wire pozwala na wielu termometrów na jednej linii, które mogą być obsługiwane poprzez jedno wyprowadzenie mikrokontrolera. Takie zastosowanie pozwala na monitorowanie temperatury w każdym pomieszczeniu budynku mieszkalnego.

  1. Zdalne sterowanie oświetleniem i monitorowanie stanu

W panelu użytkownika została zaimplementowana możliwość sterowania oświetleniem pomieszczenia poprzez gniazdo wysokiego napięcia 230V. Przekaźnik 4 kanałowy pozwala na podłączenie 4 źródeł oświetlenia. Usługa Teleduino umożliwia odczytanie stanów pinów, dzięki czemu możliwy jest również podgląd graficzny aktualnego stanu zasilania gniazda sieciowego.

  1. Zdalne zamykanie drzwi oraz rejestracja użyć kart dostępowych

Sterowanie serwomechanizmem za pomocą aplikacji www pozwala na zdalne zamknięcie pomieszczenia w przypadku zapomnienia użycia klasycznego klucza. Dodatkowo prowadzony dziennik, pozwala na rejestrację czasu i daty użycia kart.

  1. Otrzymywanie powiadomień sms/email o zdarzeniach

Aplikacja umożliwia automatyczne wysłanie wiadomości sms/email w przypadku wystąpienia  krytycznego zdarzenia takiego jak np.: wykrycie ruchu w pomieszczeniu, wykrycie szkodliwych gazów czy otwarcie okna.

  1. Konfigurowanie powiadomień o zdarzeniach

Użytkownik otrzymuje możliwość konfigurowania powiadomień o zdarzeniach. Do dyspozycji są trzy tryby pracy. Tryb ręczny – powiadomienia będą wysyłane w każdym przypadku wystąpienia zdarzenia. Tryb automatyczny – powiadomienia będą wysyłane w określonych godzinach np.: pod nieobecność użytkownika. Powiadomienia wyłączone – powiadomienia o zdarzeniach będą rejestrowane lecz nie będą wysyłane komunikaty sms/email o zdarzeniach.