Inhoudsopgave:

IoT Pet Monitor!: 6 stappen (met afbeeldingen)
IoT Pet Monitor!: 6 stappen (met afbeeldingen)

Video: IoT Pet Monitor!: 6 stappen (met afbeeldingen)

Video: IoT Pet Monitor!: 6 stappen (met afbeeldingen)
Video: Als Dit Niet Was Gefilmd Zou Niemand Het Geloven 2024, November
Anonim
Image
Image
Voorgestelde lectuur
Voorgestelde lectuur

Houd je geliefde bbies in de gaten en speel muziek of zeg dat ze stil moeten zijn terwijl je weg bent! Deze tutorial laat zien hoe je een Raspberry Pi-computer gebruikt om het geluidsvolume in je huis (via de cloud) te controleren om te zien of en wanneer je huisdier van streek is.

Tromgeroffel… het leukste deel: als het te luid wordt (zoals Fido blaft of een andere schor maakt), kun je ze vertellen dat ze stil moeten zijn of muziek moeten spelen!

Samen met de Pi (en luidsprekers) gebruiken we het SparkFun MEMS-microfoonbreakoutboard om volumeniveaus te meten en de audiospeler te activeren. Gegevens worden geüpload naar de CloudMQTT-service met behulp van het MQTT-communicatieprotocol.

Totale leestijd: ~ 8 min

Totale bouwtijd: 60 min (minder met ervaren)

Een grote DANKJEWEL aan SparkFun voor het steunen van dit project! Bekijk hier de tutorial.

Stap 1: Voorgestelde lectuur

Om dit project te bouwen, heb je een volledig geconfigureerde, WiFi-verbonden Raspberry Pi 3-computer met Raspbian OS nodig. Het is ook handig om wat Python-programmering te kennen, evenals de volgende dingen: (1) hoe de Raspberry Pi GPIO-pinnen te gebruiken en te besturen; (2) MQTT-communicatie; en (3) analoge sensoren. Als iets hiervan niet bekend is, of als je gewoon nieuwsgierig bent (wees nieuwsgierig!), bekijk dan de onderstaande tutorials!

Raspberry Pi 3

  1. Raspberry Pi 3 Starter Kit Aansluitgids
  2. Raspberry Pi GPIO
  3. SPI-communicatie met de Raspberry Pi

MQTT-communicatieprotocol

MQTT (Message Query Telemetry Transport) is een populair IoT-communicatieprotocol. We gebruiken de Paho Client Python-bibliotheek en een MQTT-service genaamd CloudMQTT. Hier is meer over MQTT en hoe je het kunt gebruiken:

  1. Communicatieprotocollen voor IoT verkennen
  2. Aan de slag met CloudMQTT
  3. Overzicht van Eclipse Paho MQTT Python-clientbibliotheek

MEMS Microfoon Breakout Board

De MEMS-microfoon is een analoge microfoon, dus we hebben een analoog-naar-digitaal-omzetter ("ADC") nodig om het analoge signaal met de Raspberry Pi digitale GPIO-pinnen in te lezen.

  1. Aan de slag met het SparkFun MEMS Microfoon Breakout Board
  2. MEMS-microfoongegevensblad
  3. MCP3002 ADC-gegevensblad

Stap 2: Materialen

Materialen
Materialen
Materialen
Materialen
Materialen
Materialen

- Raspberry Pi 3 Model B

We hebben ook de volgende randapparatuur nodig: Raspberry Pi 3 Case; SD-kaart (minimaal 8 GB); Raspberry Pi 3 GPIO-kabel; MicroUSB-stroomkabel; HDMI-kabel en HDMI-compatibele monitor; USB-toetsenbord; USB-muis; luidsprekers met 1/8 koptelefoonpoort.

- SparkFun MEMS Mic Breakout Board

- MCP3002 (analoog-naar-digitaal converter)

- Breadboard & M-naar-M Breadboard Jumper Wires

Stap 3: Configureer de Raspberry Pi

Configureer de Raspberry Pi
Configureer de Raspberry Pi
Configureer de Raspberry Pi
Configureer de Raspberry Pi
Configureer de Raspberry Pi
Configureer de Raspberry Pi
Configureer de Raspberry Pi
Configureer de Raspberry Pi

Stap 1: Updates controleren en installeren Het controleren op en installeren van updates is altijd een goede manier om te beginnen. Voer de volgende opdrachten uit in het terminalvenster:

sudo apt-get update

sudo apt-get upgrade

sudo reboot

Stap 2: Stel de SPI-interface in voor MEMS-microfoon + MCP3002

Om de SPI (Serial Port Interface) te gebruiken om de MEMS-microfoon via de MCP3002 in te lezen, hebben we het Python Dev Package nodig:

sudo apt-get install python-dev

We hebben ook de SPI-interface nodig (misschien wil je een submap maken om dit in op te slaan):

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

sudo python setup.py installeren

Hier is de SPI-Dev-documentatie als u problemen ondervindt.

Stap 3: Geluiden afspelen met OMXPlayer

De OMXPlayer is een audio- en videospeler die vooraf is geladen op Raspbian OS. Het werkt met de meeste soorten geluidsbestanden, waaronder:.wav,.mp3 en.m4a. Dit is wat we zullen gebruiken om geluiden af te spelen als Fido te luid wordt. De Python-bibliotheek om de OMXPlayer te besturen is opgenomen in Raspbian (woo!).

Typ het volgende om de OMXPlayer vanaf de terminal te testen:

omxplayer /home/…/SongFilePath/SongFileName.mp3

Als dat niet werkt, probeer het dan via het lokale audio-uitgangsapparaat te forceren:

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

Stap 4: Configureer CloudMQTT-server

Nu hebben we een MQTT-server opgezet! Om dit te doen met CloudMQTT, doet u het volgende:

  1. Stel een CloudMQTT-account in (het "Cute Cat"-abonnement is gratis).
  2. Maak een nieuwe MyCloud-instantie.
  3. Maak in de console een nieuwe ACL-regel.
  4. U kunt gepubliceerde berichten volgen in de gebruikersinterface van "Websocket".

Installeer ten slotte de MQTT Paho Client Python-bibliotheek:

pip installeer paho-mqtt

Stap 4: Bouw het! Hardware

Bouw het! Hardware
Bouw het! Hardware
Bouw het! Hardware
Bouw het! Hardware
Bouw het! Hardware
Bouw het! Hardware

Pinout-diagrammen voor de Raspberry Pi en de MCP3002 staan in de bovenstaande foto's.

1. Steek de MCP3002-pinnen in het breadboard (zie pinout-diagram hierboven)

De MCP3002 gebruikt 4 SPI-pinnen voor communicatie: Serial Clock ("SCL"), Master Input Slave Output ("MISO"), Master Output Slave Input ("MOSI") en Chip Select ("CS"). Deze pinnen komen overeen met Raspberry Pi GPIO pin 11 (SCLK), GPIO pin 9 (MISO), GPIO Pin 10 (MOSI) en GPIO Pin 8 (CE0).

Maak de volgende verbindingen met MCP3002-pinnen:

  • Verbind Pin 1 met Raspberry Pi GPIO Pin 8 (CE0)
  • Sluit Pin 2 aan op de analoge uitgang van het MEMS Microfoon breakout board
  • Sluit pin 4 aan op GND
  • Verbind Pin 5 met Raspberry Pi GPIO Pin 10 (MOSI)
  • Verbind pin 6 met Raspberry Pi GPIO pin 9 (MISO)
  • Verbind Pin 7 met Raspberry Pi GPIO Pin 11 (SCLK)
  • Sluit Pin 8 aan op Raspberry Pi 3.3V uit

2. Soldeer de draden aan het MEMS Microfoon breakout board. Maak verbinding met MCP3002 en Raspberry Pi

  • Sluit Vcc aan op Raspberry Pi 3.3V.
  • Verbind GND met Raspberry Pi GND
  • Sluit AUD aan op MCP3002 Pin 2

3. Sluit alle kabels voor de Raspberry Pi aan en zet alles aan

Stap 5: Bouw het! Software

Bouw het! Software
Bouw het! Software

Ons doel met de Bark Back is tweeledig: een afspeelgeluid activeren wanneer de hond blaft en de gegevens naar een server sturen waar we het kunnen controleren.

Hier is het open-source Python-programma voor dit project. Voel je vrij om (en doe dat alsjeblieft) de code aan te passen en aan te passen.

Om het programma aan de gang te krijgen, moet u twee dingen invullen:

- songList: schrijf het bestandspad en de bestandsnaam in voor elk van de nummers die u wilt afspelen.

- creds: voer uw CloudMQTT-informatie in dit woordenboek in.

Stap 1: Lees het SparkFun MEMS Microfoon breakout board in

Lees de ADC-waarde (tussen 0 en 1023) van het MEMS Microphone breakout board (via de MCP3002) in met behulp van de SPI-bibliotheek en bereken de signaal piek-tot-piek amplitude.

Wijs de signaal piek-tot-piek amplitude toe aan een volume-eenheid. De huidige code wijst het ADC-bereik tussen 0 en 700 (op basis van snelle experimenten) toe aan een volume-eenheid tussen 0 en 10. Om de gevoeligheid van de microfoon aan te passen, past u het ADC-ingangsbereik aan.

Bekijk deze tutorial voor een grondig overzicht van de MEMS-microfoon.

Stap 2: Activeer de audiospeler

Eerst hebben we liedjes nodig om te spelen! Je kunt snel geluiden opnemen in GarageBand (of op je smartphone) en ze naar de Raspberry Pi sturen. Gebruik in Python de subprocesbibliotheek om de omxplayer aan te roepen.

Voer in de code het bestandspad in van de nummers die u wilt afspelen in de variabele *songList* (regel 26). De huidige volumedrempel is ingesteld op 7 in de hoofdfunctie.

Stap 3: Stuur gegevens naar CloudMQTT Server

Gebruik de Paho Client Python-bibliotheek om te communiceren met de CloudMQTT-servers. Om in grote lijnen samen te vatten: Stel een Client-server in; communicatieprotocollen definiëren; verbinding maken met onze inloggegevens (ook bekend als creds); en abonneer en publiceer onze gegevens. Het meeste hiervan wordt gedaan in de hoofdfunctie (regels 129 - 149 en regels 169 - 174).

Om de ontvangen gegevens te controleren, gaat u naar het tabblad "Websocket UI" in de CloudMQTT-console.

Stap 6: Test & installeer

Test & installeer!
Test & installeer!

Voer het programma BarkBack.py uit in Terminal of in de Python IDE (je kunt ook SSH gebruiken om het programma uit te voeren nadat je al vertrokken bent).

Controleer of u volumeniveaus krijgt op het tabblad Websocket UI.

Test het systeem door de microfoon te activeren (klap, schreeuw, blaf, enz.) om er zeker van te zijn dat de luidsprekers alle geluiden doorspelen.

Als alles eenmaal draait, is het aan te raden om de componenten op een PCB (Printed Circuit Board) te solderen als je van plan bent het systeem voor meer dan een paar dagen te installeren.

Microcontroller-wedstrijd 2017
Microcontroller-wedstrijd 2017
Microcontroller-wedstrijd 2017
Microcontroller-wedstrijd 2017

Tweede plaats in de Microcontroller-wedstrijd 2017

Sensorenwedstrijd 2017
Sensorenwedstrijd 2017
Sensorenwedstrijd 2017
Sensorenwedstrijd 2017

Eerste prijs in de Sensors Contest 2017

Aanbevolen: