1Aug
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.