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
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
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:
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
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:
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
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:
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
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.