Építsen egy LED jelzőt egy Raspberry Pi-vel (e-mail, időjárás vagy bármi)

Tartalomjegyzék:

Építsen egy LED jelzőt egy Raspberry Pi-vel (e-mail, időjárás vagy bármi)
Építsen egy LED jelzőt egy Raspberry Pi-vel (e-mail, időjárás vagy bármi)

Videó: Építsen egy LED jelzőt egy Raspberry Pi-vel (e-mail, időjárás vagy bármi)

Videó: Építsen egy LED jelzőt egy Raspberry Pi-vel (e-mail, időjárás vagy bármi)
Videó: How To Remove All Metro Apps via PowerShell in Windows 8 with Three Commands - YouTube 2024, Március
Anonim
A Raspberry Pi egy kellemes kompakt platformot kínál, amely mindenféle projekthez kapcsolja a jelzőfényt - időjárás-bejelentést, új e-maileket stb. Olvassa el, miközben megmutatjuk Önnek, hogyan kell LED-modulot csatlakoztatni a Pi-hoz, és hozzon létre néhány alapvető értesítést.
A Raspberry Pi egy kellemes kompakt platformot kínál, amely mindenféle projekthez kapcsolja a jelzőfényt - időjárás-bejelentést, új e-maileket stb. Olvassa el, miközben megmutatjuk Önnek, hogyan kell LED-modulot csatlakoztatni a Pi-hoz, és hozzon létre néhány alapvető értesítést.

Miért akarom ezt tenni?

Mert vicces. Ellentétben számos oktatóprogramunkkal, ahol egy kis felszólalást tartalmazunk a csúcson, amely pontosan azt mutatja, hogy milyen előnyökkel jár majd a projekt, a szóbeszéd elég rövid ebben az esetben, mert az előny csak szórakozás.

A Raspberry Pi tökéletes eszköz a játékhoz, az elektronika kísérletezéséhez és a programozáshoz. Senki igények például a környezeti esőjelző a konyhában, de az épület egy szórakoztató gyakorlat és remek emlékeztető arra, hogy esernyőt hozhat magával potenciálisan viharos napokon.

Mire van szükségem?

A tutorial mellett követni kell néhány dolgot. Először azt feltételezzük, hogy már követtétek korábbi bemutatónkat: A Raspberry Pi használatának megismeréséről szóló HTG útmutató (és ennek megfelelően a Rasbian telepítésének alapjait a Raspberry Pi készülékére telepítettük).

Ha ezt a projektet költségvetésre tervezzük, nyugodtan elmondhatjuk, hogy a legújabb Raspberry Pi modell jelentős túlterheltséget jelent a munkához, és arra ösztönözzük Önt, hogy fújja le a porot egy régi Raspberry Pi-ről, amelyet eloltott a szekrényben vagy vegyen fel egy olcsó, használt eBay-t vagy hasonlót. Költségvetés A hosszútávú Raspberry Pi 1 Modell A vagy a B modell a 10-15 dolláros eBay-en elragadtatva tökéletesen illeszkedik ehhez a projekthez egy vadonatúj $ 35-os generációs Pi megvásárlásánál.

Amellett, hogy a funkcionális Pi egység a Raspbian telepítve van rá, szüksége lesz a következő dolgokra:

  • 1 LedBorg modul (~ 5,00 USD, 4 dolláros szállítási költség az Egyesült Királyságból az Egyesült Államokba, együttműködik az összes Raspberry Pi modellel).
  • 1 Clear Raspberry Pi Case kompatibilis az Ön Pi modelljével, mint ez a Raspberry Pi 1 Model B tok.

Jegyzet: A tiszta / matt Pi tok teljesen opcionális, de ha jelenleg egy átlátszatlan tokot használ, akkor a LED kijelzője rejtve marad. Meg kell vágnia egy lyukat a tokjába, hogy kihagyja a fényt, vagy használjon GPIO hosszabbító kábelt egy kitörési készlettel - ilyen például az Adafruit Industries -, hogy összekapcsolja a LedBorgot a Raspberry Pi-el. A Breakout kábel használata során körülbelül 8 dollárt ad a projekt költségére, így több lehetőséget kínál a végtermék testreszabására, mivel könnyebben elhelyezheti a LED-et a dolgok belsejében vagy valami olyasmibe, amelyet világítani szeretne.

A LedBorg telepítése

Bár biztosan építeni egy teljesen-a-karcolás LED jelzőt (és egy keresőmotoros lekérdezés sok embert fog felmutatni, akik így tettek) a Piborg szervezet ilyen kompakt és olcsó LED-modult gyárt, a LedBorgot, Nem áll ellenünk, hogy a Raspberry Pi LED mutató projektünk alapjául szolgál.
Bár biztosan építeni egy teljesen-a-karcolás LED jelzőt (és egy keresőmotoros lekérdezés sok embert fog felmutatni, akik így tettek) a Piborg szervezet ilyen kompakt és olcsó LED-modult gyárt, a LedBorgot, Nem áll ellenünk, hogy a Raspberry Pi LED mutató projektünk alapjául szolgál.

A modul telepítése pattanás, mivel úgy tervezték, hogy közvetlenül a Pi körüli GPIO érintkezőkre illeszkedjen. Először kapcsolja ki Pi-t és nyissa meg az ügyet.

A telepítési folyamat legfontosabb része, hogy a modult úgy orientálja, hogy a LedBorg ikon legközelebb álljon a Raspberry Pi kártya RCA moduljához (és így a LedBorg éle a Pi kártya peremeivel párhuzamos, a LedBorg egy része, amely a Pi kártyán lóg, és nem a szélén). Lásd a fenti fotót.

Miközben a Pi kártya nyitva van, most kiváló alkalom lenne a fedélzeti LED kijelzők (az USB portok mellett) fedezésére, különösen akkor, ha tiszta ügyet használsz. Nem akarod, hogy zavaros legyen, ha elolvassa LedBorg jelzőjét, mert a hálózati és a hálózati jelzőfények világosak.

Fehér elektromos szalagrétegünket fedeztük fel. Ez annyira elhomályosította őket, hogy még mindig hivatkozhassuk őket, de annyira halványabbak voltak, mint a LedBorg, ami már nem zavarja.

Miután telepítette a LedBorgot, és opcionálisan lefedte a Pi LED-es jelzőit elektromos szalaggal, itt az ideje, hogy lezárja az ügyet. Indítsa el a Pi-ot, mielőtt átmegy a tutorial következő fázisára.

A LedBorg szoftver telepítése

Image
Image

A PiBorg egy nagyszerű szoftvercsomagot kínál a LedBorg számára, amely mind a GUI-vezérlőt, mind a meghajtókat tartalmazza a LedBorg parancssori eléréséhez.

Mielőtt elkezdenénk, meg kell győződned róla, hogy megragadtad a megfelelő csomagot a Rasbian verziójához és a Raspberry Pi kártyájának felülvizsgálatához.

Ha a Raspberry Pi lapján nincsenek szerelési lyukak, akkor az 1. felülvizsgálat. Ha a Raspberry Pi szerelési lyukakkal rendelkezik (az USB-portok és a tápellátás és a HDMI port között helyezkedik el), akkor ez a 2. változat. Önnek szintén tudnia kell a rendszermag verzióját a Rasbian telepítéséhez. Nyissa meg a terminált és írja be a következő parancsot, hogy ellenőrizze:

uname -r

Miután megkapta a Revízió számát és a rendszermag számát, itt keresse fel a Csomagok részt, hogy megragadja a csomaghoz tartozó linket. Esetünkben a 3.6.11 rendszermaggal egy Revision 1 kártyát használunk, így megragadnánk a raspbian-2013-02-09-rev1.zip fájlt.

Annak érdekében, hogy telepítsünk minden jót, meg kell nyitnunk a Pi terminálját. majd adja meg a következő parancsokat a LedBorg csomag telepítéséhez.

Jegyzet: A harmadik parancsban az URL-t az asztal / rendszermag kombinációjának csomagjának URL-jével kell helyettesíteni.

mkdir ~/ledborg-setup cd ~/ledborg-setup wget -O setup.zip https://www.piborg.org/downloads/ledborg/raspbian-2013-02-09-rev1.zip unzip setup.zip chmod +x install.sh./install.sh

Ezen a ponton most megvan a GUI-csomagolója a LedBorg-illesztőprogramoknak és a meghajtóprogramoknak. Az Raspbian asztalon megjelenik egy ikon a grafikus felhasználói felülethez:

Menj tovább, és kattints a LedBorg ikonnal a GUI wrapper indításához. Akkor fog kezelni a színválasztó felülethez, mint például:
Menj tovább, és kattints a LedBorg ikonnal a GUI wrapper indításához. Akkor fog kezelni a színválasztó felülethez, mint például:
Most van a tökéletes idő annak biztosítására, hogy a modul működőképes legyen. Válassz bármilyen színt, kivéve a fekete színt, hogy kipróbáld. Néhány szín kiválasztásával teszteljük:
Most van a tökéletes idő annak biztosítására, hogy a modul működőképes legyen. Válassz bármilyen színt, kivéve a fekete színt, hogy kipróbáld. Néhány szín kiválasztásával teszteljük:
Jól néz ki! Világos, és a projekthez megrendelt ügyeletes műanyag anyag mérsékelt diffúziót kínál. Ha tovább szeretne játszani a LED modulral, mielőtt továbblépne, kattintson a Demó módra:
Jól néz ki! Világos, és a projekthez megrendelt ügyeletes műanyag anyag mérsékelt diffúziót kínál. Ha tovább szeretne játszani a LED modulral, mielőtt továbblépne, kattintson a Demó módra:
A demo módban különböző színekben különböző színekben lehet átkapcsolni, ellenőrizni a magas / alacsony kimenetet, és egyébként a lépcsőn keresztül elhelyezni a LED modult.
A demo módban különböző színekben különböző színekben lehet átkapcsolni, ellenőrizni a magas / alacsony kimenetet, és egyébként a lépcsőn keresztül elhelyezni a LED modult.

Itt van a Demo Mode szakaszban, hogy a LedBorgot is a sok mutató közül az elsőbbé teheti. A színek szekcióban a CPU kiválasztásával a LED kezd zöldre váltani sárgától a pirosig, hogy jelezze a Raspberry Pi ARM processzorának terhelését. Azt javasoljuk, hogy a sebességet lassan változtassátok, miközben éppen rajta van. Gyorsan frissíti a LED-et túl gyorsan, és a CPU-jelzőt figyelmen kívül hagyja, ahelyett, hogy hasznos lenne.

A GUI interfész használatával a színek kiválasztásához színeket is kiválaszthat a terminálról az RGB értékek használatával. Nyissa meg a terminált és írja be a következő parancsot a LED kikapcsolásához:

echo '000' > /dev/ledborg

Ahogy a LedBorg kezeli az RGB értékeket, 0 azt jelenti, hogy a csatorna ki van kapcsolva, 1 azt jelenti, hogy a csatorna félerő, a 2 pedig azt jelenti, hogy a csatorna teljes erő. Így például a 001 a 0% -os Vörös csatornát, a Zöld csatorna 0% -át és a Kék csatorna 50% -os hatalommal állna.

Módosítsa az értéket 002-re, és a LED-kimenet kék marad, de világosabbá válik, mert a kék csatorna most 100% -os kimenettel rendelkezik. Az értéket 202-re, a pirosra és a kékre pedig teljes erővel kombinálva hozza létre a bíbor színt.

Most, hogy tudjuk manipulálni a LED-et manuálisan, nézzük meg a szkriptek használatával, hogy a LED-et egyszerű fénytől tényleges jelzővé alakítsuk.

A LedBorg mint eső indikátor beállítása

A bemutató ezen részében több dolgot is össze fogunk fésülni annak érdekében, hogy a LedBorg LED modulja esőjelző legyen a helyünkre vonatkozó időjárási előrejelzés alapján. Egy Python scriptet használunk, hogy hívjunk egy időjárási API-t, amely viszont felolvassa a nap eső esélyét, majd kapcsolja ki a LED-et off-tól világos kékig az előrejelzett eső jelzésére.
A bemutató ezen részében több dolgot is össze fogunk fésülni annak érdekében, hogy a LedBorg LED modulja esőjelző legyen a helyünkre vonatkozó időjárási előrejelzés alapján. Egy Python scriptet használunk, hogy hívjunk egy időjárási API-t, amely viszont felolvassa a nap eső esélyét, majd kapcsolja ki a LED-et off-tól világos kékig az előrejelzett eső jelzésére.

Először is meg kell kapnunk egy API hozzáférési kulcsot a Weather Underground számára. A személyes használatra és a kis fejlesztési projektekre az API ingyenes. Látogasson el itt az Időjárás API feliratkozási oldalára, és iratkozzon fel API-kulcsra.

Miután megvan az API-kulcsod, keresse fel a Weather Underground (Meteorológiai időjárás) lehetőséget, és keresse meg a figyelni kívánt városot. Esetünkben megfigyeljük San Fransisco, CA. San Fransisco előrejelzési oldala URL-je:

https://www.wunderground.com/US/CA/San_Francisco.html

A célunk fontos része az URL utolsó része: /CA/San_Francisco.html. Ezt az API-eszköz előrejelzési URL-jének szerkesztéséhez használjuk. Az alap URL:

https://api.wunderground.com/api/YOUR API KEY/forecast/q/STATE/CITY.json

Az Egyesült Államok városainak előrejelzését az API-kulcs, a kétbetűs állami kód és a város nevének beírása az Ön Weather Underground keresési eredményeiből levont URL-címről generálhatja.

Miután beültette az API-kulcsot és az állam / várost beillesztett API-URL-t, akkor a következő Python-szkriptet szerkesztheti új szöveges dokumentum létrehozásával a Pi használatával a Leafpad használatával és a következő kód beillesztésével:

from urllib2 import urlopen import json

req = urlopen('https://api.wunderground.com/api/YOUR API KEY/forecast/q/STATE/CITY.json') parsed_json = json.load(req) pop = int(parsed_json['forecast']['txt_forecast']['forecastday'][0]['pop'])

# A következő egy hibakeresési érték. # Szerkessze ki a hash és a változás # egész számot 0-100-ig tesztelni # a LED válasz.

# pop = 0

print 'Current chance of precipitation is {}.'.format(pop)

# The default setting is to turn on the LED # for any chance of rain above 20%. You can adjust # the value in 'if pop > 20:' as you wish.

if pop > 20: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('002') del LedBorg print ('Rain!') else: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('000') del LedBorg print ('No rain!')

Mentse a fájlt wunderground.py fájlként a / home / pi / könyvtárban. Nyissa meg a terminált, és írja be a következő parancsot:

python wunderground.py

Ha az API-kulcsot és az állam- / városi kódokat helyesen adta meg, akkor visszavágnia kell egy olyan választ, amely úgy néz ki, mint:

Ha a csapadék előrejelzése az Ön területére, akkor a LedBorg kimenetének így kell kinéznie:
Ha a csapadék előrejelzése az Ön területére, akkor a LedBorg kimenetének így kell kinéznie:
Most várni egy esős napon, hogy megfelelően teszteljék a szkriptet lenne unalmas. Ha ma nincs eső eső az Ön területén, és szeretné látni a LED világítását, akkor módosítsa a wunderground.py szkriptet, és cserélje ki a "pop = pop" passthrough értéket a 13. sorban a 20-nál nagyobb értékre, például a 60 hogy előrejelzésünk visszatért. Ne felejtsd el megváltoztatni a sort "pop = pop" -ra, ha kész.
Most várni egy esős napon, hogy megfelelően teszteljék a szkriptet lenne unalmas. Ha ma nincs eső eső az Ön területén, és szeretné látni a LED világítását, akkor módosítsa a wunderground.py szkriptet, és cserélje ki a "pop = pop" passthrough értéket a 13. sorban a 20-nál nagyobb értékre, például a 60 hogy előrejelzésünk visszatért. Ne felejtsd el megváltoztatni a sort "pop = pop" -ra, ha kész.

A végső lépés az, hogy beállít egy cron feladatot, hogy automatikusan futtassa a forgatókönyvet, amelyet épp most mentettünk rendszeres időközönként, hogy a LED-jelző folyamatos legyen. Mivel ez a feladat mind ehhez a szkripthez, mind az ezt követő e-mail indikátorhoz szükséges, fedezni fogjuk a cron feladat létrehozását, miután megmutattuk Önnek, hogyan kell beállítani a másik szkriptet.

A LedBorg beállítása Gmail mutatóként

Ki nem tetszik a dopaminjavításnak, amely új e-mailt lát a bejövő postafiókban? A bemutató ezen részében megmutatjuk Önnek, hogyan kell a LedBorgot új Gmail-mutatóként használni. Ugyanúgy, mint az utóbbi időben, egy külső bemenetet (ebben az esetben egy Atom hírcsatornát egy API helyett) és egy egyszerű forgatókönyvet szeretnénk összekapcsolni a LED-es vezetésével.
Ki nem tetszik a dopaminjavításnak, amely új e-mailt lát a bejövő postafiókban? A bemutató ezen részében megmutatjuk Önnek, hogyan kell a LedBorgot új Gmail-mutatóként használni. Ugyanúgy, mint az utóbbi időben, egy külső bemenetet (ebben az esetben egy Atom hírcsatornát egy API helyett) és egy egyszerű forgatókönyvet szeretnénk összekapcsolni a LED-es vezetésével.

A Python telepítésének funkcionalitását kicsit bővíteni kell a FeedParser, egy Python RSS / Atom feed olvasó eszköz telepítésével. Nyissa meg a terminált és írja be a következő parancsot:

sudo easy_install feedparser

Miután a telepítés befejeződött, beállíthatjuk, hogy működjön a Gmail ellenőrző szkript létrehozásával. Ismét a Leafpad használatával illessze be a következő szöveget a szerkesztőbe. Módosítsa a felhasználónevet és a jelszót, hogy megegyezzen a ellenőrizni kívánt Gmail-fiók felhasználónevével és jelszavával.

import feedparser

# Enter your Gmail username # and password. Don't include # the @gmail.com portion of # your username.

username = 'username' password = 'password'

mail = int(feedparser.parse('https://' + username + ':' + password +'@mail.google.com/gmail/feed/atom')['feed']['fullcount'])

# A következő egy hibakeresési érték. # Szerkessze ki a hash és a változás # az egész szám 0-ra vagy 1-re a teszteléshez # a LED válasz.

# mail = 0

if mail > 0: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('020') del LedBorg print ('Mail!') else: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('000') del LedBorg print ('No mail!')

Mentse a szkriptet gmailcheck.py. Nyissa meg a terminált, és írja be a következő parancsot:

python gmailcheck.py

Ha e-mailje van a Gmail postafiókjában, akkor a LED zöld színű lesz, és ilyen választ kap:

Ha postafiókja van a Gmail postafiókjában, a LedBorg így fog kinézni:
Ha postafiókja van a Gmail postafiókjában, a LedBorg így fog kinézni:
Az eső ellenőrző szkripthez hasonlóan tartalmazott egy hibakeresési értéket. Ha nincs új e-mailje, elküldheted magadnak egy e-mailt, amellyel a beérkező üzenetek számát 1-re emelheted, vagy szerkesztheted a comment hash-t, és módosíthatod a hibakeresési sort "mail = 1" -re a szkript teszteléséhez. Ne feledje, hogy visszaállítja a vonalat, ha befejezte a tesztelést.
Az eső ellenőrző szkripthez hasonlóan tartalmazott egy hibakeresési értéket. Ha nincs új e-mailje, elküldheted magadnak egy e-mailt, amellyel a beérkező üzenetek számát 1-re emelheted, vagy szerkesztheted a comment hash-t, és módosíthatod a hibakeresési sort "mail = 1" -re a szkript teszteléséhez. Ne feledje, hogy visszaállítja a vonalat, ha befejezte a tesztelést.

Lépjen be a bemutató következő szakaszába, hogy beállíthatja a Gmail szkript futásának ütemezését.

Cron munka beállítása a parancsfájl futtatásához

Most, hogy két szkriptet kell játszanunk, létre kell hoznunk egy cron feladatot, hogy futtassuk őket a nap folyamán, hogy a LED-jelző folyamatos legyen.
Most, hogy két szkriptet kell játszanunk, létre kell hoznunk egy cron feladatot, hogy futtassuk őket a nap folyamán, hogy a LED-jelző folyamatos legyen.

Az első dolog, amit szeretnénk tenni, hogy kikapcsoljuk a LED-et, ha jelenleg a korábbi kísérleteinkből származik. A terminál típusán:

echo “000” > /dev/ledborg

Bár még mindig a parancssorban van, megnyithatja a cron szerkesztőt. Ha korábban soha nem állított be egy cron feladatot, akkor javasoljuk, hogy nézze meg az útmutató használatát itt. Ez azt mondta, hogy átsétálunk az alapvető menetrend felállításával.

A terminál típusán:

sudo crontab –e

Ez megnyitja az Raspbian cron táblát a Nano szövegszerkesztőben. A nyílbillentyűkkel görgessen le a legalsó részre. Itt fogjuk beállítani az ismétlődő cron feladatot Python szkriptjeinkhez.

Ha be akarja állítani az esős szkriptet, írja be a következő sort a cron táblába:

*/5 * * * * python /home/pi/wunderground.py

A kilépéshez nyomja meg a CTRL + X billentyűkombinációt. Ha igen, mentse és felülírja a meglévő cron táblát. A cron táblában megadott érték "* / 5 * * * *" állítja be a szkriptet minden 5 percben, örökre.

Minden 5 perc egy finom idő egy script számára, amely ellenőrzi az előrejelzett esőt - akkor is azt állíthatod, hogy egy kicsit túl agresszív - de ha megpróbálod megtartani az e-mailedet, akkor egy kicsit túl hosszú az értesítés. Ha beállítja a Gmail értesítési szkript ütemtervét, írja be a következő sort a cron táblába:

*/1 * * * * python /home/pi/wunderground.py

Ez a bejegyzés minden percben futtatja a gmailcheck.py szkriptet egy sokkal gyorsabb frissítési értesítéshez.

Mindez van rajta! Kipróbálhatja a saját Python szkriptjeit, ha eltávolítja az if / else kimutatásait a miénkből, és kipróbálhatja őket újfajta változókkal. Ha talál egy forrásforrást az adatokhoz, akkor a Python script-tőzsdei átlagaiban lévő változóvá teheti, a pollen számít, a Twitter megemlíti, ha van egy API, akkor környezeti LED-jelzővé válhat.

Végül szeretnék köszönetet mondani mindazoknak a nagy erőforrásoknak, amelyeket eddig dolgoztam ezen a projekten. Ez egy kicsit több mint egy évtizede, mivel aktívan írták a programokat, és néhány kopogtatásra volt szükség, hogy kiszabaduljon a por és a rozsda. A / r / LearnPython munkatársai segítettek a Weather Underground API-kimenetén, és megtudtam, hogy miként Michael a Mitch Tech-nél dolgozott, foglalkozott a Gmail Atom hírcsatornával, amely a LedBorg számára könnyű volt, és a Python tanulási modulok tanulmányozása volt a Code Academy-ben. nagyszerű módja annak a nyelvnek az alapszintaxisának és struktúrájának felvetésére, amelyet soha nem használtam.

Ajánlott: