Table des matières:

IoT Pet Monitor ! : 6 étapes (avec photos)
IoT Pet Monitor ! : 6 étapes (avec photos)

Vidéo: IoT Pet Monitor ! : 6 étapes (avec photos)

Vidéo: IoT Pet Monitor ! : 6 étapes (avec photos)
Vidéo: Object Identification & Animal Recognition With Raspberry Pi + OpenCV + Python 2024, Novembre
Anonim
Image
Image
Lecture suggérée
Lecture suggérée

Gardez un œil sur vos bébés bien-aimés et jouez de la musique ou dites-leur de se taire pendant votre absence ! Ce tutoriel montrera comment utiliser un ordinateur Raspberry Pi pour surveiller le volume du son dans votre maison (via le Cloud) pour voir si et quand votre animal est contrarié.

Roulement de tambour… la partie la plus amusante: si ça devient trop fort (comme Fido qui aboie ou fait un autre tapage), nous vous dirons de se taire ou de jouer de la musique !

En plus du Pi (et des haut-parleurs), nous utiliserons la carte de répartition du microphone SparkFun MEMS pour mesurer les niveaux de volume et déclencher le lecteur audio. Les données sont téléchargées vers le service CloudMQTT à l'aide du protocole de communication MQTT.

Temps de lecture total: ~ 8 min

Temps de construction total: 60 min (moins avec expérience)

Un immense MERCI à SparkFun pour avoir soutenu ce projet ! Consultez le tutoriel ici.

Étape 1: Suggestion de lecture

Pour construire ce projet, vous aurez besoin d'un ordinateur Raspberry Pi 3 entièrement configuré et connecté au WiFi avec Raspbian OS. Il est également utile de connaître la programmation Python ainsi que les éléments suivants: (1) comment utiliser et contrôler les broches GPIO du Raspberry Pi; (2) communication MQTT; et (3) capteurs analogiques. Si l'un de ces éléments ne vous est pas familier, ou si vous êtes simplement curieux (soyez curieux !), consultez les tutoriels ci-dessous !

Framboise Pi 3

  1. Guide de branchement du kit de démarrage Raspberry Pi 3
  2. GPIO Raspberry Pi
  3. Communication SPI avec le Raspberry Pi

Protocole de communication MQTT

MQTT (Message Query Telemetry Transport) est un protocole de communication IoT populaire. Nous utiliserons la bibliothèque Paho Client Python et un service MQTT appelé CloudMQTT. En savoir plus sur MQTT et comment l'utiliser:

  1. Explorer les protocoles de communication pour l'IoT
  2. Premiers pas avec CloudMQTT
  3. Présentation de la bibliothèque cliente Python Eclipse Paho MQTT

Carte de dérivation de microphone MEMS

Le microphone MEMS est un microphone analogique, nous aurons donc besoin d'un convertisseur analogique-numérique ("ADC") pour lire le signal analogique avec les broches GPIO numériques du Raspberry Pi.

  1. Premiers pas avec la carte de dérivation de microphone SparkFun MEMS
  2. Fiche technique du microphone MEMS
  3. Fiche technique du CAN MCP3002

Étape 2: Matériaux

Matériaux
Matériaux
Matériaux
Matériaux
Matériaux
Matériaux

- Raspberry Pi 3 modèle B

Nous aurons également besoin des périphériques suivants: Raspberry Pi 3 Case; Carte SD (minimum 8 Go); Câble GPIO Raspberry Pi 3; câble d'alimentation microUSB; Câble HDMI et moniteur compatible HDMI; clavier USB; souris USB; haut-parleurs avec port casque 1/8.

- Carte de dérivation de micro SparkFun MEMS

- MCP3002 (convertisseur analogique-numérique)

-Breadboard & M-to-M Breadboard Jumper Wires

Étape 3: Configurer le Raspberry Pi

Configurer le Raspberry Pi
Configurer le Raspberry Pi
Configurer le Raspberry Pi
Configurer le Raspberry Pi
Configurer le Raspberry Pi
Configurer le Raspberry Pi
Configurer le Raspberry Pi
Configurer le Raspberry Pi

Étape 1: Vérifier et installer les mises à jour Vérifier et installer les mises à jour est toujours un bon moyen de commencer. Exécutez les commandes suivantes dans la fenêtre du terminal:

sudo apt-get mise à jour

sudo apt-get mise à niveau

redémarrage sudo

Étape 2: Configurer l'interface SPI pour le microphone MEMS + MCP3002

Pour utiliser le SPI (Serial Port Interface) pour lire dans le microphone MEMS via le MCP3002, nous aurons besoin du Python Dev Package:

sudo apt-get installer python-dev

Nous aurons également besoin de l'interface SPI (peut vouloir créer un sous-dossier pour l'enregistrer dans):

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

sudo python setup.py installer

Voici la documentation SPI-Dev si vous rencontrez des problèmes.

Étape 3: Jouer des sons avec OMXPlayer

L'OMXPlayer est un lecteur audio et vidéo préchargé sur Raspbian OS. Il fonctionne avec la plupart des types de fichiers audio, notamment:.wav,.mp3 et.m4a. C'est ce que nous utiliserons pour reproduire les sons lorsque Fido devient trop fort. La bibliothèque Python pour contrôler l'OMXPlayer est incluse dans Raspbian (woo!).

Pour tester l'OMXPlayer depuis le terminal, tapez ce qui suit:

omxplayer /home/…/SongFilePath/SongFileName.mp3

Si cela ne fonctionne pas, essayez de le forcer sur le périphérique de sortie audio local:

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

Étape 4: Configurer le serveur CloudMQTT

Maintenant, nous mettons en place un serveur MQTT ! Pour ce faire à l'aide de CloudMQTT, procédez comme suit:

  1. Créez un compte CloudMQTT (le forfait "Cute Cat" est gratuit).
  2. Créez une nouvelle instance MyCloud.
  3. Dans la console, créez une nouvelle règle ACL.
  4. Vous pouvez surveiller les messages publiés dans l'interface utilisateur « Websocket ».

Enfin, installez la bibliothèque Python MQTT Paho Client:

pip installer paho-mqtt

Étape 4: Construisez-le ! Matériel

Construit le! Matériel
Construit le! Matériel
Construit le! Matériel
Construit le! Matériel
Construit le! Matériel
Construit le! Matériel

Les schémas de brochage pour le Raspberry Pi et le MCP3002 sont dans les photos ci-dessus.

1. Insérez les broches du MCP3002 dans la maquette (voir le schéma de brochage ci-dessus)

Le MCP3002 utilise 4 broches SPI pour la communication: horloge série ("SCL"), entrée maître, sortie esclave ("MISO"), sortie maître, entrée esclave ("MOSI") et sélection de puce ("CS"). Ces broches correspondent à la broche GPIO 11 du Raspberry Pi (SCLK), à la broche GPIO 9 (MISO), à la broche GPIO 10 (MOSI) et à la broche GPIO 8 (CE0).

Effectuez les connexions suivantes avec les broches MCP3002:

  • Connectez la broche 1 à la broche 8 GPIO Raspberry Pi (CE0)
  • Connectez la broche 2 à la sortie analogique de la carte de dérivation du microphone MEMS
  • Connectez la broche 4 à GND
  • Connectez la broche 5 à la broche 10 GPIO du Raspberry Pi (MOSI)
  • Connectez la broche 6 à la broche 9 GPIO du Raspberry Pi (MISO)
  • Connectez la broche 7 à la broche GPIO Raspberry Pi 11 (SCLK)
  • Connectez la broche 8 à la sortie Raspberry Pi 3.3V

2. Soudez les fils à la carte de dérivation du microphone MEMS. Connectez-vous au MCP3002 et au Raspberry Pi

  • Connectez Vcc au Raspberry Pi 3.3V.
  • Connectez GND au Raspberry Pi GND
  • Connectez l'AUD à la broche 2 du MCP3002

3. Branchez tous les câbles du Raspberry Pi et allumez tout

Étape 5: Construisez-le ! Logiciel

Construit le! Logiciel
Construit le! Logiciel

Notre objectif avec le Bark Back est double: déclencher un son de lecture lorsque le chien aboie, et envoyer les données à un serveur où nous pouvons les vérifier.

Voici le programme Python open-source pour ce projet. N'hésitez pas (et s'il vous plaît, faites) ajuster et modifier le code.

Pour que le programme soit opérationnel, vous devez remplir deux choses:

- songList: Écrivez le chemin du fichier et le nom du fichier pour chacune des chansons que vous voulez jouer.

- creds: Saisissez vos informations CloudMQTT dans ce dictionnaire.

Étape 1: Lisez la carte de dérivation du microphone SparkFun MEMS

Lisez la valeur ADC (entre 0 et 1023) à partir de la carte de dérivation du microphone MEMS (via le MCP3002) à l'aide de la bibliothèque SPI et calculez l'amplitude crête à crête du signal.

Mappez l'amplitude crête à crête du signal sur une unité de volume. Le code actuel mappe la plage ADC entre 0 et 700 (basé sur une expérimentation rapide) à une unité de volume entre 0 et 10. Pour régler la sensibilité du microphone, ajustez la plage d'entrée ADC.

Pour un aperçu complet du micro MEMS, consultez ce didacticiel.

Étape 2: Déclenchez le lecteur audio

Nous aurons d'abord besoin de chansons à jouer ! Vous pouvez rapidement enregistrer des sons dans GarageBand (ou sur votre smartphone) et les envoyer au Raspberry Pi. En Python, utilisez la bibliothèque de sous-processus pour appeler le fichier omxplayer.

Dans le code, saisissez le chemin du fichier des chansons que vous souhaitez lire dans la variable *songList* (ligne 26). Le seuil de volume actuel est réglé sur 7 dans la fonction principale.

Étape 3: envoyer des données au serveur CloudMQTT

Utilisez la bibliothèque Paho Client Python pour communiquer avec les serveurs CloudMQTT. Pour résumer en gros: Configurez un serveur client; définir des protocoles de communication; connectez-vous avec nos informations d'identification (alias crédits); et abonnez-vous et publiez nos données. La plupart de ces opérations sont effectuées dans la fonction principale (lignes 129 à 149 et lignes 169 à 174).

Pour vérifier les données reçues, accédez à l'onglet "Websocket UI" dans la console CloudMQTT.

Étape 6: Testez et installez

Testez et installez !
Testez et installez !

Exécutez le programme BarkBack.py dans Terminal ou dans l'IDE Python (vous pouvez également utiliser SSH pour exécuter le programme après votre départ).

Vérifiez que vous obtenez les niveaux de volume dans l'onglet de votre interface utilisateur Websocket.

Testez le système en déclenchant le micro (claquement, cri, aboiement, etc.) pour être sûr que les haut-parleurs diffusent tous les sons.

Une fois que tout est opérationnel, il est recommandé de souder les composants sur un PCB (Printed Circuit Board) si vous avez l'intention d'installer le système pendant plus de quelques jours.

Concours de microcontrôleurs 2017
Concours de microcontrôleurs 2017
Concours de microcontrôleurs 2017
Concours de microcontrôleurs 2017

Finaliste du concours de microcontrôleurs 2017

Concours Capteurs 2017
Concours Capteurs 2017
Concours Capteurs 2017
Concours Capteurs 2017

Premier Prix du Concours Capteurs 2017

Conseillé: