Spisu treści:

IDC2018IOT Connected Pet Food, Water and Monitoring System: 7 kroków
IDC2018IOT Connected Pet Food, Water and Monitoring System: 7 kroków

Wideo: IDC2018IOT Connected Pet Food, Water and Monitoring System: 7 kroków

Wideo: IDC2018IOT Connected Pet Food, Water and Monitoring System: 7 kroków
Wideo: Connected Pet Control System 2024, Lipiec
Anonim
Image
Image
IDC2018IOT Połączony system karmy dla zwierząt, wody i monitorowania
IDC2018IOT Połączony system karmy dla zwierząt, wody i monitorowania

Wstęp

Niezależnie od tego, czy jesteś studentem pod presją, osobą ciężko pracującą, czy po prostu poza domem na więcej niż kilka godzin dziennie. Jako troskliwi właściciele zwierząt domowych chcemy mieć pewność, że nasi ukochani pozostaną zdrowi, nakarmieni i oczywiście NIE będą leżeć na kanapie (ty draniu!). Czas przestać prosić o przysługi, a nawet płacić za takie usługi.

Dzięki temu fajnemu projektowi staramy się zapewnić Ci możliwość samodzielnego wykonania (słyszałem, że teraz jest to coś). Zbudujemy rozwiązanie pozwalające lepiej monitorować nasze zwierzaki, a nawet podejmować działania w biurze, szkole lub po prostu spędzać czas z przyjaciółmi lub innymi osobami.

Ten system pozwoli Ci na zdalne karmienie Twojego zwierzaka, jednocześnie kontrolując ilość karmy, którą wylewasz z pojemnika, napełniaj miskę na wodę, gdy jest pusta. Dodatkowo możemy teraz monitorować poziom wody w misce w czasie rzeczywistym, mierzyć zawartość pojemnika na karmę i co najważniejsze obserwować zwierzaka na żywo za pomocą prostego modułu kamery.

O nas

Tomer Maimon, Gilad Ram i Alon Shprung. Trzech pasjonatów informatyki z IDC Herzeliya. To nasz pierwszy projekt Instructables w ramach warsztatów IoT - mamy nadzieję, że uznasz go za interesujący i przyjemny w budowie!

Krok 1: Zrozumienie architektury:

Zrozumienie architektury
Zrozumienie architektury
Zrozumienie architektury
Zrozumienie architektury

Możemy podzielić ten system na dwie główne części:

  1. Przychodzące kanały danych:

    • Czujnik wody - próbkujący poziom wody w misce dla zwierząt, dane są przesyłane z jednostki Node-MCU do serwera Blynk i na koniec prezentowane za pośrednictwem panelu Pet Dashboard.
    • Czujnik sonaru - próbkujący zawartość pojemnika na żywność, dane są przesyłane z jednostki Arduino (z rozszerzeniem Ethernet shield) do serwera Blynk i na koniec prezentowane są za pośrednictwem Pet Dashboard.
    • Moduł kamery Pi - stale pobiera próbki klatek obszaru zwierzaka, Pi jest hostem własnego serwera, który zapewnia transmisję na żywo do pulpitu nawigacyjnego zwierzaka.
  2. Przepływ poleceń:

    • Przycisk podawania (tablica rozdzielcza) - aktualizuje wartość wirtualnego pinu przez Blynk, odpowiednia funkcja jest uruchamiana na płycie Arduino, serwo porusza się następnie, aby umożliwić przejście żywności przez pokrywę.
    • Give Water (Dashboard) - aktywnie aktualizuje wartość wirtualnego pinu przez Blynk, odpowiednia funkcja jest uruchamiana na płycie Node-MCU, przekaźnik jest włączony, pompa wodna rozpocznie przesyłanie wody do miski zwierzaka.
    • Pet Live Feed (Dashboard) - wbudowany w pulpit nawigacyjny i prezentujący dane na żywo za pośrednictwem serwera kolby działającego na urządzeniu Pi.

Krok 2: Lista części

Lista części
Lista części
Lista części
Lista części
Lista części
Lista części

Aby rozpocząć pracę z tym systemem, będziesz potrzebować następujących (lub podobnych) części:

  1. Fizyczny:

    • Pojemnik na żywność: Zastosowaliśmy przemysłową rurę dwustronną 45 cm, którą kupiliśmy w przydomowym domu towarowym. Ważne jest, aby mieć 2 wyjścia. Jedno do pomiaru zawartości, drugie wyjście do mechanizmu otwórz/zamknij.
    • Taśma klejąca: Aby utrzymać wszystko razem;)
    • Zworki: Im więcej, tym weselej, zawsze dobrze jest mieć trochę więcej, jeśli coś pójdzie nie tak.
    • Kabel Ethernet: Do podłączenia naszego Arduino (z osłoną Ethernet) do Internetu.
    • Puszka ogrodnicza: Używana jako pojemnik na wodę i pompa wodna.
    • Krótka rurka na wodę: Podłączona do pompy i nalewająca wodę do miski zwierzaka.
  2. Czujniki:

    • Czujnik poziomu wody WINGONEER: Zmierz poziom wody w misce zwierzaka.
    • Sonar Sonar - Zmierz odległość poziomu żywności od górnej pokrywy wewnątrz pojemnika.
    • Przekaźnik TONGLING: Pozwala nam włączyć/wyłączyć pompę wodną, która tłoczy wodę.
    • Moduł kamery Pi: Podłączony do urządzenia Raspberry Pi i przesyła strumieniowo obrazy obszaru zwierzaka.
    • Ogólne serwo: blokuje i odblokowuje pojemnik na żywność.
  3. Urządzenia elektroniczne / tablice:

    • Arduino Uno: Kontroluje implementację pojemnika na żywność.
    • Arduino Ethernet Shield: Zapewnia połączenie internetowe z naszą płytką.
    • NodeMCU (ESP-8266): Steruje jednostką wodną, zarówno do pomiaru, jak i nalewania wody. Ta płyta ma możliwość łączenia się przez WiFi.
    • Raspberry Pi 3 - hostuje serwer kamery i zapewnia transmisję na żywo do pulpitu zwierząt.
    • Zatapialna pompa wodna VicTsing 80 GPH: Przesyła wodę z puszki ogrodniczej do miski wraz z rurą wodną.

Krok 3: Okablowanie i układanie rzeczy razem

Okablowanie i umieszczanie rzeczy razem
Okablowanie i umieszczanie rzeczy razem
Okablowanie i umieszczanie rzeczy razem
Okablowanie i umieszczanie rzeczy razem
Okablowanie i umieszczanie rzeczy razem
Okablowanie i umieszczanie rzeczy razem

Okablowanie

Zanim zaczniemy, zaleca się umieszczenie Arduino / Node-MCU na płytce stykowej, aby ułatwić złożenie wszystkich przewodów i umieszczenie go w dowolnym fizycznym miejscu. Ponadto zaleca się stosowanie długich przewodów, aby zapobiec błędom wynikającym z odłączenia kabla. Dostarczyliśmy schemat połączeń dla Node-MCU (jednostka wodna) i Arduino (jednostka spożywcza).

  1. Jednostka spożywcza (Arduino):

    • Czujnik sonaru:

      • GND (czarny) = GND
      • VCC (czerwony) = 5V
      • Trig (fioletowy) = 3
      • Echo (niebieski) = 4
    • Serwo:

      • GND (czarny) = GND
      • VCC (czerwony) = 5V
      • Sygnał (żółty) = 9
  2. Jednostka wodna (węzeł):

    • Czujnik poziomu wody:

      • S (niebieski) = A0
      • + (czerwony) = 3v3
      • - (Czarny) = GND
    • Przekaźnik (podłączony elektrycznie do pompy wodnej):

      • IN (żółty) = D1
      • VCC (czerwony) = Vin
      • GND (czarny) = GND
  3. Jednostka kamery (Pi):

    • Czujnik kamery:

      • Podłącz do pojedynczego portu kamery Pi (kabel strumienia)
      • Jeśli chcesz dowiedzieć się więcej o Pi z modułem kamery - Link

Składanie części razem

W tej części możesz dostosowywać i modyfikować ten projekt, aby „uczynić go swoim”. Ale dostarczymy Ci zdjęcia i opis, aby zrekonstruować naszą wersję produktu.

  1. Food Unit (Arduino): Pojemnik jest dość prosty, skupimy się na stworzeniu dwóch pokrywek.

    • Górna pokrywa: Wytnij 2 otwory w pokrywie, aby dopasować czujnik sonaru (patrz załączony obrazek).
    • Dolna pokrywa + mechanizm: Rozpocznij od wzięcia jednego z plastikowych nasadek (dostarczonych z czujnikiem serwo) i zbuduj kształt „młota kowalnego” za pomocą taśmy klejącej / drewnianych patyczków (użyliśmy tylko taśmy). Następnie dołącz serwo. Teraz potrzebujemy 2 otworów na samej pokrywie. Pierwsza z nich powinna pozwolić serwo wpasować się w mechanizm, który skonstruowaliśmy, umieszczony po „wewnętrznej stronie” pokrywy. Wytnij kolejny otwór w oparciu o stronę „głowy młotka”, którą wykonałeś. W ten sposób, za każdym razem, gdy serwo otwiera się, ogon młotka zmiata żywność w kierunku wyjścia i zapobiega sklejaniu się dużych kawałków.
  2. Jednostka wodna (Node-MCU): Po prostu podłącz rurkę wodną do pompy wodnej, teraz umieść ją w puszce ogrodniczej (upewnij się, że NIE umieszczasz niewłaściwej części z przekaźnikiem i przewodami elektrycznymi w wodzie).
  3. Jednostka z kamerą: Wszystko, co musisz zrobić, to umieścić Pi z modułem kamery w wybranym przez siebie miejscu.

Krok 4: Skonfiguruj Blynk

Skonfiguruj Blynka
Skonfiguruj Blynka
Skonfiguruj Blynka
Skonfiguruj Blynka

Wszystkie zdalne możliwości w tym projekcie są oparte na Blynk. Ta usługa zasadniczo zapewnia nam bezpłatny serwer sieciowy i interfejs API RESTful do komunikacji z naszymi urządzeniami Arduino/Node-MCU przez Internet za pomocą protokołu HTTP. Blynk umożliwia nam zdefiniowanie wirtualnych pinów, które będą wykorzystywane jako adres do wykonywania określonych funkcji związanych z nalewaniem wody, podawaniem i próbkowaniem różnych czujników (zrobiliśmy to za Ciebie, wystarczy, że pozyskasz własny token aplikacji, co zostanie wyjaśnione dalej).

Jak uzyskać mój token uwierzytelniania Blynk

  1. Pobierz aplikację Blynk przez AppStore / PlayStore na swoje urządzenie mobilne.
  2. Zarejestruj się w tej usłudze (korzystanie z niej jest bezpłatne).
  3. Rozpocznij nowy projekt, upewnij się, że wybrałeś właściwe urządzenie (w naszym przypadku ESP8266).
  4. Po utworzeniu zostanie wysłany e-mail z TOKENEM UWIERZYTELNIANIA - Zapisz token do dalszych kroków.

Uwaga: Blynk może być w pełni używany za pośrednictwem aplikacji, ale zdecydowaliśmy się wdrożyć nasz własny dostosowany pulpit nawigacyjny.

Na koniec, aby przejść do następnego kroku, powinieneś pobrać i zainstalować bibliotekę Blynk - Link (przejdź do części 3)

Krok 5: Skonfiguruj pojemnik na żywność, pompę wodną i kamerę na żywo

Skonfiguruj pojemnik na żywność, pompę wodną i kamerę na żywo
Skonfiguruj pojemnik na żywność, pompę wodną i kamerę na żywo
Skonfiguruj pojemnik na żywność, pompę wodną i kamerę na żywo
Skonfiguruj pojemnik na żywność, pompę wodną i kamerę na żywo

W tym momencie zakończyliśmy składanie wszystkich części razem i otrzymaliśmy nasz blynkAuthAppToken (patrz krok 3).

Dostarczyliśmy Ci cały kod potrzebny do uruchomienia tego projektu, jedyne co musisz zrobić, to zmienić kilka zmiennych w kodzie, co uczyni go "własnym" prywatnym systemem.

Przede wszystkim zacznij od pobrania Arduino IDE (jeśli jeszcze tego nie zrobiłeś) - Link

Pojemnik na żywność Arduino

  1. Skonfiguruj IDE na płytce Arduino: Narzędzia -> Płytka -> Arduino/Genuino Uno
  2. Upewnij się, że masz zainstalowane te biblioteki: Szkic -> Dołącz bibliotekę -> Zarządzaj bibliotekami

    Sztafeta (przez Rafaela)

  3. Otwórz plik szkicu PetFeeder.ino, skonfiguruj następujące parametry (patrz załączony obrazek, aby uzyskać pomoc):

    auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";

  4. Skompiluj i prześlij szkic do urządzenia Arduino.

Jednostka wodna węzła MCU

  1. Skonfiguruj IDE na płycie Node-MCU:

    Zobacz pierwszą część tej instrukcji, aby uzyskać szczegółowe wyjaśnienie

  2. Upewnij się, że masz zainstalowane te biblioteki: Szkic -> Dołącz bibliotekę -> Zarządzaj bibliotekami

    Menedżer WiFi (przez tzapu)

  3. Otwórz plik szkicu PetFeeder.ino, skonfiguruj następujące parametry (patrz załączony obrazek, aby uzyskać pomoc):

    • auth = "REPLACE_WITH_YOUR_BLYNK_TOKEN";
    • ssid = "TWÓJ_WIFI_SSID"; // Zasadniczo jest to nazwa Twojej sieci Wi-Fi
    • pass = "TWOJE_HASŁO_WIFI"; // jeśli nie masz hasła, użyj pustego ciągu ""
  4. Skompiluj i prześlij szkic do urządzenia Node-MCU.

Moduł kamery na żywo Pi

  1. Podłącz moduł kamery pi
  2. Uruchom "sudo raspi-config" i ustaw opcję "camera" włącz.
  3. Przetestuj aparat za pomocą polecenia „raspistill”, aby zrobić zdjęcie

    r aspistill -o image.jpg

  4. Ustaw serwer kamery internetowej Flask:

    • Zainstaluj wszystkie wymagania za pomocą pip install -r requirements.txt
    • Użyj Pythona, aby uruchomić camera_server.py
    • Sprawdź to na 127.0.0.1:5000/video_feed
  5. Ustaw serwer sieciowy Flask, aby działał podczas rozruchu:

    • Dodaj następujący wiersz do /etc/rc.local (przed wierszem wyjścia):

      python /camera_server.py

Krok 6: Jak korzystać z panelu sterowania

Jak korzystać z panelu sterowania
Jak korzystać z panelu sterowania

Ustawiać

Ta część jest dość prosta, wszystko, co musisz zrobić, to wstawić „blynk app token” do pliku „index.js” w następujący sposób:

const blynkToken = "YOUR_BLYNK_APP_TOKEN" // użyj tego samego tokena z poprzednich kroków.

Stosowanie

  1. Otwórz panel, klikając dwukrotnie plik „index.html”.
  2. Deska rozdzielcza będzie automatycznie próbkować system co 10 minut.
  3. Środki dotyczące pojemników na wodę i żywność można wykonywać ręcznie.
  4. Przyciski „Daj wodę” i „Nakarm” służą do aktywnego dostarczania Twojemu zwierzakowi jedzenia i wody.
  5. Dolna część deski rozdzielczej będzie prezentować obraz na żywo z modułu kamery, jeśli dokładnie postępowałeś zgodnie z instrukcjami poprzedniego kroku.

Uwaga: Jeśli chcesz dostosować liczbę razy, gdy pojemnik na jedzenie jest otwierany podczas karmienia, otwórz plik „index.js” i zmień „wartość” w następnym wierszu z „3” na dowolną wybraną liczbę:

fetch(baseURL + '/update/V1?value=3');

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

Wyzwania

Główne wyzwania dla nas w tym projekcie dotyczyły zaprojektowania mechanizmu otwierania/zamykania pojemnika na żywność oraz stworzenia stabilnego kodu współbieżnego do kontroli i pomiaru jednostki żywnościowej. Uważam, że wypróbowaliśmy co najmniej 4 różne wersje, dopóki nie byliśmy usatysfakcjonowani. Głównym problemem było jedzenie blokujące wyjście. Aby temu zapobiec, wybraliśmy konstrukcję Sledge-Młota, w ten sposób za każdym razem, gdy otwieramy pojemnik, ogon „młota” zamiata żywność w kierunku wyjścia. Co więcej, zastosowanie rurki dwustronnej znacznie uprościło nam życie przy budowie pojemnika na żywność. Taki obiekt idealnie nadaje się do umieszczenia z jednej strony mechanizmu wyjściowego, a z drugiej strony czujnika odległości do pomiaru jego zawartości.

Limity

Na tym etapie projektu istnieje kilka ograniczeń systemu:

  1. Nie jest w pełni zautomatyzowany, co oznacza, że karmienie i nalewanie wody odbywa się ręcznie za pomocą pulpitu monitorowania bez żadnych inteligentnych harmonogramów (które mogą zostać dodane w przyszłości lub wdrożone przez Ciebie!).
  2. Pulpit nawigacyjny działa lokalnie na Twoim własnym laptopie, aby był bardziej dostępny, może być hostowany na popularnych platformach, takich jak „Heroku”.
  3. Zastosowaliśmy bardzo prosty moduł kamery, który można zastąpić znacznie bardziej skomplikowanym modułem, aby umożliwić lepszą jakość obrazu i ewentualne dodanie kanału komunikacji z pupilem (za pomocą głośnika).

Przyszłe plany

Gdybyśmy mieli czas i budżet na dalsze rozwijanie tego systemu, mieliśmy na uwadze kilka pomysłów i możliwy harmonogram:

  1. Dodanie automatycznego systemu planowania karmienia zwierząt – 2~3 dni pracy.
  2. Zbudowanie strony internetowej umożliwiającej użytkownikom naszego systemu tworzenie spersonalizowanych pulpitów nawigacyjnych, które są hostowane online i dostępne z dowolnego podłączonego urządzenia - 1-2 miesiące pracy.
  3. Pracując nad wersją przemysłową tego systemu, umożliwiającą większej liczbie właścicieli zwierząt lepszą kontrolę i komunikację ze swoimi zwierzakami online, cieszyliśmy się dużym zainteresowaniem ze strony znajomych, którzy widzieli wynik tej instrukcji. Tak więc, jeśli masz pasję czasu, aby przenieść projekt na wyższy poziom - masz pełne wsparcie!

Mamy nadzieję, że podobało Ci się czytanie (i budowanie!) tego projektu:)

Zalecana: