Spisu treści:
- Krok 1: Sugerowana lektura
- Krok 2: Materiały
- Krok 3: Skonfiguruj Raspberry Pi
- Krok 4: Zbuduj to! Sprzęt komputerowy
- Krok 5: Zbuduj to! Oprogramowanie
- Krok 6: Przetestuj i zainstaluj
Wideo: Monitor zwierząt domowych IoT!: 6 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Miej oko na swoich ukochanych bbbies i odtwarzaj muzykę lub każ im być cicho podczas Twojej nieobecności! Ten samouczek pokaże, jak używać komputera Raspberry Pi do monitorowania głośności dźwięku w domu (za pośrednictwem chmury), aby sprawdzić, czy i kiedy zwierzę jest zdenerwowane.
Toczenie bębna… najzabawniejsza część: jeśli robi się zbyt głośno (na przykład, gdy Fido szczeka lub wydaje inne hałaśliwe dźwięki), możesz im powiedzieć, aby ucichli lub puszczali muzykę!
Wraz z Pi (i głośnikami) użyjemy płytki zaciskowej mikrofonu SparkFun MEMS do pomiaru poziomów głośności i uruchomienia odtwarzacza audio. Dane są przesyłane do usługi CloudMQTT za pomocą protokołu komunikacyjnego MQTT.
Całkowity czas odczytu: ~ 8 min
Całkowity czas budowy: 60 min (mniej w przypadku doświadczonych)
Ogromne PODZIĘKOWANIA dla SparkFun za wsparcie tego projektu! Sprawdź samouczek tutaj.
Krok 1: Sugerowana lektura
Aby zbudować ten projekt, potrzebujesz w pełni skonfigurowanego, połączonego z Wi-Fi komputera Raspberry Pi 3 z systemem Raspbian OS. Pomocna jest również znajomość programowania w Pythonie, a także następujących rzeczy: (1) jak używać i sterować pinami GPIO Raspberry Pi; (2) komunikacja MQTT; oraz (3) czujniki analogowe. Jeśli coś z tego jest nieznane lub po prostu jesteś ciekawy (bądź ciekawy!), zapoznaj się z poniższymi samouczkami!
Raspberry Pi 3
- Instrukcja podłączania zestawu startowego Raspberry Pi 3
- GPIO Raspberry Pi
- Komunikacja SPI z Raspberry Pi
Protokół komunikacyjny MQTT
MQTT (Message Query Telemetry Transport) to popularny protokół komunikacyjny IoT. Wykorzystamy bibliotekę Paho Client Python oraz usługę MQTT o nazwie CloudMQTT. Oto więcej o MQTT i jak z niego korzystać:
- Odkrywanie protokołów komunikacyjnych dla IoT
- Pierwsze kroki z CloudMQTT
- Przegląd biblioteki klienta Eclipse Paho MQTT Python
Płytka zaciskowa mikrofonu MEMS
Mikrofon MEMS jest mikrofonem analogowym, więc będziemy potrzebować konwertera analogowo-cyfrowego („ADC”) do odczytu sygnału analogowego za pomocą cyfrowych pinów GPIO Raspberry Pi.
- Pierwsze kroki z płytką zaciskową mikrofonu SparkFun MEMS
- Karta katalogowa mikrofonu MEMS
- Arkusz danych ADC MCP3002
Krok 2: Materiały
- Raspberry Pi 3 Model B
Będziemy również potrzebować następujących urządzeń peryferyjnych: obudowa Raspberry Pi 3; Karta SD (minimum 8 GB); kabel GPIO Raspberry Pi 3; kabel zasilający microUSB; kabel HDMI i monitor zgodny z HDMI; klawiatura USB; mysz USB; głośniki z portem słuchawkowym 1/8.
- Płytka zaciskowa mikrofonu SparkFun MEMS
- MCP3002 (przetwornik analogowo-cyfrowy)
- Przewody połączeniowe do płyty chlebowej i M-to-M
Krok 3: Skonfiguruj Raspberry Pi
Krok 1: Sprawdź i zainstaluj aktualizacje Sprawdzanie i instalowanie aktualizacji to zawsze dobry sposób na rozpoczęcie. Uruchom następujące polecenia w oknie terminala:
aktualizacja sudo apt-get
sudo apt-get upgrade
ponowne uruchomienie sudo
Krok 2: Skonfiguruj interfejs SPI dla mikrofonu MEMS + MCP3002
Aby użyć interfejsu SPI (Serial Port Interface) do odczytu mikrofonu MEMS za pośrednictwem MCP3002, potrzebujemy Python Dev Package:
sudo apt-get zainstaluj python-dev
Będziemy również potrzebować interfejsu SPI (może chcieć utworzyć podfolder, aby to zapisać):
klon git git://github.com/doceme/py-spidev
sudo python setup.py zainstalować
Oto dokumentacja SPI-Dev, jeśli napotkasz jakiekolwiek problemy.
Krok 3: Odtwarzanie dźwięków za pomocą OMXPlayer
OMXPlayer to odtwarzacz audio i wideo zainstalowany fabrycznie w systemie Raspbian OS. Działa z większością typów plików dźwiękowych, w tym:.wav,.mp3 i.m4a. To jest to, czego użyjemy do odtwarzania dźwięków, gdy Fido staje się zbyt głośny. Biblioteka Pythona do sterowania OMXPlayerem jest zawarta w Raspbian (woo!).
Aby przetestować OMXPlayer z terminala, wpisz:
omxplayer /home/…/ŚcieżkaPlikuPiosenki/NazwaPlikuPiosenki.mp3
Jeśli to nie zadziała, spróbuj wymusić to przez lokalne urządzenie wyjściowe audio:
omxplayer -o lokalny /home/…/ŚcieżkaPlikuUtworu/NazwaPlikuUtworu.mp3
Krok 4: Skonfiguruj serwer CloudMQTT
Teraz skonfigurowaliśmy serwer MQTT! Aby to zrobić za pomocą CloudMQTT, wykonaj następujące czynności:
- Załóż konto CloudMQTT (plan „Cute Cat” jest bezpłatny).
- Utwórz nową instancję MyCloud.
- W konsoli utwórz nową regułę ACL.
- Możesz monitorować opublikowane wiadomości w interfejsie użytkownika „Websocket”.
Na koniec zainstaluj bibliotekę MQTT Paho Client Python:
pip zainstaluj paho-mqtt
Krok 4: Zbuduj to! Sprzęt komputerowy
Schematy wyprowadzeń dla Raspberry Pi i MCP3002 znajdują się na powyższych zdjęciach.
1. Włóż szpilki MCP3002 do płytki stykowej (patrz schemat pinów powyżej)
MCP3002 wykorzystuje 4 piny SPI do komunikacji: zegar szeregowy ("SCL"), wyjście Master Input Slave ("MISO"), Master Output Slave Input ("MOSI") i Chip Select ("CS"). Piny te odpowiadają pinowi 11 GPIO Raspberry Pi (SCLK), pinowi 9 GPIO (MISO), pinowi GPIO 10 (MOSI) i pinowi 8 GPIO (CE0).
Wykonaj następujące połączenia z pinami MCP3002:
- Połącz pin 1 z pinem 8 GPIO Raspberry Pi (CE0)
- Podłącz pin 2 do wyjścia analogowego płytki zaciskowej mikrofonu MEMS
- Podłącz pin 4 do GND
- Połącz pin 5 z pinem 10 GPIO Raspberry Pi (MOSI)
- Podłącz pin 6 do pinu 9 GPIO Raspberry Pi (MISO)
- Podłącz pin 7 do pinu 11 GPIO Raspberry Pi (SCLK)
- Podłącz pin 8 do wyjścia Raspberry Pi 3.3V
2. Przylutuj przewody do płytki zaciskowej mikrofonu MEMS. Podłącz do MCP3002 i Raspberry Pi
- Podłącz Vcc do Raspberry Pi 3.3V.
- Podłącz GND do Raspberry Pi GND
- Podłącz AUD do pinu 2 MCP3002
3. Podłącz wszystkie kable do Raspberry Pi i włącz wszystko
Krok 5: Zbuduj to! Oprogramowanie
Nasz cel z Bark Back jest dwojaki: wyzwolenie odtwarzania dźwięku, gdy pies szczeka, i przesłanie danych na serwer, gdzie możemy je sprawdzić.
Oto program open-source w języku Python dla tego projektu. Zachęcamy do (i proszę) dostosowywania i modyfikowania kodu.
Aby uruchomić program, musisz wypełnić dwie rzeczy:
- SongList: Wpisz ścieżkę i nazwę pliku dla każdej piosenki, którą chcesz odtworzyć.
- creds: Wprowadź informacje o CloudMQTT w tym słowniku.
Krok 1: Przeczytaj tabliczkę zaciskową mikrofonu SparkFun MEMS
Odczytaj wartość ADC (pomiędzy 0 a 1023) z płytki zaciskowej mikrofonu MEMS (poprzez MCP3002) za pomocą biblioteki SPI i oblicz amplitudę sygnału między szczytami.
Odwzoruj amplitudę sygnału od szczytu do szczytu na jednostkę objętości. Obecny kod mapuje zakres ADC od 0 do 700 (na podstawie szybkich eksperymentów) na jednostkę głośności od 0 do 10. Aby wyregulować czułość mikrofonu, dostosuj zakres wejściowy ADC.
Aby uzyskać dokładny przegląd mikrofonu MEMS, zapoznaj się z tym samouczkiem.
Krok 2: Uruchom odtwarzacz audio
Najpierw będziemy potrzebować piosenek do grania! Możesz szybko nagrywać dźwięki w GarageBand (lub na smartfonie) i wysyłać je do Raspberry Pi. W Pythonie użyj biblioteki podprocesów, aby wywołać omxplayer.
W kodzie, w zmiennej *songList* (linia 26) wprowadź ścieżkę pliku utworów, które chcesz odtworzyć. Aktualny próg głośności jest ustawiony na 7 w funkcji głównej.
Krok 3: Wyślij dane do serwera CloudMQTT
Użyj biblioteki Paho Client Python do komunikacji z serwerami CloudMQTT. Podsumowując: Skonfiguruj serwer klienta; zdefiniować protokoły komunikacyjne; połączyć się z naszymi danymi uwierzytelniającymi (aka creds); oraz subskrybować i publikować nasze dane. Większość tego jest wykonywana w funkcji main (linie 129 - 149 i linie 169 - 174).
Aby sprawdzić otrzymane dane, przejdź do zakładki „Websocket UI” w konsoli CloudMQTT.
Krok 6: Przetestuj i zainstaluj
Uruchom program BarkBack.py w Terminalu lub w IDE Pythona (możesz również użyć SSH do uruchomienia programu po wyjściu).
Sprawdź, czy otrzymujesz poziomy głośności w zakładce Websocket UI.
Przetestuj system, uruchamiając mikrofon (klaśnięcie, wrzask, szczekanie itp.), aby upewnić się, że głośniki odtwarzają wszystkie dźwięki.
Gdy wszystko jest już gotowe do pracy, zaleca się przylutowanie komponentów do płytki drukowanej (Printed Circuit Board), jeśli zamierzasz instalować system na więcej niż kilka dni.
Drugie miejsce w Konkursie Mikrokontrolerów 2017
I nagroda w Konkursie Sensorów 2017
Zalecana:
Karmnik dla kotów (dla zwierząt domowych): 10 kroków
Karmnik dla kotów Industrial Strength (dla zwierząt domowych): Podróżuję przez wiele tygodni i mam te dzikie koty na zewnątrz, które muszą być karmione podczas mojej nieobecności. Od kilku lat korzystam ze zmodyfikowanych podajników zakupionych od Amazona sterowanych za pomocą komputera raspberry pi. Mimo że moje
Zrób to sam: Latarka LED UV LED / Domowy wykrywacz moczu zwierząt domowych: 3 kroki
Zrób to sam: Latarka Lego UV LED / Domowy wykrywacz moczu dla zwierząt: Jest to łatwy (nie wymaga lutowania), zabawny i tani sposób na zrobienie świetnej latarki UV LED z klocków Lego. To również podwaja się jako domowy wykrywacz moczu zwierząt domowych (porównaj ceny). Jeśli kiedykolwiek marzyłeś o stworzeniu własnego, domowej roboty Lego Flash
Budowa urządzeń domowych dla IoT lub automatyki domowej: 7 kroków (ze zdjęciami)
Budowanie domowych urządzeń dla IoT lub automatyki domowej: Ta instrukcja jest częścią mojej serii DIY Home Automation, sprawdź główny artykuł „Planowanie systemu automatyki domowej DIY”. Jeśli jeszcze nie wiesz, co to jest Homie, zajrzyj na homie-esp8266 + homie od Marvina Rogera. Sen jest bardzo dużo
Maszyna do karmienia zwierząt domowych z RasPi i Telegram Bot: 4 kroki (ze zdjęciami)
Maszyna do karmienia zwierząt domowych z RasPi i Telegram Bot: Przede wszystkim muszę wyjaśnić, że nie jest to oryginalna kopalnia pomysłów, po prostu zaktualizuj i dostosuj skrypty programistyczne do pracy z telegramem, znalazłem to w poprzednim Instruktażu, więc kredyty naprawdę są autorem tego. Można było zobaczyć hiszpański
Uchwyt na kabel do butelek dla zwierząt domowych: 5 kroków
Uchwyt na kabel na butelkę dla zwierząt: użyj plastikowej butelki do przechowywania kabli, takich jak złącze dokujące do iPoda i przedłużacz USB, które są podłączone do komputera