2024 Forfatter: Peter John Melton | [email protected]. Sidst ændret: 2024-01-31 06:10
Hvorfor vil jeg gøre dette?
Fordi det er sjovt. I modsætning til mange af vores tutorials, hvor vi indeholder en lille blurb på toppen, der præciserer præcis, hvilken fordel du får af projektet, er blurb ganske kort i dette tilfælde, fordi fordelen simpelthen har det sjovt.
Raspberry Pi er en perfekt enhed til at lege med, eksperimentere med elektronik og lære nogle programmering. Ingen behov En omgivende regnindikator i deres køkken, for eksempel, men at bygge en er en sjov øvelse og en stor påmindelse om at bringe din paraply med dig på potentielle stormdage.
Hvad har jeg brug for?
For at følge med med selvstudiet skal du bruge et par ting. For det første antager vi, at du allerede har fulgt vores tidligere vejledning: HTG-vejledningen til at komme i gang med Raspberry Pi (og dermed få det grundlæggende til at installere Rasbian på vores Raspberry Pi).
Hvis du søger at gøre dette projekt på et budget, kan vi med sikkerhed fortælle dig, at den nyeste model Raspberry Pi er betydelig overkill for jobbet, og vi vil opfordre dig til at blæse støvet fra en gammel Raspberry Pi, du har skubbet i skabet eller afhente en billig brugt en fra eBay eller lignende. Budgettet er den længe i tanden en Raspberry Pi 1 Model A eller Model B snagged off eBay for $ 10-15, der passer perfekt til dette projekt, når man køber en helt ny $ 35 nuværende generation Pi.
Ud over at have en funktionel Pi enhed med Raspbian installeret på den skal du have følgende ting:
- 1 LedBorg modul (~ $ 5,00 med $ 4 fragt fra Storbritannien til USA, fungerer med alle Raspberry Pi modeller).
- 1 Clear Raspberry Pi Case kompatibel med din særlige Pi model som denne Raspberry Pi 1 Model B sag.
Bemærk: Det klare / frosted Pi-tilfælde er helt valgfrit, men hvis du bruger et uigennemtrængeligt tilfælde, vil din LED-indikator blive gemt inde. Du skal enten skære et hul i dit tilfælde for at slukke for lyset eller bruge et GPIO-forlængerkabel med et breakout-sæt som dette fra Adafruit Industries-for at binde LedBorg til din Raspberry Pi. Mens du bruger breakout-kablet, tilføjer ca. $ 8 til bekostning af projektet, giver det mere potentiale til at tilpasse slutproduktet, idet du lettere kan placere LED'en inde i ting eller under noget, du vil belyse.
Installation af LedBorg
Selvom du helt sikkert kunne opbygge dig selv en LED-indikator helt fra bunden (og en søgemaskineforespørgsel vil dukke op masser af mennesker, der har gjort det), producerer Piborg-organisationen et så kompakt og billigt LED-modul, LedBorg, at vi ikke kunne ' ikke modstå at bruge det som grundlag for vores Raspberry Pi LED indikatorprojekt.
Installering af modulet er et snap, da det er designet til at passe direkte over GPIO-benene på Pi. Først skal du slå din Pi ned og åbne sagen.
Den vigtigste del af installationsprocessen er, at du orienterer modulet, så LedBorg-ikonet er tættest på RCA-modulet på Raspberry Pi-pladen (og dermed er LedBorgs kant fladt med kanterne af Pi-pladen med det overhængende del af LedBorg hængende over Pi bordet og ikke af kanten). Se billedet ovenfor.
Mens du har Pi-kortet åbent, ville det nu være en god tid at dække LED-indikatorerne (ved siden af USB-portene), især hvis du bruger et klart tilfælde. Du vil ikke have det forvirrende at læse din LedBorg-indikator, fordi strøm- og netindikatorlamperne er så lyse.
Vi dækkede vores med et lag af hvidt elektrisk tape. Dette dæmpede dem nok, så vi stadig kunne henvise dem, men de var så meget svagere end LedBorg det var ikke længere distraherende.
Når først LedBorg er installeret og eventuelt har dækket Pi's LED-indikatorer med elektrisk tape, er det tid til at lukke sagen igen. Start din Pi op, før du går videre til næste fase af øvelsen.
Installation af LedBorg-softwaren
Før vi kommer i gang, skal du sørge for at få fat i den rigtige pakke til din version af Rasbian og revision # af din Raspberry Pi bord.
Hvis din Raspberry Pi bord ikke har monteringshuller, er det Revision 1. Hvis din Raspberry Pi har monteringshuller (placeret ved USB-portene og mellem strøm- og HDMI-porten), så er det Revision 2. Du skal også kende kerneversionen af din Rasbian-installation. Åbn terminalen og indtast følgende kommando for at tjekke:
uname -r
Når du har revisionsnummeret og kerne nummeret, kan du besøge pakken sektionen her for at hente linket til din pakke. I vores tilfælde bruger vi et Revision 1 bord med 3.6.11 kernen, så vi kunne få fat i filen raspbian-2013-02-09-rev1.zip.
For at installere alle godbidder skal vi åbne terminalen på Pi. og indtast derefter følgende kommandoer for at installere LedBorg-pakken.
Bemærk: Du skal erstatte URL'en i den tredje kommando med URL'en for pakken til din bord / kernekombination.
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
På dette tidspunkt har du nu GUI wrapper til LedBorg drivere og driverne selv installeret. På dit Raspbian skrivebord vises et ikon til GUI wrapper:
Det er her i Demo Mode sektionen, at du også kan slå din LedBorg til den første af mange indikatorer. Ved at vælge CPU i sektionen Farver begynder LED'en at skifte fra grønt til gul til rødt for at angive belastning på Raspberry Pi's ARM-processor. Vi foreslår, at du ændrer hastigheden til langsom, mens du er ved det. Hurtigt opdaterer LED'en for hurtigt og gør CPU-indikatoren distraherende i stedet for nyttig.
Ud over at bruge GUI-grænsefladen til at vælge farver kan du vælge farver fra terminalen ved hjælp af RGB-værdier. Åbn terminalen og indtast følgende kommando for at slukke for LED'en:
echo '000' > /dev/ledborg
Måden LedBorg håndterer RGB-værdier er, at 0 betyder, at kanalen er slukket, 1 betyder, at kanalen er halv strøm, og 2 betyder, at kanalen er fuld effekt. Så for eksempel vil 001 indstille den røde kanal ved 0%, den grønne kanal ved 0% og den blå kanal ved 50% effekt.
Skift værdien til 002, og LED-udgangen forbliver blå, men bliver lysere, fordi den blå kanal nu er 100% output. Skift værdien til 202, og den røde og blå ved fuld effekt kombinerer for at gøre en magenta farve.
Nu da vi ved, hvordan man manipulerer LED'en manuelt, lad os se på brug af scripts for at vende vores LED fra et simpelt lys til en faktisk indikator.
Konfiguration af din LedBorg som regnindikator
For det første skal vi få en API-adgangskode til Weather Underground. Til personlig brug og små udviklingsprojekter er API'en gratis. Besøg registreringssiden for vejledende API her og tilmelde dig en API-nøgle.
Når du har din API-nøgle, skal du besøge vejrundergrunden og søge efter den by, du vil overvåge. I vores tilfælde vil vi overvåge San Fransisco, CA. Webadressen til San Fransiscos prognose side er:
https://www.wunderground.com/US/CA/San_Francisco.html
Den vigtige del til vores formål er den sidste del af webadressen: /CA/San_Francisco.html. Vi vil bruge det til at redigere prognose-URL'en for API-værktøjet. Basisadressen er:
https://api.wunderground.com/api/YOUR API KEY/forecast/q/STATE/CITY.json
Du kan generere prognosen for en hvilken som helst amerikansk by ved at indtaste din API-nøgle, tobogstaverens tilstandskode og byens navn fra den webadresse, du har trukket fra dine vejrundergrounds søgeresultater.
Når du har API-URL'en med din API-nøgle og stat / by indsat, kan du derefter redigere følgende Python-script ved at oprette et nyt tekstdokument på din Pi ved hjælp af Leafpad og indsætte følgende kode i den:
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'])
# Følgende er en fejlfinding. # Rediger ud hash og ændre # heltalet til en 0-100 til test # LED-responsen.
# 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!')
Gem filen som wunderground.py i / home / pi / directory. Åbn terminalen og skriv følgende kommando:
python wunderground.py
Hvis du har indtastet din API-nøgle og dine stats- / bykoder ordentligt, skal det sparke et svar, der ligner:
Det sidste trin er at oprette et cron-job til automatisk at køre det script, vi netop har sparet med et regelmæssigt interval for at holde LED-indikatoren aktuelle. Da denne opgave er nødvendig for både dette script og den e-mail-indikator, der følger, skal vi dække opsætning af et cron-job, efter at vi har vist dig, hvordan du konfigurerer det andet script.
Konfiguration af din LedBorg som en Gmail-indikator
Vi skal udvide funktionaliteten i vores Python installation lidt ved at installere FeedParser, et Python RSS / Atom feed læsningsværktøj. Åbn terminalen og indtast følgende kommando:
sudo easy_install feedparser
Når installationen er færdig, kan vi indstille os til at oprette vores Gmail-kontrol script. Igen skal du bruge Leafpad til at indsætte følgende tekst i editoren. Skift brugernavn og kodeord for at matche brugernavnet og adgangskoden til den Gmail-konto, du vil kontrollere.
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'])
# Følgende er en fejlfinding. # Rediger ud hash og ændre # heltalet til en 0 eller 1 til test # LED-responsen.
# 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!')
Gem scriptet som gmailcheck.py. Åbn terminalen og skriv følgende kommando:
python gmailcheck.py
Hvis du har e-mail, der sidder i din Gmail-indbakke, bliver LED'en grøn, og du får svar som sådan:
Hop ind i næste afsnit af vejledningen for at indstille dit Gmail-script til at køre på en tidsplan.
Opsætning af en Cron-job til at køre dit script
Det første, vi vil gøre, er at slukke for LED'en, hvis den er på nuværende tidspunkt fra vores tidligere eksperimenter. Ved terminaltype:
echo “000” > /dev/ledborg
Mens du stadig er på kommandolinjen, kan du åbne cron editoren. Hvis du aldrig har oprettet et cron-job før, anbefaler vi stærkt, at du tjekker vores vejledning til at bruge det her. Når det er sagt, går vi igennem med at oprette en grundplan her.
Ved terminaltype:
sudo crontab –e
Dette åbner Raspbian cron tabellen i Nano tekst editor. Brug piletasterne til at rulle ned til bunden. Det er her, vi skal opsætte det tilbagevendende cron job til vores Python scripts.
Hvis du vil oprette regnescriptet, skal du indtaste følgende linje i cron-tabellen:
*/5 * * * * python /home/pi/wunderground.py
Tryk på CTRL + X for at afslutte; vælg ja for at gemme og overskrive det eksisterende cron-bord. Værdien vi indtastede i cron-tabellen "* / 5 * * * *" indstiller scriptet til at køre hvert 5. minut, for evigt.
Hvert femte minut er et fint tidsrum for et script, der kontrollerer forventet regn. Du kan endda argumentere for, at det er lidt for aggressivt. Men hvis du forsøger at holde dig oven på din email, er det lidt for lang tid for meddelelse. Hvis du konfigurerer tidsplanen for Gmail-notifikationsskriptet, skal du indtaste følgende linje i cron-tabellen:
*/1 * * * * python /home/pi/wunderground.py
Denne post kører gmailcheck.py script hvert minut for en meget hurtigere opdateringsmeddelelse.
Det er alt der er til det! Du kan eksperimentere med dine egne Python-scripts ved at løfte if / else-udsagnene ud af vores og prøve dem ud med helt nye variabler. Hvis du kan finde en input kilde til dataene, kan du konvertere den til en variabel i dine Python script-aktiemarkedsværdier, pollen tæller, Twitter nævner, hvis der er en API til det, kan du gøre det til en omgivende LED indikator.
Endelig vil jeg gerne takke alle de store ressourcer, jeg plejede at arbejde på med dette projekt. Det har været lidt over et årti siden jeg var aktivt ved at skrive programmer, og det tog et par banke at få støv og rust ud. Bidragerne på / r / LearnPython hjalp mig med at mumle om i API-udgangen til Weather Underground, og studerede, hvordan Michael over på Mitch Tech behandlede Gmail Atom-feedet, der gjorde det nemt at analysere det for LedBorg, og at studere Python-læringsmodulerne på Code Academy var en god måde at hente den grundlæggende syntaks og struktur af et sprog, jeg aldrig havde brugt før.
Anbefalede:
Fra Tip Box: Midlertidig LED Belysning, Email Files til Dropbox og Wallpaper Management
En gang om ugen afrundes nogle gode tips fra Tip Box og dele dem med alle. I denne uge ser vi på billig LED-belysning (vandtæt til opstart!), Mailer filer til Dropbox-mapper og styrer din tapetsamling.
Modern.ie: Byg websteder til moderne browsere ved hjælp af nyeste ressourcer og værktøjer
Microsoft har lanceret et nyt websted, modern.IE, der tilbyder et gratis sæt værktøjer og ressourcer, der er designet til at gøre det lettere for udviklere at sikre, at deres websteder fungerer smukt på tværs af Internet Explorer samt andre moderne browsere.
Byg en cloud app Win Kinect Xbox 360 eller Intel i7 laptop
Windows Azure Marketplace giver dig mulighed for at dele, købe og sælge byggekomponenter, træning, premium datasæt plus færdige tjenester og applikationer
Gratis email signatur generatorer til at skabe professionel email signatur
Brug disse bedste gratis e-mail signatur generator skabeloner til at oprette en professionel email signatur til Outlook, Gmail, Apple Mail, etc.
Tips til email-brugere: Beskyt og beskytt din email-konto
Prøv disse enkle sikkerheds tips til at beskytte dig selv. Fokus er på brugere, der bruger Outlook, men mange af disse tip kan overføres til hvilken e-mail-klient du foretrækker.