Talaan ng mga Nilalaman:

IoT Pet Monitor !: 6 Mga Hakbang (na may Mga Larawan)
IoT Pet Monitor !: 6 Mga Hakbang (na may Mga Larawan)

Video: IoT Pet Monitor !: 6 Mga Hakbang (na may Mga Larawan)

Video: IoT Pet Monitor !: 6 Mga Hakbang (na may Mga Larawan)
Video: how can you tell your pregnant by hand pulse? 2024, Nobyembre
Anonim
Image
Image
Mungkahing Pagbasa
Mungkahing Pagbasa

Pagmasdan ang iyong mga minamahal na bbies at magpatugtog ng musika o sabihin sa kanila na manahimik habang wala ka! Ipapakita ng tutorial na ito kung paano gumamit ng isang Raspberry Pi computer upang masubaybayan ang dami ng tunog sa iyong bahay (sa pamamagitan ng Cloud) upang makita kung at kailan nababagabag ang iyong alaga.

Drum roll … ang pinakasayang bahagi: Kung masyadong malakas (tulad ng pag-usol ni Fido o paggawa ng iba pang malaswa), masasabi namin sa kanila na manahimik o magpatugtog ng musika!

Kasama ng Pi (at mga speaker), gagamitin namin ang SparkFun MEMS breakout board ng mikropono upang masukat ang mga antas ng dami at ma-trigger ang audio player. Ang data ay na-upload sa serbisyo ng CloudMQTT gamit ang MQTT na komunikasyon na proteksyon.

Kabuuang Oras ng Pagbasa: ~ 8 min

Kabuuang Oras ng Pagbuo: 60 min (mas mababa sa w / nakaranas)

Isang malaking SALAMAT sa SparkFun para sa pagsuporta sa proyektong ito! Suriin ang tutorial dito.

Hakbang 1: Mungkahing Pagbasa

Upang maitayo ang proyektong ito, kakailanganin mo ng isang ganap na na-configure, naka-konektang WiFi na Raspberry Pi 3 computer na may Raspbian OS. Nakatutulong din na malaman ang ilang mga programa sa Python pati na rin ang mga sumusunod na bagay: (1) kung paano gamitin at makontrol ang mga pin ng Raspberry Pi GPIO; (2) komunikasyon sa MQTT; at (3) mga analog sensor. Kung alinman sa mga ito ay hindi pamilyar, o kung gusto mo lang (maging mausisa!), Tingnan ang mga tutorial sa ibaba!

Raspberry Pi 3

  1. Gabay sa Raspberry Pi 3 Starter Kit Hookup
  2. Raspberry Pi GPIO
  3. Pakikipag-usap sa SPI sa Raspberry Pi

MQTT Communication Protocol

Ang MQTT (Transport Query Telemetry Transport) ay isang tanyag na IoT komunikasyon. Gagamitin namin ang Paho Client Python library at isang serbisyo ng MQTT na tinatawag na CloudMQTT. Narito ang higit pa tungkol sa MQTT at kung paano ito magagamit:

  1. Paggalugad sa Mga Protocol ng Komunikasyon para sa IoT
  2. Pagsisimula sa CloudMQTT
  3. Pangkalahatang-ideya ng library ng client ng Eclipse Paho MQTT Python

MEMS Microphone Breakout Board

Ang mikropono ng MEMS ay isang analog microphone, kaya kakailanganin namin ang isang Analog-to-Digital converter ("ADC") upang mabasa sa analog signal na may mga Raspberry Pi digital GPIO pin.

  1. Pagsisimula sa SparkFun MEMS Microphone Breakout Board
  2. MEMS Mikropono Datasheet
  3. MCP3002 ADC Datasheet

Hakbang 2: Mga Kagamitan

Mga Kagamitan
Mga Kagamitan
Mga Kagamitan
Mga Kagamitan
Mga Kagamitan
Mga Kagamitan

- Raspberry Pi 3 Model B

Kakailanganin din namin ang mga sumusunod na peripheral: Raspberry Pi 3 Case; SD Card (minimum 8 GB); Raspberry Pi 3 GPIO cable; MicroUSB power cable; HDMI cable at monitor na tugma sa HDMI; USB keyboard; USB mouse; mga speaker na may 1/8 headphone port.

- SparkFun MEMS Mic Breakout Board

- MCP3002 (Analog-to-Digital Converter)

- Breadboard at M-to-M Breadboard Jumper Wires

Hakbang 3: I-configure ang Raspberry Pi

I-configure ang Raspberry Pi
I-configure ang Raspberry Pi
I-configure ang Raspberry Pi
I-configure ang Raspberry Pi
I-configure ang Raspberry Pi
I-configure ang Raspberry Pi
I-configure ang Raspberry Pi
I-configure ang Raspberry Pi

Hakbang 1: Suriin at I-install ang Mga Update Ang pagsuri para sa at pag-install ng mga update ay palaging isang mahusay na paraan upang magsimula. Patakbuhin ang mga sumusunod na utos sa window ng terminal:

sudo apt-get update

sudo apt-get upgrade

sudo reboot

Hakbang 2: I-set up ang SPI Interface para sa MEMS Microphone + MCP3002

Upang magamit ang SPI (Serial Port Interface) upang mabasa sa MEMS Microphone sa pamamagitan ng MCP3002, kakailanganin namin ang Python Dev Package:

sudo apt-get install python-dev

Kakailanganin din namin ang SPI Interface (maaaring gustuhin na lumikha ng isang subfolder upang mai-save ito sa):

git clone git: //github.com/doceme/py-spidev

sudo python setup.py install

Narito ang SPI-Dev Documentation kung tumakbo ka sa anumang mga isyu.

Hakbang 3: Nagpe-play ang Mga Tunog gamit ang OMXPlayer

Ang OMXPlayer ay isang audio at video player na paunang na-load sa Raspbian OS. Gumagana ito sa karamihan ng mga uri ng file ng tunog, kasama ang:.wav,.mp3, at.m4a. Ito ang gagamitin namin upang i-play muli ang mga tunog kapag masyadong malakas si Fido. Ang Python library upang makontrol ang OMXPlayer ay kasama sa Raspbian (woo!).

Upang subukan ang OMXPlayer mula sa terminal, i-type ang sumusunod:

omxplayer /home/…/SongFilePath/SongFileName.mp3

Kung hindi iyon gumana, subukang pilitin ito sa lokal na audio-out na aparato:

omxplayer -o local /home/…/SongFilePath/SongFileName.mp3

Hakbang 4: I-configure ang CloudMQTT Server

Ngayon nag-set up kami ng isang MQTT server! Upang magawa ito gamit ang CloudMQTT, gawin ang sumusunod:

  1. Mag-set up ng isang CloudMQTT account (libre ang plano na "Cute Cat").
  2. Lumikha ng isang bagong halimbawa ng MyCloud.
  3. Sa Console, lumikha ng isang bagong panuntunan sa ACL.
  4. Maaari mong subaybayan ang nai-publish na mga mensahe sa "Websocket" UI.

Panghuli, i-install ang MQTT Paho Client Python library:

pip install paho-mqtt

Hakbang 4: Buuin Ito! Hardware

Gumawa nito! Hardware
Gumawa nito! Hardware
Gumawa nito! Hardware
Gumawa nito! Hardware
Gumawa nito! Hardware
Gumawa nito! Hardware

Ang mga diagram ng pinout para sa Raspberry Pi at ang MCP3002 ay nasa mga larawan sa itaas.

1. Ipasok ang mga MCP3002 na pin sa breadboard (tingnan ang diagram ng pinout sa itaas)

Gumagamit ang MCP3002 ng 4 SPI pin para sa komunikasyon: Serial Clock ("SCL"), Master Input Slave Output ("MISO"), Master Output Slave Input ("MOSI"), at Chip Select ("CS"). Ang mga pin na ito ay tumutugma sa Raspberry Pi GPIO pin 11 (SCLK), GPIO pin 9 (MISO), GPIO Pin 10 (MOSI), at GPIO Pin 8 (CE0).

Gawin ang mga sumusunod na koneksyon sa MCP3002 na mga pin:

  • Ikonekta ang Pin 1 sa Raspberry Pi GPIO Pin 8 (CE0)
  • Ikonekta ang Pin 2 sa analog output ng MEMS Microphone breakout board
  • Ikonekta ang Pin 4 sa GND
  • Ikonekta ang Pin 5 sa Raspberry Pi GPIO Pin 10 (MOSI)
  • Ikonekta ang Pin 6 sa Raspberry Pi GPIO pin 9 (MISO)
  • Ikonekta ang Pin 7 sa Raspberry Pi GPIO Pin 11 (SCLK)
  • Ikonekta ang Pin 8 sa Raspberry Pi 3.3V palabas

2. Mga wire ng panghinang sa MEMS Microphone breakout board. Kumonekta sa MCP3002 at Raspberry Pi

  • Ikonekta ang Vcc sa Raspberry Pi 3.3V.
  • Ikonekta ang GND sa Raspberry Pi GND
  • Ikonekta ang AUD sa MCP3002 Pin 2

3. I-plug ang lahat ng mga cable para sa Raspberry Pi at i-on ang lahat

Hakbang 5: Buuin Ito! Software

Gumawa nito! Software
Gumawa nito! Software

Ang aming layunin sa Bark Back ay dalawa: mag-trigger ng isang tunog ng pag-playback kapag tumahol ang aso, at ipadala ang data sa isang server kung saan maaari naming suriin ito.

Narito ang open-source na programa ng Python para sa proyektong ito. Huwag mag-atubiling (at mangyaring gawin) ayusin at baguhin ang code.

Upang mapagana ang programa, kailangan mong punan ang dalawang bagay:

- Listahan ng kanta: Sumulat sa file path at pangalan ng file para sa bawat kanta na nais mong i-play.

- Mga kred: Ipasok ang iyong impormasyon sa CloudMQTT sa diksyunaryo na ito.

Hakbang 1: Basahin sa breakout board ng SparkFun MEMS Microphone

Basahin ang halaga ng ADC (sa pagitan ng 0 at 1023) mula sa breakup board ng MEMS Microphone (sa pamamagitan ng MCP3002) gamit ang SPI library at kalkulahin ang signal peak-to-peak amplitude.

I-map ang signal peak-to-peak amplitude sa isang Volume Unit. Ang kasalukuyang code ay nai-mapa ang saklaw ng ADC sa pagitan ng 0 at 700 (batay sa mabilis na eksperimento) sa isang Volume Unit sa pagitan ng 0 at 10. Upang ayusin ang pagkasensitibo ng mikropono, ayusin ang saklaw ng pag-input ng ADC.

Para sa isang masusing pangkalahatang ideya ng MEMS mic, tingnan ang tutorial na ito.

Hakbang 2: Pag-trigger ng audio player

Una kailangan namin ng mga kanta upang i-play! Maaari mong mabilis na i-record ang mga tunog sa GarageBand (o sa iyong smartphone) at ipadala ang mga ito sa Raspberry Pi. Sa Python, gamitin ang subprocess library upang tawagan ang omxplayer.

Sa code, i-input ang file path ng mga kanta na nais mong i-play pabalik sa variable na * songList * (linya 26). Ang kasalukuyang dami ng threshold ay nakatakda sa 7 sa pangunahing pagpapaandar.

Hakbang 3: Magpadala ng data sa CloudMQTT Server

Gamitin ang Paho Client Python library upang makipag-usap sa mga server ng CloudMQTT. Upang malawak na buod: Mag-set up ng isang Client server; tukuyin ang mga protocol ng komunikasyon; kumonekta sa aming mga kredensyal (aka creds); at mag-subscribe at mai-publish ang aming data. Karamihan sa mga ito ay ginagawa sa pangunahing pagpapaandar (mga linya 129 - 149, at mga linya 169 - 174).

Upang suriin ang natanggap na data, pumunta sa tab na "Websocket UI" sa CloudMQTT console.

Hakbang 6: Subukan at I-install

Subukan at I-install!
Subukan at I-install!

Patakbuhin ang programa ng BarkBack.py sa Terminal o sa Python IDE (maaari mo ring gamitin ang SSH upang patakbuhin ang programa pagkatapos na umalis ka na).

Suriin na nakakakuha ka ng mga antas ng dami sa iyong tab na Websocket UI.

Subukan ang system sa pamamagitan ng pagpalitaw ng mic (pumalakpak, sumigaw, tumahol, atbp.) Upang matiyak na ang mga nagsasalita ay nagpapatugtog sa lahat ng mga tunog.

Kapag ang lahat ay gumagana at tumatakbo, inirerekumenda na maghinang ng mga bahagi sa isang PCB (Printed Circuit Board) kung balak mong i-install ang system nang higit sa ilang araw lamang.

Microcontroller Contest 2017
Microcontroller Contest 2017
Microcontroller Contest 2017
Microcontroller Contest 2017

Runner Up sa Microcontroller Contest 2017

Paligsahan sa Mga Sensor 2017
Paligsahan sa Mga Sensor 2017
Paligsahan sa Mga Sensor 2017
Paligsahan sa Mga Sensor 2017

First Prize in the Sensors Contest 2017

Inirerekumendang: