INHOUDSOPGAWE:

IoT Pet Monitor !: 6 stappe (met foto's)
IoT Pet Monitor !: 6 stappe (met foto's)

Video: IoT Pet Monitor !: 6 stappe (met foto's)

Video: IoT Pet Monitor !: 6 stappe (met foto's)
Video: How Computer Vision Works 2024, November
Anonim
Image
Image
Voorgestelde leeswerk
Voorgestelde leeswerk

Hou u geliefde bbies dop en speel musiek of sê dat u moet stil wees terwyl u weg is! Hierdie handleiding wys hoe u 'n Raspberry Pi -rekenaar kan gebruik om die volume geluid in u huis (via die wolk) te monitor om te sien of u troeteldier ontsteld is.

Tromrol … die lekkerste deel: as dit te hard word (soos Fido blaf of 'n ander lawaai maak), kan ons vir hulle sê om stil te bly of musiek te speel!

Saam met die Pi (en luidsprekers) gebruik ons die SparkFun MEMS mikrofoon -uitbreekbord om die volume te meet en die klankspeler te aktiveer. Data word met behulp van die MQTT -kommunikasieprotokol na die CloudMQTT -diens gelaai.

Totale leestyd: ~ 8 min

Totale boutyd: 60 minute (minder met ervaring)

Baie dankie aan SparkFun vir die ondersteuning van hierdie projek! Kyk hier na die tutoriaal.

Stap 1: Voorgestelde lees

Om hierdie projek te bou, benodig u 'n volledig gekonfigureerde, WiFi-gekoppelde Raspberry Pi 3-rekenaar met Raspbian OS. Dit is ook handig om 'n paar Python -programmering sowel as die volgende dinge te ken: (1) hoe om die Raspberry Pi GPIO -penne te gebruik en te beheer; (2) MQTT -kommunikasie; en (3) analoog sensors. As u niks hiervan weet nie, of as u net nuuskierig is (wees nuuskierig!), Kyk na die onderstaande tutoriale!

Framboos Pi 3

  1. Raspberry Pi 3 aansluitingsgids vir starterset
  2. Framboos Pi GPIO
  3. SPI Kommunikasie met die Raspberry Pi

MQTT -kommunikasieprotokol

MQTT (Message Query Telemetry Transport) is 'n gewilde IoT -kommunikasieprotokol. Ons gebruik die Paho Client Python -biblioteek en 'n MQTT -diens genaamd CloudMQTT. Hier is meer oor MQTT en hoe om dit te gebruik:

  1. Verken kommunikasieprotokolle vir IoT
  2. Aan die gang met CloudMQTT
  3. Oorsig van die Eclipse Paho MQTT Python -kliëntbiblioteek

MEMS mikrofoon -uitbreekbord

Die MEMS-mikrofoon is 'n analoog mikrofoon, so ons benodig 'n analoog-na-digitale omskakelaar ("ADC") om die analoog sein in te lees met die Raspberry Pi digitale GPIO-penne.

  1. Aan die gang met die SparkFun MEMS -mikrofoon -uitbreekbord
  2. MEMS mikrofoon datablad
  3. MCP3002 ADC -datablad

Stap 2: materiaal

Materiaal
Materiaal
Materiaal
Materiaal
Materiaal
Materiaal

- Framboos Pi 3 Model B

Ons benodig ook die volgende randapparatuur: Raspberry Pi 3 -hoes; SD -kaart (minimum 8 GB); Framboos Pi 3 GPIO -kabel; MicroUSB kragkabel; HDMI-kabel en HDMI-versoenbare monitor; USB -sleutelbord; USB muis; luidsprekers met 1/8 koptelefoonaansluiting.

- SparkFun MEMS Mic Breakout Board

-MCP3002 (analoog-na-digitale omskakelaar)

-Breadboard & M-to-M Breadboard Jumper Wires

Stap 3: Stel die Raspberry Pi op

Stel die Raspberry Pi op
Stel die Raspberry Pi op
Stel die Raspberry Pi op
Stel die Raspberry Pi op
Stel die Raspberry Pi op
Stel die Raspberry Pi op
Stel die Raspberry Pi op
Stel die Raspberry Pi op

Stap 1: Gaan opdaterings na en installeer Dit is altyd 'n goeie manier om opdaterings na te gaan en te installeer. Voer die volgende opdragte in die terminale venster uit:

sudo apt-get update

sudo apt-get upgrade

sudo herlaai

Stap 2: Stel 'n SPI -koppelvlak op vir MEMS -mikrofoon + MCP3002

Om die SPI (Serial Port Interface) te gebruik om in die MEMS -mikrofoon te lees via die MCP3002, benodig ons die Python Dev -pakket:

sudo apt-get installeer python-dev

Ons benodig ook die SPI -koppelvlak (ons wil dalk 'n submap skep om dit in te stoor):

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

sudo python setup.py installeer

Hier is die SPI-Dev-dokumentasie as u probleme ondervind.

Stap 3: Speel klanke met OMXPlayer

Die OMXPlayer is 'n oudio- en videospeler wat vooraf op Raspbian OS gelaai is. Dit werk met die meeste klanklêertipes, insluitend:.wav,.mp3 en.m4a. Dit is wat ons sal gebruik om klanke af te speel as Fido te hard word. Die Python -biblioteek om die OMXPlayer te beheer, is ingesluit in Raspbian (woo!).

Om die OMXPlayer vanaf die terminale te toets, tik die volgende:

omxplayer /home/…/SongFilePath/SongFileName.mp3

As dit nie werk nie, probeer dit dan dwing oor die plaaslike oudio-out-toestel:

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

Stap 4: Stel CloudMQTT -bediener op

Nou het ons 'n MQTT -bediener opgestel! Om dit te doen met behulp van CloudMQTT, doen die volgende:

  1. Stel 'n CloudMQTT -rekening op (die plan "Cute Cat" is gratis).
  2. Skep 'n nuwe MyCloud -instansie.
  3. Skep 'n nuwe ACL -reël in die konsole.
  4. U kan gepubliseerde boodskappe in die UI "Websocket" monitor.

Laastens, installeer die MQTT Paho Client Python -biblioteek:

pip installeer paho-mqtt

Stap 4: Bou dit! Hardeware

Bou dit! Hardeware
Bou dit! Hardeware
Bou dit! Hardeware
Bou dit! Hardeware
Bou dit! Hardeware
Bou dit! Hardeware

Pinout -diagramme vir die Raspberry Pi en die MCP3002 is op die foto's hierbo.

1. Steek MCP3002 -penne in die broodbord (sien pinout -diagram hierbo)

Die MCP3002 gebruik 4 SPI -penne vir kommunikasie: Serial Clock ("SCL"), Master Input Slave Output ("MISO"), Master Output Slave Input ("MOSI") en Chip Select ("CS"). Hierdie penne stem ooreen met Raspberry Pi GPIO pen 11 (SCLK), GPIO pen 9 (MISO), GPIO Pin 10 (MOSI) en GPIO Pin 8 (CE0).

Maak die volgende verbindings met MCP3002 -penne:

  • Koppel pen 1 aan Raspberry Pi GPIO Pin 8 (CE0)
  • Koppel pen 2 aan die analoog -uitgang van die MEMS -mikrofoon -uitbreekbord
  • Koppel pen 4 aan GND
  • Koppel Pin 5 aan Raspberry Pi GPIO Pin 10 (MOSI)
  • Koppel pen 6 aan Raspberry Pi GPIO pen 9 (MISO)
  • Koppel pen 7 aan Raspberry Pi GPIO Pin 11 (SCLK)
  • Koppel Pin 8 aan Raspberry Pi 3.3V out

2. Soldeerdrade aan die MEMS -mikrofoon -uitbreekbord. Koppel aan MCP3002 en Raspberry Pi

  • Koppel Vcc aan Raspberry Pi 3.3V.
  • Koppel GND aan Raspberry Pi GND
  • Koppel AUD aan MCP3002 Pin 2

3. Koppel al die kabels vir die Raspberry Pi aan en skakel alles aan

Stap 5: Bou dit! Sagteware

Bou dit! Sagteware
Bou dit! Sagteware

Ons doel met die Bark Back is tweeledig: aktiveer 'n afspeelgeluid wanneer die hond blaf, en stuur die data na 'n bediener waar ons dit kan kontroleer.

Hier is die open-source Python-program vir hierdie projek. Pas die kode toe (en doen dit asseblief).

Om die program aan die gang te kry, moet u twee dinge invul:

- songList: Skryf die lêerpad en lêernaam in vir elk van die liedjies wat u wil speel.

- geloofsbriewe: voer u CloudMQTT -inligting in hierdie woordeboek in.

Stap 1: Lees in die SparkFun MEMS mikrofoon -uitbreekbord

Lees die ADC-waarde (tussen 0 en 1023) in van die MEMS-mikrofoon-uitbreekbord (via die MCP3002) met behulp van die SPI-biblioteek en bereken die seinpiek-tot-piek-amplitude.

Kaart die sein piek-tot-piek amplitude na 'n volume-eenheid. Die huidige kode karteer die ADC -reeks tussen 0 en 700 (gebaseer op vinnige eksperimentering) na 'n volume -eenheid tussen 0 en 10. Pas die ADC -invoerbereik aan om die sensitiwiteit van die mikrofoon aan te pas.

Kyk na hierdie handleiding vir 'n deeglike oorsig van die MEMS -mikrofoon.

Stap 2: aktiveer klankspeler

Eerstens het ons liedjies nodig om te speel! U kan klanke vinnig opneem in GarageBand (of op u slimfoon) en dit na die Raspberry Pi stuur. Gebruik die subprosesbiblioteek in Python om die omxplayer te bel.

Voer in die kode die lêerpad in van die liedjies wat u wil afspeel in die veranderlike * songList * (reël 26). Die huidige volumedrempel is in die hooffunksie op 7 gestel.

Stap 3: Stuur data na CloudMQTT Server

Gebruik die Paho Client Python -biblioteek om met die CloudMQTT -bedieners te kommunikeer. Om kortliks op te som: Stel 'n kliëntbediener op; kommunikasieprotokolle te definieer; maak kontak met ons geloofsbriewe (ook bekend as geloofsbriewe); en teken in en publiseer ons data. Die meeste hiervan word gedoen in die hooffunksie (reëls 129 - 149 en reëls 169 - 174).

Gaan na die oortjie "Websocket UI" in die CloudMQTT -konsole om na die ontvangde data te kyk.

Stap 6: Toets en installeer

Toets en installeer!
Toets en installeer!

Begin die BarkBack.py -program in Terminal of in die Python IDE (u kan ook SSH gebruik om die program uit te voer nadat u reeds vertrek het).

Kontroleer dat u volumevlakke op u Websocket UI -oortjie kry.

Toets die stelsel deur die mikrofoon te aktiveer (klap, skree, blaf, ens.) Om seker te maak dat die luidsprekers deur al die geluide speel.

Sodra alles aan die gang is, word dit aanbeveel om die komponente aan 'n PCB (Printed Circuit Board) te soldeer as u die stelsel langer as 'n paar dae wil installeer.

Mikrokontroleurwedstryd 2017
Mikrokontroleurwedstryd 2017
Mikrokontroleurwedstryd 2017
Mikrokontroleurwedstryd 2017

Naaswenner in die mikrokontroleurwedstryd 2017

Sensors Wedstryd 2017
Sensors Wedstryd 2017
Sensors Wedstryd 2017
Sensors Wedstryd 2017

Eerste prys in die Sensors -wedstryd 2017

Aanbeveel: