Inhoudsopgave:

Raspberry Pi internet weerstation - Ajarnpa
Raspberry Pi internet weerstation - Ajarnpa

Video: Raspberry Pi internet weerstation - Ajarnpa

Video: Raspberry Pi internet weerstation - Ajarnpa
Video: How To Make Weather Station With Raspberry Pi 4 2024, November
Anonim
Raspberry Pi internet weerstation
Raspberry Pi internet weerstation
Raspberry Pi internet weerstation
Raspberry Pi internet weerstation

*** Update ***

Deze Instructable is verouderd. De weerdiensten voor de weergegevens, die in deze Instructable worden gebruikt, werken niet meer. ECHTER, er is een alternatief project dat in principe hetzelfde doet (alleen beter - dit Instructable was altijd maar een hack). Dus hier is de link die u wilt volgen:

https://piweatherrock.technicalissues.us/

Heel erg bedankt, ga naar Gene Liverman van PiWeatherRock voor het op zich nemen van de mantel van dit project.

Deze Instructable laat je zien hoe je een echt cool Raspberry Pi internet-gebaseerd weerstation kunt bouwen. Eigenlijk is het een beetje een understatement om deze build een "weerstation" te noemen. Deze constructie kan gemakkelijk worden uitgebreid om veel meer te bieden dan alleen het weer. Het is echter een goed begin en het ziet er echt cool uit op mijn bureau.

Onze familie (OK, ik meestal) heeft genoten van het hebben van de familie-iPad op het aanrecht, wanneer deze niet in gebruik is, stilletjes de huidige weersomstandigheden buiten te laten zien. Het is echter lastig om de iPad in en uit de arcade-cradlebehuizing te laden en te verwijderen. Plus, net als ik naar het weer ga kijken, ontdek ik dat iemand de iPad / het weerdisplay heeft meegenomen. Wat nodig is, is een permanent display op het aanrecht dat de kinderen niet zullen vegen zoals de iPad.

Stap 1: Gen 1 - het Lunchbox Pi-weerstation

Gen 1 - het Lunchbox Pi-weerstation
Gen 1 - het Lunchbox Pi-weerstation
Gen 1 - het Lunchbox Pi-weerstation
Gen 1 - het Lunchbox Pi-weerstation

Mijn eerste gedachte was om een klein composiet videoscherm te gebruiken. Ik pakte degene op de foto op Ebay voor $ 22 dollar - zoek gewoon op "4.3 Inch TFT LCD Car Rear View Monitor Car Monitor". Het scherm heeft een gerapporteerde resolutie van 656 bij 416 pixels, wat het weergeven van veel nuttige informatie uitdagend maakt! Het display vereist 12Vdc als voedingsspanning. De Raspberry Pi heeft natuurlijk 5Vdc nodig als voedingsspanning. Om dit op te lossen, kocht ik een goedkope USB-autolader van Amazon. Voor ongeveer $ 6 dollar vond ik een 5Vdc bij 2 Amp autowisselaar. Daarom heeft de lunchbox een externe 12Vdc muurwrat voeding. De 12Vdc voedt het display rechtstreeks. De 12Vdc gaat ook naar de USB-autolader die de spanning verlaagt naar een gereguleerde 5Vdc. Als laatste hack heb ik een paar draden rechtstreeks tussen de autolader en de Raspberry Pi gesoldeerd - niet mijn beste idee.

Hoewel het allemaal een beetje werkte, was ik niet echt tevreden met de kwaliteit van de video op het composietscherm. Het kleine lettertype op het scherm was waziger dan ik zou willen. Plus, terwijl de lunchbox in eerste instantie schattig leek, leek hij later nogal cheesy.

Stap 2: Gen 2 - HDMI-monitor + lasergesneden plexiglas arcade-behuizing

Gen 2 - HDMI-monitor + lasergesneden plexiglas Arcade-behuizing
Gen 2 - HDMI-monitor + lasergesneden plexiglas Arcade-behuizing
Gen 2 - HDMI-monitor + lasergesneden plexiglas Arcade-behuizing
Gen 2 - HDMI-monitor + lasergesneden plexiglas Arcade-behuizing
Gen 2 - HDMI-monitor + lasergesneden plexiglas Arcade-behuizing
Gen 2 - HDMI-monitor + lasergesneden plexiglas Arcade-behuizing

Terug op eBay vond ik een mooi ogende HDMI open frame monitor van $ 54 dollar met een resolutie van 800x600. Per definitie heeft een open frame alles een frame nodig om in te monteren. Omdat de schattigheid van de lunchbox al lang voorbij was, werd het tijd voor wat lasergesneden acryl. Mijn lokale hacker-ruimte i3Detroit heeft een heel mooie 150 watt-snijder die gehakt kan maken van 4,5 mm acryl.

Ik heb mijn arcade-behuizing losjes gebaseerd op de iPad-arcadebox. Als ik ooit een Gen 3-ontwerp zou maken, zou het zeker een verwijderbare / uitschuifbare lade voor de Pi bevatten. Blijkt dat het een grote pijn in de nek is om dingen in en uit de Pi te pluggen, omdat er niet veel ruimte is tussen de Pi en de zijwanden.

De HDMI-monitor vereist ook een 12Vdc-voeding. Dus ik gebruikte dezelfde truc om opnieuw een USB-autolader te gebruiken. Deze keer heb ik echter een oude USB-kabel in stukken gehakt, zodat gesoldeerde draden op de Pi niet nodig waren.

Als iemand geïnteresseerd is in de arcade-zaak, plaats dan een reactie hieronder en ik zal de DXF-bestanden uploaden. Of de bestanden staan op mijn website op ph-elec.com.

Stap 3: Pi-configuratie

Pi-configuratie
Pi-configuratie

Het opzetten van een nieuwe Raspberry Pi met de benodigde software is niet zo moeilijk. Alle software is geschreven in Python met slechts één toegevoegde Python-module. De extra Python-module heet "pywapi". Hier is een link waar u de module kunt downloaden. Deze module maakt het gemakkelijk om realtime weer te krijgen van Yahoo, Weather.com of NOAA.

Allereerst, hier is een checklist voor het opzetten van een onbewerkte Raspberry Pi:

  1. Download de nieuwste Raspbian (Debian Wheezy). Unzip om een .img-bestand te verkrijgen.
  2. Schrijf de naar een SD-kaart met "dd bs=4M if=2014-09-09-wheezy-raspbian.img of=/dev/sdb"
  3. De opdracht dd duurt ongeveer vijf minuten. Als u klaar bent, voert u "sync" uit om de leidingen door te spoelen.
  4. Installeer de SD-kaart in de Pi en start opnieuw op. Zorg ervoor dat er een Ethernet-verbinding met de Pi is.
  5. Gebruik de pagina "Bijgevoegde apparaten" op de router om het IP-adres van de nieuwe Pi te vinden.
  6. Log in op de Pi met "ssh [email protected].???" waar ??? is het IP-nummer van hierboven. Het wachtwoord zal "framboos" zijn.
  7. Gebruik op de Pi het commando "raspi-config" om de standaardinstellingen in te stellen.

    1. Schakel automatisch opstarten in de GUI in.
    2. Stel de hostnaam in op zoiets als "MyPi".
  8. Installeer VNC op de Pi met "sudo apt-get install tightvncserver".

    Voer "tightvncserver" uit waarmee het wachtwoord wordt ingesteld

  9. Terug op de grote Linux-box, gebruik "Remote Desktop" om het Pi GUI-bureaublad te bekijken.

    1. Stel Protocol in op "VNC" en IP-nummer op "192.168.1.???:1". Let op de ":1" aan het einde van het IP-nummer.
    2. Druk op de verbindingsknop en voer het VNC-wachtwoord in.
    3. Bingo, externe GUI Pi-desktop!

      Dit bespaart het slepen van een monitor, toetsenbord en muis om verbinding te maken met de nieuwe Pi

    4. Voer op het bureaublad het wifi-installatiepictogram uit. Stel de nieuwe Pi / USB WiFi in om verbinding te maken met het netwerk.
    5. Sluit de VNC-verbinding - we zijn nu klaar met externe desktops.
  10. Terug in het ssh-venster start u de Pi opnieuw op met "sudo reboot". Koppel de Ethernet-kabel los, aangezien de WiFi nu is ingesteld.
  11. Zoek terug op de thuisrouter het nieuwe IP-nummer dat de Pi gebruikt met wifi.
  12. Log met ssh weer in met het nieuwe IP-nummer. Deze keer zal de verbinding via wifi zijn.
  13. Gebruik de Files Manager op Linux om verbinding te maken met de Pi met behulp van de opdracht "verbinden met server".

    Het serveradres is "sftp://192.168.1.???/home/pi"

  14. Basisinstelling voltooid.

Vervolgens moet de pywapi worden gedownload en geïnstalleerd. Nogmaals, dit is niet zo moeilijk met de volgende stappen:

  1. Download hier de laatste. Pak het archief uit in een nieuwe map.
  2. Gebruik File Manager om de map naar de Pi-thuismap te kopiëren.
  3. Gebruik ssh en doe het volgende op de Pi:

    1. cd pywapi-0.3.8
    2. sudo python setup.py build
    3. sudo python setup.py installeren
  4. Gedaan.

Update, ik vergat er twee nog twee andere dingen te vermelden:

  1. Voer op de Pi het volgende commando uit:

    1. sudo apt-get install avahi-daemon

      Dit maakt het mogelijk om op naam verbinding te maken met de Pi. Dus op uw hoofdcomputer kunt u verbinding maken als "ssh [email protected]" in plaats van IP-nummers te gebruiken. Met meerdere Pi's op het netwerk is het gemakkelijk om ze in de war te brengen, tenzij ze bij naam worden genoemd

    2. sudo raspi-config

      1. Zoek en voer de 4e optie genaamd "Internationaliseringsopties" uit en stel uw tijdzone in.
      2. Als de tijdzone is ingesteld en ntpd (netwerktijdprotocol-daemon) wordt uitgevoerd, zal de Pi altijd de juiste tijd weergeven tot binnen een paar milliseconden! Moet ervan houden.
  2. Oké, nu zijn we weer klaar.

Stap 4: Broncode

Broncode
Broncode

Alle broncode voor deze kleine weerweergave is gebaseerd op Python, PyGame en Pywapi. Alle open source / gratis software.

PyGame wordt gebruikt om alle GUI-dingen te doen. Echt geweldige dingen. Met behulp van PyGame wordt het hele scherm eenmaal per seconde opnieuw opgebouwd. Bovenaan mijn broncode vind je een sectie die het mogelijk maakt om te tweaken voor verschillende weergaveformaten. Er is een gedeelte voor het kleine composiet videoscherm en een tweede gedeelte voor het grotere HDMI-scherm. Ik becommentarieer eenvoudig een van de twee secties op basis van de weergavegrootte die ik nodig heb.

Om mijn broncode te laten werken, pakt u de bijlage uit en kopieert u de hele map naar de Pi met Bestandsbeheer. Eenmaal gekopieerd, start de code met de volgende ssh-opdrachten:

  1. cd Weer
  2. sudo python weather.py

Het sudo-commando is nodig zodat Python de GPIO-pinnen kan besturen / lezen. Er is waarschijnlijk een manier om deze beperking te omzeilen, maar het ontgaat me.

Zodra alles werkt met ssh, is het tijd om het weer automatisch te laten starten bij een herstart. Dit is ook heel gemakkelijk om te doen.

  1. Gebruik ssh en voer "sudo vi /etc/rc.local" uit
  2. Net voor de laatste regel, die zegt "exit 0", voegt u het volgende toe aan regels.

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

Hierdoor wordt de weertoepassing op de Pi automatisch gestart na een herstart. Als je dit later wilt uitschakelen, gebruik dan ssh om het bestand te bewerken en voeg het commentaarteken "#" toe voor beide regels en start opnieuw op.

Let op, mijn broncode is een grote hack en ik ben er niet erg trots op. Als ik echter wachtte tot het presentabel was, zou het nooit worden gepresenteerd. Dus, neem het of laat het gewoon niet huilen, want ik heb een erg dunne huid.

Een paar andere dingen om op te merken over mijn code. Daar begraven, zul je een code opmerken om met een X10-apparaat te praten. Dit was mijn poging om mijn buitenpaalverlichting op adres A3 te bedienen. Ik wilde gewoon dat de lampen in de schemering aan en bij zonsopgang uit waren. Lijkt eenvoudig genoeg en ik dacht dat ik het had werkend. Met behulp van een USB-naar-RS232-dongle op de Pi had ik een CM11A X10-module aangesloten. De CM11A is een oude X10 macromodule. De CM11A heeft ook een RS232-poort die controle over de X10-bus mogelijk maakt. Het lijkt erop dat er nog steeds wat bugs zijn omdat de lampjes van de lantaarnpaal de boodschap niet krijgen!

Merk ook op dat er op het grotere scherm een mooie open opening is langs de rechterkant van het scherm. Mijn plan is om wat statuslampen in dat gebied toe te voegen. Ik speel met een aantal IEEE802.15.4-radio's en hun uitgangen zullen op een dag op die open plek verschijnen.

Bezoek mijn website op ph-elec.com voor de laatste en beste updates.

Wel, laat het me weten in de comments hieronder als je vragen hebt.

Bedankt, Jim.

Oh, en vergeet niet op mij te stemmen! Nogmaals bedankt.

Tussen haakjes: er is altijd meer info op mijn website: www.ph-elec.com

Stap 5: metrische update

Bijgevoegd is een nieuwe versie die de weergave van metrisch of imperiaal mogelijk maakt.

Ik hoop dat dit helpt, Jim

Aanbevolen: