Svirajte svoju vlastitu temu kad uđete u sobu s Raspberry Pi

  • Peter Holmes
  • 0
  • 3224
  • 400
Oglas

Jeste li ikada željeli doći kući na osobni doček? Uz Raspberry Pi i nekoliko jednostavnih komponenti, možete! U ovom jednostavnom projektu koristit ćemo trsku za prebacivanje kako bismo pokrenuli podešavanje teme kad se otvore vrata. Ovdje ćemo koristiti Raspberry Pi kao kontroler, iako biste mogli upotrijebiti gotovo bilo koji drugi mikrokontroler 5 milijuna mikrokontrolera: Arduino, Raspberry Pi Zero ili NodeMCU? Mikrokontroleri od 5 dolara: Arduino, Raspberry Pi Zero ili NodeMCU? Nekada je to slučaj, da kad bi želio nabaviti računalo, morao bi ponovno posložiti kuću kako bi je platio. Sada ga možete dobiti za Abrahama Lincolna. za ovaj projekt koristeći isti krug. Evo demonstracije.

Trebat će vam

Vjerojatno ćete već posjedovati sve dijelove koji su vam potrebni za izradu, osim sklopke trske, koja iznosi oko 2-3 USD, ili ovdje možete dobiti paket od 5 za nešto više od 8 USD.

  • Raspberry Pi (bilo koji model će raditi za to).
  • Otpornik 1 x 220 Ohm.
  • Otpornik 1 x 1K Ohm.
  • Otpornik 3 x 10K Ohm.
  • 1 x magnetska sklopka trske.
  • 1 x LED.
  • 2 x sklopka s gumbom.
  • daska za kruh.
  • Kabeli za spajanje.
  • Zvučnik računala ili slično.

Raspberry Pi ćemo iskoristiti za reprodukciju pjesme kad se uđe u sobu i osmisliti sklop s tipkama na našoj ploči da biste je aktivirali na odgodu i zaustavili program.

Ovaj projekt, iako je napravljen uglavnom za zabavu, pokriva osnove za mnoge aplikacije u Vodiču za automatsku kućnu automatizaciju sa kućnim telefonima Raspberry Pi i Arduino Vodiču za kućnu automatizaciju Raspberry Pi i Arduino Tržište kućne automatizacije preplavljeno je skupim potrošačkim sustavima, nespojivim s jednim. još jedan i skup za instaliranje. Ako imate Raspberry Pi i Arduino, u osnovi možete postići isto ... i isto tako DIY kućna sigurnost Tražite li DIY rješenje kućnog sigurnosnog sustava? Isprobajte jedno od ovih koji traže rješenje sustava kućnog osiguranja? Isprobajte jedno od ovih U doba digitalne tehnologije i uvijek spojenog hardvera, postavljanje kućnog sigurnosnog sustava trebalo bi nadići umjetnost postavljanja okvira u obliku alarma na zid.

Početak rada

Počnimo s pravljenjem našeg kruga. Provjerite je li Pi bez napajanja i postavite svoj krug ovako:

LED je spojen na pin 7 na našem pi. Dvije sklopke s gumbom pričvršćene su na igle 11 i 13, a trska sklopka se priključuje na kontakt 15. Naša snaga ide na pin 1 (3v3) i pin 6 (Gnd).

Svakako provjerite je li sve točno na pravom mjestu.

Dok testirate ovaj projekt, možda će vam pomoći da vašu trsku prebacite ispred sebe kako biste je mogli lako uključiti ili isključiti. U ovom je slučaju trske sklopka već bila postavljena iznad vrata. Nakon što se projekt pokrene, prekidač možete privremeno pričvrstiti na vrata pomoću trake, ili ako se osjećate sigurnije možete ga trajnije pričvrstiti za upotrebu u budućim projektima!

Spojite 3,5 mm izlaz priključka od Pi-a na svoj sustav zvučnika. Kad se sve sastavi, trebao bi izgledati ovako:

Imajte na umu da ploča koja se ovdje koristi ima šine napajanja obrnuto do gornjeg dijagrama Fritzing.

Sada uključite svoj Pi i pristupite mu putem SSH kako bismo mogli pristupiti terminalu. Ako niste sigurni kako to učiniti, ovaj vodič Podešavanje vašeg Raspberry Pi-a za upotrebu bez ikakvih glava pomoću SSH-a Postavljanje vašeg Raspberry Pi-a za bezglavu upotrebu sa SSH-om Raspberry Pi može prihvatiti SSH naredbe kada je povezan s lokalnom mrežom (bilo putem Ethernet-a ili Wi-Fi), što vam omogućuje jednostavno postavljanje. Prednosti SSH-a nadilaze i uznemiravanje dnevnog probira ... mogu vam pomoći. Ako koristite Raspberry Pi s monitorom, mišem i tipkovnicom, preskočite ovaj korak i otvorite terminal.

Prije početka, vrijedno je provjeriti jeste li u toku. Tip sudo apt-get update u terminal.

Sada možemo krenuti dalje tako da naš Pi razgovara s našim krugom.

Ispitivanje naše postavke

Za početak, provjerimo naš krug pomoću jednostavnog programa. Ako ste sigurni da ste do sada sve dobro ispravili, ovaj korak možete preskočiti, mada bih to preporučio jer kasnije može uštedjeti glavobolju.

Ako se nikada prije niste programirali na Pythonu i osjećate se pomalo zakinutim, postoji mnoštvo sjajnih web stranica. 5 najboljih web stranica za učenje programiranja Pythona 5 najboljih web stranica za učenje programiranja Pythona Želite naučiti programiranje Pythona? Evo najboljih načina za učenje Pythona na mreži, od kojih su mnogi potpuno besplatni. što vam može pomoći da započnete.

U terminalu stvorite novu skriptu:

nano test.py

Nakon otvaranja dodajte ovaj kôd u datoteku i pritisnite Ctrl-C da biste je napustili, slijedom dijaloga za spremanje:

#Ovu šifru napisao je Ian Buckley za članak na www.MakeUseOf.com. uvesti RPi.GPIO kao GPIO vrijeme uvoza GPIO.setwarnings (netočno) GPIO.setmode (GPIO.BOARD) GPIO.setup (7, GPIO.OUT) GPIO.setup (11, GPIO.IN) GPIO.setup (13, GPIO. IN) GPIO.setup (15, GPIO.IN) dok je True: GPIO.output (7, GPIO.HIGH) if (GPIO.input (11) == 1): print ("Gumb na GPIO 11") time.sleep (1) ako je (GPIO.input (13) == 1): ispis ("gumb na GPIO 13") vrijeme.sep (1) ako (GPIO.input (15) == 1): print ("gumb na GPIO 15 ") vrijeme.spava (1) GPIO.cleanup () 

Ovaj kod čita vrijednost gumba i ispisuje na zaslonu kad se promijene. Dva gumba imaju otporne prema dolje, tako da pod pritiskom izveštavaju VISOKO. Prekidač trske magnete prijavljuje VISOKO kad god je njegov prateći magnet blizu.

Pokrenite program:

python test.py

Trebali biste vidjeti LED svjetlo i izvješće na ekranu kada pritisnete svoja dva gumba i magnet odvučete od trske. Ako tijekom pritiska na gumbe ne dobijete povratne informacije, ponovo provjerite strujni krug i provjerite je li sve povezano kako treba. Kada završite s testiranjem, pritisnite Ctrl-C za zaustavljanje programa.

Sada možemo sastaviti jednostavan program za postavljanje, pokretanje i resetiranje senzora vrata. Dijelom ćemo pregledati kôd i ukratko objasniti što svaki dio radi, iako ako želite vidjeti cijeli kod, pomaknite se prema dolje da biste ga vidjeli u cijelosti.

Za početak moramo uvesti neke module:

uvesti Rpi.GPIO kao GPIO uvoz pygame.mixer vrijeme uvoza 

Koristit ćemo se Pygame modul za reprodukciju naše glazbe. Standardno dolazi s Raspbian Jessie, a izvrsna je knjižnica za sve što vam je potrebno za izradu Python igara i mnoge druge nevjerojatne projekte Kako izgraditi Raspberry Pi Twitter Bot Kako izgraditi Raspberry Pi Twitter Bot Twitter je najveće svjetsko skladište kratkih sadržaja poruke od ljudi koji nemaju što za reći - i sada i vi možete doprinijeti tom epskom projektu automatiziranim robotskim Twitterom, pokretanim vašim Raspberry ... .

Koristit ćemo varijablu zvanu aktivan da odlučimo je li naš sustav aktivan ili ne. Definirajmo nekoliko funkcija koje će to učiniti za nas:

def activeSetup (): globalna aktivna aktivna = 0 ispisa ("Trenutno nije aktivna") def activeState (): globalna aktivna ako je aktivna == 1: aktivna = 0 ispis GPIO.output (7, GPIO.LOW) ("Trenutno nije aktivno ") elif active == 0: ispis (" Aktiviranje u 10 sekundi ") za x u rasponu (0,10): GPIO.output (7, GPIO.HIGH) time.sleep (0,5) GPIO.output (7, GPIO .LOW) time.sleep (0,5) active = 1 GPIO.output (7, GPIO.HIGH) ispisa ("Trenutno aktivno") ostalo: povratak 

Prva funkcija ovdje stvara varijablu pod nazivom aktivan, i postavlja ga na 0. Davanje aktivnog stanja numeričkim vrijednostima znači da ako planirate kasnije povećati svoj program tako da ima različita aktivna stanja, možete ih u skladu s brojevima. Iako možda nije najbolje Python programiranje na svijetu, više će biti dovoljno za ovaj projekt.

Druga funkcija kad se zove provjerava je li sustav aktivan (ili Aktivni == 1). Ako jest, postavlja sustav na neaktivan (Aktivni == 0), isključuje LED i ispisuje na konzolu. Ako nije, daje vam odbrojavanje od 10 sekundi za napuštanje prostorije u kojoj LED treperi, prije nego što ostane uključen kako bi pokazao da je sustav aktivan.

Sada možemo definirati funkciju koja će nadgledati našu sklopku s magnetima:

def watchDoor (): globalno igranje igra = False dok je True: ako je aktivno == 1 i GPIO.input (15) == 1 i igra == False: igra = True pygame.mixer.music.play () ako GPIO.input (13) == 1: ispis ("Pritisnuti gumb za zaustavljanje: Izlaz") pygame.mixer.music.stop () prekid ako GPIO.input (11) == 1: activeState () vrijeme.spava (0,5) 

Ovdje stvaramo još jednu varijablu koja se zove igranje - ovo je jednostavno da zaustavi program koji pokušava pokrenuti ponovno ponavljanje kad se uključi.

Unutar petlje while, prva ako izjava pokrene glazbu (koju još nemamo, ali ne brinemo, stiže). Pusti glazbu samo ako je sustav aktivan, trska je prekidač otvoren i već ne svira.

Druga ako je izjava za naš izlazni gumb. Ako se pritisne ovaj gumb, glazba se zaustavlja i program izlazi.

Treća ako je izjava za uključivanje je li sustav aktivan ili ne. time.sleep ovdje je funkcija da se spriječi višestruko očitavanje gumba kad se pritisne.

Sada je vrijeme da postavite Pi-jeve igle.

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

Ako ste eksperimentirali s Pi-jem prije, ovo bi vam trebalo biti poznato. Početni = GPIO.LOW argument u postavci pin 7 postavlja na nisku čim se inicijalizira.

Sada možemo nazvati našu funkciju koja će postaviti sustav da ne bude aktivan kad se pokrene program.

activeSetup () 

Glazba Maestro!

U ovom trenutku trebali bismo započeti razmišljati o glazbi koju sviramo. Možete odabrati bilo koju glazbenu datoteku koju želite, ali mi ćemo za sada izabrati nešto dostupno svima. Ako gledate YouTube, vjerojatno već znate glazbu Kevina MacLeoda. Omogućimo preuzimanje fantastične melodije nazvane “Maestro s jednim očima”. Ovo je, zajedno s većinom glazbe na njegovoj web lokaciji, licencirano pod Creative Commonsom, a postoji mnogo dobrih razloga što je Creative Commons i što biste trebali koristiti? Što je Creative Commons i biste li ga trebali koristiti? Creative Commons skup je licenci koje vam automatski daju dopuštenje za obavljanje različitih stvari, poput ponovne upotrebe i distribucije sadržaja. Doznajmo više o tome i kako ga koristiti. za korištenje sadržaja s ovim licencama za svoje projekte.

Povratak na naš kôd, moramo pokrenuti Pygame mikser i učitati našu melodiju.

pygame.mixer.init (44100, -16,2,1024) pygame.mixer.music.set_volume (1.0) name = "Jednooki Maestro.mp3" pygame.mixer.music.load (ime) ispis ("Učitani zapis - "+ str (ime)) 

Prvi redak ovog bloka pokreće Pygame mikser. Posljednji argument u zagradama je međuspremnik koji kontrolira kašnjenje u kojem se reproducira zvuk. Ako kasnije osjetite pletenu reprodukciju kada svira vaša glazba, pokušajte povećati taj broj na 4096. Postavke rade bez problema na Pi 3.

Ako ste preuzeli svoju glazbenu datoteku u drugu mapu na svoju door.py programa, morat ćete navesti puni put unutar zagrada kad definirate naziv varijable.

Sada preostaje samo postaviti petlju koja nas čeka ili program postavi aktivan ili ga napustimo.

dok je istina: ako je (GPIO.input (13) == 1): ispisati ("pritisnut gumb za zaustavljanje: izlazak") pygame.mixer.music.stop () prekid ako (GPIO.input (11) == 1): activeState () vrijeme.spava (0,5) ako (aktivan == 1): watchDoor () prekine GPIO.cleanup () 

Ovo vrijeme dok petlja čeka unos s bilo kojeg gumba i na taj način prekida ili mijenja stanje u aktivno. Ako stanje aktivnog postane 1, tada je watchDoor Funkcija koju smo ranije definirali zove se i sljedeći put kada se otvore vrata započet će naša glazba. Također zovemo GPIO.cleanup () da resetiramo svoje igle pri izlasku, što je općenito dobra praksa za sve programe na Raspberry Pi.

To je sve što moramo učiniti da bi se ovaj projekt pokrenuo i pokrenuo, evo koda u cijelosti:

uvoz RPi.GPIO kao GPIO uvoz pygame.mixer vrijeme uvoza def aktivnaSetup (): globalna aktivna aktivna = 0 ispisa ("Trenutno nije aktivno") def activeState (): globalna aktivna ako je aktivna == 1: aktivna = 0 GPIO.output ( 7, GPIO.LOW) ispisa ("Trenutno nije aktivno") elif active == 0: print ("Aktiviranje u 10 sekundi") za x u rasponu (0,10): GPIO.output (7, GPIO.HIGH) vrijeme .sleep (0.5) GPIO.output (7, GPIO.LOW) time.sleep (0.5) active = 1 GPIO.output (7, GPIO.HIGH) ispis ("Trenutno aktivno") ostalo: return def watchDoor (): global igranje igra = Lažno dok je Istina: ako je aktivno == 1 i GPIO.input (15) == 1 i igra == Lažno: igra = Istina pygame.mixer.music.play () ako GPIO.input (13) == 1 : ispis ("Pritisnut gumb za zaustavljanje: Izlaz") pygame.mixer.music.stop () prekid ako je GPIO.input (11) == 1: activeState () vrijeme.spava (0,5) GPIO.setmode (GPIO.BOARD) GPIO .setup (7, GPIO.OUT, početni = GPIO.LOW) GPIO.setup (11, GPIO.IN) GPIO.setup (13, GPIO.IN) GPIO.setup (15, GPIO.IN) activeSetup () piragame. mixer.init (44100, -16,2.1024) pygame.mixer.music.set_volume (1.0) name = "Jednooki d Maestro.mp3 "pygame.mixer.music.load (ime) ispisa (" Učitana staza - "+ str (ime)) dok je istina: ako (GPIO.input (13) == 1): ispis (" gumb za zaustavljanje pritisnut : Izlaz iz ") pygame.mixer.music.stop () prekid ako (GPIO.input (11) == 1): activeState () vrijeme.spavanje (0,5) ako (aktivni == 1): watchDoor () prekid GPIO. počistiti() 

Ako se ovdje pomaknete kako biste odmah preuzeli cijeli kod, imajte na umu da ćete glazbu i dalje morati preuzeti na svoj Pi da bi mogao funkcionirati!

Sada biste trebali imati funkcionalnu melodiju dobrodošlice kod kuće! Pričvrstite trsku na sklopki i isprobajte. Sramotno plesanje nije obavezno, ali se preporučuje.

Ovaj projekt pokrivao je osnove za mnoge oblike praćenja, sigurnosti i automatizacije u kući, a nadamo se da je također bilo zabavno!

Sad kad ste stigli toliko daleko, zašto se ovdje zaustaviti? Možete dodati više pjesama i program odabrati nasumično jednu s popisa. Možete dodati relej Početak rada s GPIO Na Raspberry Pi Početak korištenja GPIO-a na Raspberry Pi Ako vam je Arduino u redu, samo pričekajte dok ne dođete na ruku Raspberry Pi - ove su stvari nevjerojatne. Osim što su potpuno funkcionalno računalo, oni imaju… i imaju druge predmete koji se pokreću prilikom ulaska. Ako imate kućni glazbeni sustav, zašto ne biste imali pjesmu tema za svaku sobu?

Hoćete li dizajnirati svoju osobnu poruku dobrodošlice kući? Jeste li bili inventivni s trsnim prekidačima u vašem domu na druge načine? Ako je to slučaj, ostavite komentar o onome što planirate ili ste već učinili u odjeljku s komentarima u nastavku!




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.