Cuprins:

Monitor IoT Pet !: 6 pași (cu imagini)
Monitor IoT Pet !: 6 pași (cu imagini)

Video: Monitor IoT Pet !: 6 pași (cu imagini)

Video: Monitor IoT Pet !: 6 pași (cu imagini)
Video: Ce înseamna semnul tau din nastere 2024, Noiembrie
Anonim
Image
Image
Lectură sugerată
Lectură sugerată

Fii cu ochii pe iubitele tale bebeluși și cântă muzică sau spune-le să stea tăcute în timp ce ești plecat! Acest tutorial va arăta cum să utilizați un computer Raspberry Pi pentru a monitoriza volumul de sunet din casa dvs. (prin Cloud) pentru a vedea dacă și când animalul dvs. este supărat.

Drum roll … partea cea mai amuzantă: dacă devine prea tare (cum ar fi Fido care latră sau care face ceva rău), vă vom spune că trebuie să tacă sau să cânte muzică!

Împreună cu Pi (și difuzoare), vom folosi placa de spargere a microfonului SparkFun MEMS pentru a măsura nivelurile de volum și a declanșa playerul audio. Datele sunt încărcate în serviciul CloudMQTT utilizând protocolul de comunicație MQTT.

Timp total de citire: ~ 8 min

Timp total de construcție: 60 min (mai puțin cu experiență)

O MULȚUMIRE imensă către SparkFun pentru sprijinirea acestui proiect! Consultați tutorialul aici.

Pasul 1: Citire sugerată

Pentru a construi acest proiect, veți avea nevoie de un computer Raspberry Pi 3 complet configurat, conectat la WiFi, cu sistem de operare Raspbian. De asemenea, este util să cunoașteți câteva programe Python, precum și următoarele lucruri: (1) cum să utilizați și să controlați pinii GPIO Raspberry Pi; (2) comunicare MQTT; și (3) senzori analogici. Dacă oricare dintre acestea este necunoscut sau dacă sunteți doar curioși (fiți curioși!), Consultați tutorialele de mai jos!

Raspberry Pi 3

  1. Ghid de conectare la Raspberry Pi 3 Starter Kit
  2. Raspberry Pi GPIO
  3. Comunicare SPI cu Raspberry Pi

Protocol de comunicare MQTT

MQTT (Message Query Telemetry Transport) este un protocol de comunicare IoT popular. Vom folosi biblioteca Paho Client Python și un serviciu MQTT numit CloudMQTT. Iată mai multe despre MQTT și cum să îl utilizați:

  1. Explorarea protocoalelor de comunicare pentru IoT
  2. Noțiuni introductive despre CloudMQTT
  3. Prezentare generală a bibliotecii client Eclipse Paho MQTT Python

MEMS Microfon Breakout Board

Microfonul MEMS este un microfon analogic, deci vom avea nevoie de un convertor analog-digital („ADC”) pentru a citi semnalul analogic cu pinii GPIO digitale Raspberry Pi.

  1. Noțiuni introductive despre placa SparkFun MEMS Microphone Breakout Board
  2. Foaie de date cu microfon MEMS
  3. Foaie de date MCP3002 ADC

Pasul 2: Materiale

Materiale
Materiale
Materiale
Materiale
Materiale
Materiale

- Raspberry Pi 3 Model B

De asemenea, vom avea nevoie de următoarele periferice: Raspberry Pi 3 Case; Card SD (minim 8 GB); Cablu Raspberry Pi 3 GPIO; Cablu de alimentare MicroUSB; Cablu HDMI și monitor compatibil HDMI; Tastatură USB; Mouse USB; difuzoare cu port pentru căști de 1/8.

- Placă SparkFun MEMS Mic Breakout

- MCP3002 (Convertor analog-digital)

- Sârmă de panou pentru panouri și panouri de panouri M-to-M

Pasul 3: Configurați Raspberry Pi

Configurați Raspberry Pi
Configurați Raspberry Pi
Configurați Raspberry Pi
Configurați Raspberry Pi
Configurați Raspberry Pi
Configurați Raspberry Pi
Configurați Raspberry Pi
Configurați Raspberry Pi

Pasul 1: Verificați și instalați actualizările Verificarea și instalarea actualizărilor este întotdeauna o modalitate bună de a începe. Rulați următoarele comenzi în fereastra terminalului:

sudo apt-get update

sudo apt-get upgrade

reporniți sudo

Pasul 2: Configurați interfața SPI pentru microfonul MEMS + MCP3002

Pentru a utiliza SPI (Serial Port Interface) pentru a citi în microfonul MEMS prin MCP3002, vom avea nevoie de pachetul Python Dev:

sudo apt-get install python-dev

De asemenea, vom avea nevoie de interfața SPI (poate doriți să creați un subfolder pentru a salva acest lucru):

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

sudo python setup.py instalare

Iată Documentația SPI-Dev dacă întâmpinați probleme.

Pasul 3: Redarea sunetelor cu OMXPlayer

OMXPlayer este un player audio și video preîncărcat pe sistemul de operare Raspbian. Funcționează cu majoritatea tipurilor de fișiere audio, inclusiv:.wav,.mp3 și.m4a. Iată ce vom folosi pentru a reda sunete atunci când Fido devine prea tare. Biblioteca Python pentru controlul OMXPlayer este inclusă în Raspbian (woo!).

Pentru a testa OMXPlayer de pe terminal, tastați următoarele:

omxplayer /home/…/SongFilePath/SongFileName.mp3

Dacă acest lucru nu funcționează, încercați să îl forțați pe dispozitivul audio local:

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

Pasul 4: configurați serverul CloudMQTT

Acum am creat un server MQTT! Pentru a face acest lucru folosind CloudMQTT, procedați în felul următor:

  1. Configurați un cont CloudMQTT (planul „Cute Cat” este gratuit).
  2. Creați o nouă instanță MyCloud.
  3. În Consolă, creați o nouă regulă ACL.
  4. Puteți monitoriza mesajele publicate în interfața de utilizare „Websocket”.

În cele din urmă, instalați biblioteca Python Client MQTT Paho:

pip instala paho-mqtt

Pasul 4: Construiește-l! Hardware

Construieste! Hardware
Construieste! Hardware
Construieste! Hardware
Construieste! Hardware
Construieste! Hardware
Construieste! Hardware

Diagramele Pinout pentru Raspberry Pi și MCP3002 sunt în fotografiile de mai sus.

1. Introduceți pinii MCP3002 în panoul de verificare (a se vedea diagrama pinout de mai sus)

MCP3002 folosește 4 pini SPI pentru comunicații: Serial Clock ("SCL"), Master Input Slave Output ("MISO"), Master Output Slave Input ("MOSI") și Chip Select ("CS"). Acești pini corespund pinului GPIO Raspberry Pi 11 (SCLK), pinului GPIO 9 (MISO), pinului GPIO 10 (MOSI) și pinului GPIO 8 (CE0).

Faceți următoarele conexiuni cu pinii MCP3002:

  • Conectați Pinul 1 la Raspberry Pi GPIO Pin 8 (CE0)
  • Conectați pinul 2 la ieșirea analogică a plăcii de separare a microfonului MEMS
  • Conectați pinul 4 la GND
  • Conectați Pinul 5 la Raspberry Pi GPIO Pin 10 (MOSI)
  • Conectați Pinul 6 la Raspberry Pi GPIO Pinul 9 (MISO)
  • Conectați Pinul 7 la Raspberry Pi GPIO Pinul 11 (SCLK)
  • Conectați Pinul 8 la ieșirea Raspberry Pi 3.3V

2. Cabluri de lipit pe placa de separare a microfonului MEMS. Conectați-vă la MCP3002 și Raspberry Pi

  • Conectați Vcc la Raspberry Pi 3.3V.
  • Conectați GND la Raspberry Pi GND
  • Conectați AUD la pinul 2 MCP3002

3. Conectați toate cablurile pentru Raspberry Pi și porniți totul

Pasul 5: Construiește-l! Software

Construieste! Software
Construieste! Software

Scopul nostru cu Bark Back este dublu: să declanșăm un sunet de redare atunci când câinele latră și să trimitem datele către un server de unde să le putem verifica.

Iată programul Python open-source pentru acest proiect. Simțiți-vă liber să (și vă rugăm să faceți) să ajustați și să modificați codul.

Pentru a pune în funcțiune programul, trebuie să completați două lucruri:

- SongList: scrieți în calea fișierului și numele fișierului pentru fiecare dintre melodiile pe care doriți să le redați.

- credite: introduceți informațiile dvs. CloudMQTT în acest dicționar.

Pasul 1: Citiți în placa de separare a microfonului SparkFun MEMS

Citiți valoarea ADC (între 0 și 1023) de pe placa de separare a microfonului MEMS (prin MCP3002) utilizând biblioteca SPI și calculați amplitudinea vârf-la-vârf a semnalului.

Asociați amplitudinea vârf-vârf a semnalului la o unitate de volum. Codul actual mapează intervalul ADC între 0 și 700 (pe baza experimentării rapide) la o unitate de volum între 0 și 10. Pentru a regla sensibilitatea microfonului, reglați intervalul de intrare ADC.

Pentru o prezentare detaliată a microfonului MEMS, consultați acest tutorial.

Pasul 2: declanșează playerul audio

Mai întâi vom avea nevoie de melodii pentru a le juca! Puteți înregistra rapid sunete în GarageBand (sau pe smartphone) și le puteți trimite la Raspberry Pi. În Python, utilizați biblioteca subproces pentru a apela omxplayer.

În cod, introduceți calea fișierului melodiilor pe care doriți să le redați în variabila * songList * (linia 26). Pragul de volum curent este setat la 7 în funcția principală.

Pasul 3: trimiteți date către serverul CloudMQTT

Utilizați biblioteca Paho Client Python pentru a comunica cu serverele CloudMQTT. Pentru a rezuma pe larg: configurați un server Client; definirea protocoalelor de comunicare; conectați-vă cu acreditările noastre (aka credite); și abonați-vă și publicați datele noastre. Majoritatea acestui lucru se face în funcția principală (liniile 129 - 149 și liniile 169 - 174).

Pentru a verifica datele primite, accesați fila „Websocket UI” din consola CloudMQTT.

Pasul 6: Testați și instalați

Testați și instalați!
Testați și instalați!

Rulați programul BarkBack.py în Terminal sau în Python IDE (puteți utiliza și SSH pentru a rula programul după ce ați plecat deja).

Verificați dacă obțineți niveluri de volum în fila UI Websocket.

Testați sistemul declanșând microfonul (bate, țipă, scoarță etc.) pentru a vă asigura că difuzoarele redă toate sunetele.

Odată ce totul este în funcțiune, este recomandat să lipiți componentele pe un PCB (circuit imprimat) dacă intenționați să instalați sistemul mai mult de doar câteva zile.

Concurs de microcontrolere 2017
Concurs de microcontrolere 2017
Concurs de microcontrolere 2017
Concurs de microcontrolere 2017

Locul doi în concursul de microcontrolere 2017

Concursul de senzori 2017
Concursul de senzori 2017
Concursul de senzori 2017
Concursul de senzori 2017

Premiul I la Concursul de senzori 2017

Recomandat: