Chciałbym wam przedstawić projekt, który powstał jakiś czas temu, ale dopiero dzisiaj postanowiłem go zaprezentować
SmartMirror jest inteligentnym lustrem wyposażonym w asystenta głosowego oraz czujnik do rozpoznawania gestów dłoni. Lustro komunikuje się z zewnętrznymi web serwisami oraz bazą czasu rzeczywistego typu NoSQL Firebase, gdzie gromadzone są informacje dotyczące temperatury powietrza i wilgotności otoczenia odczytane za pomocą zewnętrznego modułu pomiarowego.
Cel projektu
Głównym celem projektu było stworzenie urządzenia typu Internet Rzeczy (IoT) wykorzystującego asystenta głosowego oraz technologie webowe. Ostatecznie postanowiłem stworzyć inteligentne lustro, które będzie posiadało następujące funkcje:
wyświetlanie prognozy pogody na najbliższe pięć dni,
dodawanie i wyświetlanie wydarzeń z kalendarza,
wyświetlanie zawartości skrzynki email,
wyświetlanie i dodawanie postów w serwisie społecznościowym,
wyświetlanie informacji odnośnie korków na drogach,
ustalanie lokalizacji na podstawie adresu IP,
sterowanie za pomocą komend głosowych,
komunikacja z zewnętrzną baza danych czasu rzeczywistego,
W pierwszej kolejności dokonałem implementacji asystenta głosowego. Wybór padł na Google Assistant, który został połączony z usługą Dialogflow służącej do tworzenia konwersacji w języku naturalnym. Użytkownik za pomocą komend głosowych może wykonywać następujące akcje:
dodawanie wydarzenia w konkretnym dniu - kalendarz Google,
dodawanie wydarzenia w konkretnym dniu i godzinie - kalendarz Google,
wyświetlanie następnego lub poprzedniego postu - Facebook,
przełączanie pomiędzy kartami - interfejs graficzny aplikacji.
Aplikacja urządzenia została podzielona na dwa moduły - klient oraz serwer. Aplikacje klienta została napisana w języku TypeScript (JavaScript) z wykorzystaniem Angular 5. Natomiast aplikacja serwera została napisana w języku JavaScript i uruchomiona w środowisku Node.js. Komunikacja pomiędzy aplikacjami odbywa się za pomocą protokołu WebSocket. Oprogramowanie urządzenia implementuje następujące funkcjonalności:
dodawanie oraz wyświetlanie postów z serwisu społecznościowego Facebook,
wyświetlenie informacji o aktualnym natężeniu ruchu oraz wyznaczenie optymalnej trasy z punktu A do punktu B,
dodawanie oraz wyświetlanie wydarzeń z kalendarza Google,
prognoza pogody,
wyświetlenie wiadomości ze skrzynki pocztowej Gmail.
Zewnętrzny moduł pomiarowy
W skład inteligentnego lustra wchodzi również zewnętrzny moduł pomiarowy, który służy do zdalnego pomiaru temperatury powietrza oraz względnej wilgotności otoczenia. Moduł ten służy do zdalnego pomiaru temperatury powietrza oraz względnej wilgotności otoczenia. Odczytane dane są następnie przesyłane do zewnętrznej bazy czasu rzeczywistego Firebase typu NoSQL. Komunikacja z bazą danych odbywa się za pośrednictwem sieci Internet z wykorzystaniem protokołu WebSocket, co pozwala na wyświetlanie informacji w czasie rzeczywistym. Baza Firebase stanowi główne medium transmisyjne pomiędzy zewnętrznym modułem pomiarowym a inteligentnym lustrem.
PS. Pomyśleć, że niecałą dekadę temu zaczynałem od programowania Atmega8 w języku Bascom, a dzisiaj potrafię tworzyć urządzenia sterowane głosem. To jest taki przykład dla wszystkich tych co zaczynają swoją przygodę z programowaniem AVR'ów. Zaczynając od programowania prostych mikrokontrolerów jesteśmy w stanie płynnie przejść do tworzenia coraz to bardziej zaawansowanych urządzeń wykorzystując w tym celu najnowocześniejsze języki programowania oraz technologie, które im niezwłocznie towarzyszą. Reasumując, czas poświęcony na naukę programowania mikrokontrolerów w języku C z pewnością nie był czasem straconym, pomimo że obecnie piszę w Java oraz JS! To taka złota myśl dla nowych adeptów tego fachu - programowaniem, co się zowie.
Nie spodziewałem się, że projekt zostanie przyjęty z takim entuzjazmem. Dziękuję za wszystkie komentarze! W weekend postaram się udostępnić kod źródłowy, więc każdy będzie mógł sobie prześledzić jak wygląda taka aplikacja.
Nie, nie czytałem na razie chociaż przypuszczałem, że to właśnie na RB zrobione Przeczytam później, bo teraz jestem w szpitalu z córcią i tak nie za bardzo się mogę skupić...
Dziękuję za umieszczenie posta na głównej i wszystkie opinie Mogę już zdradzić, że pracuję nad kolejnym małym projektem który wykorzystuje zestaw ATB do komunikacji z komputerem, więc każdy posiadacz zestawu będzie mógł go sobie zaimplementować i samodzielnie przetestować. Nie jest on tak zaawansowany technologicznie jak ten, ale z pewnością bardzo użyteczny w dobie Internetu. Stay tuned!
Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość
Nie możesz rozpoczynać nowych wątków Nie możesz odpowiadać w wątkach Nie możesz edytować swoich postów Nie możesz usuwać swoich postów Nie możesz dodawać załączników