Inhaltsverzeichnis:
- Schritt 1: Zubehör
- Schritt 2: Schaltplan und Verdrahtung
- Schritt 3: Datenbankdesign
- Schritt 4: Raspberry Pi einrichten
- Step 5: Setting Up the Database to the RPi
- Schritt 6: Konfigurieren von Bluetooth auf unserem RPi
- Schritt 7: Schreiben des kompletten Backends
- Schritt 8: Frontend schreiben (HTML, CSS & JavaScript)
- Schritt 9: Meinen Fall aufbauen und alles zusammenfügen
Video: Stimmungslautsprecher – ein leistungsstarker Lautsprecher für die Wiedergabe von Stimmungsmusik basierend auf der Umgebungstemperatur - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
Sie da!
Für mein Schulprojekt bei MCT Howest Kortrijk habe ich einen Mood Speaker hergestellt. Dies ist ein intelligenter Bluetooth-Lautsprecher mit verschiedenen Sensoren, einem LCD und einem WS2812b-LED-Streifen. Der Lautsprecher spielt Hintergrundmusik basierend auf der Temperatur, kann aber auch als normales Bluetooth verwendet werden Lautsprecher. Alles läuft auf dem Raspberry Pi (Datenbank, Webserver, Backend).
Dieses anweisbare ist also ein Schritt für Schritt, wie ich dieses Projekt in 3 Wochen realisiert habe. Wenn Sie also mein Projekt neu erstellen möchten, können Sie der Anleitung folgen
Dieses instructable ist mein erstes, das ich schrieb, also wenn es irgendwelche Fragen gibt, werde ich versuchen, sie so schnell zu beantworten, wie ich kann!
Mein GitHub:
Schritt 1: Zubehör
Raspberry Pi 3B & 16GB SD-Karte
Mein ganzes Projekt läuft auf meinem Raspberry Pi 3B mit einem konfigurierten Image, was ich in einem späteren Schritt erklären werde (Schritt 4: Raspberry Pi einrichten)
LCD-Anzeige 16x2
Ich habe ein einfaches LCD-Display verwendet, um meine Temperatur, Helligkeit und IP-Adresse zu drucken.
Datenblatt:
DS18B20 Temperatursensor
Der DS18B20 ist ein Eindrahtsensor, der die Temperatur misst, hergestellt von Maxim Integrated. Es gibt 2 Arten von DS18B20-Sensoren, nur die Komponente (die ich verwendet habe) und die wasserdichte Version, die viel größer ist, aber das ist nicht das, was ich für mein Projekt benötigt habe, also habe ich nur die Komponente verwendet. Der Sensor kann die Temperatur in einem Bereich von -55 °C bis +125 °C (67 °F bis +257 °F) messen und hat eine Genauigkeit von 0,5 °C von -10 °C bis +85 °C. Es hat auch eine programmierbare Auflösung von 9 Bit bis 12 Bit.
Datenblatt:
MCP3008
Zum Auslesen der Daten von meinem LDR- und PIR-Sensor habe ich einen MCP3008 verwendet, der ein 8-Kanal-10-Bit-Analog-Digital-Wandler mit SPI-Schnittstelle ist und ziemlich einfach zu programmieren ist.
Datenblatt:
PIR-Bewegungssensor
Um zu erkennen, wann jemand mein Zimmer betritt und verlässt, habe ich einen Passiv-Infrarot-Sensor verwendet, da sie einfach zu bedienen und klein sind.
Datenblatt:
LDR
Ich habe einen Fotowiderstand oder LDR (Light Decreasing Resistance oder lichtabhängiger Widerstand) verwendet, um die Helligkeit des Raums zu erkennen, in dem er sich befindet. Und um auch meinen Ledstrip einzuschalten, wenn er zu dunkel ist.
Lautsprecher – 3” Durchmesser – 4 Ohm 3 Watt
Dies ist der Lautsprecherkonus, den ich ausgewählt habe, nachdem ich die benötigte Spannung und Ampere berechnet hatte, und dies passte perfekt zu meinem Raspberry Pi-Projekt, das von Adafruit hergestellt wurde.
Übersicht:
MAX98357 I2S Class-D Mono-Verstärker
Dies ist der Verstärker, der mit dem Lautsprecher geliefert wird. Er ist nicht nur ein Verstärker, sondern auch ein I2S-Digital-Analog-Wandler, sodass er auch perfekt zu meinem Lautsprecher- und Audiosystem passt.
Übersicht:
Datenblatt:
Arduino Uno
Das Arduino Uno ist ein Open-Source-Mikrocontroller-Board, das auf dem Microchip ATmega328P-Mikrocontroller basiert, hergestellt von Arduino.cc. Das Uno-Board hat 14 digitale Pins, 6 analoge Pins und ist vollständig mit der Arduino IDE-Software programmierbar
Übersicht:
Levelshifter
Dies ist eine kleine Platine, die sich um die Kommunikation zwischen Arduino Uno und Raspberry Pi und die verschiedenen Spannungen kümmert, Arduino: 5V & Raspberry Pi: 3.3V. Dies wird benötigt, da der LED-Strip mit dem Arduino verbunden ist und dort läuft, während alle anderen Dinge auf dem Raspberry Pi laufen.
WS2812B - LED-Streifen
Dies ist ein LED-Streifen mit 60 RGB-LEDs (Sie können längere Streifen mit mehr RGB-LEDs kaufen, wenn Sie möchten). Die ist in meinem Fall mit dem Arduino Uno verbunden, kann aber auch mit vielen anderen Geräten verbunden werden und ist wirklich einfach zu bedienen.
Datenblatt:
GPIO T-Teil, 1 Steckbrett und viele Jumperwires
Um alles zu verbinden, was ich brauchte, Breadboards und Jumperwires, habe ich nicht das GPIO-T-Teil verwendet, aber Sie können es verwenden, um klar zu wissen, welcher Behälter wohin gehört.
Schritt 2: Schaltplan und Verdrahtung
Für die Erstellung meines Schaltplans habe ich Fritzing verwendet, ein Programm, das Sie installieren können, mit dem Sie ganz einfach einen Schaltplan in verschiedenen Ansichten erstellen können. Ich habe die Steckbrett- und Schaltplanansicht verwendet.
Fritzing herunterladen:
Stellen Sie sicher, dass alles richtig angeschlossen ist. Ich habe Farben verwendet, um es etwas klarer zu machen, wo die Drähte angeschlossen werden sollen. In meinem Fall habe ich verschiedene Farben für die Drähte verwendet
Schritt 3: Datenbankdesign
Wir sammeln viele Daten von den 3 Sensoren (Temperatur von DS18B20, Helligkeit von LDR und Status von PIR-Sensor). Daher ist es am besten, all diese Daten in einer Datenbank zu speichern. Ich erkläre in einem späteren Schritt, wie die Datenbank konfiguriert wird (Schritt 5: Forward Engineering Our Database to the RPi!) Aber zuerst muss das Design oder ERD (Entity Relationship Diagram) erstellt werden. Meine wurde mit 3NF normalisiert, deshalb haben wir die Komponenten und die Historie der Komponenten in eine andere Tabelle aufgeteilt. Wir verwenden die Musikdatenbank, um den Überblick über die gehörten Songs zu behalten.
Insgesamt ist dies ein wirklich einfaches und einfaches Datenbankdesign, mit dem Sie weiter arbeiten können.
Schritt 4: Raspberry Pi einrichten
So, jetzt haben wir einige Grundlagen des Projekts erledigt. Beginnen wir mit der Einrichtung des Raspberry Pi!
Teil 1: Konfigurieren der SD-Karte
1) Laden Sie die erforderliche Software und Dateien herunter
Für diesen vollständigen Vorgang müssen Sie 2 Software und 1 Betriebssystem herunterladen, z. B. Raspbian. 1. Software: Die erste Software ist Win32 Disk Imager.
sourceforge.net/projects/win32diskimager/
Zweite Software: Zweite Software ist SD Card Formatter.
www.sdcard.org/downloads/formatter_4/
Raspbian OS: Dies ist das Hauptbetriebssystem des Pi.
www.raspberrypi.org/downloads/raspberry-pi-os/
Extrahieren Sie alle Dateien auf den Desktop.
2) Holen Sie sich die SD-Karte und den Kartenleser
Holen Sie sich eine SD-Karte der Klasse 10 mit mindestens 8 GB und einem Kartenleser. Stecken Sie diese Karte in den Kartenleser und stecken Sie sie in den USB-Anschluss.
3) Formatieren Sie die SD-Karte
Öffnen Sie den SD-Kartenformatierer und wählen Sie das Laufwerk aus.
Klicken Sie auf Format und ändern Sie keine anderen Optionen.
Wenn die Formatierung abgeschlossen ist, klicken Sie auf OK.
4) Schreiben Sie das Betriebssystem auf die SD-Karte
Öffnen Sie win32diskimager.
Durchsuchen Sie die.img-Datei von Raspbian OS, die aus der heruntergeladenen Datei extrahiert wurde.
Klicken Sie auf Öffnen und dann auf Schreiben.
Wenn eine Warnung angezeigt wird, ignorieren Sie diese, indem Sie auf OK klicken. Warten Sie, bis der Schreibvorgang abgeschlossen ist. Dies kann einige Minuten dauern. Also sei geduldig.
n
5) Sobald dies erledigt ist, sind wir bereit, einige letzte Anpassungen vorzunehmen, bevor wir das Bild in unser RPi einfügen.
Gehen Sie in das Verzeichnis Ihrer SD-Karte, suchen Sie nach der Datei „cmdline.txt“und öffnen Sie sie.
Fügen Sie nun 'ip=169.254.10.1' in derselben Zeile hinzu.
Speicher die Datei.
Erstellen Sie eine Datei mit dem Namen 'ssh' ohne Erweiterung oder Inhalt. (Der einfachste Weg ist, eine txt-Datei zu erstellen und die.txt-Datei anschließend zu entfernen)
Nachdem alles auf der SD-Karte installiert ist, können Sie sie SICHER von Ihrem Computer auswerfen und in den Raspberry Pi stecken, OHNE die Stromversorgung anzuschließen. Sobald sich die SD-Karte im RPI befindet, verbinden Sie ein LAN-Kabel von Ihrem Computer mit dem RPi-LAN-Port. Sobald dieser verbunden ist, können Sie das RPi mit Strom versorgen.
Teil 2: Konfigurieren des RPi
Kitt
Nun wollen wir unseren Raspberry Pi konfigurieren, dies geschieht über Putty.
Putty-Software:
Öffnen Sie nach dem Herunterladen Putty und geben Sie die IP '169.254.10.1' und den Port '22' und den Verbindungstyp ein: SSH.
Jetzt können wir endlich unsere Kommandozeilenschnittstelle öffnen und uns mit den Starter-Anmeldeinformationen anmelden -> Benutzer: pi & Passwort: raspberry. (Es wird empfohlen, es so schnell wie möglich zu ändern. Hier ist eine Anleitung:
Raspi-config
Wir müssen verschiedene Schnittstellen aktivieren und dazu müssen wir zuerst folgenden Code eingeben:
sudo raspi-config
Die Dinge, die wir aktivieren müssen, befinden sich im Abschnitt Schnittstellen. Wir müssen folgende Schnittstellen aktivieren:
- Eindraht
- Seriennummer
- I2C
- SPI
Das war alles was wir mit raspi-config machen mussten
WLAN hinzufügen
Zuerst müssen Sie root sein, damit der folgende Befehl root wird
sudo -i
Sobald Sie root sind, verwenden Sie den folgenden Befehl: (Ersetzen Sie die SSID durch Ihren Netzwerknamen und das Kennwort durch Ihr Netzwerkkennwort)
wpa_passphrase "ssid" "Passwort" >> /etc/wpa_supplicant/wpa_supplicant.conf
Falls Sie etwas falsch gemacht haben, können Sie dieses Netzwerk überprüfen, aktualisieren oder löschen, indem Sie einfach den folgenden Befehl eingeben:
nano /etc/wpa_supplicant/wpa_supplicant.conf
Nachdem wir also unser Netzwerk betreten haben, betreten wir die WPA-Client-Schnittstelle
wpa_cli
Wählen Sie Ihre Schnittstelle
Schnittstelle wlan0
Datei neu laden
neu konfigurieren
Und schließlich können Sie sehen, ob Sie gut verbunden sind:
ip a
Teil 3: Aktualisieren des RPi + Installieren der Software
Jetzt, da wir mit dem Internet verbunden sind, wäre es ein kluger Schachzug, die bereits installierten Pakete zu aktualisieren, also lass uns das zuerst tun, bevor wir andere Pakete installieren.
sudo apt-get update
sudo apt-get upgrade
Nach dem Update des RPi müssen wir folgende Software installieren:
MariaDB-Datenbank
sudo apt-get install mariadb-server
Apache2-Webserver
sudo apt installiere 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
Python-Paket
Sie müssen alle diese Pakete installieren, damit das Backend perfekt funktioniert:
- Flasche
- Kolben-Cors
- Flask-MySql
- Kolben-SockelIO
- PyMySQL-Anfragen
- Python-Socketio
- RPi. GPIO
- Gevent
- Gevent-Websocket
Sprecherbibliothek
Um den Lautsprecher mit dem Verstärker zu verwenden, müssen wir eine Bibliothek dafür installieren
curl -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
Nachdem wir nun alles installiert haben, was wir brauchten, legen wir unsere Datenbank, die wir entworfen haben, auf unserem Raspberry Pi!
Zum Einrichten der Datenbank müssen wir MySql und RPi verbinden. Dazu öffnen wir MySQLWorkbench und stellen eine neue Verbindung her. Wenn Sie sich das Bild ansehen, müssen Sie es ändern, um die Informationen in Ihre zu ändern.
Wenn Sie noch nichts geändert haben, können Sie für SSH pi und raspberry, für MySQL mysql und mysql verwenden.
Wenn etwas nicht klar ist, können Sie auch diesem Tutorial folgen:
Um Ihre Datenbank zu exportieren, sollte es einfacher sein, PHPmyAdmin zu verwenden, da Sie mit MySql viele Fehler bekommen können
Schritt 6: Konfigurieren von Bluetooth auf unserem RPi
Wir erstellen einen Mood-Lautsprecher, den wir auch mit unserer eigenen Musik verwenden können, damit dies einfacher ist, wenn der RPi ist
Mit Bluetooth verbunden habe ich ein Tutorial dafür befolgt, das Sie hier finden können:
scribles.net/streaming-bluetooth-audio-fr…
Ich habe auch hier alles aufgeschrieben für alle, die es nachbauen wollen
Entfernen des bereits laufenden bluealsa
sudo rm /var/run/bluealsa/*
Fügen Sie die Senkenrolle des A2DP-Profils hinzu
sudo bluealsa -p a2dp-sink &
Öffnen Sie die Bluetooth-Schnittstelle und schalten Sie Ihr Bluetooth ein
Bluetoothctl einschalten
Richten Sie einen Pairing-Agenten ein
Agent auf Standard-Agent
Machen Sie Ihr RPi auffindbar
auffindbar auf
- Suchen Sie nun von Ihrem Bluetooth-Gerät aus nach dem RPi und verbinden Sie sich damit.
- Bestätigen Sie die Kopplung auf beiden Geräten, geben Sie 'ja' in Ihren Kitt ein.
- Autorisieren Sie den A2DP-Dienst, geben Sie erneut "ja" ein.
- Sobald dies erledigt ist, können wir unserem Gerät vertrauen, sodass wir nicht jedes Mal, wenn wir eine Verbindung herstellen möchten, alles durchgehen müssen
Vertrauen Sie XX:XX:XX:XX:XX:XX (Ihre Bluetooth-Mac-Adresse von unserem Quellgerät)
Wenn Sie möchten, dass Ihr RPi weiterhin auffindbar ist, ist das Ihre eigene Entscheidung, aber ich ziehe es vor, es wieder auszuschalten, damit die Leute nicht versuchen können, sich mit Ihrer Box zu verbinden
auffindbar aus
Dann können wir unsere Bluetooth-Schnittstelle verlassen
Ausfahrt
Und schließlich unser Audio-Routing: unsere Quellgeräte-Weiterleitung an unser RPi
bluealsa-aplay 00:00:00:00:00:00
Jetzt ist unser Gerät über Bluetooth mit unserem Raspberry verbunden und Sie sollten es testen können, indem Sie beliebige Medien abspielen, z. B. Spotify usw.
Schritt 7: Schreiben des kompletten Backends
Jetzt ist das Setup abgeschlossen und wir können endlich damit beginnen, unser Backend-Programm zu schreiben!
Ich habe Visual Studio Code für mein gesamtes Backend verwendet, Sie müssen nur sicherstellen, dass Ihr Visual Studio-Projekt mit Ihrem Raspberry Pi verbunden ist, dh Ihr LAN-Kabel muss mit Ihrem RPi verbunden sein und eine SSH-Verbindung herstellen. (Infos zum Erstellen einer Remote-Verbindung finden Sie hier:
Ich habe meine eigenen Klassen verwendet und diese sind auch alle in meinem GitHub enthalten.
In meiner Backend-Datei habe ich verschiedene Klassen verwendet, damit alles separat verwendet werden kann und mein Hauptcode nicht mit all den verschiedenen Threads durcheinander ist. Ich habe Threading verwendet, um alle verschiedenen Klassen gleichzeitig auszuführen. Und ganz unten haben Sie alle Routen, damit wir ganz einfach Daten in unserem Frontend abrufen können.
Schritt 8: Frontend schreiben (HTML, CSS & JavaScript)
Jetzt, da das Backend fertig ist, können wir mit dem Schreiben des vollständigen Frontends beginnen.
HTML und CSS waren ziemlich hart für mich. Ich habe mein Bestes getan, um es zuerst mobil zu machen, weil ich mich mit Bluetooth verbinden kann, um die Songs mit Spotify zu ändern. Es wäre also einfacher, über ein mobiles Dashboard zu steuern
Sie können Ihr Dashboard so gestalten, wie Sie möchten, ich lasse einfach meinen Code und mein Design hier, Sie können tun, was Sie möchten!
Und Javascript war nicht einfacher für mich, arbeitete mit ein paar GETs aus meinen Backend-Routen, Tonnen von Event-Listenern und einigen Socketio-Strukturen, um die Daten von meinen Sensoren zu erhalten.
Schritt 9: Meinen Fall aufbauen und alles zusammenfügen
Ich begann zu skizzieren, wie das Gehäuse aussehen sollte. Wichtig war, dass es groß genug sein musste, damit alles hineinpasste, da wir eine große Schaltung für das Gehäuse hatten, aber kompakt bleiben mussten, damit es nicht passte. nimmt nicht viel platz weg
Ich habe den Koffer aus Holz gemacht, ich denke, es ist am einfachsten, damit zu arbeiten, wenn Sie nicht so viel Erfahrung mit dem Bauen von Koffern haben und auch viele Dinge haben, die Sie damit machen können.
Ich begann mit einem alten Brett, das ich herumgelegt hatte, und fing einfach an, das Holz zu sägen. Als ich meinen Basic-Case hatte, musste ich nur noch Löcher hineinbohren (viele auf der Vorderseite des Cases, wie auf den Bildern zu sehen ist und ein paar Nägel hineinstecken, es ist ein wirklich Basic-Case, sieht aber ziemlich cool aus und passt perfekt. Ich habe mich auch entschieden, es weiß zu malen, damit es gut aussieht.
Und als der Koffer fertig war, war es an der Zeit, alles zusammenzubauen, wie Sie auf dem letzten Bild sehen können! Es ist ein bisschen durcheinander in der Box, aber alles funktioniert und ich hatte nicht viel mehr Platz, daher rate ich Ihnen, vielleicht einen größeren Fall zu erstellen, wenn Sie mein Projekt neu erstellen.
Empfohlen:
So erstellen Sie einen Smart Pot mit NodeMCU, der von der App gesteuert wird – wikiHow
So erstellen Sie einen Smart Pot mit NodeMCU, der von einer App gesteuert wird: In dieser Anleitung bauen wir einen Smart Pot, der von einem ESP32 und einer Anwendung für Smartphones (iOS und Android) gesteuert wird. Wir verwenden NodeMCU (ESP32) für die Konnektivität und die Blynk-Bibliothek für das Cloud-IoT und die Anwendung auf dem Smartphone. Endlich haben wir
Ein kostengünstiger IoT-Luftqualitätsmonitor basierend auf RaspberryPi 4: 15 Schritte (mit Bildern)
Ein kostengünstiger IoT-Luftqualitätsmonitor auf Basis von RaspberryPi 4: Santiago, Chile, hat während eines winterlichen Umweltnotstands das Privileg, in einem der schönsten Länder der Welt zu leben, aber leider sind es nicht nur Rosen. Chile leidet während der Wintersaison sehr unter Luftverschmutzung, Mai
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": 8 Schritte
MyPhotometrics - Gandalf: Leistungsmessgerät Zur Messung Von Lasern Im Sichtbaren Bereich Auf Basis Von "Sauron": Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz. Eine für Menschen lesbare Zusammenfassung dieser Lizenz findet sich hier.Was ist Gandalf?Gandalf ist eine Stand-A
Auspacken von Jetson Nano & ein Schnellstart für die Two Vision Demo – wikiHow
Auspacken von Jetson Nano & ein Quick Start-Up für Two Vision Demo: ZusammenfassungWie Sie wissen, ist Jetson Nano jetzt ein Starprodukt. Und es kann neuronale Netzwerktechnologie umfassend für eingebettete Systeme bereitstellen. Hier ist ein Unboxing-Artikel mit Details zum Produkt, dem Startvorgang und zwei visuellen Demos … Wortzahl: 800
Laptopständer (basierend auf IKEA Halterungen): 5 Schritte
Laptopständer (basierend auf IKEA Brackets): Die Erstellung dieses Ständers dauerte weniger als 20 Minuten. Ich habe zwei Halterungen VALTER aus IKEA Stück Holz, 2 Schrauben und altes Mauspad verwendet