Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 

eKosz (repozytorium archiwalne)

System inteligentnego kubła na śmieci zrealizowany w C++ na wbudowanej pamięci mikrokontrolera ESP8266 oraz w formie aplikacji desktopowej napisanej w języku C#.

Autorzy

Projekt został wykonany przez studentów Politechniki Śląskiej na wydziale Wydział Inżynierii Materiałowej i Metalurgii na kierunku Informatyka Przemysłowa:

Założenia

Część pierwsza dotycząca przedmiotu "Zaawansowane programowanie w języku C":

  • realizacja i umieszczenie wszystkich danych jedynie na pamięci mikrokontrolera,
  • realizacja kodu w sposób naprzemienny (przeplot) pomimo jednego wątku układu,
  • łatwość modyfikacji ustawień w kodzie,
  • prostota dodawania kolejnych elementów,
  • prostota i łatwość użycia przez zewnętrznego użytkownika.

Część druga dotycząca przedmiotu "Aplikacje wielowarstwowe":

  • odtworzenie funkcjonalności oferowanej przez układ w formie aplikacji desktopowej,
  • weryfikacja połączenia z urządzeniem,
  • nieblokujący interfejs działający w sposób asynchroniczny,
  • prostota interfejsu i użytkowania aplikacji,
  • odporność aplikacji na niepoprawne użytkowanie.

Rezalizacja części pierwszej

Do realizacji projektu z części programowania w języku C użyto modułu ESP8266 oraz zestaw elementów:

  • DHT11 – czujnik temperatury i wilgotności,
  • MPU6050 – 3-osiowy akcelerometr i żyroskop z wbudowanym termometrem,
  • BMP280 – cyfrowy barometr,
  • TSL2561 – czujnik natężenia światła otoczenia,
  • HC-SR04 – ultradźwiękowy czujnik odległości,
  • S90 – serwomechanizm modelarski.


Płytka prototypowa z elementami użytymi w projekcie


Płytka prototypowa założona w obudowie kubła

Urządzenie po podłączeniu zasilania uruchamia Hotspot „eKosz” na czas określony z góry (300s) w celu konfiguracji urządzenia. W przypadku braku konfiguracji urządzenie przechodzi w tryb uśpienia, wyłączając hotspot oraz usypiając wszystkie czujniki. Natomiast po konfiguracji, którą jest podłączenie urządzenia do zadanej sieci WiFi zaprojektowane oprogramowanie pozwala na:

  • sprawdzenie stanu urządzenia(pozycja klapy, ilość otwarć, poziom wypełnienia),
  • otwarcie i zamknięcie klapy „eKosza”,
  • wyświetlanie bieżących danych dostępnych czujników.


Menu konfiguracji WiFi dostępne z poziomu przeglądarki po podłączeniu się pod hotspot "eKosz"


Serwowana strona WWW dostępna po podłączeniu urządzenia do docelowej sieci lokalnej

Dane aktualizowane są co zadany czas (60s) z informacją o przedawnieniu lub braku danych. Powyższe możliwości zrealizowane są za pomocą wbudowanego serwera WWW, serwującego stronę, która odpytuje urządzenie o potrzebne dane za pomocą asynchronicznych zapytań GET i POST w języku JavaScript. Dane przesyłane są w formacie JSON.

Rezalizacja części drugiej

Do realizacji projektu z części aplikacje wielowarstwowe użyto języka C# w celu napisania aplikacji desktopowej. Pierwotnie jedyną opcją jest wprowadzenie adresu do połączenia z urządzeniem. Podczas próby połączenia następuje:

  • weryfikacja adresu pod względem składni adresu URL,
  • normalizacja adresu – ciąg musi rozpoczynać się od „http://” i kończyć na „/”,
  • weryfikacja czy pod danym adresem znajduje się API zaprojektowanego urządzenia w części pierwszej.

gdzie w razie napotkanych wyjątków zgłaszane są do użytkownika stosowne komunikaty np.: „Podany adres jest nieprawidłowy!”, „Podany adres jest niedostępny lub nie jest adresem eKosza!”. W przypadku braku wyjątków odblokowywana jest reszta interfejsu, która pozwala na:

  • otworzenie i zamknięcie klapy urządzenia,
  • pobranie danych na temat stanu urządzenia i jego czujników,
  • rozłączenie w celu nawiązania połączenia z innym urządzeniem.


Zrzut działajacej aplikacji eKoszApp

Ostateczny efekt


Cały działający eKoszsystem - urządzenie z serwowaną stroną z danymi


Zdobyte przez projekt odznaczenie jako "Projekt Miesiąca" na grupie Nastoletni Programiści.
(Michał Kucharski wpisany jako autor jako osoba zgłaszająca)

Notka: Repozytorium w celach archiwalnych, nie zanosi się na wprowadzanie poprawek :)

About

System inteligentnego kubła na śmieci

Resources

Releases

No releases published

Packages

No packages published