Hirdetés
Előfordult már, hogy hazatér-e személyes fogadtatásra? Málna Pi és néhány egyszerű összetevő segítségével megteheti! Ebben az egyszerű projektben egy nádkapcsolót használunk egy téma dallam indítására, amikor egy ajtó nyitva van. Itt egy Raspberry Pi-t használunk vezérlőként, bár szinte bármilyen felhasználhatja egyéb mikrovezérlő 5 dollár mikrovezérlők: Arduino, Raspberry Pi Zero, vagy NodeMCU?Régebben volt a helyzet, hogy ha számítógépet akarsz szerezni, akkor újra házba kell helyeznie házát, hogy fizetni tudja. Most kaphat egyet egy Abraham Lincoln-hoz. Olvass tovább ehhez a projekthez ugyanazt az áramkört használja. Itt egy bemutató.
Szükséged lesz
Valószínűleg már az összes alkatrész birtokában lesz, amire szüksége van ennek elkészítéséhez, kivéve a nádkapcsolót, amely körülbelül 2–3 dollár, vagy ha kap egy 5-ös csomagot alig több mint 8 dollárért. itt.
- Raspberry Pi (ehhez bármely modell működni fog).
- 1 x 220 ohm ellenállás.
- 1 x 1K ohm ellenállás.
- 3 x 10K ohm ellenállás.
- 1 x mágneses nádkapcsoló.
- 1 x LED.
- 2 x nyomógomb.
- Breadboard.
- Csatlakozókábelek.
- Számítógépes hangszóró vagy hasonló.
A Raspberry Pi segítségével dalt játsszunk a szoba belépésekor, és megtervezzünk egy áramkört a kenyérvágányon lévő gombokkal, hogy késleltetett módon aktiváljuk és leállítsuk a programot.
Ez a projekt, bár elsősorban szórakozásból készült, számos alkalmazás alapjait fedezi fel 2006 - ban DIY otthoni automatizálás Otthoni automatizálási útmutató a Raspberry Pi-vel és az Arduino-valAz otthoni automatizálás piacát elárasztják drága fogyasztói rendszerek, amelyek összeegyeztethetetlenek és költségesek a telepítésükhöz. Ha van egy Málna Pi és Arduino, alapvetően ugyanazt a dolgot érheti el ... Olvass tovább és még DIY otthoni biztonság DIY otthoni biztonsági rendszer megoldást keres? Próbálja ki az egyiketA digitális technológia és a mindig csatlakoztatott hardver korszakában az otthoni biztonsági rendszer felállításának meg kell haladnia a riasztás alakú doboz falra helyezésének művészetét. Olvass tovább
Elkezdeni
Kezdjük azzal, hogy elkészítjük az áramkört. Győződjön meg arról, hogy a Pi áramellátása nincs, és állítsa be az áramkört így:

A LED-et a pi 7-es pólusához csatlakoztatjuk. A két nyomógombos kapcsoló a 11 és a 13 csaphoz van rögzítve, és a nádkapcsoló a 15 csaphoz kapcsolódik. Teljesítményünk az 1. (3v3) és a 6-os (Gnd) érintkezőkre megy.

Ellenőrizze, hogy minden pontosan a megfelelő helyen van-e.
A projekt kipróbálása közben segíthet abban, hogy a nádkapcsolót maga előtt tartsa, így könnyen be- és kikapcsolhatja. Ebben az esetben a nádkapcsolót már beépítették az ajtó fölé. Amint a projekt elkészült és fut, a kapcsolót átmenetileg csatlakoztathatja az ajtóhoz a szalagot, vagy ha magabiztosabbnak érzi magát, tartósabban rögzítheti a jövőbeni felhasználáshoz projektek!

Csatlakoztassa a 3,5 mm-es jack kimenetet a hangszórórendszerhez. Miután összeállították, úgy néz ki, mint ez:

Felhívjuk figyelmét, hogy az itt használt kenyérvágóerõnek van ellenõrzése a fenti Fritzing-diagramhoz képest.
Most kapcsolja be a Pi-t, és SSH használatával érje el, így hozzáférhetünk a terminálhoz. Ha nem biztos benne, hogyan kell ezt csinálni, ez az útmutató A Raspberry Pi üzembe helyezése fej nélküli használathoz az SSH használatávalA Raspberry Pi elfogadja az SSH parancsokat, ha helyi hálózathoz csatlakozik (akár Ethernet, akár Wi-Fi hálózaton keresztül), lehetővé téve ezzel a könnyű beállítást. Az SSH előnyei meghaladják a napi átvilágítást ... Olvass tovább segíthet neked. Ha a Raspberry Pi készüléket monitorral, egérrel és billentyűzettel használja, akkor hagyja ki ezt a lépést, és nyissa meg a terminált.
Mielőtt elkezdené, érdemes ellenőrizni, hogy naprakész-e. típus sudo apt-get frissítés
a terminálba.
Most továbbléphetünk ahhoz, hogy Pi-vel beszéljünk az áramkörünkhöz.
A telepítés tesztelése
A kezdéshez ellenőrizze az áramkört egyszerű program segítségével. Ha biztos benne, hogy eddig mindent rendben bekötött, kihagyhatja ezt a lépést, bár azt ajánlanám, mivel később fejfájást takaríthat meg.
Ha még soha nem programoztál a Python-ban, és kissé rettegve érzi magát, van egy csomó program nagyszerű webhelyek Az 5 legjobb webhely a Python programozás megismeréséhezSzeretné megtanulni a Python programozást? A következőkben olvashatják el a Python online megtanulásának legjobb módjait, amelyek közül sok teljesen ingyenes. Olvass tovább ami segíthet az indulásban.
Hozzon létre egy új szkriptet a terminálon:
nano test.py
Miután megnyitotta, adja hozzá ezt a kódot a fájlhoz, és nyomja meg a Ctrl-C billentyűt a kilépéshez, a mentési párbeszéd után:
# Ezt a kódot egy cikkhez írták a www. MakeUseOf.com készítette: Ian Buckley. import RPi. GPIO mint GPIO. importálási idő. GPIO.set figyelmeztetések (hamis) GPIO.setmode (GPIO.BOARD) GPIO.setup (7, GPIO.OUT) GPIO.setup (11, GPIO.IN) GPIO.setup (13, GPIO.IN) GPIO.setup (15, GPIO.IN), míg igaz: GPIO.output (7, GPIO.HIGH), ha (GPIO.input (11) == 1): print ("Button on GPIO 11") time.sleep (1) ) ha (GPIO.input (13) == 1): nyomtatás ("gomb a GPIO 13-nál") time.sleep (1), ha (GPIO.input (15) == 1): print ("Button on GPIO 15") time .sleep (1) GPIO.cleanup ()
Ez a kód leolvassa a gombok értékét, és kinyomtatja a képernyőt, amikor azok megváltoznak. A két nyomógomb lehúzható ellenállással rendelkezik, tehát ha megnyomják, akkor a HIGH jelzi. A nádmágnes-kapcsoló MINDIG jeleníti meg, amikor a kísérő mágnes közel van.

Futtassa a programot:
python test.py
Látnia kell a LED kigyulladását és egy jelentést a képernyőre, amikor megnyomja a két gombot, és elhúzza a mágnest a nádkapcsolótól. Ha a gombok megnyomásakor nem kap visszajelzést, ellenőrizze újra az áramkört, és ellenőrizze, hogy minden csatlakoztatva van-e. Amikor befejezte a tesztelést, nyomja meg a gombot CTRL-C a program leállításához.

Most összeállíthatunk egy egyszerű programot az ajtóérzékelő beállításához, indításához és visszaállításához. Részletekben áttekintjük a kódot, és röviden elmagyarázzuk, hogy az egyes részek mit csinálnak, bár ha szeretné megtekinteni a teljes kódot, görgessen lefelé a teljes megjelenítéshez.
Először néhány modult kell importálnunk:
import Rpi. GPIO mint GPIO. import pygame.mixer. importálási idő.
A következőket fogjuk használni pygame modul a zene lejátszásához. Alapértelmezés szerint a Raspbian Jessie-hez tartozik, és remek könyvtár mindazokhoz, amire szüksége lehet a Python játékok készítéséhez és még sok máshoz csodálatos projektek Hogyan készítsünk egy Málna Pi Twitter bototA Twitter a világ legnagyobb rövid üzeneteinek tárolója az emberektől, és nincs mit mondani - és most is Ön is hozzájárulhat ehhez az epikus projekthez egy automatizált Twitter bot segítségével, amelyet Ön táplál Málna... Olvass tovább .
A változót hívjuk aktív eldönteni, hogy rendszerünk aktív-e vagy sem. Definiáljunk néhány funkciót, amelyek ezt megtesszük számunkra:
def activeSetup (): globális aktív aktív = 0 nyomtatás ("jelenleg nem aktív") def activeState (): globális aktív, ha aktív == 1: aktív = 0 GPIO.output (7, GPIO.LOW) print ("Jelenleg nem aktív") elif active == 0: print ("aktiválás 10 másodperc alatt") x-re (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 ("Jelenleg Aktív ") egyébként: visszatérés.
Az első függvény itt létrehoz egy változót aktív, és 0-ra állítja. Az aktív állapot numerikus értékének megadása azt jelenti, hogy ha azt tervezi, hogy később skálázza a programot, hogy különböző aktív állapotokkal rendelkezzen, akkor ennek megfelelően számozhatja őket. Noha ez nem a legjobb Python programozás a világon, több mint elegendő ennek a projektnek.
A második funkció híváskor ellenőrzi, hogy a rendszer aktív (vagy aktív == 1). Ha igen, akkor a rendszert nem aktiválja (aktív == 0) kikapcsolja a LED-et, és a konzolra nyomtat. Ha nem, akkor 10 másodperces visszaszámlálást ad arra, hogy elhagyja azt a helyet, amelyben a LED villog, mielőtt világítaná azt, hogy a rendszer aktív.
Most meghatározhatunk egy funkciót, amely figyeli a nádmágnes kapcsolót:
def watchDoor (): globális játék játszik = hamis, miközben igaz: ha aktív == 1 és GPIO.input (15) == 1 és játszik == hamis: játszik = igaz pygame.mixer.music.play (), ha GPIO.input (13) == 1: nyomtatás ("Stop gomb megnyomása: Kilépés") pygame.mixer.music.stop () break, ha GPIO.input (11) == 1: activeState () time.sleep (0.5)
Készítünk egy újabb változót, az úgynevezett játszó - ezzel egyszerűen megállíthatja a programot, hogy megpróbálja újraindítani a lejátszást, amikor a kapcsoló kiold.
A while cikluson belül az első, ha a nyilatkozat elindítja a zenét (amiben még nincs, de nem kell aggódnunk, ez jön). Csak akkor hagyja elindítani a zenét, ha a rendszer aktív, a nádkapcsoló nyitva van, és még nem játszik le.
A második, ha az kijelentés a kijárat gombra vonatkozik. Ha ezt a gombot megnyomja, a zene leáll, és a program kilép.
A harmadik, ha az állítás a váltáshoz szól, a rendszer aktív-e vagy sem. Az time.sleep A funkció itt a több gomb leolvasásának megakadályozása, amikor megnyomják.
Itt az ideje, hogy felállítsuk a Pi jelzőtábláit.
GPIO.setmode (GPIO.BOARD) GPIO.setup (7, GPIO.OUT, kezdeti = GPIO.LOW) GPIO.setup (11, GPIO.IN) GPIO.setup (13, GPIO.IN) GPIO.setup (15, GPIO.IN)
Ha korábban már kísérletezte a Pi-vel, akkor ezt ismernie kell Önnek. Az kezdeti = GPIO.LOW A 7-es érintkezőben található argumentum alacsonyra állítja azt, amint az inicializálásra kerül.
Most felhívhatjuk azt a funkciót, amely a rendszert nem aktiválja a program indulásakor.
activeSetup ()
Music Maestro!
Ezen a ponton el kellene gondolkodnunk a lejátszandó zenétől. Választhat bármilyen kívánt zenei fájlt, de most kiválasztunk valamit, amely mindenki számára elérhető. Ha a YouTube-ot nézi, akkor valószínűleg már ismeri Kevin MacLeod zenéjét. Letöltheti egy fantasztikus dalát, amelyet hívott „Egyszemű maestro”. Ez a webhelyén található zenék nagy részével együtt a Creative Commons engedéllyel rendelkezik, és vannak sok jó ok Mi a Creative Commons és a nem kereskedelmi felhasználás?Mi a Creative Commons? Mit jelent a "nem kereskedelmi célú felhasználás"? Tudjon meg többet a Creative Commons licencekről és azok működéséről. Olvass tovább hogy felhasználja a tartalmat ezekkel a licencekkel a projektekhez.

Vissza a kódunkba, el kell indítanunk a Pygame keverőt és be kell töltenünk a dallamot.
pygame.mixer.init (44100, -16,21024) pygame.mixer.music.set_volume (1.0) name = "Egyszemű Maestro.mp3" pygame.mixer.music.load (név) print ("Betöltött sáv -" + str (név))
A blokk első sora a pygame keverő. A zárójelben szereplő utolsó érv a puffer, amely szabályozza a hang lejátszásának késleltetését. Ha később a zeneszám lejátszásakor zavaros lejátszást tapasztal, próbálja meg növelni ezt a számot 4096-ra. A beállítások olyanok, mint a Pi 3-on.
Ha letöltötte a zenefájlt egy másik könyvtárba, mint a door.py program, akkor a név változó meghatározásakor megadnia kell a teljes elérési utat a zárójelben.
Most már csak egy hurkot kell felállítania, amely arra vár, hogy a program aktívvá váljon, vagy kilépjen.
míg igaz: ha (GPIO.input (13) == 1): print ("Stop gomb megnyomása: Kilépés") pygame.mixer.music.stop () break if (GPIO.input (11) == 1): activeState () time.sleep (0.5) if (active == 1): watchDoor () break GPIO.cleanup ()
Míg a hurok a gombok bevitelére vár, és kilép, vagy ennek megfelelően az állapotot aktívvá változtatja. Ha az aktív állapot értéke 1, akkor a watchDoor A korábban definiált függvény felhívásra kerül, és az ajtó következő kinyitásakor a dallam lejátszódik. Mi is hívunk GPIO.cleanup () hogy visszaállítsuk a csapokat kilépéskor, ami általában jó gyakorlat a Raspberry Pi programozásához.
Mindent meg kell tennünk, hogy a projekt működésbe léphessen, itt van a teljes kód:
import RPi. GPIO mint GPIO. import pygame.mixer. import idő def activeSetup (): globális aktív aktív = 0 nyomtatás ("Jelenleg nem aktív") def activeState (): globális aktív, ha aktív == 1: aktív = 0 GPIO.output (7, GPIO.LOW) nyomtatás ("Jelenleg Nem Aktív ") elif aktív == 0: nyomtatás (" aktiválás 10 másodperc alatt ") x-re (0,10): GPIO.kimenet (7, GPIO.HIGH) time.sleep (0.5) GPIO.output (7, GPIO.LOW) time.sleep (0.5) aktív = 1 GPIO.output (7, GPIO.HIGH) nyomtatás ("Jelenleg aktív") egyébként: visszatér def watchDoor (): globális játék lejátszás = hamis, miközben igaz: ha aktív == 1 és GPIO.input (15) == 1 és lejátszás == hamis: játék = igaz pygame.mixer.music.play (), ha GPIO.input (13) == 1: nyomtatás ("Stop gomb megnyomása: Kilépés") pygame.mixer.music.stop () break, ha GPIO.input (11) == 1: activeState () time.sleep (0.5) GPIO.setmode (GPIO.BOARD) GPIO.setup (7, GPIO.OUT, kezdeti = 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 = "Egyszemű Maestro.mp3" pygame.mixer.music.load (név) print ("Betöltött műsorszám -" + str (név)), míg True: ha (GPIO.input (13) == 1): print ("Stop gomb megnyomása: Kilépés") pygame.mixer.music.stop () break, ha (GPIO.input (11) == 1): activeState () time.sleep (0,5) if (active == 1): watchDoor () break GPIO.cleanup ()
Ha ide görget, hogy azonnal megkapja a teljes kódot, ne feledje, hogy a működéshez még mindig le kell töltenie a zenét a Pi-ra.
Most már működnie kell az üdvözlő otthoni témának! Csatlakoztassa a nádkapcsolót az ajtóhoz, és próbálja ki. A kínos tánc opcionális, de ajánlott.
Ez a projekt lefedi az otthoni megfigyelés, a biztonság és az automatizálás sokféle formáját, és remélhetőleg szórakoztató is volt!
Most, hogy olyan messzire jöttél, miért állsz meg itt? Felvehet további zeneszámokat, és a program véletlenszerűen választhat egyet a listából. Te tudnál adj hozzá egy relét A GPIO használatának alapjai egy málna-pi-nHa bár az Arduino jó volt, csak várjon, amíg megkapja a kezét egy Raspberry Pi-n - ezek a dolgok csodálatosak. Amellett, hogy egy teljesen működőképes számítógép, nekik van egy ... Olvass tovább és más objektumok aktiválhatók a belépéskor. Ha van otthoni zenei rendszere, akkor miért nem lenne minden szobához téma dal?

Meg fogja tervezni a saját személyes üdvözlő otthoni üzenetét? Ötletes voltál-e nádkapcsolókkal otthonában más módon? Ha igen, akkor az alábbi megjegyzés szakaszban hagyjon megjegyzést arról, hogy mit tervez, vagy már megtett!
Ian Buckley egy szabadúszó újságíró, zenész, előadóművész és videó producer, Berlinben, Németországban. Amikor még nem ír vagy színpadon, akkor botrányozza a barkácsolás elektronikáját vagy kódját, abban a reményben, hogy őrült tudós lesz.