Table des matières:
- Étape 1: Fournitures
- Étape 2: Schéma et câblage
- Étape 3: Conception de la base de données
- Étape 4: Configurer Raspberry Pi
- Step 5: Setting Up the Database to the RPi
- Étape 6: Configuration du Bluetooth sur notre RPi
- Étape 7: écriture du backend complet
- Étape 8: Rédaction du Frontend (HTML, CSS & JavaScript)
- Étape 9: Construire mon dossier et tout assembler
Vidéo: Mood Speaker - un haut-parleur puissant pour écouter de la musique d'ambiance en fonction de la température ambiante : 9 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Salut!
Pour mon projet scolaire au MCT Howest Kortrijk, j'ai fabriqué un haut-parleur d'ambiance. Il s'agit d'un haut-parleur Bluetooth intelligent avec différents capteurs, un écran LCD et une bande LED WS2812b inclus. Le haut-parleur joue de la musique de fond en fonction de la température mais peut également être utilisé comme Bluetooth ordinaire. conférencier. Tout fonctionne sur le Raspberry Pi (Base de données, Webserver, Backend).
Donc, cette instructable est un processus étape par étape de la façon dont j'ai réalisé ce projet en 3 semaines. Donc, si vous voulez recréer mon projet, vous pouvez suivre le guide
Cette instructable est mon premier que j'ai écrit, donc s'il y a des questions, je vais essayer d'y répondre aussi rapidement que possible !
Mon GitHub:
Étape 1: Fournitures
Carte SD Raspberry Pi 3B et 16 Go
Tout mon projet s'exécute sur mon Raspberry Pi 3B avec une image configurée, que j'expliquerai dans une étape ultérieure (Étape 4: Configurer Raspberry Pi)
Écran LCD 16x2
J'ai utilisé un écran LCD de base pour imprimer ma température, ma luminosité et mon adresse IP.
Fiche technique:
Capteur de température DS18B20
Le DS18B20 est un capteur à un fil qui mesure la température, fabriqué par Maxim Integrated. Il existe 2 sortes de capteurs DS18B20, le composant uniquement (que j'ai utilisé) et la version étanche, qui est beaucoup plus grande, mais ce n'est pas ce dont j'avais besoin pour mon projet, j'ai donc utilisé uniquement le composant. Le capteur peut mesurer la température dans une plage de -55°C à +125°C (-67°F à +257°F) et il a une précision de 0,5°C de -10°C à +85°C. Il a également une résolution programmable de 9 bits à 12 bits.
Fiche technique:
MCP3008
Pour lire les données de mon capteur LDR et PIR, j'ai utilisé un MCP3008, qui est un convertisseur analogique-numérique à 8 canaux 10 bits avec l'interface SPI et qui est assez facile à programmer.
Fiche technique:
Détecteur de mouvement PIR
Pour détecter quand quelqu'un entre et sort de ma chambre, j'ai utilisé un capteur infrarouge passif car ils sont faciles à utiliser et sont petits.
Fiche technique:
LDR
J'ai utilisé une photorésistance ou une LDR (Light Decreasing Resistance, ou résistance dépendante de la lumière) pour détecter le niveau de luminosité de la pièce dans laquelle elle se trouve. Et aussi pour allumer ma Ledstrip lorsqu'il fait trop sombre.
Haut-parleur - 3"Diamètre - 4 Ohm 3 Watt
C'est le cône de haut-parleur que j'ai choisi après avoir calculé la tension et les ampères dont il aurait besoin et c'était un ajustement parfait pour mon projet Raspberry Pi, fabriqué par Adafruit.
Présentation:
Amplificateur mono classe D MAX98357 I2S
C'est l'amplificateur fourni avec le haut-parleur, non seulement c'est un amplificateur, c'est aussi un convertisseur numérique-analogique I2S, il convient donc parfaitement à mon haut-parleur et à mon système audio.
Présentation:
Fiche technique:
Arduino Uno
L'Arduino Uno est une carte microcontrôleur open source basée sur le microcontrôleur Microchip ATmega328P, fabriqué par Arduino.cc. La carte Uno a 14 broches numériques, 6 broches analogiques et est entièrement programmable avec le logiciel Arduino IDE
Aperçu:
Changeur de niveau
Il s'agit d'une petite carte qui s'occupe de la communication entre l'Arduino Uno et le Raspberry Pi et les différentes tensions, Arduino: 5V & Raspberry Pi: 3,3V. Cela est nécessaire car la bande de LED est connectée à l'Arduino et y fonctionne, tandis que tous les autres éléments fonctionnent sur le Raspberry Pi.
WS2812B - Bande LED
Il s'agit d'une bande de leds avec 60 leds RVB (vous pouvez acheter des bandes plus longues avec plus de leds RVB, si vous le souhaitez). Ce qui est dans mon cas connecté à l'Arduino Uno, mais peut également être connecté à de nombreux autres appareils et est vraiment simple à utiliser.
Fiche technique:
GPIO T-Part, 1 Breadboard et beaucoup de cavaliers
Pour connecter tout ce dont j'avais besoin de planches à pain et de fils de connexion, je n'ai pas utilisé la partie en T GPIO, mais vous pouvez l'utiliser pour savoir clairement quel bac va où.
Étape 2: Schéma et câblage
Pour faire mon schéma, j'ai utilisé Fritzing, c'est un programme que vous pouvez installer qui vous permet de créer un schéma très facilement dans différents types de vues. J'ai utilisé la maquette et la vue schématique.
Télécharger Fritzing:
Assurez-vous que tout est correctement connecté. J'ai utilisé des couleurs pour rendre un peu plus clair pour savoir où connecter les fils. Dans mon cas, j'ai utilisé différentes couleurs pour les fils
Étape 3: Conception de la base de données
Nous collectons beaucoup de données des 3 capteurs (température du DS18B20, luminosité du LDR et statut du capteur PIR). Il est donc préférable de conserver toutes ces données dans une base de données. J'expliquerai dans une étape ultérieure comment configurer la base de données (Etape 5: Transférer l'ingénierie de notre base de données au RPi !) Mais d'abord la conception ou ERD (Entity Relationship Diagram) doit être faite. Le mien a été normalisé avec 3NF, c'est pourquoi nous avons divisé les composants et l'historique des composants dans une autre table. Nous utilisons la base de données Musique pour garder une trace des chansons qui ont été écoutées.
Dans l'ensemble, il s'agit d'une conception de base de données vraiment basique et facile à utiliser.
Étape 4: Configurer Raspberry Pi
Alors maintenant que nous avons fait quelques bases du projet. Commençons par configurer le Raspberry Pi !
Partie 1: Configuration de la carte SD
1) Téléchargez le logiciel et les fichiers requis
Vous devez télécharger 2 logiciels et 1 système d'exploitation, c'est-à-dire Raspbian pour ce processus complet. 1er logiciel: le premier logiciel est Win32 Disk Imager.
sourceforge.net/projects/win32diskimager/
2ème logiciel: Le deuxième logiciel est SD Card Formatter.
www.sdcard.org/downloads/formatter_4/
OS Raspbian: Il s'agit du système d'exploitation principal du Pi.
www.raspberrypi.org/downloads/raspberry-pi-os/
Extrayez tous les fichiers sur le bureau.
2) Obtenez la carte SD et le lecteur de carte
Obtenez une carte SD de classe 10 d'au moins 8 Go avec un lecteur de carte. Insérez cette carte dans le lecteur de carte et branchez-la sur le port USB.
3) Formatez la carte SD
Ouvrez SD Card Formatter et sélectionnez le lecteur.
Cliquez sur format et ne modifiez aucune autre option.
Une fois le formatage terminé, cliquez sur OK.
4) Écrire le système d'exploitation sur la carte SD
Ouvrez win32diskimager.
Parcourez le fichier.img de Raspbian OS qui a été extrait du fichier téléchargé.
Cliquez sur Ouvrir puis sur Écrire.
Si un avertissement apparaît, ignorez-les en cliquant sur OK. Attendez que l'écriture soit terminée et cela peut prendre quelques minutes. Soyez donc patient.
m
5) Une fois cela fait, nous sommes prêts à faire quelques derniers ajustements avant de mettre l'image dans notre RPi.
Allez dans le répertoire de votre carte SD, recherchez le fichier nommé 'cmdline.txt' et ouvrez-le.
Ajoutez maintenant 'ip=169.254.10.1' sur la même ligne.
Enregistrez le fichier.
Créez un fichier nommé 'ssh' sans extension ni contenu (le moyen le plus simple est de créer un fichier txt et de supprimer le.txt par la suite)
Maintenant que tout est installé sur la carte SD, vous pouvez l'éjecter en toute sécurité de votre ordinateur et le mettre dans le Raspberry Pi SANS brancher l'alimentation. Une fois la carte SD insérée dans le RPI, connectez un câble LAN de votre ordinateur au port LAN du RPi, une fois celui-ci connecté, vous pouvez connecter l'alimentation au RPi.
Partie 2: Configuration du RPi
Mastic
Maintenant, nous voulons configurer notre Raspberry Pi, cela se fait via Putty.
Logiciel Putty:
Une fois téléchargé, ouvrez Putty et insérez l'IP '169.254.10.1' et le port '22' et le type de connexion: SSH.
Maintenant, nous pouvons enfin ouvrir notre interface de ligne de commande et nous connecter avec les informations de connexion de démarrage -> Utilisateur: pi & Mot de passe: raspberry. (Il est recommandé de le changer le plus rapidement possible. Voici un guide comment:
Raspi-config
Nous devrons activer différentes interfaces et pour ce faire, nous devons d'abord taper le code suivant:
sudo raspi-config
Les choses que nous devons activer se trouvent dans la section d'interfaçage. Nous devons activer les interfaces suivantes:
- Un fil
- En série
- I2C
- SPI
C'était tout ce que nous avions besoin de faire avec raspi-config
Ajout de votre Wi-Fi
Tout d'abord, vous devez être root pour que la commande suivante devienne root
sudo -i
Une fois que vous êtes root, utilisez la commande suivante: (Remplacez SSID par votre nom de réseau et votre mot de passe par votre mot de passe réseau)
wpa_passphrase "ssid" "mot de passe" >> /etc/wpa_supplicant/wpa_supplicant.conf
Si vous avez fait quelque chose de mal, vous pouvez vérifier, mettre à jour ou supprimer ce réseau en entrant simplement la commande suivante:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Donc, après être entré dans notre réseau, entrons dans l'interface client WPA
wpa_cli
Sélectionnez votre interface
interface wlan0
Recharger le fichier
reconfigurer
Et enfin vous pouvez voir si vous êtes bien connecté:
IP un
Partie 3: Mise à jour du RPi + logiciel d'installation
Maintenant que nous sommes connectés à Internet, mettre à jour les packages déjà installés serait une décision intelligente, alors faisons-le d'abord avant d'installer d'autres packages.
sudo apt-get mise à jour
sudo apt-get mise à niveau
Après la mise à jour du RPi, nous devrons installer le logiciel suivant:
Base de données MariaDB
sudo apt-get install mariadb-server
Serveur Web Apache2
sudo apt installer apache2
Python
update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1 update-alternatives --install /usr/bin/python python /usr/bin/python3 2
paquet Python
Vous devrez installer tous ces packages pour que le backend fonctionne parfaitement:
- Ballon
- Flacon-Cors
- Flask-MySql
- Flacon-SocketIO
- Requêtes PyMySQL
- Python-socketio
- RPi. GPIO
- Gévent
- Gevent-websocket
Bibliothèque de conférenciers
Pour utiliser le haut-parleur avec l'amplificateur, nous devrons installer une bibliothèque pour cela
boucle -sS > | bash
Step 4: Reboot
After everything has been installed we will have to reboot the pi to make sure everything works correctly
sudo reboot
Step 5: Setting Up the Database to the RPi
Maintenant que nous avons installé tout ce dont nous avions besoin, plaçons notre base de données que nous avons conçue sur notre Raspberry Pi !
Pour configurer la base de données, nous devrons connecter MySql et RPi. Pour cela, nous allons ouvrir MySQLWorkbench et établir une nouvelle connexion. Lorsque vous regardez l'image, vous devrez modifier les informations pour les vôtres.
Si vous n'avez encore rien changé, vous pouvez utiliser pour SSH pi et raspberry, pour MySQL mysql et mysql.
Lorsque quelque chose n'est pas clair, vous pouvez également suivre ce tutoriel:
Pour exporter votre base de données, il devrait être plus facile d'utiliser PHPmyAdmin car vous pouvez obtenir beaucoup d'erreurs en le faisant avec MySql
Étape 6: Configuration du Bluetooth sur notre RPi
Nous créons un haut-parleur Mood, que nous pouvons également utiliser avec notre propre musique, ce qui est plus facile lorsque le RPi est
connecté au bluetooth j'ai suivi un tuto pour cela que vous pouvez trouver ici:
scribles.net/streaming-bluetooth-audio-fr…
J'ai tout écrit ici aussi pour tous ceux qui veulent le recréer
Suppression du bluealsa déjà en cours d'exécution
sudo rm /var/run/bluealsa/*
Ajouter le rôle de récepteur de profil A2DP
sudo bluealsa -p a2dp-évier &
Ouvrez l'interface Bluetooth et allumez votre Bluetooth
mise sous tension bluetoothctl
Configurez un agent de jumelage
agent sur agent par défaut
Rendez votre RPi détectable
découvrable sur
- Maintenant, à partir de votre appareil Bluetooth, recherchez le RPi et connectez-vous avec lui.
- Confirmez l'appairage sur les deux appareils, tapez « oui » dans votre mastic.
- Autorisez le service A2DP, tapez à nouveau 'yes'.
- Une fois cela fait, nous pouvons faire confiance à notre appareil, nous n'avons donc pas à tout faire à chaque fois que nous voulons nous connecter
faites confiance à XX:XX:XX:XX:XX:XX (votre adresse mac bluetooth de notre appareil source)
Si vous voulez que votre RPi reste détectable, c'est votre choix, mais je préfère le désactiver à nouveau, afin que les gens ne puissent pas essayer de se connecter avec votre box
détectable désactivé
Ensuite, nous pouvons quitter notre interface bluetooth
sortir
Et enfin notre routage audio: notre transfert de périphérique source vers notre RPi
00:00:00:00:00:00
Maintenant, notre appareil est connecté à notre Raspberry avec Bluetooth et vous devriez pouvoir le tester en lisant n'importe quel média, par exemple Spotify, etc.
Étape 7: écriture du backend complet
Alors maintenant que la configuration est terminée, nous pouvons enfin commencer à écrire notre programme backend !
J'ai utilisé Visual Studio Code pour tout mon backend, il vous suffit de vous assurer que votre projet Visual Studio est connecté à votre Raspberry Pi, cela signifie que votre câble LAN doit être connecté à votre RPi et établir une connexion SSH. (des informations sur la création d'une connexion à distance peuvent être trouvées ici:
J'ai utilisé mes propres classes et celles-ci sont également toutes incluses dans mon GitHub.
Dans mon fichier backend, j'ai utilisé différentes classes, donc tout peut être utilisé séparément et pour que mon code principal ne soit pas un gâchis avec tous les différents threads. J'ai utilisé le threading pour exécuter toutes les différentes classes à la fois. Et en bas, vous avez toutes les routes afin que nous puissions facilement obtenir des données dans notre frontend.
Étape 8: Rédaction du Frontend (HTML, CSS & JavaScript)
Maintenant que le backend est terminé, nous pouvons commencer à écrire le front-end complet.
HTML et CSS étaient assez difficiles pour moi, j'ai fait de mon mieux pour le rendre mobile d'abord parce que je peux m'y connecter avec Bluetooth pour changer les chansons avec Spotify. Il serait donc plus facile de contrôler depuis un tableau de bord mobile
Vous pouvez concevoir votre tableau de bord comme vous le souhaitez, je vais simplement laisser mon code et mon design ici, vous pouvez faire ce que vous voulez !
Et Javascript n'était pas plus facile pour moi, j'ai travaillé avec quelques GET de mes routes backend, des tonnes d'écouteurs d'événements et quelques structures socketio pour obtenir les données de mes capteurs.
Étape 9: Construire mon dossier et tout assembler
J'ai d'abord commencé à esquisser à quoi je voulais que le boîtier ressemble, quelque chose d'important était qu'il devait être assez grand pour que tout puisse rentrer, car nous avions un gros circuit à mettre dans le boîtier mais devions rester compacts pour qu'il ne le fasse pas. ne prend pas beaucoup de place
J'ai fabriqué le boîtier en bois, je pense que c'est le plus facile à utiliser lorsque vous n'avez pas beaucoup d'expérience dans la construction de boîtiers et que vous pouvez également faire beaucoup de choses avec.
Je suis parti d'une vieille planche que j'avais autour et j'ai juste commencé à scier le bois. Une fois que j'ai eu mon étui de base, j'ai juste eu à percer des trous dedans (beaucoup sur le devant du boîtier, comme vous pouvez le voir sur les photos et y mettre des clous, c'est un étui vraiment basique, mais il a l'air plutôt cool et s'adapte parfaitement. J'ai également décidé de le peindre en blanc pour le rendre beau.
Et une fois l'affaire terminée, il était temps de tout assembler, comme vous pouvez le voir sur la dernière photo ! C'est un peu le bordel à l'intérieur de la boîte, mais tout fonctionne et je n'avais pas beaucoup plus d'espace, alors je vous conseille de créer peut-être un boîtier plus grand si vous recréez mon projet.
Conseillé:
Lumières d'ambiance réactives à la musique : 5 étapes (avec photos)
Music Reactive Mood Lights: Intro and Background. De retour en première année (printemps 2019), je voulais embellir mon dortoir. J'ai eu l'idée de créer mes propres lumières d'ambiance qui réagiraient à la musique que j'écoutais sur mes écouteurs. Franchement, je n'avais pas d'inspiration particulière
Assembleur de musique : Instrument de musique virtuel intégré avec capteur tactile de type bloc : 4 étapes
Assembleur de musique : Instrument de musique virtuel intégré avec capteur tactile de type bloc : De nombreuses personnes souhaitent apprendre à jouer d'un instrument de musique. Malheureusement, certains d'entre eux ne le démarrent pas en raison du prix élevé des instruments. Sur cette base, nous avons décidé de créer un système d'instruments de musique virtuel intégré pour réduire le budget de démarrage
Puissant Boombox portable 2.1 puissant : 8 étapes
Puissant Boombox portable 2.1 puissant : j'ai décidé de faire ma propre boombox, j'ai fabriqué le boîtier à partir de deux anciens boîtiers d'enceintes. Regardez la vidéo ci-dessus pour des échantillons sonores. module : https://goo.gl/f3tkiUAmplifier 30W ht
Comment écouter votre bibliothèque Itunes via votre téléviseur ou récepteur AV : 5 étapes
Comment écouter votre bibliothèque Itunes via votre récepteur TV ou AV : OK, j'ai fait cette instructable en 10 minutes. C'était si simple ! Un ordinateur portable serait bien pour cela, mais un ordinateur de bureau près d'un téléviseur convient également. Si vous avez un Airport Express, j'ajouterai une étape pour vous. (Remarque : je ne possède pas de service express pour l'aéroport, donc si je
Écouter des émissions en ondes courtes sur une radio AM : 5 étapes (avec photos)
Écoutez des émissions à ondes courtes sur une radio AM : La plus grande radio est mon récepteur à ondes courtes Sangean ATS-803A. La plus petite radio au premier plan est une radio alarme de voyage/AM-FM de la fin des années 1980. Je l'ai converti pour recevoir des fréquences d'ondes courtes entre 4 et 9 MHz et je l'ai utilisé ainsi pendant un certain temps