Dziś rozpoczyna się konkurs “Daj się poznać“. Zgłosiłem się do niego z projektem, który od pewnego już czasu chodził mi po głowie i niedawno zabrałem się za jego realizację. Projekt z gatunku lub pogranicza Internetu Rzeczy (Internet of Things – IoT) oraz Inteligentnego Domu (Smart Home). W swoich założeniach ma być pewną pomocą w “zarządzaniu artykułami spożywczymi” w mojej lodówce. Wiem, że może wydawać się to trochę dziwne, że do takiej czynności potrzebna jest dodatkowa inteligencja, ale osobiście podoba mi się wizja powiadomienia mnie o zbliżającym się terminie ważności jogurtu czy mleka, a może nawet złożenia automatycznego zamówienia na kończące się produkty. Nie zawsze też pamiętam czy mam jeszcze jajka czy już może się skończyły, albo np. zostało tylko 2 :) Pomyślałem więc, że zacznę stopniowo dodawać inteligencję mojej lodówce.
Głównym elementem projektu jest najlepiej sprzedający się komputer w UK: Raspberry Pi. Będzie on odpowiedzialny za zbieranie informacji z różnych “czujników” i wysyłanie ich na serwer w Internecie. Na serwerze będzie sobie API, które zapisze komunikaty od mojej lodówki. Poniżej uproszczony schemat całego rozwiązania:
Na malince skrypt (?) w Pythonie będzie monitorował pewne zdarzenia i wysyłał je na serwer. Dodatkowo powstanie strona, taki Panel Administracyjny, gdzie będzie widoczny aktualny status oraz historia. Zastanawiałem się, czy nie pójść w stronę Windows IoT + C#, ale chyba skorzystam z okazji i nauczę się Pythona, o którym słyszałem wiele dobrego.
Projekt podzieliłem na etapy:
- Etap A: Uruchomienie Raspberry Pi i zaznajomienie się z jej możliwościami. Tutaj chcę też napisać kilka prostych skryptów w Pythonie, bo będę się go uczył od podstaw, także zapewne powstanie trochę kodu “dookoła” Smart Lodówki
- Etap B: Stworzenie API do zapisu / odczytu komunikatów o zdarzeniach. Dodatkowo bardzo prosta strona CRUDowa do testów
- Etap C: Obsługa podstawowych komunikatów: OTWARCIE_LODÓWKI oraz ZAMKNIĘCIE_LODÓWKI. Plus prosta wersja strony Panelu Administracyjnego ze statystykami. Jeszcze nie podjąłem decyzji w czym będzie ona zrobiona
- Etap D: Dodanie dodatkowych elementów do malinki. Nie zrobiłem jeszcze dokładnego rozeznania, ale widzę tu coś w stylu: kamera, czytnik kodów kreskowych, panel dotykowy. To jest najmniej sprecyzowany etap projektu. Chcę w szybki i łatwy sposób wprowadzać do systemu informacje o produktach spożywczych. Np. kupiłem mleko, skanuję kod, dodaję datę ważności i zdjęcie. Liczę też na pomysły od was bo wiem, że są rzeczy o których ja sam bym nawet nie pomyślał :)
- Etap E: Rozbudowa strony Panelu Administracyjnego o pełną inwentaryzację lodówki, historię, moduły logiki biznesowej, jak np. przypominanie o zbliżającym się terminie ważności
- Etap F: Kolejne pomysły które przyjdą do głowy
Zdefiniowałem też Minimal Viable Product czyli stan projektu, z którego będę zadowolony i będę gotowy nadać mu zaszczytną wersję 1.0. Po zakończeniu etapu C otworzę szampana i będziemy świętować :) Kolejne etapy jak najbardziej powstaną, ale będą rozwijane jako nowa funkcjonalność zwiększająca wartość rynkową projektu ;)
Post ten będę aktualizował i znajdą się tutaj wszystkie linki do postów, stron i githubów, które będą dotyczyły projektu “Smart Lodówka”.
Ważne linki:
Posty:
- Hello “Smart Lodówka” (ten post)
- Malinka, malinka, malinka moja
- Świeci się!
- Visual Studio + Python
- OWIN WebApi na hostingu Webio
- Simple.Data.SqlServer na hostingu Webio
- Aurelia, początki
- Frontendowe narzędzia
- Zapytania HTTP w Pythonie
- Debugowanie skryptu Pythona na Raspberry Pi
- Daj się poznać 2016 – podsumowanie
Dodam też, że przy tak dużej liczbie uczestników (przy okazji, gratulacje dla Maćka i całej społeczności) z łatwością znalazłem projekty, które będę z uwagą śledził i zapewne nawet z nich korzystał po ukończeniu. Trzymam kciuki za wszystkich.
C.
Like this:
Like Loading...
2 Comments
Fajny pomysł, sam mam malinkę i chętnie będę śledził zmagania z nią:)
Dzięki. Z malinką jest tak, że pomysłów starczyłoby na kilka konkursów :)