Redați propria dvs. temă Tune când intri în cameră cu zmeură Pi

Redați propria dvs. temă Tune când intri în cameră cu zmeură Pi / DIY

V-ați dorit vreodată să ajungeți acasă la o întâmpinare personală? Cu o piersică Pi și câteva componente simple, poți! În acest proiect simplu vom folosi un comutator pentru a declanșa o melodie tematică atunci când se deschide o ușă. Vom folosi un Raspberry Pi ca controlor aici, deși ai putea folosi aproape orice alt microcontroler $ 5 Microcontrolere: Arduino, Zmeura Pi Zero, sau NodeMCU? $ 5 Microcontrolere: Arduino, zmeura Pi Zero, sau NodeMCU? Era cazul în cazul în care, dacă vreți să obțineți un computer, va trebui să remortgage casa ta să plătească pentru ea. Acum, puteți obține unul pentru un Abraham Lincoln. Citiți mai multe pentru acest proiect utilizând același circuit. Iată un demo.

Vei avea nevoie

Veți avea probabil deja toate părțile de care aveți nevoie pentru a face acest lucru cu excepția comutatorului stuf, care este în jur de 2-3 dolari, sau puteți obține un pachet de 5 pentru puțin peste $ 8 aici.

  • O zmeură Pi (orice model va funcționa pentru acest lucru).
  • Rezistor 1 x 220 Ohm.
  • Rezistor 1 x 1K Ohm.
  • Rezistor 3 x 10K Ohm.
  • 1 x comutator magnetic.
  • 1 x LED.
  • 2 x Comutator cu buton.
  • breadboard.
  • Cabluri de legătură.
  • Difuzor de calculator sau similar.

Vom folosi Raspberry Pi pentru a reda o melodie când intra în cameră și vom proiecta un circuit cu butoane pe panoul nostru pentru ao activa într-o întârziere și vom opri programul.

Acest proiect, în timp ce este făcut cel mai mult pentru distracție, acoperă elementele de bază pentru multe aplicații în automatizarea acasă a DIY Home Automation Guide Cu Raspberry Pi și Arduino Home Automation Guide Cu Raspberry Pi și Arduino Piața de automatizare a casei este inundată cu sisteme de consum scumpe, incompatibile cu una altul și costisitor de instalat. Dacă aveți o Pi Zmeura și un Arduino, puteți obține practic același lucru la ... Citeste mai mult și, de asemenea, DIY de securitate de acasă Privind pentru un DIY Home Security System Solution? Încercați unul dintre aceștia căutând o soluție DIY Home Security System? Încercați unul dintre aceștia În epoca tehnologiei digitale și hardware-ul conectat mereu, instalarea unui sistem de securitate la domiciliu ar trebui să depășească arta introducerii unei casete în formă de alarmă pe perete. Citeste mai mult

Zmeură Pi 3 Model B Plăci de bază Zmeură Pi 3 Model B Plăci de bază Cumpara acum la Amazon $ 34.49

Noțiuni de bază

Să începem prin a face circuitul nostru. Asigurați-vă că dispozitivul dvs. Pi nu este alimentat și configurați circuitul astfel:

LED-ul este conectat la pinul 7 pe pistonul nostru. Cele două comutatoare cu butoane sunt atașate la știfturile 11 și 13, iar comutatorul reed se conectează la pinul 15. Puterea noastră merge la pinul 1 (3v3) și pinul 6 (Gnd).

Asigurați-vă că verificați totul în exact locul potrivit.

În timp ce testați acest proiect, acesta vă poate ajuta să păstrați comutatorul dvs. în fața dvs., astfel încât să îl puteți porni sau opri cu ușurință. În acest caz, comutatorul de stuf a fost deja instalat deasupra ușii. Odată ce proiectul este pus în funcțiune, puteți fie să atașați temporar comutatorul la ușă folosind bandă, fie dacă vă simțiți mai încrezător că îl puteți atașa mai permanent pentru utilizare în proiecte viitoare!

Conectați ieșirea jack-ului de 3,5 mm de la dvs. Pi la sistemul dvs. de difuzoare. Odată ce totul este pus împreună, ar trebui să arate ceva de genul:

Rețineți că panza de pâine utilizată aici are șinele de alimentare în sens contrar la diagrama Fritzing de mai sus.

Acum porniți-vă dispozitivul Pi și accesați-l folosind SSH pentru a putea accesa terminalul. Dacă nu sunteți sigur cum să faceți acest lucru, acest ghid de configurare a dvs. de zmeură Pi pentru utilizare fără șofer cu SSH Configurarea dvs. de zmeură Pi pentru utilizare fără șofer cu SSH Raspberry Pi poate accepta comenzi SSH atunci când este conectat la o rețea locală (fie prin Ethernet sau Wi-Fi), permițându-vă să configurați cu ușurință. Beneficiile SSH merg dincolo de suprimarea screening-ului zilnic ... Citește mai mult vă poate ajuta. Dacă vă folosiți mașina de Raspberry Pi cu un monitor, mouse și tastatură, săriți acest pas și deschideți terminalul.

Înainte de a începe, merită să verificați dacă sunteți la curent. Tip sudo apt-get update în terminal.

Acum putem trece la a ne vorbi cu circuitul nostru.

Testarea configurației noastre

Pentru a începe, verificați circuitul nostru folosind un program simplu. Dacă sunteți încrezător că ați conectat totul până acum, puteți sări peste acest pas, deși aș recomanda acest lucru deoarece poate salva durerile de cap mai târziu.

Dacă nu ați programat niciodată în Python și vă simțiți puțin deranjați, există o mulțime de site-uri web cele mai bune Cele mai bune 5 site-uri Web pentru a învăța Python Programarea Cele mai bune 5 site-uri pentru a învăța programarea Python Vrei să înveți programarea Python? Iată cele mai bune modalități de a învăța Python online, dintre care multe sunt gratuite. Citiți mai multe care vă pot ajuta să începeți.

În terminal, creați un nou script:

nano test.py

După deschidere, adăugați acest cod în fișier și apăsați pe Ctrl-C pentru a renunța, urmând dialogul de salvare:

#Acest cod a fost scris pentru un articol pe www.MakeUseOf.com de Ian Buckley. import RPi.GPIO ca GPIO import timp GPIO.setwarnings (Fals) GPIO.setmode (GPIO.BOARD) GPIO.setup (7, GPIO.OUT) GPIO.setup (11, GPIO.IN) GPIO.setup (13, GPIO. IN) GPIO.setup (15, GPIO.IN) în timp ce True: GPIO.output (7, GPIO.HIGH) dacă (GPIO.input (11) == 1): print ("Buton pe GPIO 11" (1) dacă (GPIO.input (15) == 1): print ("Buton pe GPIO 13"): 15 ") timp.sleep (1) GPIO.cleanup () 

Acest cod citește valoarea butoanelor și imprimă pe ecran atunci când se schimbă. Cele două butoane au rezistențe de tragere, astfel încât se raportează HIGH când este apăsat. Comutatorul magnetului de stuf raportează HIGH ori de câte ori magnetul său de însoțire este aproape.

Rulați programul:

Python test.py

Ar trebui să vedeți că LED-ul se aprinde și un raport către ecran atunci când apăsați cele două butoane și trageți magnetul departe de comutatorul dumneavoastră. Dacă nu primiți feedback când apăsați butoanele, verificați din nou circuitul și asigurați-vă că totul este conectat așa cum ar trebui să fie. Când ați terminat de testat, apăsați CTRL-C pentru a opri programul.

Acum putem realiza un program simplu de setare, declanșare și resetare a senzorului de ușă. Vom trece codul în părți și vom explica pe scurt ceea ce face fiecare parte, deși dacă doriți să vedeți codul complet defilați în jos pentru a vedea că este prezentat în întregime.

Trebuie să începem prin importul unor module:

importă Rpi.GPIO ca import GPIO pygame.mixer timpul de import 

Vom folosi pygame modul de a juca muzica noastra. Acesta vine ca standard cu Raspbian Jessie, și este o bibliotecă minunată pentru tot ce ai nevoie pentru a face jocuri Python și multe alte proiecte uimitoare Cum de a construi o Zmeură Pi Twitter Bot Cum de a construi o Zmeură Pi Twitter Bot Twitter este cel mai mare depozit din lume de scurtă mesaje de la oameni care nu au nimic de spus - si acum si tu poti contribui la acest proiect epic cu un bot automat Twitter, alimentat de Raspberry ... Citeste mai mult .

Vom folosi o variabilă numită activ pentru a decide dacă sistemul nostru este activ sau nu. Să definim câteva funcții care vor face acest lucru pentru noi:

def activeSetup (): global active active = 0 print ("nu este activă momentan") def activeState (): global activ dacă active == 1: active = 0 GPIO.output (7, GPIO.LOW) ") elif activ == 0: imprimare (" Activare în 10 secunde ") pentru x în intervalul (0,10): GPIO.output (7, GPIO.HIGH) .LOW) time.sleep (0.5) active = 1 GPIO.output (7, GPIO.HIGH) print ("Activ în prezent") else: return 

Prima funcție creează aici o variabilă numită activ, și o stabilește la 0. Dedicarea stării active a unei valori numerice înseamnă că dacă intenționezi să scrii ulterior programul pentru a avea diferite stări active, poți să le numerotezi în consecință. Deși nu ar putea fi cea mai bună programare Python din lume, va fi mai mult decât suficientă pentru acest proiect.

A doua funcție când se numește verifică dacă sistemul este activ (sau == activ 1). Dacă este, stabilește sistemul să nu fie activ (== activ 0), oprește LED-ul și se imprimă pe consola. Dacă nu, vă oferă o numărătoare inversă de 10 secunde pentru a părăsi camera în care LED-ul clipește, înainte de a rămâne activat pentru a arăta că sistemul este activ.

Acum putem defini o funcție care va urmări comutatorul magnetului de stuf:

def watchDoor (): joacă la nivel global = Fals în timp ce Adevărat: dacă este activ == 1 și GPIO.input (15) == 1 și se joacă == Fals: joacă = True pygame.mixer.music.play (11) == 1: print (butonul Stop apăsat: ieșire) pygame.mixer.music.stop () break dacă GPIO.input (11) == 1: activeState () time.sleep 

Creăm o altă variabilă numită aici joc - acest lucru este doar pentru a opri programul încearcă să înceapă în mod repetat atunci când comutatorul este declanșat.

În interiorul bucla în timp, prima declarație if începe muzica (pe care încă nu o avem, dar nu ne îngrijorăm, vine). Permite pornirea muzicii doar dacă sistemul este activ, comutatorul pentru basculare este deschis și nu se redă deja.

A doua declarație if este pentru butonul de ieșire. Dacă acest buton este apăsat, muzica se oprește și programul se oprește.

A treia declarație if este pentru a comuta dacă sistemul este activ sau nu. time.sleep funcția aici este de a împiedica apăsarea mai multor butoane atunci când este apăsată.

Acum este momentul să înființăți știfurile lui Pi.

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

Dacă ați făcut vreun experiment cu Pi înainte ca acest lucru să vă fie cunoscut. inițial = GPIO.LOW argument în configurația pin 7 stabilește la scăzut, de îndată ce este inițializată.

Acum putem apela funcția noastră care va seta sistemul să nu fie activ când începe programul.

activeSetup () 

Muzică Maestro!

În acest moment, ar trebui să începem să ne gândim la muzică. Puteți alege orice fișier de muzică pe care îl doriți, dar pentru moment alegem ceva disponibil pentru toată lumea. Dacă vizionați YouTube probabil că sunteți deja familiarizați cu muzica lui Kevin MacLeod. Permite descărcarea unei melodii fantastice de către el numit “Maestrul cu un ochi”. Acest lucru, împreună cu o mare parte din muzica de pe site-ul său, este licențiat sub Creative Commons, și există multe motive bune Ce este Creative Commons, și ar trebui să-l utilizați? Ce este Creative Commons, și ar trebui să-l utilizați? Creative Commons este un set de licențe care vă dau automat permisiunea de a face diverse lucruri, cum ar fi reutilizarea și distribuirea conținutului. Să aflăm mai multe despre el și cum să îl folosim. Citiți mai multe pentru a utiliza conținutul cu aceste licențe pentru proiectele dvs..

Înapoi în codul nostru, trebuie să pornim mixerul Pygame și să ne încărcăm melodia.

pygame.mixer.init (44100, -16,2,1024) pygame.mixer.music.set_volume (1.0) name = "One-eyed Maestro.mp3" pygame.mixer.music.load (nume) print (" - "+ str (nume)) 

Prima linie a acestui bloc inițiază pygame mixer. Ultimul argument din paranteze este tamponul care controlează latența în care este redat sunetul. Dacă aveți mai multă experiență în redarea muzicii, încercați să măriți acest număr până la 4096. Setările deoarece funcționează fără probleme pe un Pi 3.

Dacă ați descărcat fișierul de muzică într-un director diferit de dvs. door.py program, va trebui să furnizați calea completă în interiorul parantezelor atunci când definiți variabila nume.

Acum tot ce trebuie să faceți este să configurați o buclă care așteaptă să setăm programul activ sau să îl părăsim.

în timp ce True: dacă (GPIO.input (13) == 1): print (butonul Stop apăsat: ieșire) pygame.mixer.music.stop () break if (GPIO.input (11) == 1) () time.sleep (0.5) dacă (activ == 1): watchDoor () break GPIO.cleanup () 

Această bucla în timp ce așteaptă o intrare de la oricare dintre butoane și închide sau schimba starea activă în mod corespunzător. Dacă starea activă devine 1, atunci watchDoor funcția pe care am definit-o mai devreme, este chemată și data viitoare când se deschide ușa noastră va juca. De asemenea sunăm GPIO.cleanup () pentru a reinițializa pinii la ieșire, care este, în general, o practică bună pentru toate programele de pe Raspberry Pi.

Asta e tot ce trebuie să facem pentru a face acest proiect să funcționeze, aici este codul în întregime:

importul RPi.GPIO ca import GPIO pygame.mixer import timpul def activSetup (): global active active = 0 print ("nu este activă momentan") def activeState (): global activ dacă active == 1: active = 0 GPIO.output 7, GPIO.LOW) elif active == 0: print ("Activare în 10 secunde") pentru x în intervalul (0,10): timpul GPIO.output (7, GPIO.HIGH) (0.5) GPIO.output (7, GPIO.LOW) time.sleep (0.5) active = 1 GPIO.output (7, GPIO.HIGH) joacă joacă = Fals în timp ce Adevărat: dacă este activ == 1 și GPIO.input (15) == 1 și joacă == Fals: joc = True pygame.mixer.music.play () dacă GPIO.input (13) == 1 : print (butonul de oprire apăsat: ieșire) pygame.mixer.music.stop () break dacă GPIO.input () GPIO.setmode (GPIO.BOARD) GPIO .setup 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 = "Un singur ochi d Maestro.mp3 "pygame.mixer.music.load (nume) print (" Traseu încărcat - "+ str (nume)) în timp ce True: if (GPIO.input (13) == 1): print : Exit ") pygame.mixer.music.stop () pauză dacă (GPIO.input (11) == 1): activeState () time.sleep (0.5) dacă (active == 1): watchDoor () a curăța() 

Dacă ați derulat aici pentru a apuca imediat codul complet, rețineți că va trebui totuși să descărcați muzica pe Pi pentru ca acesta să funcționeze!

Acum ar trebui să aveți o melodie tematică acasă bună! Atașați comutatorul dvs. la ușa dvs. și încercați. Dansul jenant este opțional, dar este recomandat.

Acest proiect a acoperit elementele de bază ale mai multor forme de monitorizare la domiciliu, securitate și automatizare și, sperăm, a fost și distractiv!

Acum că ați venit atât de departe, de ce să vă opriți acolo? Puteți adăuga mai multe piste și alegeți programul la întâmplare dintr-o listă. Puteți adăuga un releu Noțiuni de bază cu GPIO Într-o zmeură Pi Începeți cu GPIO Pe o zmeură Pi Dacă, deși Arduino a fost rece, așteptați până când veți obține mâinile pe o Raspberry Pi - aceste lucruri sunt uimitoare. Pe lângă faptul că sunteți un calculator complet funcțional, aceștia au, de asemenea, ... Citește mai mult și au alte obiecte declanșate la intrare. Dacă aveți un sistem de muzică acasă, de ce să nu aveți un cântec tematic pentru fiecare cameră?

Vrei să-ți proiectezi propriul mesaj personal de întâmpinare? Ai fost inventiv cu comutatoarele de stuf în casa ta în alte moduri? Dacă da, lasă un comentariu despre ceea ce planificați sau ați făcut deja în secțiunea de comentarii de mai jos!

Explorați mai multe despre: Home Automation, Raspberry Pi.