Spisu treści:

Dozownik IoT Treat dla zwierząt: 7 kroków (ze zdjęciami)
Dozownik IoT Treat dla zwierząt: 7 kroków (ze zdjęciami)

Wideo: Dozownik IoT Treat dla zwierząt: 7 kroków (ze zdjęciami)

Wideo: Dozownik IoT Treat dla zwierząt: 7 kroków (ze zdjęciami)
Wideo: 3 steps to Naturally stop your chronically itching dog! 2024, Listopad
Anonim
Image
Image
Dozownik smakołyków IoT dla zwierząt
Dozownik smakołyków IoT dla zwierząt

Mam dwa koty i dawanie im smakołyków około 3 razy dziennie stało się dość uciążliwe. Patrzyli na mnie swoimi uroczymi twarzami i intensywnymi spojrzeniami, a potem biegli do pudełka pełnego kocich zielonych, miaucząc i błagając o nie. Uznałem, że wystarczy. Nigdy więcej wstawania tylko po to, by dać kotu kilka smakołyków. Teraz przyszedł czas na automat do wydawania smakołyków, bo jak mówi przysłowie: „Programiści istnieją po to, by robić skomplikowane rzeczy, żeby robić mniej prostych rzeczy”.

DFRobot sponsorował ten projekt.

Lista części:

  • DFRobot Raspberry Pi 3
  • Moduł kamery DFRobot Raspberry Pi
  • Silnik krokowy DFRobot z przekładnią planetarną
  • I2C LCD 16x2
  • Gniazdo lufy do terminala
  • DRV8825 Sterownik silnika krokowego
  • Kondensator 100 µF
  • Arduino UNO i oryginalne UNO
  • Przewody połączeniowe (ogólne)

Krok 1: Tworzenie projektu

Tworzenie projektu
Tworzenie projektu

Pierwszym był wybór sposobu sterowania moją nowo myślącą maszyną. Bluetooth miałby zbyt mały zasięg, zaledwie 30 stóp bez przeszkód. Dzięki tym informacjom zdecydowałem się na korzystanie z WiFi. Ale teraz, jak używać Wi-Fi do sterowania maszyną? Raspberry Pi 3 ma wbudowane funkcje Wi-Fi, dzięki czemu mogę używać Flask do hostowania strony internetowej. Następny był temat obudowy i sposobu wydawania smakołyków. Zdecydowałem się na projekt obracającego się koła, w którym smakołyki spadałyby na małe sekcje, były obracane, a następnie smakołyki spadałyby na rampę i podróżowały do przodu maszyny.

Krok 2: Tworzenie modelu Fusion 360

Tworzenie modelu Fusion 360
Tworzenie modelu Fusion 360
Tworzenie modelu Fusion 360
Tworzenie modelu Fusion 360
Tworzenie modelu Fusion 360
Tworzenie modelu Fusion 360

Zacząłem od stworzenia podstawowego modelu pojemnika na smakołyki. Przysmaki wpadają do mini-zasypu, gdzie są następnie umieszczane w obracającym się kole.

Następnie dodałem Raspberry Pi 3 do projektu Fusion, wraz z inną elektroniką, w tym modułem kamery LCD i Raspberry Pi. Zrobiłem też lejek, w którym można przechowywać dodatkowe smakołyki.

Ścianki dozownika smakołyków mają być wycięte ze sklejki 1/4 cala na ploterze CNC. Składa się z 7 elementów, 4 ścian, podłogi oraz górnej i górnej części pokrywy, które można otwierać i zamykać, aby odsłonić smakołyki.

Na koniec stworzyłem „wymyślny” uchwyt do otwierania pokrywy.

Krok 3: Konfiguracja Pi

DFRobot skontaktował się ze mną i wysłał swój moduł kamery Raspberry Pi 3 i Raspberry Pi. Więc po otwarciu pudełek od razu zabrałem się do pracy, konfigurując kartę SD. Najpierw poszedłem na stronę pobierania Raspberry Pi i pobrałem najnowszą wersję Raspbiana. Następnie wyodrębniłem plik i umieściłem go w wygodnym katalogu. Nie możesz po prostu skopiować/wkleić pliku.img na kartę SD, musisz go „wypalić” na karcie. Możesz pobrać narzędzie do nagrywania, takie jak Etcher.io, aby łatwo przenieść obraz systemu operacyjnego. Po tym, jak plik.img znalazł się na mojej karcie SD, włożyłem go do Raspberry Pi i podałem mu zasilanie. Po około 50 sekundach odłączyłem przewód i wyjąłem kartę SD. Następnie włożyłem kartę SD z powrotem do komputera i przeszedłem do katalogu „boot”. Otworzyłem Notatnik i zapisałem go jako pusty plik o nazwie „ssh” bez rozszerzenia. Dodałem też plik o nazwie „wpa_supplicant.conf” i wstawiłem do niego ten tekst: network={ ssid= psk=} Następnie zapisałem i wysunąłem kartę i włożyłem ją z powrotem do Raspberry Pi 3. To powinno pozwolić na korzystanie z SSH i łączenie się z Wi-Fi.

Krok 4: Instalowanie oprogramowania

Istnieje kilka różnych programów, które mogą przesyłać strumieniowo wideo, takie jak VLC i motion, ale zdecydowałem się użyć streamera mjpeg ze względu na jego małe opóźnienia i łatwą instalację. Zgodnie z instrukcjami na stronie wykonaj a:git clone https://github.com/jacksonliam/mjpg-streamer.git Do folderu, a następnie wpisz: sudo apt-get install cmake libjpeg8-dev Aby zainstalować potrzebne biblioteki. Zmień katalog na pobrany folder, a następnie wpisz: make Następnie: sudo make install Aby skompilować oprogramowanie. Na koniec wpisz: export LD_LIBRARY_PATH=. Aby go uruchomić, wpisz:./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Możesz uzyskać dostęp do strumienia, przechodząc do: https:// Lokalny adres IP urządzenia pi:8080/stream. html Aby wyświetlić strumień.

Krok 5: Konfiguracja serwera WWW

Aby maszyna była sterowana zewnętrznie przez Wi-Fi, potrzebowałem serwera WWW. Serwer WWW w zasadzie obsługuje strony internetowe na żądanie, zwykle przez przeglądarkę. Chciałem czegoś szybkiego i prostego w konfiguracji i obsłudze, zdejmując Apache ze stołu. Chciałem również połączyć serwer WWW z Pythonem, aby móc sterować Arduino Uno za pomocą PySerial. To poszukiwanie ostatecznie doprowadziło mnie do Flask, ładnej biblioteki Pythona, która pozwala użytkownikom szybko stworzyć serwer WWW. Pełny kod jest dołączony do tej strony projektu. Skrypt Pythona zasadniczo konfiguruje 2 strony internetowe, jedną hostowaną w katalogu głównym „/”, a drugą hostowaną w „/dispense”. Strona indeksu zawiera formularz HTML, który po przesłaniu wysyła żądanie publikowania do strony dozowania. Strona dozowania sprawdza następnie, czy wartość post jest poprawna i czy jest to komunikat „D\n” jest wysyłany przez port szeregowy do Arduino Uno.

Krok 6: Kontrolowanie IO

Kontrolowanie IO
Kontrolowanie IO
Kontrolowanie IO
Kontrolowanie IO
Kontrolowanie IO
Kontrolowanie IO
Kontrolowanie IO
Kontrolowanie IO

Zdecydowałem się na użycie DRV8825 do napędzania mojego silnika krokowego, głównie ze względu na to, że potrzebuje tylko 2 pinów IO wraz z regulowanym ograniczeniem prądu. Próbowałem użyć L293D, ale nie mógł on obsłużyć obciążenia silnika krokowego. DRV8825 jest sterowany przez pulsowanie pinu STEP za pośrednictwem PWM, a kierunek jest kontrolowany przez przeciągnięcie pinu DIR w górę lub w dół. Silnik krokowy, którego używam, ma pobór prądu 1,2 A, więc ustawiłem napięcie VREF na 0,6 V. Następny był wyświetlacz LCD. Chciałem użyć I2C, aby zmniejszyć ilość potrzebnych IO i uprościć kod. Aby zainstalować bibliotekę, po prostu wyszukaj „LiquidCrystal_I2C” i zainstaluj ją. Na koniec Arduino Uno sprawdza, czy w buforze szeregowym są nowe informacje i czy pasuje do „D”. Jeśli tak się stanie, Uno powoduje, że silnik krokowy porusza się o 180 stopni, a następnie o -72 stopnie, aby zapobiec utknięciu smakołyków.

Zalecana: