Reklama
Chceli ste niekedy prísť domov na osobné privítanie? S Raspberry Pi a niekoľkými jednoduchými komponentami môžete! V tomto jednoduchom projekte použijeme jazýčkový spínač na spustenie tematického ladenia pri otvorení dverí. Ako kontrolér tu použijeme Raspberry Pi, hoci ste mohli použiť takmer akýkoľvek iný mikrokontrolér Mikrokontroléry 5 USD: Arduino, Raspberry Pi Zero alebo NodeMCU?Bývalo to tak, že ak ste chceli získať počítač, museli by ste preplatiť svoj dom, aby ste ho zaplatili. Teraz môžete získať jednu za Abrahama Lincolna. Čítaj viac pre tento projekt využívajúci rovnaký obvod. Tu je ukážka.
Budete potrebovať
Pravdepodobne už budete vlastniť všetky časti, ktoré potrebujete, s výnimkou jazýčkového prepínača, ktorý sa pohybuje okolo 2–3 dolárov, alebo môžete získať balík 5 za niečo málo cez 8 dolárov. tu.
- Raspberry Pi (akýkoľvek model pre to bude fungovať).
- 1 x 220 ohmový rezistor.
- 1 x 1K ohmový rezistor.
- Rezistor 3 x 10 K Ohm.
- 1 x magnetický jazýčkový spínač.
- 1 x LED.
- 2 x tlačidlový spínač.
- Doštička.
- Pripojovacie káble.
- Počítačový reproduktor alebo podobne.
Keď vstúpime do miestnosti, použijeme Raspberry Pi na prehratie piesne a navrhneme obvod s tlačidlami na našej doštičke, aby ju aktivovali oneskorene, a program zastavíme.
Tento projekt, aj keď je vyrobený väčšinou pre zábavu, pokrýva základy mnohých aplikácií v systéme Windows Domáca automatizácia pre domácich majstrov Sprievodca domácou automatizáciou s Raspberry Pi a ArduinoTrh domácej automatizácie je zaplavený drahými spotrebiteľskými systémami, navzájom nekompatibilnými a nákladnou inštaláciou. Ak máte Raspberry Pi a Arduino, môžete v podstate dosiahnuť to isté pri ... Čítaj viac a tiež Zabezpečenie domácich majstrov Hľadáte riešenie domácich bezpečnostných systémov pre domácich majstrov? Vyskúšajte jeden z nichVo veku digitálnej technológie a stále pripojeného hardvéru by nastavenie domáceho bezpečnostného systému malo presahovať umenie umiestnenia budíka v tvare poplachu na stenu. Čítaj viac
Začíname
Začnime tým, že náš obvod. Uistite sa, že váš počítač Pi nie je napájaný a nastavte si obvod takto:
LED je pripojená na pin 7 na našom pi. Dva tlačidlové spínače sú pripevnené k kolíkom 11 a 13 a jazýčkový spínač sa pripája k kolíku 15. Naša sila ide na pin 1 (3v3) a pin 6 (Gnd).
Nezabudnite skontrolovať, či je všetko na správnom mieste.
Počas testovania tohto projektu môže pomôcť udržať prepínač trstiny pred vami, aby ste ho mohli ľahko zapnúť alebo vypnúť. V tomto prípade bol jazýčkový spínač už nainštalovaný nad dverami. Po spustení projektu môžete spínač dočasne pripojiť k dverám pomocou alebo ak máte istotu, môžete ju natrvalo pripevniť na použitie v budúcnosti Projekty!
Pripojte 3,5 mm jack výstup Pi k vášmu reproduktorovému systému. Akonáhle je všetko zostavené, malo by to vyzerať takto:
Uvedená dosková doska, ktorá sa tu používa, má napájacie koľajnice opačne k Fritzingovmu diagramu vyššie.
Teraz zapnite zariadenie Pi a získajte prístup k nemu pomocou SSH, aby sme mali prístup k terminálu. Ak si nie ste istí, ako to urobiť, tento sprievodca Nastavenie Raspberry Pi na použitie bez hlavy s SSHRaspberry Pi môže prijímať príkazy SSH, keď je pripojený k miestnej sieti (buď prostredníctvom siete Ethernet alebo Wi-Fi), čo vám umožňuje jednoduché nastavenie. Výhody SSH idú nad rámec narušenia denného skríningu ... Čítaj viac vám môže pomôcť. Ak používate Raspberry Pi s monitorom, myšou a klávesnicou, tento krok preskočte a otvorte terminál.
Predtým, ako začnete, je potrebné skontrolovať, či ste aktuálne. typ aktualizácia sudo apt-get
do terminálu.
Teraz sa môžeme presunúť k tomu, aby náš Pi hovoril k nášmu okruhu.
Testovanie nášho nastavenia
Na začiatok je možné skontrolovať náš obvod pomocou jednoduchého programu. Ak ste si istí, že ste doteraz všetko zapojili, môžete tento krok preskočiť, ale odporúčam ho, pretože to môže neskôr ušetriť bolesti hlavy.
Ak ste v Pythone nikdy nenaprogramovali a cítite sa trochu skľučení, existuje veľa skvelé webové stránky 5 najlepších webových stránok, kde sa môžete naučiť programovanie v PythoneChcete sa naučiť programovanie Pythonu? Toto sú najlepšie spôsoby, ako sa naučiť Python online, z ktorých mnohé sú úplne zadarmo. Čítaj viac ktoré vám môžu pomôcť začať.
V termináli vytvorte nový skript:
nano test.py
Po otvorení tento kód pridajte do súboru a stlačením klávesov Ctrl-C ukončite dialógové okno uloženia:
# Tento kód bol napísaný pre článok na www. MakeUseOf.com od Ian Buckley. importovať RPi. GPIO ako GPIO. importovať čas. 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), zatiaľ čo True: GPIO.output (7, GPIO.HIGH) if (GPIO.input (11) == 1): print ("Button on GPIO 11") time.sleep (1 ) ak (GPIO.input (13) == 1): print ("Button on GPIO 13") time.sleep (1) if (GPIO.input (15) == 1): print ("Button on GPIO 15") time .spánok (1) GPIO.cleanup ()
Tento kód načíta hodnotu tlačidiel a pri zmene sa vytlačí na obrazovku. Obidve tlačidlá majú rezistory, takže pri stlačení vykazujú HIGH. Prepínač jazýčkových magnetov hlási VYSOKÉ vždy, keď je jeho sprievodný magnet blízko.
Spustite program:
python test.py
Mali by ste vidieť, ako sa rozsvieti LED dióda a správa na obrazovke, keď stlačíte vaše dve tlačidlá a odtiahnete magnet od jazýčkového spínača. Ak po stlačení tlačidiel nezískate spätnú väzbu, znova skontrolujte obvody a skontrolujte, či je všetko pripojené tak, ako by malo byť. Po dokončení testovania stlačte CTRL-C na zastavenie programu.
Teraz môžeme zostaviť jednoduchý program na nastavenie, spustenie a resetovanie nášho snímača dverí. Po častiach prejdeme kód a stručne vysvetlíme, čo každá časť robí. Ak však chcete vidieť celý kód, prejdite nadol a zobrazte ho ako celok.
Musíme začať importovaním niektorých modulov:
importovať Rpi. GPIO ako GPIO. import pygame.mixer. importovať čas.
Budeme používať pygame modul na prehrávanie našej hudby. S Raspbian Jessie je dodávaný ako štandard a je vynikajúcou knižnicou pre všetko, čo potrebujete na výrobu hier Python a mnohých ďalších. úžasné projekty Ako sa stavia Raspberry Pi Twitter BotTwitter je najväčšie úložisko krátkych správ od ľudí, ktoré nemajú čo povedať - a teraz Vy tiež môžete prispieť do tohto epického projektu automatizovaným robotom Twitter, ktorý je poháňaný vaším telefónom Raspberry ... Čítaj viac .
Budeme používať premennú s názvom aktívny rozhodnúť, či je náš systém aktívny alebo nie. Definujme niekoľko funkcií, ktoré to pre nás urobia:
def activeSetup (): global active active = 0 print ("aktuálne not active") def activeState (): global active, active == 1: active = 0 GPIO.output (7, GPIO.LOW) tlač („Momentálne neaktívne“) elif active == 0: print („Activating in 10 sekúnd“) pre x v rozsahu (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) print ("V súčasnej dobe Aktívne “) inde: návrat.
Prvá funkcia tu vytvorí premennú pomenovanú aktívny, a nastaví sa na 0. Číselná hodnota aktívneho stavu znamená, že ak plánujete program neskôr rozšíriť na rôzne aktívne stavy, môžete ich očíslovať. Aj keď to nemusí byť najlepšie programovanie Pythonu na svete, pre tento projekt bude stačiť.
Druhá funkcia pri volaní skontroluje, či je systém aktívny (alebo aktívny == 1). Ak je, nastaví systém na neaktívny (aktívny == 0), vypne LED a tlačí na konzolu. Ak to tak nie je, dá sa vám odpočítavanie 10 sekúnd, aby ste opustili miestnosť, v ktorej bliká dióda LED, a potom zostali rozsvietené, čo znamená, že systém je aktívny.
Teraz môžeme definovať funkciu, ktorá bude sledovať náš magnetický spínač:
def watchDoor (): globálne hranie hier = False while True: ak je aktívne == 1 a GPIO.input (15) == 1 a playing == False: playing = True pygame.mixer.music.play (), ak GPIO.input (13) == 1: print ("Stlačené tlačidlo Stop: Exiting") pygame.mixer.music.stop () break, ak GPIO.input (11) == 1: activeState () time.sleep (0.5)
Vytvoríme tu ďalšiu premennú s názvom hrajúci - slúži len na zastavenie programu, ktorý sa pokúša spustiť opakované prehrávanie pri spustení prepínača.
Vo vnútri slučky while sa začína prvé vyhlásenie, ktoré spustí hudbu (ktorú zatiaľ nemáme, ale nebojte sa, prichádza). Umožní spustiť hudbu, len ak je systém aktívny, jazýčkový spínač je otvorený a ešte sa neprehráva.
Druhé vyhlásenie, ak je pre naše tlačidlo ukončenia. Po stlačení tohto tlačidla sa hudba zastaví a program sa ukončí.
Tretí príkaz if slúži na prepínanie, či je systém aktívny alebo nie. time.sleep Táto funkcia slúži na zabránenie čítania viacerých tlačidiel po jeho stlačení.
Teraz je čas nastaviť Pi kolíky.
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)
Ak ste už predtým experimentovali s Pi, malo by to byť pre vás známe. počiatočné = GPIO.LOW Argument v nastavení č. 7 nastaví nízku hodnotu, akonáhle je inicializovaný.
Teraz môžeme zavolať našu funkciu, ktorá nastaví systém, aby nebol aktívny pri spustení programu.
activeSetup ()
Hudba Maestro!
V tomto bode by sme mali začať premýšľať o hudbe, ktorá sa má hrať. Môžete si vybrať ľubovoľný hudobný súbor, ktorý si želáte, ale my si vyberieme niečo, čo je zatiaľ k dispozícii pre všetkých. Ak pozeráte video na YouTube, pravdepodobne už poznáte hudbu Kevina MacLeoda. Umožňuje stiahnuť fantastickú melódiu, ktorú nazýva „Jednooký maestro“. Toto spolu s väčšinou hudby na jeho webe podlieha licencii Creative Commons a existuje veľa dobrých dôvodov Čo je Creative Commons a nekomerčné použitie?Čo je Creative Commons? Čo znamená „nekomerčné použitie“? Získajte ďalšie informácie o licenciách spoločnosti Creative Commons a o tom, ako fungujú. Čítaj viac používať obsah s týmito licenciami pre vaše projekty.
V našom kóde musíme spustiť mixér Pygame a načítať našu melódiu.
pygame.mixer.init (44100, -16,2,1024) pygame.mixer.music.set_volume (1.0) name = "One-eyed Maestro.mp3" pygame.mixer.music.load (názov) print („Načítaná stopa -“ + str (názov))
Prvý riadok tohto bloku iniciuje pygame mixer. Posledným argumentom v zátvorkách je medzipamäť, ktorá riadi latenciu, v ktorej sa zvuk prehráva. Ak pri prehrávaní hudby zaznamenáte trhané prehrávanie neskôr, skúste toto číslo zvýšiť na 4096. Nastavenia fungujú bez problémov na Pi 3.
Ak ste si stiahli svoj hudobný súbor do iného adresára ako váš door.py program, budete musieť zadať úplnú cestu vo vnútri zátvoriek, keď definujete premennú názvu.
Teraz už zostáva len nastaviť slučku, ktorá čaká, až program buď nastavíme ako aktívny, alebo ho ukončíme.
while True: if (GPIO.input (13) == 1): print ("Stlačené tlačidlo Stop: Exiting") pygame.mixer.music.stop () break if (GPIO.input (11) == 1): activeState () time.sleep (0.5) if (active == 1): watchDoor () break GPIO.cleanup ()
To zatiaľ čo slučka čaká na vstup z ktoréhokoľvek tlačidla a podľa toho ukončí alebo zmení stav na aktívny. Ak sa stav aktívneho stavu stane 1, potom watchDoor Funkcia, ktorú sme definovali predtým, sa volá a nabudúce, keď sa otvoria dvere, sa spustí naša melódia. Voláme tiež GPIO.cleanup () resetovať naše kolíky na výstupe, čo je všeobecne dobrý postup pre všetky programovania na Raspberry Pi.
To je všetko, čo musíme urobiť, aby sme tento projekt mohli sprevádzkovať, tu je celý kód:
importovať RPi. GPIO ako GPIO. import pygame.mixer. doba importu def activeSetup (): global active active = 0 print ("aktuálne not active") def activeState (): global active, active == 1: active = 0 GPIO.output (7, GPIO.LOW) print ("aktuálne nie Active ") elif active == 0: print (" Activating in 10 seconds ") for x in range (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) print („aktuálne aktívny“): návrat def watchDoor (): hranie na globálnom hraní = False while True: ak je aktívne == 1 a GPIO.input (15) == 1 a playing == False: playing = True pygame.mixer.music.play (), ak GPIO.input (13) == 1: print ("Stlačené tlačidlo Stop: Exiting") pygame.mixer.music.stop () break, ak 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 = "One-eyed Maestro.mp3" pygame.mixer.music.load (názov) print ("Loaded track -" + str (name)) while True: if (GPIO.input (13) == 1): print ("Stlačené tlačidlo Stop: Exiting") pygame.mixer.music.stop () break if (GPIO.input (11) == 1): activeState () time.sleep (0.5) if (active == 1): watchDoor () break GPIO.cleanup ()
Ak ste sa posúvali dolu a okamžite ste dostali celý kód, nezabudnite, že na to, aby to fungovalo, musíte hudbu stiahnuť do svojho pi!
Teraz by ste mali mať funkčnú melódiu uvítacieho domova! Pripojte jazýčkový spínač k vašim dverám a vyskúšajte ich. Trápne tance sú voliteľné, ale odporúčajú sa.
Tento projekt pokrýval základy mnohých foriem monitorovania domácnosti, bezpečnosti a automatizácie a dúfajme, že aj táto zábava bola zábavná!
Teraz, keď ste zašli tak ďaleko, prečo sa zastaviť? Môžete pridať ďalšie skladby a program nechať vybrať jednu zo zoznamu náhodne. Mohol by si pridať relé Začíname pracovať s programom GPIO na zariadení Raspberry PiAk ste mali Arduino v pohode, počkajte, kým sa dostanete na Raspberry Pi ruky - tieto veci sú úžasné. Okrem toho, že sú plne funkčným počítačom, majú tiež ... Čítaj viac a nechať pri vstupe spustiť ďalšie objekty. Ak máte systém domácej hudby, prečo nemáte tematickú skladbu pre každú izbu?
Navrhujete svoju vlastnú osobnú uvítaciu správu? Boli ste vynaliezaví s jazýčkovými spínačmi u vás doma inými spôsobmi? Ak áno, zanechajte komentár k tomu, čo plánujete alebo ste už urobili v sekcii komentárov nižšie!
Ian Buckley je nezávislý novinár, hudobník, performer a video producent žijúci v Berlíne v Nemecku. Keď nepíše alebo je na pódiu, pohráva sa s elektronikou alebo kódom pre domácich majstrov v nádeji, že sa stane šialeným vedcom.