Spisu treści:

IDC2018IOT GarbageCan-Online: 7 kroków
IDC2018IOT GarbageCan-Online: 7 kroków

Wideo: IDC2018IOT GarbageCan-Online: 7 kroków

Wideo: IDC2018IOT GarbageCan-Online: 7 kroków
Wideo: Как выращивают бананы для экспорта в Украину. Мир Наизнанку 13 сезон 8 серия. Эквадор 2024, Listopad
Anonim
Image
Image
Wymagane części
Wymagane części

Wstęp

Każdy wie, co się dzieje, gdy zbyt długo zostawiamy śmieci w śmietniku, nie usuwając ich. Cóż, najbardziej oczywistą rzeczą jest to, że nie ma miejsca na więcej śmieci, ale też zaczyna śmierdzieć i robi się bardzo nieprzyjemnie.

Dzięki temu projektowi staramy się pomóc Ci monitorować pojemniki na śmieci w domu\obszarze roboczym\etc, dzięki czemu zawsze wiesz, kiedy są pełne, i możesz podjąć natychmiastowe działania, wyrzucając śmieci.

System powiadomi Cię telefonicznie lub alertem na desce rozdzielczej, że musisz opróżnić kosz na śmieci. System uwzględnia stopień zapełnienia śmietnika, ale także temperaturę i wilgotność mierzoną w jego wnętrzu. Wszyscy znamy pilną potrzebę opróżniania pojemników na śmieci w upalne i wilgotne dni…

Główne cechy

  1. Panel monitorowania:

    • Głowna sekcja:

      • Poziom zapełnienia każdego kosza na śmieci.
      • Temperatura i wilgotność każdego kosza na śmieci.
    • Sekcja Statystyki:

      • Najpełniejszy kosz na śmieci.
      • Najgorętszy kosz na śmieci.
  2. System alertów i powiadomień:

    • Obsługiwane są następujące wydarzenia:

      • Kosz na śmieci jest pełny.
      • Wystąpił błąd czujnika.
    • Alerty o zapełnieniu uwzględniają poziom zapełnienia pojemnika na śmieci, ale także temperaturę i wilgotność pojemnika na śmieci.
    • Alerty mogą być wysyłane za pośrednictwem powiadomień telefonicznych i alertów na desce rozdzielczej.
    • Każdy kanał alertu można włączać i wyłączać za pomocą deski rozdzielczej.
  3. Skalowalność:

    • Za pomocą przycisku kalibracji możliwe jest dostosowanie systemu do różnych pojemników na śmieci o różnej pojemności.
    • Stosunkowo łatwo można dodać więcej pojemników na śmieci. Można zamontować ten sam system na nowym śmietniku, ustawić identyfikator śmietnika i skalibrować go (naciśnięcie przycisku). Posiadanie więcej niż 3 pojemników na śmieci będzie wymagało rozszerzenia pulpitu nawigacyjnego (łatwe zadanie do wykonania).

Kim jesteśmy?

Ten projekt został stworzony (z miłością i oddaniem!) przez Rom Cyncynatus i Daniel Alima - Studenci IDC Herzliya jako końcowy projekt naszego kursu IoT. Mamy nadzieję, że nasze prace okażą się przydatne i będą czerpać z nich przyjemność!

Krok 1: Wymagane części

Aby zbudować system, będziesz musiał nabyć następujące komponenty i części:

  1. Kosz na śmieci (najlepiej z pokrywką): Będzie używany do… cóż… wiesz, co z tym zrobimy, co?;)
  2. Płytka do krojenia chleba: Do łączenia wszystkich różnych komponentów bez użycia lutowania.
  3. NodeMCU (ESP-8266): Odpowiada za odczytywanie czujników i wysyłanie informacji do chmury.
  4. Czujnik odległości IR - Sharp 0A41SK: Ten czujnik mierzy ilość śmieci (poziom zapełnienia) wewnątrz puszki.
  5. Czujnik temperatury i wilgotności - DHT11: Ten czujnik mierzy temperaturę i wilgotność wewnątrz kosza na śmieci.
  6. Przełącznik chwilowy: Służy do kalibracji czujnika odległości zgodnie z rozmiarem kosza na śmieci.
  7. Folia aluminiowa: będzie używana do tworzenia detektora stanu pokrywy - niezależnie od tego, czy jest otwarta, czy zamknięta.
  8. Przewody połączeniowe: Uzyskaj dużo, w różnych długościach i kolorach. Połączy wszystko razem.
  9. Taśma klejąca: Będziemy musieli przymocować rzeczy na swoim miejscu.
  10. Kabel Micro-USB: Do podłączenia NodeMCU do komputera w celu programowania, a później do zasilania.
  11. Zasilacz USB (ładowarka do smartfona): zapewni zasilanie NodeMCU po zainstalowaniu na koszu na śmieci.

Krok 2: Okablowanie i montaż

Okablowanie i montaż
Okablowanie i montaż
Okablowanie i montaż
Okablowanie i montaż
Okablowanie i montaż
Okablowanie i montaż

Okablowanie

Umieść NodeMCU na płytce stykowej tak, aby wygodnie było podłączyć go później do kosza na śmieci i podłączyć do niego kabel USB. Następnie zapoznaj się ze schematem połączeń powyżej, aby podłączyć różne komponenty do NodeMCU. Upewnij się, że używasz długich przewodów do czujników i przewodów stanu, aby wygodnie było zainstalować system i używać z nim kosza na śmieci.

  • Czujnik odległości IR - Sharp 0A41SK:

    • Vin (czerwony) Vin
    • GND (czarny) GND
    • Vout (żółty) A0
  • Czujnik temperatury i wilgotności - DHT11:

    • Vin (czerwony) 3V3
    • GND (czarny) GND
    • DANE (żółty) D4
  • Przełącznik chwilowy:

    • Pin1 D3
    • Pin2 GND
  • Przewody stanu pokrywy (otwarte/zamknięte):

    • Przewód1 D2
    • Przewód2 GND

montaż

Montaż systemu na śmietniku jest dość prosty. Przymocuj deskę do krojenia chleba do kosza na śmieci, najlepiej blisko pokrywy. Użyj taśmy lub opaski kablowej, aby zamocować go na miejscu. Następnie:

  1. Umieść czujnik odległości IR na środku pokrywy (od wewnętrznej strony!). Upewnij się, że jest odpowiednio zabezpieczony, w przeciwnym razie napotkasz fałszywe odczyty!
  2. Umieść czujnik temperatury i wilgotności gdzieś wewnątrz kosza na śmieci. Zabezpiecz taśmą.
  3. Przykryj bok pokrywki i końcówkę kosza folią aluminiową. Upewnij się, że jest dobry kontakt, gdy pokrywa jest zamknięta. To zasygnalizuje systemowi, że kosz na śmieci jest otwarty lub zamknięty. Następnie wklej każdy z przewodów stanu pokrywy w jedną z folii aluminiowej i zabezpiecz taśmą.

Krok 3: Skonfiguruj MQTT, Node-RED i IFTTT

Skonfiguruj MQTT, Node-RED i IFTTT
Skonfiguruj MQTT, Node-RED i IFTTT
Skonfiguruj MQTT, Node-RED i IFTTT
Skonfiguruj MQTT, Node-RED i IFTTT
Skonfiguruj MQTT, Node-RED i IFTTT
Skonfiguruj MQTT, Node-RED i IFTTT

Większość logiki projektu jest faktycznie zaimplementowana w chmurze. NodeMCU wysyła dane do serwera MQTT, a Node-RED zużywa je i stosuje na nim swoją logikę (więcej o architekturze dalej). Wreszcie, aby przesyłać powiadomienia push (alerty) na nasz smartfon, wykorzystaliśmy IFTTT.

Będziemy korzystać z usług w chmurze CloudMQTT i FRED jako naszych serwerów odpowiednio MQTT i Node-RED, a do powiadomień push użyjemy IFTTT.

  1. Zarejestruj się w CloudMQTT z bezpłatnym abonamentem. Zanotuj swoje dane uwierzytelniające do serwera MQTT (nazwę użytkownika i hasło).
  2. Zarejestruj się w IFTTT. Utwórz nowy aplet „Powiadomienia aplikacji Webhooks IFTTT”. Użyj „Powiadomienia z telefonu komórkowego” jako nazwy zdarzenia WebHookds. Spójrz na obrazek powyżej, aby poznać szczegóły. Zanotuj swój klucz API twórcy.
  3. Pobierz aplikację IFTTT na swój telefon i zaloguj się przy użyciu swoich danych uwierzytelniających. Umożliwi to otrzymywanie powiadomień push.
  4. Zarejestruj się w FRED z bezpłatnym abonamentem.
  5. Po uruchomieniu instancji FRED zaimportuj do niej dołączone przepływy (przycisk 3 Bary Importuj ze schowka). Po prostu wklej zawartość każdego pliku (widgest.json, alerts.json, statistics.json) i zaimportuj go.
  6. Edytuj jeden z węzłów MQTT (jeden wystarczy), aby zaktualizować poświadczenia CloudMQTT.
  7. Edytuj węzeł IFTTT, aby zaktualizować klucz API kreatora IFTTT.

Krok 4: Zaprogramuj NodeMCU i kalibrację pojemności pojemnika na śmieci

Gdy już wszystko mamy okablowane, musimy zaprogramować NodeMCU za pomocą odpowiedniego oprogramowania (szkic), aby faktycznie wykorzystywało wszystkie elementy, które są z nim połączone i komunikowało się z Internetem.

  1. Pobierz i zainstaluj Arduino IDE stąd.
  2. Zainstaluj i ustaw typ płyty NodeMCU, jak wyjaśniono na początku poniższej instrukcji.
  3. Zainstaluj następujące biblioteki (Sketch Include Library Manage Libraries…):

    1. Biblioteka Adafruit MQTT (autor: Adafruit)
    2. Biblioteka czujników DHT (by Adafruit)
    3. SharpIR (autorstwa Giuseppe Masino)
    4. EEPROMWszystko - wyjaśnienie tutaj.
  4. Otwórz plik GarbageCanOnline.ino i zaktualizuj następujące elementy:

    1. Twoje dane logowania do Wi-Fi (WLAN_SSID, WLAN_PASS)
    2. Twoje dane logowania CloudMQTT (MQTT_USERNAME, MQTT_PASSWORD)
    3. Jeśli jest to drugi lub więcej kosza na śmieci, zmień identyfikator kosza na śmieci (GARBAGECAN_ID)
  5. Prześlij zaktualizowany szkic do swojego NodeMCU.
  6. Otwórz okno monitora szeregowego (Ctrl+M) i upewnij się, że udaje mu się opublikować dane z czujników w CloudMQTT.
  7. Teraz, gdy pokrywa jest zamknięta, a kosz na śmieci jest pusty, naciśnij i przytrzymaj przycisk kalibracji, aby skalibrować pojemność kosza.
  8. Kosz na śmieci jest gotowy. Możesz odłączyć go od komputera i podłączyć w wyznaczonym miejscu za pomocą zasilacza USB.

Krok 5: Korzystanie z systemu

Korzystanie z systemu
Korzystanie z systemu
Korzystanie z systemu
Korzystanie z systemu
Korzystanie z systemu
Korzystanie z systemu

Jeśli dotarłeś tak daleko, wszystko powinno działać. Zróbmy szybki przegląd różnych aspektów użytkowania systemu.

Zakładamy, że masz podłączony tylko jeden pojemnik na śmieci, ale później łatwo jest dodać więcej!

Najpierw zwróć uwagę na główny pulpit nawigacyjny. Powinieneś być na ekranie głównym, widząc przepełnienie kosza na śmieci, poziom temperatury i wilgotności. Powiadomieniami telefonicznymi i alertami na pulpicie możesz sterować za pomocą przełączników po lewej stronie.

Gdy ilość śmieci w śmietniku zmieni się, zobaczysz odpowiednio zmianę wskaźnika. Dotyczy to również wykresów temperatury i wilgotności.

Gdy poziom wypełnienia osiągnie 85%-90% (dokładny próg zależy od temperatury i wilgotności) lub wystąpił błąd czujnika, otrzymasz powiadomienie za pomocą preferowanej metody. Otrzymasz powiadomienie raz na godzinę na śmietnik.

W widoku Statystyki będziesz mógł zobaczyć aktualnie najpełniejszy kosz na śmieci i najgorętszy. Tytuł niepochlebny, jeśli można powiedzieć…

Krok 6: Zrozumienie przepływu

Zrozumienie przepływu
Zrozumienie przepływu
Zrozumienie przepływu
Zrozumienie przepływu
Zrozumienie przepływu
Zrozumienie przepływu
Zrozumienie przepływu
Zrozumienie przepływu

Jak już zapewne zauważyłeś, system ma wiele „ruchomych części”. Postaramy się wyjaśnić, w jaki sposób rzeczy są ze sobą połączone.

Najpierw mamy nasz kosz na śmieci z NodeMCU i jego czujnikami. Możemy mieć ich mnóstwo - po prostu "kopie" siebie nawzajem.

NodeMCU mierzy różne czujniki umieszczone w koszu na śmieci i publikuje dane na serwerze MQTT (protokół MQTT). Możesz myśleć o serwerze MQTT jako dużej wymianie informacji, do której wiele pojemników na śmieci może zgłaszać swoje informacje.

Inną jednostką, która łączy się z serwerem MQTT, jest Node-RED. Node-RED nasłuchuje różnych wiadomości pochodzących z kosza na śmieci przenoszącego dane sensoryczne i stosuje na nim swoją logikę. Działa poprzez wykorzystanie „przepływów” informacji. Za każdym razem, gdy wiadomość jest odbierana, na podstawie jej typu (temat MQTT), wchodzi ona w określone łańcuchy operacji, które kończą się aktywacją różnych funkcji systemu (aktualizacja pulpitu, wysyłanie alertów itp.). że Node-RED jest „mózgiem” systemu. Jest świadomy wszystkiego, co dzieje się wszędzie, i może podjąć odpowiednie działania.

Wewnątrz Node-RED zbudowaliśmy 3 główne przepływy informacji:

  1. Widgety - informacje sensoryczne wprowadzane do Node-RED są następnie wyświetlane na desce rozdzielczej za pomocą wskaźników i wykresów.
  2. Alerty - informacje sensoryczne są przetwarzane w celu stwierdzenia, czy należy wyzwolić alert (na desce rozdzielczej lub w aplikacji na smartfona). Poziom zapełnienia, temperatura i wilgotność są brane pod uwagę przy podejmowaniu decyzji o poinformowaniu użytkownika, że kosz na śmieci jest pełny. Również błędy sensoryczne są zgłaszane przez ten sam przepływ.
  3. Statystyki - Informacje sensoryczne są agregowane, aby wyświetlić najpełniejsze i najgorętsze pojemniki na śmieci.

Aby Node-RED mógł wysyłać powiadomienia push, łączy się z usługą o nazwie IFTTT (za pomocą protokołu HTTP). Aktywuje określone zdarzenie IFTTT z odpowiednim tekstem powiadomienia, a IFTTT wysyła powiadomienie do naszego smartfona (protokoły HTTP i XMPP).

Zapoznaj się z powyższymi obrazami, aby lepiej zrozumieć (a) ogólną strukturę systemu oraz (b) 3 różne przepływy informacji w Node-RED

Krok 7: Wyzwania, ograniczenia i plany na przyszłość…

Wyzwania

Główne wyzwania w tym projekcie dotyczyły głównie obsługi usług MQTT i Node-RED. Po raz pierwszy użyliśmy AdafruitIO, ale jego niestandardowa implementacja MQTT nie była dla nas dobra. Praca z jego „kanałami” wewnątrz Node-RED nie była wygodna. Dlatego ostatecznie zdecydowaliśmy się na CloudMQTT, który jest oparty na serwerze Mosquitto MQTT i jest znacznie bardziej standardowy. Następnie zajęliśmy się Node-RED, co było dość trudne, głównie dlatego, że Node-RED to bestia. Na przykład z naszego punktu widzenia jest znacznie bardziej kompleksowy i profesjonalny niż IFTTT. Musieliśmy dostosować i nauczyć się, jak korzystać z podejścia projektowego opartego na przepływach, aby skonstruować wymagane funkcje systemu. Co więcej, jedną z jego największych zalet jest obsługa kodu javascript, ale przyzwyczajenie się do tego zajęło trochę czasu, ponieważ nie jesteśmy programistami javascript. Mimo wszystko bardzo podobała nam się praca z tym konkretnym narzędziem i uznaliśmy je za bardzo interesujące i przydatne.

Ograniczenia

Jeśli chodzi o ograniczenia, pierwszym z nich byłby fakt, że korzystaliśmy tylko z bezpłatnych usług, a one nie pozwolą na przejście na pełną skalę. Darmowy plan CloudMQTT nie pozwoli na posiadanie więcej niż 5 równoległych połączeń, co oznacza, że możemy mieć tylko 4 kosze na śmieci i Node-RED. Bezpłatny abonament FRED Node-RED pozwala tylko na 24 godziny prostego użytkowania, po czym musisz ręcznie zalogować się i zresetować zegar. Jednak problemy te można łatwo rozwiązać, uruchamiając te usługi lokalnie lub płacąc trochę więcej, aby znieść ograniczenia. Drugim ograniczeniem jest fakt, że po dodaniu czwartego kosza na śmieci i kolejnych, trzeba ręcznie edytować przepływ widżetów w Node-RED, aby dodać odpowiednie widżety.

Plany na przyszłość

Mieliśmy kilka pomysłów na dalsze ulepszenie naszego systemu i jego rozszerzenie:

  1. Przejdź do niewolnych usług w chmurze. (pojedynczy dzień pracy).
  2. Dodanie kompresora na śmieci do kosza na śmieci, zmniejszając w ten sposób częstotliwość jego opróżniania. (4 miesiące pracy)
  3. Praca z miejskimi i przemysłowymi pojemnikami na śmieci w celu poprawy wydajności miejskich ciężarówek, które przewożą śmieci w mieście. Oznaczałoby to znaczne ulepszenie deski rozdzielczej i systemu powiadomień, aby kierowcy ciężarówek mogli znacznie lepiej planować swoją trasę podczas obsługi śmieci. (6 miesięcy pracy).
  4. Dodanie możliwości recyklingu do kosza na śmieci, na przykład możliwość wlewania specjalnych roztworów biologicznych do śmieci i pomocy w ich recyklingu, gdy wciąż znajdują się w koszu na śmieci. Może być używany w gospodarstwie domowym, na przykład do produkcji kompostu do ogrodów, ale można go również stosować na puszkach przemysłowych. (6 miesięcy pracy).

Zalecana: