Jestem w trakcie tworzenia sporego projektu pod kodową nazwą CyberHome, priorytetem jest dla mnie zgłębienie jak największej ilości programistycznych tajników, dlatego wybrałem technologie dość grubego kalibru. W czym rzecz – o tym poniżej, zapraszam do lektury.
Cel projektu:
Celem projektu jest stworzenie systemu monitorującego otoczenie komunikującego się z użytkownikami poprzez stronę WEB. Dodatkowo zakładamy, że czujniki będą umieszczone w odległej lokalizacji, w której nie będzie stałego dostępu do Internetu. Naszym priorytetem jest niewysoki budżet jaki chcemy przeznaczyć na aktywne elementy elektroniczne w całym rozwiązaniu.
Założenia szczegółowe:
Zamierzamy monitorować domek letniskowy wraz z przyległym ogródkiem. 🙂
Monitorowaniu podlegają:
- Ruch w 3 pomieszczeniach domku letniskowego oraz na zewnątrz domku (5-8 czujników ruchu typu PiR)
- Temperatura wewnątrz każdego pomieszczenia oraz na zewnątrz (4-6 czujników)
- Występowanie opadów atmosferycznych (1 czujnik)
- Natężenie oświetlenia (wykrywanie dzień/noc)
Dodatkowo:
- System może uruchomić centralkę alarmową (tryb alarmu „uzbrojony” + ruch)
- System może uruchomić reflektor znajdujący się przed wejściem do domku (noc+ruch przed domem)
- System można przełączyć w tryb „uzbrojony” (uruchamia alarm po wykryciu ruchu) za pomocą SMSa, analogicznie w druga stronę.
- Zdalnie, z dowolnego miejsca można monitorować parametry otoczenia oraz uruchomić centralkę alarmową i reflektor poprzez interfejs Web.
- System może powiadamiać nas poprzez SMS i za pomocą powiadomień Push na telefon z systemem android (np. wykrycie ruchu w trybie „uzbrojony„).
Założenia dot. technologii:
- Istnieje Centralna Baza Danych umieszczona w chmurze (Azure), do której spływają informacje z czujników. (MS SQL Server)
- Istnieje strona Internetowa (ASP .NET MVC, BreezeJs, AngularJS, Bootstrap) która służy do monitorowania stanu czujników.
- W domku letniskowym znajduje się baza systemu do której bezprzewodowo spływają sygnały z poszczególnych czujników (baza to mikroprocesor ATmega328, wraz z modułami NRF24L (transmisja bezprzewodowa) i M590 (GSM), smaczkiem będzie podejście do wielowątkowości w Arduino).
- Baza systemu komunikuje się z RESTapi umieszczonym w chmurze za pomocą modemu GSM.
- Czujniki komunikują się bezprzewodowa z bazą systemu, stawiamy na energooszczędność i ładowanie solarne.
Spodziewane problemy:
- Komunikacja wielu czujników zdalnych z „centralą” – Arduino jest jednowątkowe.
- Komunikacja modemu GSM z RESTapi (skorzystam z najtańszego modemu za ~1.4$, komunikację trzeba zaimplementować niskopoziomowo, oprogramować ponawianie oraz retransmisję).
- Brak zwrotnego kanału komunikacji. Jeśli za pomocą aplikacji Webowej chcielibyśmy dokonać interakcji z systemem czujników (np. poprosić o zbadanie stanu otoczenia na żądanie, bądź uruchomić alarm) – nie mamy zestawionego kanału, który by to umożliwiał. SMSy odpadają ze względu na koszt (potrzebny byłby drugi moduł nadający wraz z oprogramowaniem, do tego dochodzi koszt samych SMSów). Zaplanowałem obejście tego problemu, ale o tym później.
Szacowany budżet:
Łączna kwota potrzebna na zakup podzespołów to około 50,- (zakładamy, że kupujemy u skośnookich przyjaciół na Aliexpress.com).
Dodatkowo koszt to wyposażenie warsztatu (30 do 400,- zależnie od klasy i ilości sprzętu).
Schemat funkcjonalny:
GitHub z kodami:
Kody źródłowe znajdują się TUTAJ!
Pozwólcie, że pominę całą „pseudo-profesjonalną dokumentację„, w tym projekcie chodzi o fun, a nie o pokaz moich możliwości w obszarze papierologii. 🙂
Zapraszam do śledzenia kolejnych postów, będą się pojawiać regularnie, średnio 2 razy w tygodniu w ramach wyzwania Daj się Poznać!
Pomysł ciekawy-ambitny, wyzwanie duże.
Ja chciałbym zacząć zancznie skromniej.
Dopiero co znalazłem z grubsza opisany M590.
Proszę o garść informacji jak spowodować aby odbierane SMSy
lub może komendy RESTapi przełożył na wyjściowe sygnały sterujące i…
na odwrót. Sygnały przychodzące z lokalnych czujników
wysyłał SMSem i/lub przez RESTapi.
Na jakim etapie znajduje się aktualnie CyberHome?
Pozdrawiam i życzę sukcesu
Żyje ten blog jeszcze? Zapowiadał się bardzo interesująco… ambitne cele klarownie opisane. Proszę o kontakt, choćby mailowy.