Homepage » hogyan kell » LED-es indikátor építése Raspberry Pi-val (e-mail, időjárás vagy bármi más)

    LED-es indikátor építése Raspberry Pi-val (e-mail, időjárás vagy bármi más)

    A Raspberry Pi egy szép, kompakt platform, amely egy jelzőfényt csatol mindenféle projekt-időjárási értesítéshez, új e-mailekhez, stb. Olvassa el, ahogy megmutatjuk, hogyan csatlakoztasson egy LED-modult a Pi-hez, és hozzon létre néhány alapvető értesítést.

    Miért akarom ezt tenni?

    Mert vicces. Ellentétben sok olyan oktatómunkainkkal, ahol a tetején egy kis blört is felveszünk, amely pontosan leírja, hogy milyen előnyöket fog kapni a projektből, ebben az esetben a blurb nagyon rövid, mert az előny egyszerűen szórakozás.

    A Raspberry Pi tökéletes eszköz az elektronikával való kísérletezéshez és a programozás megismeréséhez. Senki igények például a konyhában egy környezeti esőjelző, de az egyik szórakoztató edzés és egy nagy emlékeztető, hogy esernyőjét potenciálisan viharos napokon hozza magával.

    Mire van szükségem?

    Ahhoz, hogy kövessük a bemutatót, néhány dologra lesz szükséged. Először azt feltételezzük, hogy már követettük az előző bemutatónkat: A HTG útmutató a Kezdő lépésekhez a Raspberry Pi-val (és így van egy alapja a Rasbian telepítéséhez a Raspberry Pi-hez).

    Ha azt szeretné, hogy ezt a projektet költségvetésen végezze el, akkor biztosan elmondhatjuk, hogy a legújabb Raspberry Pi modell jelentősen felülbírálja a munkát, és bátorítanánk Önt arra, hogy fújja le a port egy régi Raspberry Pi-től. a szekrényben, vagy vegyen fel egy olcsó, egyszeri eBay-t vagy hasonlót. Költségvetés bölcsen a Raspberry Pi 1-es vagy B-modellje, az A vagy B modell 10-15 dollárért az eBay-ből kifogott..

    Amellett, hogy funkcionális Pi egységet telepítenek, a Raspbian telepítve van a következő dolgokra:

    • 1 LedBorg modul (~ 5,00 $ 4 dollárral az Egyesült Királyságból az Egyesült Államokba, az összes Raspberry Pi modellel dolgozik).
    • 1 Tiszta Raspberry Pi tok, amely kompatibilis az Ön Pi modelljével, mint ez a Raspberry Pi 1 B modell.

    Jegyzet: A tiszta / homályos Pi eset teljesen opcionális, de ha jelenleg átlátszatlan esetet használ, akkor a LED-es kijelzője elrejtve marad. Meg kell vágnia egy lyukat az ügyben, hogy hagyja ki a fényt, vagy használjon egy GPIO hosszabbító kábelt, amely az Adafruit Industries-től egy kitörési készlethez hasonló, hogy összekapcsolja a LedBorgot a Raspberry Pi-hoz. Miközben a breakout kábelt körülbelül 8 dollárral növeli a projekt költségére, az nagyobb lehetőséget kínál a végtermék testreszabására, mivel könnyebben helyezheti el a LED-et a dolgokba, vagy valamit, amit meg akar világítani.

    A LedBorg telepítése

    Miközben biztosan felépíthetné magát egy teljesen semmiből álló LED-es jelzőfényről (és egy keresőmotor lekérdezése rengeteg embert fog csinálni), a Piborg-szervezet olyan kompakt és olcsó LED-modult állít elő, amit a LedBorg nem tudott. t ellenezzük, hogy Raspberry Pi LED-es indikátor projektünk alapját képezzük.

    A modul telepítése egy pillanat, mert úgy tervezték, hogy közvetlenül illeszkedjen a Pi-n lévő GPIO csapokhoz. Először kapcsolja ki a Pi-t és nyissa meg az ügyet.

    A telepítési folyamat legfontosabb része az, hogy a modult úgy irányítsa, hogy a LedBorg ikon a Raspberry Pi táblán a legközelebb legyen az RCA modulhoz (és így a LedBorg széle egybeesik a Pi kártya élével a túlnyúlásnál). a LedBorg része, amely a Pi tábla fölött lóg, és nem a szélétől. Lásd a fenti fényképet.

    Miközben a Pi kártya nyitva van, most kiváló idő lenne fedezni a fedélzeti LED-kijelzőket (az USB-portok mellett), különösen, ha egyértelmű esetet használ. Nem szeretné, hogy a LedBorg jelzőjének olvasása zavaros legyen, mert az áram- és hálózati jelzőfények olyan fényesek.

    Egy fehér elektromos szalaggal borítottuk a miénket. Ez elhalványította őket ahhoz, hogy még mindig hivatkozhassunk, de annyira csillogtak, mint a LedBorg, ami már nem zavarja.

    Miután telepítette a LedBorg-ot, és adott esetben elektromos szalaggal fedte le a Pi LED-es kijelzőit, itt az ideje, hogy zárja le az ügyet. Indítsa el Pi-jét, mielőtt a tanfolyam következő szakaszára lépne.

    A LedBorg szoftver telepítése

    A PiBorg nagyszerű szoftvercsomagot biztosít a LedBorg számára, amely magában foglalja mind a GUI vezérlőt, mind a meghajtókat a LedBorg eléréséhez a parancssorból.

    Mielőtt elkezdenénk, győződjön meg róla, hogy megragadta a megfelelő csomagot a Rasbian verziójára és a Raspberry Pi táblájának felülvizsgálatára..

    Ha a Raspberry Pi táblán nincs rögzítési lyuk, akkor a Revision 1. Ha a Raspberry Pi szerelési lyukakkal rendelkezik (az USB-portok és a teljesítmény- és HDMI-port között), akkor ez a 2. változat. a Rasbian telepítésének. Nyissa meg a terminált, és írja be a következő parancsot:

    uname -r

    A Revision száma és a rendszermag száma után meglátogathatja a Csomagok részt itt, hogy megragadja a csomaghoz tartozó hivatkozást. Esetünkben a Revision 1 kártyát használjuk a 3.6.11-es rendszermaggal, így megragadjuk a raspbian 2013-02-09-rev1.zip fájlt.

    Annak érdekében, hogy az összes finomságot telepítsük, meg kell nyitnunk a terminált a Pi-n. majd írja be a következő parancsokat a LedBorg csomag telepítéséhez.

    Jegyzet: A harmadik parancs URL-jét ki kell cserélni a csomag / rendszermag-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
    törölje a setup.zip fájlt
    chmod + x install.sh
    ./install.sh

    Ezen a ponton most már van a GUI-csomagoló a LedBorg-illesztőprogramok és a saját illesztőprogramok számára. A Raspbian asztalon megjelenik egy ikon a GUI csomagolásához:

    Menj előre, és kattints a LedBorg ikonra a GUI csomagolás elindításához. Ilyen módon kezelni fogja a színválasztó felületet:

    Most van a legjobb alkalom arra, hogy megbizonyosodjon arról, hogy a modul működik. Válasszon színt, kivéve a fekete, hogy kipróbálja. Néhány szín kiválasztásával tesztelni fogjuk:

    Jól néz ki! Világos és a projekthez rendelt burkolatú műanyag mérsékelt diffúziót biztosít. Ha többet szeretne játszani a LED-modullal, mielőtt továbblépne, kattintson a Demó mód:

    Demo módban a különböző színeket különböző sebességeken lehet átmásolni, megnézni a nagy / alacsony kimenetet, és egyébként a LED-modult a lépéseken keresztül.

    Itt van a Demo Mode szakaszban, hogy a LedBorgot is a sok mutató közül elsőként kapcsolhatja be. A CPU kiválasztásával a Színek részben a LED zöldről sárgare pirosra vált, jelezve a Raspberry Pi ARM processzorának terhelését. Azt javasoljuk, hogy változtassuk meg a sebességet a lassúra, miközben a készüléket gyorsan frissíti, és a CPU-jelzőt a hasznos helyett zavarja..

    A színek kiválasztásához a GUI interfészen kívül RGB értékekkel is kiválaszthatja a színeket a terminálról. Nyissa meg a terminált, és adja meg a következő parancsot a LED kikapcsolásához:

    echo "000"> / dev / ledborg

    A LedBorg kezeli az RGB értékeket úgy, hogy 0 azt jelenti, hogy a csatorna ki van kapcsolva, 1 azt jelenti, hogy a csatorna félerő, és 2 azt jelenti, hogy a csatorna teljes teljesítményű. Tehát például a 001 0% -ban állítja be a Vörös csatornát, a Zöld csatornát 0% -nál, a Kék csatornát pedig 50% -kal.

    Változtassa meg az értéket 002-re, és a LED-kimenet kék marad, de világosabbá válik, mert a kék csatorna 100% -os kimenettel rendelkezik. Változtassa meg az értéket 202-re, és a piros és a kék teljes teljesítményű kombinációja bíbor színűvé váljon.

    Most, hogy tudjuk, hogyan kell manipulálni a LED-et manuálisan, nézzük meg a szkriptek használatát, hogy a LED-je egyszerű fénytől a tényleges kijelzőhöz kapcsoljon.

    A LedBorg beállítása esőjelzőként

    A bemutató ezen részéhez több dolgot is kombinálunk, hogy LedBorg LED-modulunkat esőjelzővé alakítsuk a helyünkre vonatkozó időjárás-előrejelzés alapján. Egy Python szkriptet fogunk használni egy olyan időjárási API meghívására, amely viszont a nap esőinek esélyét fogja leolvasni, majd a LED-t kikapcsolt fényes kékre váltva jelzi az előrejelzett esőt.

    Először egy API hozzáférési kulcsot kell kapnunk az Weather Underground számára. Személyes használatra és kis fejlesztési projektekre az API ingyenes. Látogasson el ide az Időjárás API bejelentkezési oldalára, és jelentkezzen be egy API kulcsra.

    Miután megvan az API kulcs, látogasson el az időjárási metróra, és keresse meg a megfigyelni kívánt várost. A mi esetünkben figyeljük a San Fransisco-t, a CA-t. A San Fransisco előrejelző oldalának URL-címe:

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

    Célunk fontos része az URL utolsó része: /CA/San_Francisco.html. Ezt az API-eszköz előrejelző URL-címének szerkesztésére fogjuk használni. Az alap URL-címe:

    http://api.wunderground.com/api/YOUR API Kulcs / előrejelzés / q / STATE / CITY.json

    Előrejelzést készíthet bármelyik amerikai város számára az API kulcs, a két betűs államkód és a város nevének megadásával az időjárási földalatti keresési eredményekből húzott URL-ből.

    Miután az API-kulcsot az API-kulcs és az állapot / város beillesztette, akkor a következő Python-parancsfájlt szerkesztheti úgy, hogy egy új szöveges dokumentumot hoz létre Pi-jén a Leafpad segítségével, és beilleszti a következő kódot:

    az urllib2 import urlopen-tól
    import json

    req = urlopen ('http://api.wunderground.com/api/YOUR API Kulcs / előrejelzés / q / STATE / CITY.json')
    parsed_json = json.load (req)
    pop = int (parsed_json ['ecast '] [' txt_forecast '] [' előrejelzés '] [0] [' pop '])

    # A következő hibakeresési érték.
    # Szerkessze ki a hash és a változásokat
    # az egész szám 0-100-ig a teszteléshez
    # a LED válasz.

    # pop = 0

    nyomtatás 'A jelenlegi csapadék valószínűsége .'. formátum (pop)

    # Az alapértelmezett beállítás a LED bekapcsolása
    # 20% -ot meghaladó eső esélye. Beállíthatja
    # a "ha pop> 20:" értéket szeretné.

    ha pop> 20:
    LedBorg = open ('/ dev / ledborg', 'w')
    LedBorg.write ( '002')
    del LedBorg
    nyomtatás ('Eső!')
    más:
    LedBorg = open ('/ dev / ledborg', 'w')
    LedBorg.write ( '000')
    del LedBorg
    nyomtatás („Nincs eső!”)

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

    python wunderground.py

    Ha megfelelően beírta az API kulcsot és az állam / város kódját, vissza kell állítania egy olyan választ, amely úgy néz ki, mint:

    Ha a területre várhatóan csapadék várható, akkor a LedBorg kimenetének úgy kell kinéznie, mint:

    Fárasztó lenne az esős nap várni, hogy megfelelően tesztelje a forgatókönyvet. Ha nincs esélye esőre a területen, és szeretné látni, hogy a LED világít, akkor szerkessze a wunderground.py parancsfájlt, és cserélje ki a „pop = pop” átmeneti értéket a 13. sorban 20-nál nagyobb értékkel, például a 60 az előrejelzésünk visszatért. Ne felejtsd el, hogy a vonalat „pop = pop” -ra cseréljük, ha kész.

    Az utolsó lépés az, hogy beállítsunk egy cron feladatot, hogy automatikusan futtassuk a rendszeres időközönként mentett szkriptet, hogy a LED jelzőfénye folyamatosan legyen. Mivel ez a feladat mind a jelen parancsfájl, mind a következő e-mail indikátor számára szükséges, fedezzük fel a cron munka beállítását, miután megmutattuk, hogyan kell beállítani a másik szkriptet.

    A LedBorg beállítása Gmail indikátorként

    Kinek nem tetszik a dopamin-javítás, amely a beérkezett üzeneteikben új e-maileket lát? A bemutató ezen részében megmutatjuk, hogyan kell használni a LedBorgot új Gmail indikátorként. Csakúgy, mint tavaly, egy külső bemenetet (ebben az esetben egy API-t használó Atom-hírcsatornát) és egy egyszerű parancsfájlt fogunk kombinálni LED-jünk meghajtásához..

    Egy kicsit bővítenünk kell a Python telepítésének funkcionalitását a FeedParser, a Python RSS / Atom feedolvasó eszköz telepítésével. Nyissa meg a terminált és adja meg a következő parancsot:

    sudo easy_install feedparser

    Miután a telepítés befejeződött, beállíthatjuk, hogy a Gmail ellenőrző szkriptet hozzuk létre. A Leafpad segítségével ismét a következő szöveget illessze be a szerkesztőbe. Módosítsa a felhasználónevet és a jelszót, hogy megfeleljen a ellenőrizni kívánt Gmail-fiók felhasználónevének és jelszavának.

    import feedparser

    # Adja meg Gmail felhasználónevét
    # és jelszó. Ne foglalja bele
    # a @ gmail.com része
    # felhasználóneved.

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

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

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

    # mail = 0

    ha a levél> 0:
    LedBorg = open ('/ dev / ledborg', 'w')
    LedBorg.write ( '020')
    del LedBorg
    nyomtatás ('Mail!')
    más:
    LedBorg = open ('/ dev / ledborg', 'w')
    LedBorg.write ( '000')
    del LedBorg
    nyomtatás ('Nincs levél!')

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

    python gmailcheck.py

    Ha e-mailje van a Gmail beérkezett üzeneteiben, a LED zöldre vált, és egy ilyen választ kap:

    Ha e-mailje van a Gmail beérkezett üzeneteiben, a LedBorg így néz ki:

    Csakúgy, mint az esőellenőrző szkript, egy hibakeresési értéket is tartalmazott. Ha nincs új e-mailje, küldjön egy e-mailt a beérkezett üzenetek számának 1-re emelésére, vagy szerkesztheti a megjegyzést, és módosíthatja a hibakeresési sort a "mail = 1" -re a szkript teszteléséhez. Ne felejtse el visszaállítani a vonalat, amikor végzett a teszteléssel.

    Hop a bemutató következő részébe, hogy beállítsa Gmail parancsfájlját egy ütemezésre.

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

    Most, hogy két szkriptet játszunk, be kell állítanunk egy cron munkát annak érdekében, hogy azokat a nap folyamán futtassuk, hogy megtartsuk a LED jelzőáramát.

    Az első dolog, amit meg akarunk csinálni, a LED kikapcsolása, ha jelenleg a korábbi kísérleteinken van. A terminál típusánál:

    echo “000”> / dev / ledborg

    Amíg még mindig a parancssorban van, megnyithatja a cron szerkesztőt. Ha még soha nem állított be cron-munkát, erősen javasoljuk, hogy nézze meg az útmutató használatát. Ez azt jelenti, hogy itt járunk el egy alapvető ütemterv beállításával.

    A terminál típusánál:

    sudo crontab -e

    Ez megnyitja a Raspbian cron táblát a Nano szövegszerkesztőben. A nyílbillentyűkkel görgessen lefelé a legalsó oldalra. Itt fogjuk beállítani az ismétlődő cron munkát a Python parancsfájljainkhoz.

    Ha szeretné beállítani az esőfájlt, írja be a következő sort a cron táblázatba:

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

    A kilépéshez nyomja meg a CTRL + X billentyűt; válassza a Yes lehetőséget a meglévő cron táblázat mentéséhez és felülírásához. A „* / 5 * * * *” cron táblázatba megadott érték 5 percenként futtatja a forgatókönyvet, örökre.

    Minden 5 percben egy apró idő van egy olyan forgatókönyvet illetően, amely az előrejelzett esőellenőrzést ellenőrzi - még azt is állíthatod, hogy ez egy kicsit túl agresszív, de ha megpróbálod tartani az emailed tetején, akkor egy kicsit túl hosszú a bejelentés időtartama . Ha beállítja a Gmail értesítési parancsfájl ütemezését, adja meg a következő sort a cron táblázatban:

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

    Ez a bejegyzés minden percben futtatja a gmailcheck.py parancsfájlt a gyorsabb frissítési értesítéshez.


    Ez az egész! Kísérletezhet a saját Python szkriptjeivel azáltal, hogy felemeli a if / más utasításokat a miénkből, és kipróbálhatja őket az új változókkal. Ha megtalálhatja az adatbeviteli forrást, akkor a Python script-market market átlagaiban változóvá válhat, a pollenszámok, a Twitter megemlíti, ha létezik API, akkor azt egy környezeti LED-es jelzővé alakíthatja.

    Végül szeretnék köszönetet mondani az összes nagy erőforrásnak, amit eddig a projekten dolgoztam. Ez egy kicsit több mint egy évtizede, mivel aktívan írtam a programokat, és néhány kopogás volt, hogy megszabaduljon a por és a rozsda. A / r / LearnPython közreműködői segítséget nyújtottak a Weather Underground API API kimenetén, tanulmányozva, hogy Michael a Mitch Tech-nél hogyan foglalkozott a Gmail Atom feedjével, amelyet a LedBorg számára egyszerűvé tett, és a Python tanulási moduljainak tanulmányozása a Code Academy-ben egy nagyszerű módja annak, hogy felveszi az alapszintű szintaxist és egy olyan nyelv szerkezetét, amelyet még soha nem használtam.