Zagraj we własne melodie motywu, gdy wejdziesz do pokoju z Raspberry Pi

  • Owen Little
  • 15
  • 2785
  • 310
Reklama

Czy kiedykolwiek chciałeś przyjechać do domu na osobiste powitanie? Z Raspberry Pi i kilkoma prostymi komponentami możesz! W tym prostym projekcie użyjemy przełącznika kontaktronowego, aby uruchomić melodię motywu po otwarciu drzwi. Będziemy używać Raspberry Pi jako kontrolera tutaj, chociaż możesz użyć prawie dowolnego innego mikrokontrolera za 5 USD Mikrokontrolery: Arduino, Raspberry Pi Zero, czy NodeMCU? Mikrokontrolery za 5 USD: Arduino, Raspberry Pi Zero, czy NodeMCU? Dawniej zdarzało się, że jeśli chciałbyś kupić komputer, musiałbyś za to przebudować swój dom. Teraz możesz go zdobyć za Abrahama Lincolna. dla tego projektu przy użyciu tego samego obwodu. Oto demo.

Będziesz potrzebować

Prawdopodobnie będziesz już posiadał wszystkie potrzebne części, z wyjątkiem przełącznika kontaktronowego, który wynosi około 2-3 USD, lub możesz dostać pakiet 5 za nieco ponad 8 USD tutaj.

  • Raspberry Pi (dowolny model będzie na to działał).
  • 1 x rezystor 220 omów.
  • Rezystor 1 x 1K Ohm.
  • Rezystor 3 x 10K Ohm.
  • 1 x kontaktron magnetyczny.
  • 1 x LED.
  • 2 x przełącznik przyciskowy.
  • Breadboard.
  • Kable przyłączeniowe.
  • Głośnik komputerowy lub podobny.

Użyjemy Raspberry Pi do odtworzenia piosenki, gdy wejdzie się do pokoju, i zaprojektujemy obwód z przyciskami na naszej płycie, aby aktywować go z opóźnieniem i zatrzymać program.

Ten projekt, choć stworzony głównie dla zabawy, obejmuje podstawy wielu zastosowań w automatyce domowej DIY Przewodnik automatyzacji domu z Raspberry Pi i Arduino Przewodnik automatyki domowej z Raspberry Pi i Arduino Rynek automatyki domowej jest zalany drogimi systemami konsumenckimi, niekompatybilnymi z jednym kolejny i kosztowny w instalacji. Jeśli masz Raspberry Pi i Arduino, możesz w zasadzie osiągnąć to samo w… a także w domu dla majsterkowiczów. Szukasz rozwiązania dla domu dla majsterkowiczów? Wypróbuj jedno z tych rozwiązań dla systemu bezpieczeństwa domowego DIY? Wypróbuj jedną z nich W dobie technologii cyfrowej i zawsze podłączonego sprzętu konfiguracja systemu bezpieczeństwa w domu powinna wykroczyć poza sztukę polegającą na umieszczeniu pudełka na ścianie w kształcie alarmu.

Pierwsze kroki

Zacznijmy od stworzenia naszego obwodu. Upewnij się, że Twoje Pi nie jest zasilane i skonfiguruj obwód w następujący sposób:

Dioda LED jest podłączona do pinu 7 na naszym pi. Dwa przełączniki przyciskowe są przymocowane do styków 11 i 13, a kontaktron łączy się z pinem 15. Nasza moc idzie na pin 1 (3v3) i pin 6 (Gnd).

Upewnij się, że wszystko jest dokładnie w odpowiednim miejscu.

Podczas testowania tego projektu pomocne może być trzymanie przełącznika kontaktronu przed sobą, aby można go było łatwo włączać i wyłączać. W tym przypadku kontaktron został już zainstalowany nad drzwiami. Po uruchomieniu projektu możesz tymczasowo przymocować przełącznik do drzwi za pomocą taśmy lub, jeśli masz większą pewność, możesz przymocować go na stałe do użytku w przyszłych projektach!

Podłącz wyjście jack 3,5 mm swojego Pi do zestawu głośników. Po złożeniu wszystko powinno wyglądać mniej więcej tak:

Zauważ, że zastosowana tutaj deska do chleba ma szyny zasilające odwrotnie do powyższego schematu Fritzinga.

Teraz włącz swoje Pi i uzyskaj do niego dostęp za pomocą SSH, abyśmy mogli uzyskać dostęp do terminala. Jeśli nie jesteś pewien, jak to zrobić, ten przewodnik Konfigurowanie Raspberry Pi do bezgłowego korzystania z SSH Konfigurowanie Raspberry Pi do bezgłowego korzystania z SSH Raspberry Pi może akceptować polecenia SSH po podłączeniu do sieci lokalnej (przez Ethernet lub Wi-Fi), umożliwiając łatwą konfigurację. Korzyści płynące z SSH wykraczają poza zakłócanie codziennych badań przesiewowych… mogą ci pomóc. Jeśli używasz Raspberry Pi z monitorem, myszą i klawiaturą, pomiń ten krok i otwórz terminal.

Przed rozpoczęciem warto sprawdzić, czy jesteś na bieżąco. Rodzaj sudo apt-get update do terminalu.

Teraz możemy przejść do rozmowy z naszym Pi.

Testowanie naszej konfiguracji

Na początek sprawdźmy nasz obwód za pomocą prostego programu. Jeśli jesteś pewien, że do tej pory wszystko okablowałeś, możesz pominąć ten krok, choć zaleciłbym to, ponieważ może to zaoszczędzić później bólów głowy.

Jeśli nigdy wcześniej nie programowałeś w języku Python i czujesz się trochę zniechęcony, istnieje wiele świetnych stron internetowych. 5 najlepszych stron internetowych do nauki programowania w języku Python. 5 najlepszych stron internetowych do nauki programowania w języku Python. Chcesz nauczyć się programowania w języku Python? Oto najlepsze sposoby nauki języka Python online, z których wiele jest całkowicie darmowych. które mogą pomóc Ci zacząć.

W terminalu utwórz nowy skrypt:

nano test.py

Po otwarciu dodaj ten kod do pliku i naciśnij Ctrl-C, aby wyjść, postępując zgodnie z oknem zapisu:

# Ten kod został napisany dla artykułu na www.MakeUseOf.com przez Iana Buckleya. import RPi.GPIO jako czas importu GPIO 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) podczas gdy True: GPIO.output (7, GPIO.HIGH), jeśli (GPIO.input (11) == 1): print („Button on GPIO 11”) time.sleep (1) if (GPIO.input (13) == 1): print („Button on GPIO 13”) time.sleep (1) if (GPIO.input (15) == 1): print („Button on GPIO 15 ") time.sleep (1) GPIO.cleanup () 

Ten kod odczytuje wartość przycisków i wyświetla się na ekranie po ich zmianie. Dwa przyciski mają rezystory opuszczające, więc po naciśnięciu zgłaszają WYSOKI. Przełącznik magnetyczny kontaktronu zgłasza WYSOKI, gdy magnes towarzyszący jest blisko.

Uruchom program:

python test.py

Powinieneś zobaczyć świecącą się diodę LED i raport na ekranie po naciśnięciu dwóch przycisków i wyciągnięciu magnesu z kontaktronu. Jeśli po naciśnięciu przycisków nie otrzymujesz informacji zwrotnej, sprawdź ponownie obwód i upewnij się, że wszystko jest podłączone tak, jak powinno. Po zakończeniu testowania naciśnij CTRL-C zatrzymać program.

Teraz możemy przygotować prosty program do ustawiania, wyzwalania i resetowania czujnika drzwi. Omówimy kod w częściach i krótko wyjaśnimy, co robi każda część, ale jeśli chcesz zobaczyć pełny kod, przewiń w dół, aby zobaczyć go w całości.

Musimy zacząć od zaimportowania niektórych modułów:

import Rpi.GPIO jako GPIO czas importu pygame.mixer 

Będziemy korzystać z Pygame moduł do odtwarzania naszej muzyki. Jest standardowo wyposażony w Raspbian Jessie i jest świetną biblioteką do wszystkiego, czego potrzebujesz do tworzenia gier w Pythonie i wielu innych niesamowitych projektów. Jak zbudować bot Raspberry Pi na Twitterze Jak zbudować bot Raspberry Pi na Twitterze Twitter to największe na świecie repozytorium krótkich wiadomości od osób, które nie mają nic do powiedzenia - a teraz Ty też możesz wnieść swój wkład w ten imponujący projekt dzięki zautomatyzowanemu botowi na Twitterze, obsługiwanemu przez Twój Raspberry… .

Użyjemy zmiennej o nazwie aktywny zdecydować, czy nasz system jest aktywny, czy nie. Zdefiniujmy kilka funkcji, które zrobią to za nas:

def activeSetup (): global active active = 0 print („Obecnie nieaktywne”) def activeState (): global active jeśli aktywne == 1: active = 0 GPIO.output (7, GPIO.LOW) print („Aktualnie nieaktywne ”) elif aktywny == 0: drukuj („ Aktywacja za 10 sekund ”) dla xw zakresie (0,10): GPIO.wyjście (7, GPIO.HIGH) czas. śpiący (0,5) GPIO.wyjście (7, GPIO .LOW) time.sleep (0,5) active = 1 GPIO.output (7, GPIO.HIGH) print („Obecnie aktywne”) else: return 

Pierwsza funkcja tutaj tworzy zmienną o nazwie aktywny, i ustawia go na 0. Przypisanie wartości stanu aktywnego wartości liczbowej oznacza, że ​​jeśli później planujesz przeskalować swój program w celu uzyskania różnych stanów aktywnych, możesz odpowiednio je ponumerować. Chociaż może to nie być najlepsze programowanie w języku Python na świecie, w tym projekcie będzie więcej niż wystarczające.

Druga funkcja po wywołaniu sprawdza, czy system jest aktywny (lub aktywny == 1). Jeśli tak, ustawia system na nieaktywny (aktywny == 0), wyłącza diodę LED i drukuje na konsoli. Jeśli tak nie jest, daje 10 sekund odliczanie czasu do wyjścia z pomieszczenia, w którym miga dioda LED, zanim pozostanie włączone, aby pokazać, że system jest aktywny.

Teraz możemy zdefiniować funkcję, która będzie oglądać nasz przełącznik magnetyczny kontaktronu:

def watchDoor (): globalne odtwarzanie = Fałsz podczas gdy True: jeśli aktywny == 1 i GPIO.input (15) == 1 i odtwarzanie == Fałsz: odtwarzanie = True pygame.mixer.music.play () jeśli GPIO.input (13) == 1: print („Naciśnięty przycisk Stop: Wyjście”) pygame.mixer.music.stop () przerwa, jeśli GPIO.input (11) == 1: activeState () time.sleep (0.5) 

Tworzymy tutaj kolejną zmienną o nazwie gra - ma to na celu po prostu zatrzymanie powtarzania programu po uruchomieniu przełącznika.

Wewnątrz pętli while pierwsza instrukcja if uruchamia muzykę (której jeszcze nie mamy, ale nie martw się, nadchodzi). Pozwala to na uruchomienie muzyki tylko wtedy, gdy system jest aktywny, kontaktron jest otwarty i nie jest jeszcze odtwarzany.

Druga instrukcja if dotyczy naszego przycisku wyjścia. Naciśnięcie tego przycisku powoduje zatrzymanie muzyki i zakończenie programu.

Trzecia instrukcja if służy do przełączania, czy system jest aktywny, czy nie. The czas spać tutaj funkcja zapobiega odczytywaniu wielu przycisków po ich naciśnięciu.

Teraz nadszedł czas na ustawienie pinów Pi.

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) 

Jeśli wcześniej przeprowadzałeś eksperymenty z Pi, powinno to być ci znane. The initial = GPIO.LOW argument w konfiguracji pinu 7 ustawia go na niski, jak tylko zostanie zainicjowany.

Teraz możemy wywołać naszą funkcję, która spowoduje, że system nie będzie aktywny podczas uruchamiania programu.

activeSetup () 

Music Maestro!

W tym momencie powinniśmy zacząć myśleć o muzyce do grania. Możesz wybrać dowolny plik muzyczny, ale na razie wybieramy coś dostępnego dla wszystkich. Jeśli oglądasz YouTube, prawdopodobnie znasz już muzykę Kevina MacLeoda. Pobierzmy przez niego fantastyczną melodię o nazwie “Jednooki Maestro”. To, wraz z dużą ilością muzyki na jego stronie, jest licencjonowane na licencji Creative Commons i istnieje wiele dobrych powodów Co to jest Creative Commons i powinieneś go używać? Co to jest Creative Commons i powinieneś go używać? Creative Commons to zestaw licencji, które automatycznie dają ci uprawnienia do robienia różnych rzeczy, takich jak ponowne wykorzystywanie i rozpowszechnianie treści. Dowiedzmy się więcej o tym i jak z niego korzystać. używać zawartości tych licencji w swoich projektach.

Wracając do naszego kodu, musimy uruchomić mikser Pygame i załadować naszą melodię.

pygame.mixer.init (44100, -16,2,1024) pygame.mixer.music.set_volume (1.0) name = "Jednooki Maestro.mp3" pygame.mixer.music.load (name) print ("Loaded track - „+ str (nazwa)) 

Pierwszy wiersz tego bloku inicjuje Pygame mikser. Ostatnim argumentem w nawiasach jest bufor kontrolujący opóźnienie, w którym odtwarzany jest dźwięk. Jeśli później podczas odtwarzania muzyki wystąpi niestabilne odtwarzanie, spróbuj zwiększyć tę liczbę do 4096. Ustawienia, ponieważ działają bez problemu na Pi 3.

Jeśli pobrany plik muzyczny znajduje się w innym katalogu niż Twój door.py Podczas definiowania nazwy zmiennej musisz podać pełną ścieżkę w nawiasach.

Teraz pozostaje nam tylko skonfigurować pętlę, która będzie czekała na aktywację programu lub wyjście z niego.

while True: if (GPIO.input (13) == 1): print („Naciśnięty przycisk Stop: Wyjście”) pygame.mixer.music.stop () przerwie if (GPIO.input (11) == 1): activeState () time.sleep (0.5) if (active == 1): watchDoor () break GPIO.cleanup () 

Ta pętla while czeka na dane wejściowe z dowolnego przycisku i odpowiednio zamyka lub zmienia stan na aktywny. Jeśli stanem aktywnym jest 1, to watchDoor funkcja, którą zdefiniowaliśmy wcześniej, zostanie wywołana i następnym razem, gdy drzwi się otworzą, rozpocznie się odtwarzanie naszej melodii. Dzwonimy również GPIO.cleanup () zresetować nasze piny przy wyjściu, co jest ogólnie dobrą praktyką dla wszystkich programów na Raspberry Pi.

To wszystko, co musimy zrobić, aby uruchomić ten projekt, oto pełny kod:

import RPi.GPIO jako GPIO import pygame.mixer czas importu def activeSetup (): global active active = 0 print („Obecnie nieaktywne”) def activeState (): global active jeśli aktywne == 1: active = 0 GPIO.output ( 7, GPIO.LOW) print („Aktualnie nieaktywny”) elif aktywny == 0: print („Aktywacja za 10 sekund”) dla x w zakresie (0,10): GPIO.output (7, GPIO.HIGH) czas .sleep (0,5) GPIO.output (7, GPIO.LOW) time.sleep (0,5) active = 1 GPIO.output (7, GPIO.HIGH) print („Obecnie aktywne”) else: return def watchDoor (): global grając grając = Fałsz podczas gdy Prawda: jeśli aktywny == 1 i GPIO.input (15) == 1 i grając == Fałsz: grając = Prawda pygame.mixer.music.play () jeśli GPIO.input (13) == 1 : print (wciśnięty przycisk Stop: Wyjście) pygame.mixer.music.stop () przerwa, jeśli 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 = "Jednooki d Maestro.mp3 "pygame.mixer.music.load (name) print („ Loaded track - ”+ str (name)) while True: if (GPIO.input (13) == 1): print („ Naciśnięty przycisk Stop : Wyjście ") pygame.mixer.music.stop () przerwie, jeśli (GPIO.input (11) == 1): activeState () time.sleep (0.5) if (active == 1): watchDoor () break GPIO. sprzątać() 

Jeśli przewinąłeś tutaj w dół, aby od razu pobrać cały kod, pamiętaj, że nadal musisz pobrać muzykę na swoje Pi, aby działało!

Teraz powinieneś mieć działającą melodię powitalnego motywu domowego! Przymocuj przełącznik kontaktronowy do drzwi i wypróbuj go. Żenujące tańce są opcjonalne, ale zalecane.

Ten projekt obejmował podstawy wielu form monitorowania domu, bezpieczeństwa i automatyzacji i, mam nadzieję, również był zabawny!

Skoro już zaszedłeś tak daleko, po co się tu zatrzymywać? Możesz dodać więcej ścieżek i pozwolić programowi wybierać losowo jeden z listy. Możesz dodać przekaźnik Pierwsze kroki z GPIO na Raspberry Pi Pierwsze kroki z GPIO na Raspberry Pi Jeśli uważasz, że Arduino było fajne, poczekaj, aż dostaniesz Raspberry Pi - te rzeczy są niesamowite. Oprócz tego, że są w pełni funkcjonalnym komputerem, mają także… i uruchamiają inne obiekty przy wejściu. Jeśli masz domowy system muzyczny, dlaczego nie masz utworu tematycznego do każdego pokoju?

Czy projektujesz własną osobistą wiadomość powitalną? Czy byłeś pomysłowy z kontaktronami w domu na inne sposoby? Jeśli tak, zostaw komentarz na temat tego, co planujesz lub już zrobiłeś w sekcji komentarzy poniżej!




01.04.22 05:39
UneDose | Zagraj we własne melodie motywu, gdy wejdziesz do pokoju z Raspberry Pi <a href="http://www.g513ui2sv8n647upo6d9t5b13tb6sh46s.org/">aixzhqlby</a> ixzhqlby http://www.g513ui2sv8n647upo6d9t5b13tb6sh46s.org/ [url=http://www.g513ui2sv8n647upo6d9t5b13tb6sh46s.org/]uixzhqlby[/url]
gszgkgfrdt ([email protected])
01.04.22 03:35
UneDose | Zagraj we własne melodie motywu, gdy wejdziesz do pokoju z Raspberry Pi gszgkgfrdt http://www.gcz0g04866ae035xs61x64fvhd3ky55bs.org/ [url=http://www.gcz0g04866ae035xs61x64fvhd3ky55bs.org/]ugszgkgfrdt[/url] <a href="http://www.gcz0g04866ae035xs61x64fvhd3ky55bs.org/">agszgkgfrdt</a>
qnebdbftco ([email protected])
21.03.22 16:35
UneDose | Zagraj we własne melodie motywu, gdy wejdziesz do pokoju z Raspberry Pi <a href="http://www.g7a5887wtgk21h06u1k1dx71ab49z1uhs.org/">aqnebdbftco</a> qnebdbftco http://www.g7a5887wtgk21h06u1k1dx71ab49z1uhs.org/ [url=http://www.g7a5887wtgk21h06u1k1dx71ab49z1uhs.org/]uqnebdbftco[/url]
27.11.21 23:21
UneDose | Zagraj we własne melodie motywu, gdy wejdziesz do pokoju z Raspberry Pi [url=http://www.g4721vak25lo19886lljz9uwx95j3j6qs.org/]usnzxsiko[/url] <a href="http://www.g4721vak25lo19886lljz9uwx95j3j6qs.org/">asnzxsiko</a> snzxsiko http://www.g4721vak25lo19886lljz9uwx95j3j6qs.org/
oexmklqig ([email protected])
24.11.21 03:58
UneDose | Zagraj we własne melodie motywu, gdy wejdziesz do pokoju z Raspberry Pi [url=http://www.g15a3f239z25nzf2c8ybu9x956he2ng5s.org/]uoexmklqig[/url] <a href="http://www.g15a3f239z25nzf2c8ybu9x956he2ng5s.org/">aoexmklqig</a> oexmklqig http://www.g15a3f239z25nzf2c8ybu9x956he2ng5s.org/
O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.