Innehållsförteckning:

Raspberry Pi Internet Weather Station: 5 steg (med bilder)
Raspberry Pi Internet Weather Station: 5 steg (med bilder)

Video: Raspberry Pi Internet Weather Station: 5 steg (med bilder)

Video: Raspberry Pi Internet Weather Station: 5 steg (med bilder)
Video: Raspberry Pi 5 Mastery: Create a Powerful Home Server/Home lab 2024, Juli
Anonim
Raspberry Pi Internet väderstation
Raspberry Pi Internet väderstation
Raspberry Pi Internet väderstation
Raspberry Pi Internet väderstation

*** Uppdatering ***

Denna instruerbara har föråldrad. Vädertjänsterna för väderdata, som används i denna instruktionsbok, fungerar inte längre. MEN det finns ett alternativt projekt som i princip gör samma sak (bara bättre - den här instruerbara var alltid bara ett hack). Så här är länken du vill följa:

https://piweatherrock.technicalissues.us/

Tack så mycket, gå till Gene Liverman på PiWeatherRock för att ta upp manteln på detta projekt.

Denna instruktionsbok visar dig hur du bygger en riktigt cool Raspberry Pi internetbaserad väderstation. Egentligen, att kalla detta bygga en "väderstation" är lite av en under uttalande. Denna konstruktion kan enkelt förlängas för att ge mycket mer än bara vädret. Det är dock en bra start och det ser riktigt coolt ut på mitt skrivbord.

Vår familj (OK, mestadels jag) har njutit av att ha familjen iPad på köksbänken, när den inte används, tyst visar de nuvarande väderförhållandena utanför. Det är dock en smärta att ladda och lossa iPad in och ut ur arkadhållaren. Dessutom, precis när jag går för att titta på vädret, upptäcker jag att någon har tagit iPad / väderskärmen. Det som behövs är en permanent bordsskärm som barnen inte kommer att svepa som iPad.

Steg 1: Gen 1 - Lunchbox Pi -väderstationen

Gen 1 - Lunchbox Pi -väderstationen
Gen 1 - Lunchbox Pi -väderstationen
Gen 1 - Lunchbox Pi -väderstationen
Gen 1 - Lunchbox Pi -väderstationen

Min första tanke var att använda en liten kompositvideoskärm. Jag plockade upp den på bilden på Ebay för $ 22 dollar - sök helt enkelt på "4,3 tums TFT LCD Car Rear View Monitor Car Monitor". Displayen har en rapporterad upplösning på 656 x 416 pixlar vilket trots det gör att visa mycket användbar information en utmaning! Displayen kräver 12Vdc som matningsspänning. Raspberry Pi behöver naturligtvis 5Vdc som matningsspänning. För att lösa detta köpte jag en billig USB -billaddare från Amazon. För cirka $ 6 dollar hittade jag en 5Vd by 2 Amp bilväxlare. Därför har matlådan en extern 12Vdc väggvårt strömförsörjning. 12Vdc driver displayen direkt. 12Vdc går också till USB -billaddaren som stiger spänningen till en reglerad 5Vdc. Som ett sista hack löd jag ett par ledningar direkt mellan billaddaren och Raspberry Pi - inte min bästa idé.

Medan det hela fungerade var jag inte riktigt nöjd med kvaliteten på videon på den sammansatta skärmen. Det lilla teckensnittet på displayen var mer suddigt än jag skulle vilja. Plus, medan matlådan först verkade söt senare verkade den lite ostliknande.

Steg 2: Gen 2 - HDMI -skärm + laserskuret plexiglasarkadfodral

Gen 2 - HDMI -skärm + laserskuret plexiglasarkadfodral
Gen 2 - HDMI -skärm + laserskuret plexiglasarkadfodral
Gen 2 - HDMI -skärm + laserskuret plexiglasarkadfodral
Gen 2 - HDMI -skärm + laserskuret plexiglasarkadfodral
Gen 2 - HDMI -skärm + laserskuret plexiglasarkadfodral
Gen 2 - HDMI -skärm + laserskuret plexiglasarkadfodral

Tillbaka på eBay hittade jag en snygg HDMI -bildskärm på $ 54 dollar med en upplösning på 800x600. Per definition behöver en öppen ram allt en ram att montera i. Eftersom matlådans sötma var länge över var det dags för lite laserskuren akryl. Mitt lokala hackerutrymme i3Detroit har en riktigt fin 150 watt skärare som kan göra köttfärs av 4,5 mm akryl.

Jag baserade löst mitt arkadhölje på iPad -arkadboxen. Om jag någonsin skulle göra en Gen 3 -design skulle det trots allt inkludera en flyttbar / utdragbar bricka för Pi. Det visar sig att det är en stor smärta i nacken att försöka plugga in och ut ur Pi eftersom det inte finns mycket utrymme mellan Pi och sidoväggarna.

HDMI -monitorn kräver också ett 12Vdc -matning. Så jag använde samma knep att använda en USB -billaddare igen. Den här gången huggade jag dock upp en gammal USB -kabel så lödade ledningar på Pi krävdes inte.

Om någon är intresserad av arkadfallet lägg upp en kommentar nedan så laddar jag upp DXF -filerna. Eller, filerna finns på min webbplats på ph-elec.com.

Steg 3: Pi -installation

Pi -inställning
Pi -inställning

Att installera en ny Raspberry Pi med den programvara som behövs är inte så svårt. All programvara är skriven i Python med bara en extra Python -modul. Den extra Python -modulen kallas "pywapi". Här är en länk där du kan ladda ner modulen. Denna modul gör det enkelt att få realtidsväder från antingen Yahoo, Weather.com eller NOAA.

Först och främst, här är en checklista för att konfigurera en rå Raspberry Pi:

  1. Ladda ner den senaste Raspbian (Debian Wheezy). Packa upp för att få en.img -fil.
  2. Skriv till ett SD-kort med "dd bs = 4M if = 2014-09-09-wheezy-raspbian.img of =/dev/sdb"
  3. Kommandot dd tar cirka fem minuter. När du är klar kör du "synkronisera" för att spola rören.
  4. Installera SD -kortet i Pi och starta om. Se till att det finns en Ethernet -anslutning till Pi.
  5. Använd sidan "Bifogade enheter" på routern och hitta IP -adressen för den nya Pi.
  6. Logga in på Pi med "ssh [email protected]. ???" var ??? är IP -numret ovanifrån. Lösenordet kommer att vara "hallon".
  7. På Pi använder du kommandot "raspi-config" för att ställa in standardvärden.

    1. Slå på automatisk start i GUI.
    2. Ställ in värdnamnet på något liknande "MyPi".
  8. Installera VNC på Pi med "sudo apt-get install tightvncserver".

    Kör "tightvncserver" som anger lösenordet

  9. Tillbaka på den stora Linux -rutan, använd "Remote Desktop" för att se Pi GUI -skrivbordet.

    1. Ställ in protokollet på "VNC" och IP -numret till "192.168.1.???:1". Notera ": 1" på slutet av IP -numret.
    2. Tryck på anslutningsknappen och ange VNC -lösenordet.
    3. Bingo, fjärrkontroll för GUI Pi!

      Detta sparar att dra ut en bildskärm, tangentbord och mus för att ansluta till den nya Pi

    4. Kör WiFi -installationsikonen på skrivbordet. Konfigurera den nya Pi / USB WiFi för att ansluta till nätverket.
    5. Stäng VNC -anslutningen - vi är nu klara med fjärrskrivbord.
  10. Tillbaka i ssh -fönstret, starta om Pi med "sudo reboot". Koppla bort Ethernet -kabeln eftersom WiFi nu är installerat.
  11. Tillbaka på hemroutern, hitta det nya IP -numret som Pi använder med WiFi.
  12. Använd ssh, logga in igen med det nya IP -numret. Den här gången kommer anslutningen att ske via WiFi.
  13. Använd Files Manger på Linux, anslut till Pi med kommandot "anslut till server".

    Serveradressen är "sftp: //192.168.1. ???/home/pi"

  14. Grundinställningen klar.

Därefter måste pywapi laddas ner och installeras. Återigen är detta inte för svårt med följande steg:

  1. Ladda ner det senaste härifrån. Extrahera arkivet till en ny katalog.
  2. Med File Manger, kopiera katalogen till Pi -hemkatalogen.
  3. Använd ssh, gör följande på Pi:

    1. cd pywapi-0.3.8
    2. sudo python setup.py build
    3. sudo python setup.py installera
  4. Gjort.

Uppdatering, jag glömde två nämna två andra saker:

  1. Kör följande kommando på Pi:

    1. sudo apt-get install avahi-daemon

      Detta gör det möjligt att ansluta till Pi med namn. Så på din huvuddator kan du ansluta som "ssh [email protected]" istället för att använda IP -nummer. Med flera Pi på nätverket är det lätt att bli förvirrad om de inte kallas med namn

    2. sudo raspi-config

      1. Leta efter och kör det fjärde alternativet som heter "Internationaliseringsalternativ" och ställ in din tidszon.
      2. När tidszonen är inställd och ntpd (nätverkstidsprotokollsdemon) kör Pi alltid rätt tid till inom några millisekunder! Måste älska det.
  2. OK, nu är vi klara igen.

Steg 4: Källkod

Källkod
Källkod

All källkod för denna lilla vädervisning är baserad på Python, PyGame och Pywapi. All öppen källkod / gratis programvara.

PyGame används för att göra alla GUI -saker. Verkligen fantastiska grejer. Med PyGame byggs hela skärmen om en gång per sekund. Nära toppen av min källkod hittar du en sektion som gör det möjligt att anpassa för olika skärmstorlekar. Det finns en sektion för den lilla kompositvideoskärmen och en andra sektion för den större HDMI -skärmen. Jag kommenterar helt enkelt en av de två sektionerna baserat på skärmstorleken jag behöver.

För att få min källkod att köra, packa upp bilagan och kopiera hela katalogen till Pi med Filhantering. När du har kopierat, starta koden med följande ssh -kommandon:

  1. cd Väder
  2. sudo python weather.py

Kommandot sudo behövs för att Python ska kunna styra / läsa GPIO -stiften. Det finns förmodligen ett sätt att kringgå denna begränsning men den undviker mig.

När allt fungerar med ssh är det dags att få vädret att starta automatiskt vid en omstart. Detta är också riktigt lätt att göra.

  1. Kör "sudo vi /etc/rc.local" med ssh
  2. Strax före den sista raden, där det står "exit 0", lägg till följande på raderna.

    1. cd/home/pi/Weather
    2. sudo python weather.py &> err.log

Detta startar automatiskt väderprogrammet på Pi efter en omstart. Om du senare vill stänga av det här, använd bara ssh för att redigera filen och lägg till kommentarstecknet "#" framför båda raderna och starta om.

Observera, min källkod är ett stort hack och jag är inte särskilt stolt över det. Men om jag väntade tills den var presentabel skulle den aldrig presenteras. Så, ta det eller låt det bara gråta inte eftersom jag har en mycket tunn hud.

Ett par andra saker att notera om min kod. Nedgrävd där kommer du att märka lite kod för att prata med en X10 -enhet. Detta var mitt försök att styra mina yttre stolplampor som finns på adress A3. Jag ville helt enkelt ha lamporna tända i skymningen och släcka i gryningen. Verkar lätt nog och jag trodde att jag fick det att fungera. Med en USB-till-RS232-dongel på Pi hade jag anslutit en CM11A X10-modul. CM11A är en gammal X10 -makromodul. CM11A har också en RS232 -port som möjliggör kontroll över X10 -bussen. Det verkar som att det fortfarande finns några buggar eftersom lampans stolplampor inte får meddelandet!

Observera också att på den större skärmen finns det ett fint öppet gap längs skärmens högra sida. Min plan är att lägga till några statuslampor i det området. Jag leker med några IEEE802.15.4 -radioapparater och deras utgångar kommer en dag att dyka upp på den öppna platsen.

För de senaste och bästa uppdateringarna, besök min webbplats på ph-elec.com.

Tja, meddela mig i kommentarsfältet nedan eventuella frågor du kan ha.

Tack, Jim.

Åh, och glöm inte att rösta på mig! Tack igen.

BTW: Det finns alltid mer information på min webbplats: www.ph-elec.com

Steg 5: Metrisk uppdatering

Bifogad är en ny version som möjliggör visning av antingen metrisk eller imperial.

Hoppas det här hjälper, Jim

Rekommenderad: