1Aug

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

A Raspberry Pi egy kellemes kompakt platformot kínál, amely mindenféle projektorhoz - pl. Időjárásjelzéshez, új e-mailekhez stb. Csatlakoztatható. Olvasson tovább, mikor megmutatjuk, hogyan csatlakoztasson egy LED modulot a Pi-hoz, és hozzon létre néhány alapvetőértesítéseket.

Miért akarom ezt tenni?

Mert szórakoztató.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 egy tökéletes eszköz a játékhoz, az elektronika kísérletezéséhez és a programozáshoz. Az senki sem igényel környezeti esőjelzőt a konyhában, de az egyik épület jó szórakozás és remek emlékeztető, hogy esernyőt hozhat magával potenciálisan viharos napokon.

Mit kell?

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 meg akarja csinálni ezt a projektet egy költségvetésen, nyugodtan elmondhatjuk, hogy a legújabb Raspberry Pi modell jelentős túlterhelt a munkához, és arra ösztönözzük Önt, hogy fújja le a port egy régi Raspberry Pi-rőllerakott a szekrényben, vagy felvenni egy olcsó használt egy eBay vagy hasonló.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.

A funkcionális Pi egységnek az Raspbian telepítésén túlmenően 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, minden Raspberry Pi modelleknél).
  • 1 Clear Raspberry Pi Case kompatibilis az Ön Pi modelljével, mint ez a Raspberry Pi 1 Model B tok.

Megjegyzés: Az átlátszó / matt Pi tok teljesen opcionális, de ha átlátszó burkolatot használ, akkor a LED-jelző 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 Amíg biztos lehet benne, hogy egy teljesen-karcolásmentes LED-jelzőt( és egy keresőmotoros lekérdezés sok embert felmutat, akik így tettek) a Piborg szervezet ilyen kompakt és olcsó LED-modult, a LedBorgot, hogy nem tudtunk ellenállni, mint a Raspberry Pi LED mutató projekt alapja.

A modul beszerelése egy pillanat, mivel úgy tervezték, hogy közvetlenül a Pi GPIO csapjaira illeszkedjen. Először kapcsolja ki Pi-t és nyissa meg az ügyet.

A telepítés legfontosabb része, hogy a modult úgy irányítsa, hogy a LedBorg ikon legközelebb legyen a Raspberry Pi kártya RCA moduljához( és így a LedBorg éle a Pi kártya széleivel párhuzamosana LedBorg túlnyúló része, amely a Pi lapon 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 szalag réteggel fedeztük a miénk. 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 adott esetben 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.

Az LedBorg szoftver telepítése

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 parancssorból történő eléréséhez.

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

Ha a Raspberry Pi fedélzetén nincsenek szerelési lyukak, akkor az 1. felülvizsgálat. Ha a Raspberry Pi szerelési lyukakkal rendelkezik( az USB-portok, valamint a tápellátás és a HDMI port között helyezkedik el), akkor ez a 2. változat. A kernelt is ismernie kella Rasbian telepítésének verzióját. Nyissa meg a terminált, és írja be a következő parancsot:

uname -r

Ha megvan a Revízió száma és a rendszermag száma, akkor ide látogassa meg a Csomagok részt itt, 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 az összes jószágot telepítsük, ki kell nyitnunk a Pi terminálját.majd adja meg a következő parancsokat a LedBorg csomag telepítéséhez.

Megjegyzés: A harmadik parancsban az URL-t kell kicserélned a fórum / kernel-kombináció csomagjának URL-jével.

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

Ezen a ponton most már rendelkezik a GUI wrapperrel a LedBorg illesztőprogramokhoz és a meghajtóprogramok telepítéséhez. Az Raspbian asztalon megjelenik egy ikon a grafikus felhasználói felülethez:

Folytasd, és kattints a LedBorg ikonnal a GUI-csomagolás elindításához. A színválasztó felületét így kezelheti:

Most a tökéletes idő, hogy megbizonyosodjon arról, hogy a modul működőképes. 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 demo módra:

A demo módban különböző színekben különböző színeket lehet átkapcsolni, ellenőrizni a magas / alacsony kimenetet, és egyébként a lépéseket.

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álata a színek kiválasztásához a színeket a terminálról az RGB értékek segítségével is kiválaszthatja. Nyissa meg a terminált és írja be a következő parancsot a LED kikapcsolásához:

echo "000" & gt;/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íborvörös színt.

Most, hogy tudjuk, hogyan kell manuálisan manipulálni a LED-et, nézzük meg a szkriptek használatával, hogy a LED -ünket egyszerű fénytől a tényleges indikátor felé fordítsuk.

A LedBorg mint esőkijelző beállítása

A bemutató ezen részeként több dolgot is össze lehet fésülni annak érdekében, hogy LedBorg LED-modulunkat helyünk időjárás-előrejelzésének megfelelően esőjelzővé alakítsuk. 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 megkapta az API kulcsot, keresse fel a Weather Underground( Meteorológiai időjárás) lehetőséget, és keresse meg a megfigyelni kívánt várost. Esetünkben megfigyeljük San Fransisco, CA.San Fransisco előrejelző oldala URL-je:

http: //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 a következő:

http: //api.wunderground.com/api/ AZ API KEY /forecast/q/STATE/ CITY.json

Az egyes államokbeli városok előrejelzését az API-kulcs, a kétbetűs állami kód és a város nevének megadása az IdőjárásFöld alatti keresési eredmények.

Az API-kulcs és az állam / város beillesztése után az API-kulcs segítségével szerkesztheti az alábbi Python-parancsfájlt, ha létrehoz egy új szöveges dokumentumot a Pi használatával a Leafpad használatával, és beilleszti a következő kódot:

urllib2 import urlopen
import json

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

# A következő egy hibakeresési érték.
# Szerkessze ki a hashot és változtassa meg az
# egész számot 0-100-ra a
# teszteléséhez.

# pop = 0

print 'A csapadék mennyisége a következő:{ }.' Formátum( pop)

# Az alapértelmezett beállítás a
# LED bekapcsolása az esetleges 20% feletti eső esetén. A
# értéket beállíthatja a "ha pop & gt; 20:" értékre.

ha pop & gt;20:
LedBorg = open( '/dev/ ledborg', 'w')
LedBorg.write( '002')
del LedBorg
print( 'Rain!')
más:
LedBorg =w ')
LedBorg.write( ' 000 ')
del LedBorg
print( ' Nincs eső! ')

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

python wunderground.py

Ha helyesen írta be API-kulcsát és az állam / városi kódjait, akkor visszavágnia kell egy olyan választ, amely úgy néz ki, mint:

Ha csapadék várható az Ön területérea LedBorg kimenetének ilyennek kell lennie:

Most egy esős napon várni kell a forgatókönyv megfelelő tesztelésére. 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 60hogy előrejelzésünk visszatért. Ne felejtsd el megváltoztatni a vonalat a "pop = pop" -ra, ha elkészültél.

Az utolsó lépés az, hogy beállít egy cron feladatot, hogy automatikusan futtassa a forgatókönyvet, amelyet éppen 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 mint Gmail indikátor beállítása

Ki nem tetszik a dopaminjavításnak, amely új e-maileket 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.

Kevésbé kell kibővíteni a Python telepítésünk funkcióit a FeedParser, egy Python RSS / Atom feed olvasó eszköz telepítésével. Nyissa meg a terminált, és adja meg a következő parancsot:

sudo easy_install feedparser

A telepítés befejezése után 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

# Adja meg Gmail-felhasználónevét
# és jelszó.Ne tegye bele
# az @
# @ gmail.com részébe a felhasználónevet.

username = "felhasználónév"
password = "jelszó"

mail = int( feedparser.parse( "https: //" + felhasználónév + ":" + jelszó + "@ mail.google.com /gmail/feed/ atom") ["feed"] [" fullcount "])

# A következő hibakeresési érték.
# Szerkessze ki a hash-t és változtassa meg az
# értéket 0-ra vagy 1-re az
# teszteléséhez.

# mail = 0

ha mail & gt;0:
LedBorg = open( '/dev/ ledborg', 'w')
LedBorg.write( '020')
del LedBorg
print( 'Mail!')
más:
LedBorg =w ')
LedBorg.write( ' 000 ')
del LedBorg
nyomtatás( ' No mail! ')

Mentse el 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 így válaszol:

Ha Gmail-fiókjában levele van a LedBorgfog kinézni:

Mint az eső ellenőrző szkript, tartalmaztunk 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 megjegyzéssávot, é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.

Ugrás a bemutató következő részébe, 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.

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" & gt;/dev/ ledborg

Amíg 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 jelenti, 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 meg akarja állítani az esõ szkriptet, írja be a következõ sort a cron táblába:

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

Nyomja meg a CTRL + X billentyût a kilépéshez;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őtartam egy szkript számára, amely ellenőrzi az előrejelzett esõt - akkor is azt állíthatnánk, hogy egy kicsit túl agresszív - de ha megpróbálod megtartani az e-mailedet, akkor egy kicsit túl hosszú az átmeneti idõbejelentés. Ha beállítja a Gmail értesítési szkript ütemtervét, adja meg a következő sort a cron táblában:

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

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

Ez mind olyan! 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 a nagy erőforrásoknak, amelyeket eddig dolgoztam 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. Az /r/ LearnPython munkatársai segítettek a Weather Underground API-kimenetén, és tanulmányoztam, hogy miként Michael a Mitch Tech-nél dolgozott, foglalkozott a Gmail Atom hírcsatornával, amely a LedBorg számára könnyedén elemezte, és a Python tanulási modulok tanulmányozása a Code Academy-en egy nagyszerűhogy vegye fel az olyan alapszintet és struktúrát, amelyet korábban soha nem használtam.