Spisu treści:

Monitor zwierząt domowych IoT!: 6 kroków (ze zdjęciami)
Monitor zwierząt domowych IoT!: 6 kroków (ze zdjęciami)

Wideo: Monitor zwierząt domowych IoT!: 6 kroków (ze zdjęciami)

Wideo: Monitor zwierząt domowych IoT!: 6 kroków (ze zdjęciami)
Wideo: Ups. 2024, Listopad
Anonim
Image
Image
Sugerowane czytanie
Sugerowane czytanie

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

  1. Instrukcja podłączania zestawu startowego Raspberry Pi 3
  2. GPIO Raspberry Pi
  3. 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ć:

  1. Odkrywanie protokołów komunikacyjnych dla IoT
  2. Pierwsze kroki z CloudMQTT
  3. 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.

  1. Pierwsze kroki z płytką zaciskową mikrofonu SparkFun MEMS
  2. Karta katalogowa mikrofonu MEMS
  3. Arkusz danych ADC MCP3002

Krok 2: Materiały

Materiały
Materiały
Materiały
Materiały
Materiały
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

Skonfiguruj Raspberry Pi
Skonfiguruj Raspberry Pi
Skonfiguruj Raspberry Pi
Skonfiguruj Raspberry Pi
Skonfiguruj Raspberry Pi
Skonfiguruj Raspberry Pi
Skonfiguruj Raspberry Pi
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:

  1. Załóż konto CloudMQTT (plan „Cute Cat” jest bezpłatny).
  2. Utwórz nową instancję MyCloud.
  3. W konsoli utwórz nową regułę ACL.
  4. 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

Zbuduj to! Sprzęt komputerowy
Zbuduj to! Sprzęt komputerowy
Zbuduj to! Sprzęt komputerowy
Zbuduj to! Sprzęt komputerowy
Zbuduj to! Sprzęt komputerowy
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

Zbuduj to! Oprogramowanie
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

Przetestuj i zainstaluj!
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.

Konkurs mikrokontrolerów 2017
Konkurs mikrokontrolerów 2017
Konkurs mikrokontrolerów 2017
Konkurs mikrokontrolerów 2017

Drugie miejsce w Konkursie Mikrokontrolerów 2017

Konkurs Czujników 2017
Konkurs Czujników 2017
Konkurs Czujników 2017
Konkurs Czujników 2017

I nagroda w Konkursie Sensorów 2017

Zalecana: