Spielen Sie Ihr eigenes Thema, wenn Sie den Raum mit Himbeer-Pi betreten

Spielen Sie Ihr eigenes Thema, wenn Sie den Raum mit Himbeer-Pi betreten / DIY

Wollten Sie schon immer einmal persönlich nach Hause kommen? Mit einem Raspberry Pi und ein paar einfachen Komponenten können Sie! In diesem einfachen Projekt verwenden wir einen Reed-Schalter, um eine Themenmelodie auszulösen, wenn eine Tür geöffnet wird. Wir werden hier ein Raspberry Pi als Controller verwenden, obwohl Sie fast alle anderen Mikrocontroller für Mikrocontroller-$ 5 verwenden könnten: Arduino, Raspberry Pi Zero oder NodeMCU? $ 5 Mikrocontroller: Arduino, Raspberry Pi Zero oder NodeMCU? Früher war es der Fall, dass Sie, wenn Sie einen Computer haben wollten, Ihr Haus umladen müssen, um dafür zu bezahlen. Jetzt können Sie einen für Abraham Lincoln bekommen. Lesen Sie mehr für dieses Projekt, das dieselbe Schaltung verwendet. Hier ist eine Demo.

Du wirst brauchen

Sie werden wahrscheinlich bereits alle Teile besitzen, die Sie dafür benötigen, mit Ausnahme des Reed-Schalters, der ungefähr 2-3 Dollar kostet, oder Sie können ein Paket mit 5 für etwas mehr als 8 Dollar hier erhalten.

  • Ein Himbeer-Pi (jedes Modell wird dafür funktionieren).
  • 1 x 220 Ohm Widerstand.
  • 1 x 1 K Ohm Widerstand.
  • 3 x 10 K Ohm Widerstand.
  • 1 x Magnetschalter.
  • 1 x LED.
  • 2 x Druckschalter.
  • Brotschneidebrett.
  • Kabel anschließen.
  • Computerlautsprecher oder ähnliches.

Wir verwenden den Raspberry Pi, um ein Lied abzuspielen, wenn der Raum betreten wird, und entwerfen einen Schaltkreis mit Schaltflächen auf unserem Steckbrett, um ihn verzögert zu aktivieren und das Programm zu stoppen.

Dieses Projekt wird hauptsächlich zum Spaß gemacht und deckt die Grundlagen für viele Anwendungen in der Heimautomation für Heimanwender ab. Home Automation Guide mit Raspberry Pi und Arduino Home Automation Guide mit Raspberry Pi und Arduino Der Markt für Home Automation ist mit teuren Verbrauchersystemen überschwemmt, die mit einem System nicht kompatibel sind ein anderer und kostspieliger zu installieren. Wenn Sie einen Raspberry Pi und einen Arduino haben, können Sie im Grunde dasselbe erreichen, wenn Sie… Lesen Sie mehr und auch die Sicherheit für Heimwerker Sie suchen nach einer Lösung für Ihr Heimsicherheitssystem? Versuchen Sie eine dieser Lösungen, die nach einer DIY-Heimsicherheitssystem-Lösung sucht? Versuchen Sie eines davon Im Zeitalter der digitalen Technologie und immer angeschlossener Hardware sollte die Einrichtung eines Haussicherungssystems die Kunst überschreiten, eine Alarmbox an die Wand zu setzen. Weiterlesen

Himbeer-Pi 3-Modell B-Motherboard Himbeer-Pi 3 - Modell B-Motherboard Kaufen Sie jetzt bei Amazon $ 34.49

Fertig machen

Lasst uns damit beginnen, unsere Schaltung zu machen. Stellen Sie sicher, dass Ihr Pi nicht mit Strom versorgt wird, und richten Sie Ihre Schaltung folgendermaßen ein:

Die LED ist an Pin 7 unseres Pi angeschlossen. Die beiden Drucktastenschalter sind an den Pins 11 und 13 angebracht, und der Reed-Schalter ist an Pin 15 angeschlossen. Unsere Stromversorgung geht an Pin 1 (3v3) und Pin 6 (Gnd)..

Stellen Sie sicher, dass alles genau am richtigen Ort ist.

Während Sie dieses Projekt testen, kann es hilfreich sein, den Reed-Schalter vor sich zu lassen, damit Sie ihn leicht ein- oder ausschalten können. In diesem Fall war der Reed-Schalter bereits über der Tür installiert. Sobald Ihr Projekt gestartet ist, können Sie den Schalter entweder vorübergehend mit Klebeband an der Tür befestigen, oder wenn Sie sich sicherer fühlen, können Sie ihn dauerhaft für zukünftige Projekte anbringen!

Verbinden Sie den 3,5-mm-Klinkenausgang Ihres Pi mit Ihrem Lautsprechersystem. Sobald alles zusammengefügt ist, sollte es ungefähr so ​​aussehen:

Beachten Sie, dass das hier verwendete Steckbrett die Stromschienen umgekehrt zum obigen Fritzing-Diagramm hat.

Starten Sie nun Ihren Pi und greifen Sie mit SSH darauf zu, damit wir auf das Terminal zugreifen können. Wenn Sie sich nicht sicher sind, wie Sie dies tun sollen, finden Sie in diesem Handbuch Einrichten des Raspberry Pi für die Verwendung ohne Heads mit SSH. Einrichten des Raspberry Pi für die Verwendung ohne Heads mit SSH. Der Raspberry Pi kann SSH-Befehle akzeptieren, wenn er mit einem lokalen Netzwerk (entweder über Ethernet oder über Ethernet) verbunden ist Wi-Fi), damit Sie es problemlos einrichten können. Die Vorteile von SSH gehen über das tägliche Screening hinaus ... Das Lesen kann Ihnen helfen. Wenn Sie Ihren Raspberry Pi mit einem Monitor, einer Maus und einer Tastatur verwenden, überspringen Sie diesen Schritt und öffnen Sie das Terminal.

Bevor Sie beginnen, sollten Sie überprüfen, ob Sie auf dem neuesten Stand sind. Art sudo apt-get update in das Terminal.

Jetzt können wir unseren Pi mit unserer Schaltung sprechen lassen.

Testen Sie unser Setup

Zu Beginn können wir unsere Schaltung mit einem einfachen Programm überprüfen. Wenn Sie sich sicher sind, dass Sie bis jetzt alles richtig verdrahtet haben, können Sie diesen Schritt überspringen. Ich würde es jedoch empfehlen, da dies später zu Kopfschmerzen führen kann.

Wenn Sie noch nie in Python programmiert haben und sich ein wenig entmutigt fühlen, gibt es eine Vielzahl großartiger Websites. Die 5 besten Websites, um Python-Programmierung zu lernen Die 5 besten Websites, um Python-Programmierung zu lernen Möchten Sie Python-Programmierung lernen? Hier sind die besten Möglichkeiten, Python online zu lernen, von denen viele völlig kostenlos sind. Lesen Sie mehr, das Ihnen den Einstieg erleichtern kann.

Erstellen Sie im Terminal ein neues Skript:

nano test.py

Fügen Sie nach dem Öffnen diesen Code zur Datei hinzu, und drücken Sie zum Verlassen Strg-C.

#Dieser Code wurde für einen Artikel von Ian Buckley auf www.MakeUseOf.com geschrieben. Importieren von RPi.GPIO als GPIO-Importzeit GPIO.setwarnings (False) GPIO.setmode (GPIO.BOARD) GPIO.setup (7, GPIO.OUT) GPIO.setup (11, GPIO.IN) GPIO.setup (13, GPIO). IN) GPIO.setup (15, GPIO.IN) while True: GPIO.output (7, GPIO.HIGH) if (GPIO.input (11) == 1): print ("Button on GPIO 11") time.sleep (1) if (GPIO.input (13) == 1): print ("Button auf GPIO 13") time.sleep (1) if (GPIO.input (15) == 1): print ("Button auf GPIO 15 ") time.sleep (1) GPIO.cleanup () 

Dieser Code liest den Wert der Schaltflächen und druckt auf den Bildschirm, wenn sie geändert werden. Die beiden Druckknöpfe verfügen über Pull-Down-Widerstände, so dass beim Drücken HIGH angezeigt wird. Der Reed-Magnetschalter meldet HIGH, wenn der zugehörige Magnet geschlossen ist.

Führen Sie das Programm aus:

python test.py

Sie sollten sehen, dass die LED aufleuchtet und eine Meldung auf dem Bildschirm erscheint, wenn Sie Ihre zwei Tasten drücken und den Magneten von Ihrem Reed-Schalter wegziehen. Wenn Sie beim Drücken von Tasten keine Rückmeldung erhalten, überprüfen Sie Ihre Schaltung erneut und stellen Sie sicher, dass alles so angeschlossen ist, wie es sein sollte. Wenn Sie mit dem Testen fertig sind, drücken Sie STRG-C um das Programm zu stoppen.

Jetzt können wir ein einfaches Programm zusammenstellen, um unseren Türsensor einzustellen, auszulösen und zurückzusetzen. Wir werden den Code in Teilen durchgehen und kurz erklären, was jeder Teil bewirkt. Wenn Sie jedoch den gesamten Code nach unten scrollen möchten, wird er vollständig angezeigt.

Wir müssen zunächst einige Module importieren:

Importiere Rpi.GPIO als GPIO-Importzeit für pygame.mixer 

Wir werden die verwenden Pygame Modul, um unsere Musik zu spielen. Es gehört zum Standard von Raspbian Jessie und ist eine großartige Bibliothek für alles, was Sie zum Erstellen von Python-Spielen und vielen anderen erstaunlichen Projekten benötigen. So bauen Sie einen Raspberry Pi-Twitter-Bot So erstellen Sie einen Raspberry Pi-Twitter-Bot Twitter ist der weltweit größte Repository von short Mitteilungen von Leuten, die nichts zu sagen haben - und jetzt können auch Sie mit einem automatisierten Twitter-Bot, der von Ihrem Raspberry angetrieben wird, zu diesem epischen Projekt beitragen… Lesen Sie weiter .

Wir verwenden eine Variable namens aktiv zu entscheiden, ob unser System aktiv ist oder nicht. Lassen Sie uns ein paar Funktionen definieren, die dies für uns tun:

def activeSetup (): global active active = 0 print ("Derzeit nicht aktiv") def activeState (): global active wenn aktiv == 1: aktiv = 0 GPIO.output (7, GPIO.LOW) print ("Currently Not Active.) ") elif active == 0: print (" Aktivieren in 10 Sekunden ") für x im Bereich (0,10): GPIO.output (7, GPIO.HIGH) time.sleep (0,5) GPIO.output (7, GPIO) .LOW) time.sleep (0.5) aktiv = 1 GPIO.output (7, GPIO.HIGH) print ("Currently Active") else: Zurückkehren 

Die erste Funktion hier erstellt eine Variable mit dem Namen aktiv, und setzt es auf 0. Wenn Sie für den aktiven Status einen numerischen Wert angeben, bedeutet dies, dass Sie, wenn Sie Ihr Programm später auf verschiedene aktive Status skalieren möchten, diese entsprechend nummerieren können. Es ist zwar nicht die beste Python-Programmierung der Welt, aber für dieses Projekt reicht es mehr als aus.

Die zweite Funktion prüft beim Aufruf, ob das System aktiv ist (oder aktiv == 1). Wenn dies der Fall ist, wird das System auf nicht aktiv gesetzt (aktiv == 0), schaltet die LED aus und druckt auf die Konsole. Ist dies nicht der Fall, erhalten Sie einen Countdown von 10 Sekunden, um den Raum zu verlassen, in dem die LED blinkt, bevor Sie fortfahren, um anzuzeigen, dass das System aktiv ist.

Nun können wir eine Funktion definieren, die unseren Reed-Magnetschalter überwacht:

def watchDoor (): Globales Spielen = False, während True: Wenn aktiviert == 1 und GPIO.input (15) == 1 und Spielen == False: Spielen = True pygame.mixer.music.play () bei GPIO.input (13) == 1: print ("Stop-Taste gedrückt: Beenden") pygame.mixer.music.stop () unterbrechen, wenn GPIO.input (11) == 1: activeState () time.sleep (0.5) 

Wir erstellen hier eine weitere Variable spielen - Dies ist nur dazu da, um zu verhindern, dass das Programm wiederholt startet, wenn der Schalter ausgelöst wird.

Innerhalb der while-Schleife beginnt die erste if-Anweisung mit der Musik (die wir noch nicht haben, aber keine Sorge, sie kommt). Die Musik kann nur dann gestartet werden, wenn das System aktiv ist, der Reed-Schalter geöffnet ist und nicht abgespielt wird.

Die zweite if-Anweisung bezieht sich auf unseren Exit-Button. Wenn diese Taste gedrückt wird, stoppt die Musik und das Programm wird beendet.

Die dritte if-Anweisung gibt an, ob das System aktiv ist oder nicht. Das time.sleep Diese Funktion dient dazu, das Lesen mehrerer Tasten zu verhindern, wenn diese gedrückt wird.

Jetzt ist es Zeit, die Pins von Pi aufzubauen.

GPIO.setmode (GPIO.BOARD) GPIO.setup (7, GPIO.OUT, initial = GPIO.LOW) GPIO.setup (11, GPIO.IN) GPIO.setup (13, GPIO.IN) GPIO.setup (15, GPIO.IN) 

Wenn Sie bereits mit dem Pi experimentiert haben, sollte Ihnen dies bekannt sein. Das initial = GPIO.LOW Argument in Pin 7 setzt es auf low, sobald es initialisiert wird.

Jetzt können wir unsere Funktion aufrufen, die das System so einstellen soll, dass es beim Start des Programms nicht aktiv ist.

activeSetup () 

Musik-Maestro!

An diesem Punkt sollten wir anfangen, über die zu spielende Musik nachzudenken. Sie können jede Musikdatei auswählen, die Sie wünschen, aber wir werden für jeden eine Option auswählen. Wenn Sie sich YouTube anschauen, sind Sie wahrscheinlich bereits mit Kevin MacLeods Musik vertraut. Lass uns eine fantastische Melodie herunterladen, die von ihm genannt wird “Einäugiger Maestro”. Dies ist zusammen mit einem Großteil der Musik auf seiner Website unter Creative Commons lizenziert. Es gibt viele gute Gründe, was ist Creative Commons und sollten Sie es verwenden? Was ist Creative Commons und sollten Sie es verwenden? Creative Commons umfasst eine Reihe von Lizenzen, mit denen Sie automatisch die Berechtigung erhalten, verschiedene Dinge zu tun, z. B. die Wiederverwendung und Verteilung des Inhalts. Erfahren Sie mehr darüber und wie Sie damit umgehen können. Lesen Sie weiter, um Inhalte mit diesen Lizenzen für Ihre Projekte zu verwenden.

Zurück in unserem Code müssen wir den Pygame-Mixer starten und unsere Melodie laden.

pygame.mixer.init (44100, -16,2,1024) pygame.mixer.music.set_volume (1.0) name = "Einäugiger Maestro.mp3" pygame.mixer.music.load (name) print ("Geladene Spur - "+ str (name)) 

Die erste Zeile dieses Blocks initiiert die Pygame Rührgerät. Das letzte Argument in Klammern ist der Puffer, der die Latenz steuert, in der der Sound gespielt wird. Wenn Sie später beim Abspielen Ihrer Musik eine abgehackte Wiedergabe feststellen, erhöhen Sie diese Zahl auf 4096. Die Einstellungen funktionieren, da sie auf einem Pi 3 problemlos funktionieren.

Wenn Sie Ihre Musikdatei in ein anderes Verzeichnis heruntergeladen haben door.py Wenn Sie die Namensvariable definieren, müssen Sie den vollständigen Pfad in den Klammern angeben.

Jetzt müssen Sie nur noch eine Schleife einrichten, die darauf wartet, dass wir entweder das Programm aktivieren oder beenden.

while True: if (GPIO.input (13) == 1): print ("Stop-Taste gedrückt: Beenden") pygame.mixer.music.stop () unterbrechen, wenn (GPIO.input (11) == 1): activeState () time.sleep (0.5) if (aktiv == 1): watchDoor () break GPIO.cleanup () 

Diese while-Schleife wartet auf eine Eingabe von einer der beiden Schaltflächen und beendet oder ändert den Status entsprechend. Wenn der Status von aktiv 1 wird, wird der watchDoor Eine Funktion, die wir zuvor definiert haben, wird aufgerufen, und beim nächsten Öffnen der Tür wird die Melodie abgespielt. Wir rufen auch an GPIO.cleanup () Zum Zurücksetzen unserer Pins beim Beenden. Dies ist im Allgemeinen eine gute Vorgehensweise für die gesamte Programmierung des Raspberry Pi.

Das ist alles, was wir tun müssen, um dieses Projekt zum Laufen zu bringen, hier ist der Code vollständig:

importiere RPi.GPIO als GPIO import pygame.mixer import time def activeSetup (): global active active = 0 print ("Currently Not Active") def activeState (): global aktiv wenn aktiv == 1: aktiv = 0 GPIO.output ( 7, GPIO.LOW) print ("Currently Not Active") elif active == 0: print ("Aktivieren in 10 Sekunden") für x im Bereich (0,10): GPIO.output (7, GPIO.HIGH) .sleep (0.5) GPIO.output (7, GPIO.LOW) time.sleep (0.5) aktiv = 1 GPIO.output (7, GPIO.HIGH) print ("Currently Active") Andernfalls: return def watchDoor (): global Spielen = False, während True: Wenn aktiv == 1 und GPIO.input (15) == 1 und Spielen == False: Spielen = True pygame.mixer.music.play () wenn GPIO.input (13) == 1 : print ("Stop-Taste gedrückt: Beenden") pygame.mixer.music.stop () unterbrechen, wenn GPIO.input (11) == 1: activeState () time.sleep (0.5) GPIO.setmode (GPIO.BOARD) GPIO .setup (7, GPIO.OUT, initial = GPIO.LOW) GPIO.setup (11, GPIO.IN) GPIO.setup (13, GPIO.IN) GPIO.setup (15, GPIO.IN) activeSetup () Pygame. mixer.init (44100, -16,2,1024) pygame.mixer.music.set_volume (1.0) name = "Ein-Auge d Maestro.mp3 "pygame.mixer.music.load (name) print (" Geladene Spur - "+ str (name)) wahr: if (GPIO.input (13) == 1): print (" Stop-Taste gedrückt : Beenden ") pygame.mixer.music.stop () break if (GPIO.input (11) == 1): activeState () time.sleep (0.5) if (active == 1): watchDoor () break GPIO. Aufräumen() 

Wenn Sie hierher gescrollt haben, um den vollständigen Code sofort zu erhalten, müssen Sie immer noch die Musik auf Ihr Pi herunterladen, damit sie funktioniert!

Jetzt sollten Sie ein funktionierendes Willkommensmotiv haben. Befestigen Sie Ihren Reed-Schalter an Ihrer Tür und probieren Sie es aus. Peinliches Tanzen ist optional, wird aber empfohlen.

Dieses Projekt deckte die Grundlagen für viele Formen der Überwachung, Sicherheit und Automatisierung von zu Hause ab und machte hoffentlich auch Spaß!

Nun, da Sie so weit gekommen sind, warum sollten Sie dort aufhören? Sie können weitere Titel hinzufügen und das Programm nach dem Zufallsprinzip aus einer Liste auswählen. Sie könnten ein Relais hinzufügen Erste Schritte mit GPIO Auf einem Raspberry Pi Erste Schritte mit GPIO Auf einem Raspberry Pi Wenn Sie der Meinung sind, dass das Arduino cool war, warten Sie einfach, bis Sie einen Raspberry Pi in die Hände bekommen - diese Dinge sind erstaunlich. Sie sind nicht nur ein voll funktionsfähiger Computer, sie verfügen auch über… Lesen Sie mehr und lassen Sie andere Objekte beim Eintritt auslösen. Wenn Sie ein Heimmusiksystem haben, können Sie in jedem Raum ein Titellied spielen?

Gestalten Sie Ihre persönliche Willkommensbotschaft? Waren Sie auf andere Weise einfallsreich mit Reedschaltern in Ihrem Zuhause? Wenn ja, hinterlassen Sie einen Kommentar zu dem, was Sie in den Kommentaren unten planen oder bereits getan haben!

Mehr erfahren über: Home Automation, Raspberry Pi.