Zahrajte si svůj vlastní motiv, když vstoupíte do místnosti s Raspberry Pi

  • Joseph Goodman
  • 94
  • 3735
  • 278
reklama

Chtěli jste někdy přijet domů k osobnímu přivítání? S Raspberry Pi a několika jednoduchými komponenty můžete! V tomto jednoduchém projektu použijeme jazýčkový spínač ke spuštění melodie motivu při otevření dveří. Budeme používat Raspberry Pi jako ovladač zde, i když byste mohli použít téměř jakýkoli jiný mikrokontrolér $ 5 Mikrokontroléry: Arduino, Raspberry Pi Zero nebo NodeMCU? Mikrokontroléry 5 $: Arduino, Raspberry Pi Zero nebo NodeMCU? Bývalo to tak, že pokud jste chtěli získat počítač, museli byste za něj zaplatit, přerozdělit dům. Nyní můžete získat jednu pro Abraham Lincoln. pro tento projekt využívající stejný obvod. Zde je ukázka.

Budete potřebovat

Pravděpodobně již vlastníte všechny části, které potřebujete, s výjimkou rákosového přepínače, který se pohybuje kolem 2-3 $, nebo můžete získat balíček 5 za něco přes 8 $ zde.

  • Raspberry Pi (jakýkoli model pro to bude fungovat).
  • 1 x 220 Ohm rezistor.
  • 1 x 1K Ohm rezistor.
  • Rezistor 3 x 10 K Ohm.
  • 1 x magnetický jazýčkový spínač.
  • 1 x LED.
  • 2 x tlačítkový spínač.
  • Prkénko.
  • Připojovací kabely.
  • Počítačový reproduktor nebo podobně.

Když vstoupíme do místnosti, použijeme Raspberry Pi pro přehrání písně a navrhneme obvod s tlačítky na naší prkénku, abychom ji aktivovali zpoždění a zastavili program.

Tento projekt, i když je vyroben převážně pro zábavu, pokrývá základy mnoha aplikací v domácí automatizaci pro kutily Domácí automatizační příručka s Raspberry Pi a Arduino Domácí automatizační průvodce s Raspberry Pi a Arduino Trh domácí automatizace je zaplaven drahými spotřebitelskými systémy, nekompatibilními s jedním další a nákladná instalace. Pokud máte Raspberry Pi a Arduino, můžete v podstatě dosáhnout totéž na ... a také domácí bezpečnosti Hledáte řešení pro domácí kutily? Zkuste jeden z nich hledat řešení pro domácí kutily? Vyzkoušejte jednu z těchto možností V době digitální technologie a vždy připojeného hardwaru by nastavení domácího bezpečnostního systému mělo překonat umění umísťovat na zeď alarmovou krabici.

Začínáme

Začněme vytvořením našeho okruhu. Ujistěte se, že váš Pi není napájen, a nastavte si obvod takto:

LED je připojena ke kolíku 7 na našem pi. Dva tlačítkové spínače jsou připojeny ke kolíkům 11 a 13 a jazýčkový spínač se připojuje ke kolíku 15. Naše napájení jde do kolíku 1 (3v3) a kolíku 6 (Gnd).

Zkontrolujte, zda je vše na správném místě.

Při testování tohoto projektu vám může pomoci udržet před sebou jazýčkový přepínač, abyste jej mohli snadno zapnout nebo vypnout. V tomto případě byl jazýčkový spínač již nainstalován nad dveřmi. Jakmile je váš projekt spuštěn, můžete jej dočasně připojit ke dveřím pomocí pásky, nebo máte-li jistotu, můžete jej připojit trvale pro použití v budoucích projektech.!

Připojte 3,5 mm jackový výstup Pi k vašemu reproduktorovému systému. Jakmile je vše sestaveno, mělo by to vypadat takto:

Všimněte si, že zde použitá prkénko má své kolejnice na opačnou stranu k výše uvedenému Fritzingovu diagramu.

Nyní zapněte svůj Pi a připojte se k němu pomocí SSH, abychom měli přístup k terminálu. Pokud si nejste jisti, jak to provést, tato příručka Nastavení Raspberry Pi pro bezhlavé použití s ​​SSH Nastavení Raspberry Pi pro Bezhlavé použití s ​​SSH Raspberry Pi může přijímat SSH příkazy, když je připojen k místní síti (buď prostřednictvím Ethernet nebo Wi-Fi), což vám umožní snadno jej nastavit. Výhody SSH jdou nad rámec rozrušení každodenního screeningu… vám mohou pomoci. Pokud používáte Raspberry Pi s monitorem, myší a klávesnicí, tento krok přeskočte a otevřete terminál.

Než začnete, je třeba zkontrolovat, zda jste aktuální. Typ aktualizace sudo apt-get do terminálu.

Nyní můžeme přejít k tomu, aby naše Pi mluvilo k našemu okruhu.

Testování našeho nastavení

Začneme tím, že zkontrolujeme náš obvod pomocí jednoduchého programu. Pokud jste si jisti, že jste doposud vše zapojili, můžete tento krok přeskočit, ale doporučil bych to, protože to může později zachránit bolesti hlavy.

Pokud jste v Pythonu nikdy nenaprogramovali a cítíte se trochu zastrašeni, existuje celá řada skvělých webů. 5 nejlepších webů, které se naučíte Python Programování 5 nejlepších webů, které se naučíte Python Programování Chcete se naučit programování Python? Zde jsou nejlepší způsoby, jak se naučit Python online, z nichž mnohé jsou zcela zdarma. to vám může pomoci začít.

V terminálu vytvořte nový skript:

nano test.py

Po otevření přidejte tento kód do souboru a stisknutím klávesy Ctrl-C ukončete program podle dialogu pro uložení:

# Tento kód byl napsán pro článek na www.MakeUseOf.com Ian Buckley. importovat RPi.GPIO jako GPIO importovat č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), zatímco 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 on GPIO 13") time.sleep (1) if (GPIO.input (15) == 1): print ("Button on GPIO" 15 ") time.sleep (1) GPIO.cleanup () 

Tento kód přečte hodnotu tlačítek a při změně se vytiskne na obrazovku. Obě tlačítka mají odpory, takže při stisknutí hlásí HIGH. Spínač jazýčkových magnetů hlásí VYSOKÉ, kdykoli je jeho doprovodný magnet blízko.

Spusťte program:

python test.py

Měli byste vidět LED diodu rozsvícenou a hlášení na obrazovce, když stisknete vaše dvě tlačítka a vytáhnete magnet od jazýčkového spínače. Pokud po stisknutí tlačítek nezískáte zpětnou vazbu, znovu zkontrolujte obvody a ujistěte se, že je vše připojeno tak, jak by mělo být. Po dokončení testování stiskněte CTRL-C zastavit program.

Nyní můžeme sestavit jednoduchý program pro nastavení, spuštění a resetování našeho dveřního senzoru. V částech projdeme kód a stručně vysvětlíme, co každá část dělá. Pokud však chcete vidět celý kód, přejděte dolů a zobrazte jej v plném znění.

Musíme začít importováním některých modulů:

importovat Rpi.GPIO jako GPIO importovat čas importu pygame.mixer 

Budeme používat Pygame modul pro přehrávání naší hudby. Standardně se dodává s Raspbian Jessie a je skvělou knihovnou pro vše, co potřebujete k tvorbě her Python a mnoha dalších úžasných projektů. Jak vytvořit Raspberry Pi Twitter Bot Jak vytvořit Raspberry Pi Twitter Bot Twitter je největší úložiště krátkých zprávy od lidí, kteří nemají co říct - a nyní také můžete přispět k tomuto epickému projektu automatizovaným Twitter botem, poháněným Raspberry… .

Budeme používat proměnnou nazvanou aktivní rozhodnout, zda je náš systém aktivní nebo ne. Definujme několik funkcí, které to pro nás udělají:

def activeSetup (): global active active = 0 print ("Právě not active") def activeState (): global active, pokud active == 1: active = 0 GPIO.output (7, GPIO.LOW) print ("not not 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 ("Právě Active") else: return 

První funkce zde vytvoří proměnnou pojmenovanou aktivní, a nastaví ji na 0. Přiřazení aktivního stavu číselné hodnotě znamená, že pokud plánujete program později rozšířit na různé aktivní stavy, můžete je odpovídajícím způsobem očíslovat. I když to nemusí být nejlepší programování Pythonu na světě, pro tento projekt bude stačit.

Druhá funkce při volání kontroluje, zda je systém aktivní (nebo aktivní == 1). Pokud ano, nastaví systém na neaktivní (aktivní == 0), zhasne LED a tiskne na konzoli. Pokud tomu tak není, poskytne vám odpočítávání 10 sekund, abyste opustili místnost, ve které LED bliká, než zůstane zapnutá, abyste ukázali, že systém je aktivní.

Nyní můžeme definovat funkci, která bude sledovat náš magnetický spínač:

def watchDoor (): globální hraní hraní = False while True: pokud je aktivní == 1 a GPIO.input (15) == 1 a playing == False: playing = True pygame.mixer.music.play () pokud GPIO.input (13) == 1: tisk ("Stop tlačítko stisknuto: Exiting") pygame.mixer.music.stop () break, pokud GPIO.input (11) == 1: activeState () time.sleep (0.5) 

Vytváříme další proměnnou nazývanou zde hraní - to je prostě k zastavení programu, který se pokouší spustit přehrávání opakovaně, když je spínač aktivován.

Uvnitř smyčky while začíná první příkaz if if music (který zatím nemáme, ale nebojte se, přichází). Hudbu lze spustit pouze v případě, že je systém aktivní, přepínač rákosu je otevřený a již se nepřehrává.

Druhý příkaz if je pro naše tlačítko exit. Po stisknutí tohoto tlačítka se hudba zastaví a program skončí.

Třetí příkaz if slouží k přepínání, zda je systém aktivní nebo ne. time.sleep Funkce zde zabraňuje tomu, aby se při stisknutí více tlačítek četlo.

Nyní je čas postavit 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) 

Pokud jste provedli nějaké experimentování s Pi, než by vám to mělo být známé. počáteční = GPIO.LOW argument v nastavení pin 7 je nastaví na nízkou, jakmile je inicializován.

Nyní můžeme zavolat naši funkci, která způsobí, že systém nebude při spuštění programu aktivní.

activeSetup () 

Hudba Maestro!

V tuto chvíli bychom měli začít přemýšlet o hudbě, která se má hrát. Můžete si vybrat libovolný hudební soubor, který si přejete, ale prozatím si vybereme něco, co bude všem dostupné. Pokud se díváte na YouTube, pravděpodobně už znáte hudbu Kevina MacLeoda. Umožňuje stáhnout fantastickou melodii, kterou nazývá “Jednooký Maestro”. Toto, spolu s velkou částí hudby na jeho webu, podléhá licenci Creative Commons a existuje mnoho dobrých důvodů. Co je Creative Commons, a měli byste je používat? Co jsou Creative Commons a měli byste je používat? Creative Commons je sada licencí, které vám automaticky udělují povolení dělat různé věci, například opakované použití a distribuci obsahu. Pojďme se o tom dozvědět více a jak ji používat. používat obsah s těmito licencemi pro vaše projekty.

V našem kódu musíme spustit mixér Pygame a načíst naši melodii.

pygame.mixer.init (44100, -16,2,1024) pygame.mixer.music.set_volume (1.0) name = "One-eyed Maestro.mp3" pygame.mixer.music.load (name) print ("Loaded track" - „+ str (jméno)) 

První řádek tohoto bloku iniciuje Pygame mixér. Posledním argumentem v závorkách je vyrovnávací paměť, která řídí latenci, ve které se zvuk hraje. Pokud při přehrávání hudby zaznamenáte trhané přehrávání později, zkuste toto číslo zvýšit na 4096. Nastavení, jak fungují bez problémů na Pi 3.

Pokud jste stáhli hudební soubor do jiného adresáře, než je váš door.py program, budete muset zadat úplnou cestu uvnitř závorek, když definujete název proměnné.

Nyní už zbývá jen vytvořit smyčku, která čeká, až program buď nastavíme jako aktivní, nebo jej ukončíme.

while True: if (GPIO.input (13) == 1): print ("Stop button stisknuto: Exiting") pygame.mixer.music.stop () break if (GPIO.input (11) == 1): activeState () time.sleep (0.5) if (active == 1): watchDoor () break GPIO.cleanup () 

Tato smyčka čeká na vstup z kteréhokoli tlačítka a podle toho ukončí nebo změní stav na aktivní. Pokud se stav aktivního stane 1, pak watchDoor funkce, kterou jsme definovali dříve, se volá a při příštím otevření dveří se spustí naše melodie. Také voláme GPIO.cleanup () resetovat naše kolíky na výstupu, což je obecně dobrá praxe pro veškeré programování na Raspberry Pi.

To je vše, co musíme udělat, aby byl tento projekt spuštěn, zde je celý kód:

import RPi.GPIO jako GPIO import pygame.mixer doba importu def activeSetup (): global active active = 0 print ("Právě not active") def activeState (): global active, pokud active == 1: active = 0 GPIO.output ( 7, GPIO.LOW) tisk ("Momentálně neaktivní") elif aktivní == 0: tisk ("Aktivace za 10 sekund") pro x v rozsahu (0,10): GPIO.výstupní (7, GPIO.HIGH) čas .sleep (0.5) GPIO.output (7, GPIO.LOW) time.sleep (0.5) active = 1 GPIO.output (7, GPIO.HIGH) print ("Právě Active") else: return def watchDoor (): global hraní hraní = False while True: pokud je aktivní == 1 a GPIO.input (15) == 1 a hraní == False: playing = True pygame.mixer.music.play () pokud GPIO.input (13) == 1 : print ("Stop tlačítko stisknuto: Exiting") pygame.mixer.music.stop () break, pokud 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-eye d Maestro.mp3 "pygame.mixer.music.load (name) print (" Loaded track - "+ str (name)) while True: if (GPIO.input (13) == 1): print (stisknuto tlačítko Stop) : Exiting ") pygame.mixer.music.stop () break if (GPIO.input (11) == 1): activeState () time.sleep (0.5) if (active == 1): watchDoor () break GPIO. vyčištění () 

Pokud jste se sem posunuli dolů, abyste okamžitě získali kompletní kód, mějte na paměti, že budete muset hudbu stáhnout do svého Pi, aby to fungovalo!

Nyní byste měli mít funkční melodii uvítacího domova! Připojte jazýčkový spínač ke dveřím a vyzkoušejte to. Rozpačitý tanec je volitelný, ale doporučuje se.

Tento projekt zahrnoval základy mnoha forem domácího monitoringu, bezpečnosti a automatizace a snad i legrace!

Nyní, když jste zašli tak daleko, proč se zastavit? Můžete přidat více skladeb a nechat si program náhodně vybrat jednu ze seznamu. Můžete přidat relé Začínáme s GPIO na Raspberry Pi Začínáme s GPIO na Raspberry Pi Pokud máte Arduino v pohodě, počkejte, až dostanete ruce na Raspberry Pi - tyto věci jsou úžasné. Kromě toho, že jsou plně funkčním počítačem, mají také ... a mají při vstupu spuštěny další objekty. Pokud máte domácí hudební systém, proč nemáte tematickou píseň pro každou místnost?

Navrhujete vlastní osobní uvítací zprávu domů? Byli jste vynalézaví s rákosovými spínači u vás doma jinými způsoby? Pokud ano, zanechte komentář o tom, co plánujete nebo jste již udělali, v sekci komentářů níže!




ucivajafada ([email protected])
03.07.21 09:14
http://slkjfdf.net/ - Oleluje <a href="http://slkjfdf.net/">Asaoqepa</a> bil.onma.cs.unedose.fr.ctk.xh http://slkjfdf.net/
uqimivajex ([email protected])
03.07.21 07:13
http://slkjfdf.net/ - Ejosulek <a href="http://slkjfdf.net/">Epabocowe</a> gek.ijsm.cs.unedose.fr.cfb.fc http://slkjfdf.net/
ouwenicudit ([email protected])
03.07.21 05:29
http://slkjfdf.net/ - Exmaxi <a href="http://slkjfdf.net/">Uwuplaj</a> vbf.ukch.cs.unedose.fr.izk.pt http://slkjfdf.net/
efiapkicicuma ([email protected])
03.07.21 03:54
http://slkjfdf.net/ - Uqomodoe <a href="http://slkjfdf.net/">Alicisapo</a> bdm.yqus.cs.unedose.fr.ste.nu http://slkjfdf.net/
exkotoxoba ([email protected])
03.07.21 01:38
http://slkjfdf.net/ - Epopun <a href="http://slkjfdf.net/">Eqdumoy</a> evb.rmwy.cs.unedose.fr.vpp.vu http://slkjfdf.net/
O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.