Inhaltsverzeichnis:

Raspberry Pi Internet-Wetterstation - Gunook
Raspberry Pi Internet-Wetterstation - Gunook

Video: Raspberry Pi Internet-Wetterstation - Gunook

Video: Raspberry Pi Internet-Wetterstation - Gunook
Video: Easy Raspberry Pi Projects for 2023! 2024, Juli
Anonim
Raspberry Pi Internet-Wetterstation
Raspberry Pi Internet-Wetterstation
Raspberry Pi Internet-Wetterstation
Raspberry Pi Internet-Wetterstation

*** Aktualisieren ***

Dieses Instructable ist veraltet. Die Wetterdienste für die Wetterdaten, die in diesem Instructable verwendet werden, funktionieren nicht mehr. JEDOCH gibt es ein alternatives Projekt, das im Grunde das gleiche tut (nur besser - dieses Instructable war immer nur ein Hack). Hier ist also der Link, dem Sie folgen möchten:

https://piweatherrock.technicalissues.us/

Vielen Dank an Gene Liverman von PiWeatherRock für die Übernahme dieses Projekts.

Dieses Instructable zeigt Ihnen, wie Sie eine wirklich coole Raspberry Pi Internet-basierte Wetterstation bauen. Diesen Build als "Wetterstation" zu bezeichnen, ist eigentlich eine Untertreibung. Dieser Build könnte leicht erweitert werden, um viel mehr als nur das Wetter bereitzustellen. Es ist jedoch ein guter Anfang und sieht auf meinem Schreibtisch wirklich cool aus.

Unsere Familie (OK, meistens ich) hat es genossen, das Familien-iPad auf der Küchentheke zu haben, wenn es nicht in Gebrauch ist und leise die aktuellen Wetterbedingungen draußen anzeigt. Es ist jedoch mühsam, das iPad in die Arcade-Cradle-Hülle ein- und auszuladen. Außerdem entdecke ich gerade, als ich mir das Wetter anschaue, dass jemand das iPad / das Wetterdisplay mitgenommen hat. Was benötigt wird, ist ein dauerhaftes Display auf der Theke, das die Kinder nicht wie das iPad wischen werden.

Schritt 1: Gen 1 - die Lunchbox Pi Wetterstation

Gen 1 - die Lunchbox Pi Wetterstation
Gen 1 - die Lunchbox Pi Wetterstation
Gen 1 - die Lunchbox Pi Wetterstation
Gen 1 - die Lunchbox Pi Wetterstation

Mein erster Gedanke war, ein kleines Composite-Video-Display zu verwenden. Ich habe den auf dem Bild bei Ebay für 22 Dollar abgeholt - suchen Sie einfach nach "4.3 Zoll TFT LCD Car Rear View Monitor Car Monitor". Das Display hat eine gemeldete Auflösung von 656 x 416 Pixeln, was die Anzeige vieler nützlicher Informationen zu einer Herausforderung macht! Das Display benötigt 12Vdc als Versorgungsspannung. Der Raspberry Pi benötigt natürlich 5Vdc als Versorgungsspannung. Um dies zu beheben, habe ich ein günstiges USB-Autoladegerät von Amazon gekauft. Für ungefähr 6 Dollar fand ich einen 5Vdc by 2 Ampere Autowechsler. Daher verfügt die Lunchbox über ein externes 12Vdc Wandnetzteil. Die 12Vdc versorgt das Display direkt mit Strom. Die 12 V DC gehen auch an das USB-Autoladegerät, das die Spannung auf geregelte 5 V DC heruntersetzt. Als letzten Hack habe ich ein Paar Drähte direkt zwischen dem Autoladegerät und dem Raspberry Pi gelötet - nicht meine beste Idee.

Obwohl alles irgendwie funktionierte, war ich mit der Qualität des Videos auf dem Composite-Display nicht wirklich zufrieden. Die kleine Schrift auf dem Display war unscharfer als mir lieb war. Plus, während die Lunchbox zuerst süß aussah, wirkte sie später irgendwie kitschig.

Schritt 2: Gen 2 - HDMI-Monitor + lasergeschnittenes Plexiglas-Arcade-Gehäuse

Gen 2 - HDMI-Monitor + Arcade-Gehäuse aus lasergeschnittenem Plexiglas
Gen 2 - HDMI-Monitor + Arcade-Gehäuse aus lasergeschnittenem Plexiglas
Gen 2 - HDMI-Monitor + lasergeschnittenes Plexiglas-Arcade-Gehäuse
Gen 2 - HDMI-Monitor + lasergeschnittenes Plexiglas-Arcade-Gehäuse
Gen 2 - HDMI-Monitor + Arcade-Gehäuse aus lasergeschnittenem Plexiglas
Gen 2 - HDMI-Monitor + Arcade-Gehäuse aus lasergeschnittenem Plexiglas

Zurück bei eBay fand ich einen gut aussehenden $54-Dollar-HDMI-Open-Frame-Monitor mit einer Auflösung von 800x600. Per Definition braucht ein offener Rahmen einen Rahmen zum Montieren. Da die Niedlichkeit der Lunchbox lange vorbei war, war es Zeit für etwas lasergeschnittenes Acryl. Mein lokaler Hackerraum i3Detroit hat einen wirklich schönen 150-Watt-Cutter, der Hackfleisch aus 4,5 mm Acryl herstellen kann.

Ich habe mein Arcade-Gehäuse lose auf der iPad-Arcade-Box basiert. Wenn ich jemals ein Gen 3-Design mache, würde es trotzig ein herausnehmbares / herausziehbares Fach für den Pi enthalten. Es stellt sich heraus, dass es ein großer Schmerz im Nacken ist, Dinge in den Pi ein- und auszustecken, da zwischen dem Pi und den Seitenwänden nicht viel Platz ist.

Der HDMI-Monitor benötigt auch eine 12-V-Gleichstromversorgung. Also habe ich den gleichen Trick mit einem USB-Autoladegerät erneut verwendet. Diesmal habe ich jedoch ein altes USB-Kabel zerhackt, sodass keine Lötdrähte auf dem Pi erforderlich waren.

Wenn jemand an dem Arcade-Fall interessiert ist, poste unten einen Kommentar und ich lade die DXF-Dateien hoch. Oder die Dateien befinden sich auf meiner Website unter ph-elec.com.

Schritt 3: Pi-Setup

Pi-Setup
Pi-Setup

Einen neuen Raspberry Pi mit der benötigten Software einzurichten ist gar nicht so schwer. Die gesamte Software ist in Python mit nur einem hinzugefügten Python-Modul geschrieben. Das zusätzliche Python-Modul heißt "pywapi". Hier ist ein Link, wo Sie das Modul herunterladen können. Dieses Modul macht es einfach, Echtzeit-Wetter von Yahoo, Weather.com oder NOAA zu erhalten.

Das Wichtigste zuerst, hier ist eine Checkliste zum Einrichten eines rohen Raspberry Pi:

  1. Laden Sie das neueste Raspbian (Debian Wheezy) herunter. Entpacken Sie, um eine.img-Datei zu erhalten.
  2. Schreiben Sie die auf eine SD-Karte mit "dd bs=4M if=2014-09-09-wheezy-raspbian.img of=/dev/sdb"
  3. Der dd-Befehl dauert etwa fünf Minuten. Wenn Sie fertig sind, führen Sie "sync" aus, um die Rohre zu spülen.
  4. SD-Karte im Pi installieren und neu starten. Stellen Sie sicher, dass eine Ethernet-Verbindung zum Pi besteht.
  5. Suchen Sie auf der Seite "Angeschlossene Geräte" des Routers die IP-Adresse des neuen Pi.
  6. Melden Sie sich mit "ssh [email protected].???" beim Pi an. wo ??? ist die IP-Nummer von oben. Das Passwort lautet "Himbeere".
  7. Verwenden Sie auf dem Pi den Befehl "raspi-config", um die Standardeinstellungen einzurichten.

    1. Schalten Sie das automatische Booten in der GUI ein.
    2. Setzen Sie den Hostnamen auf etwas wie "MyPi".
  8. Installieren Sie VNC auf dem Pi mit "sudo apt-get install tightvncserver".

    Führen Sie "tightvncserver" aus, der das Passwort festlegt

  9. Zurück auf der großen Linux-Box verwenden Sie "Remote Desktop", um den Pi-GUI-Desktop anzuzeigen.

    1. Setzen Sie das Protokoll auf "VNC" und die IP-Nummer auf "192.168.1.???:1". Beachten Sie das ":1" am Ende der IP-Nummer.
    2. Klicken Sie auf die Schaltfläche Verbinden und geben Sie das VNC-Passwort ein.
    3. Bingo, Remote-GUI-Pi-Desktop!

      Dies erspart das Herausziehen eines Monitors, einer Tastatur und einer Maus, um eine Verbindung zum neuen Pi herzustellen

    4. Führen Sie auf dem Desktop das WiFi-Setup-Symbol aus. Richten Sie das neue Pi / USB WiFi ein, um eine Verbindung zum Netzwerk herzustellen.
    5. Schließen Sie die VNC-Verbindung - wir sind jetzt mit Remote-Desktops fertig.
  10. Zurück im ssh-Fenster starten Sie den Pi mit "sudo reboot" neu. Trennen Sie das Ethernet-Kabel, da das WLAN jetzt eingerichtet ist.
  11. Suchen Sie auf dem Heimrouter die neue IP-Nummer, die der Pi mit WLAN verwendet.
  12. Melden Sie sich mit ssh mit der neuen IP-Nummer wieder an. Diesmal erfolgt die Verbindung über WLAN.
  13. Stellen Sie mit dem Files Manager unter Linux eine Verbindung zum Pi mit dem Befehl "connect to server" her.

    Die Serveradresse lautet "sftp://192.168.1.???/home/pi"

  14. Grundeinstellung abgeschlossen.

Als nächstes muss das Pywapi heruntergeladen und installiert werden. Auch dies ist mit den folgenden Schritten nicht allzu schwer:

  1. Laden Sie hier das Neueste herunter. Entpacken Sie das Archiv in ein neues Verzeichnis.
  2. Kopieren Sie das Verzeichnis mit dem Dateimanager in das Pi-Home-Verzeichnis.
  3. Führen Sie mit ssh auf dem Pi Folgendes aus:

    1. cd pywapi-0.3.8
    2. sudo python setup.py build
    3. sudo python setup.py installieren
  4. Fertig.

Update, ich habe zwei vergessen, zwei andere Dinge zu erwähnen:

  1. Führen Sie auf dem Pi den folgenden Befehl aus:

    1. sudo apt-get install avahi-daemon

      Dies ermöglicht die Verbindung mit dem Pi über den Namen. Auf Ihrem Hauptcomputer können Sie sich also als "ssh [email protected]" verbinden, anstatt IP-Nummern zu verwenden. Bei mehreren Pis im Netzwerk ist es leicht, sie zu verwechseln, es sei denn, sie werden namentlich genannt

    2. sudo raspi-config

      1. Suchen und führen Sie die vierte Option namens "Internationalisierungsoptionen" aus und legen Sie Ihre Zeitzone fest.
      2. Wenn die Zeitzone eingestellt ist und ntpd (Network Time Protocol Daemon) ausgeführt wird, zeigt der Pi immer die richtige Zeit auf wenige Millisekunden genau an! Muss es lieben.
  2. Okay, jetzt sind wir wieder fertig.

Schritt 4: Quellcode

Quellcode
Quellcode

Der gesamte Quellcode für diese kleine Wetteranzeige basiert auf Python, PyGame und Pywapi. Alle Open Source / freie Software.

PyGame wird verwendet, um alle GUI-Zeugs zu erledigen. Wirklich erstaunliche Sachen. Mit PyGame wird das gesamte Display einmal pro Sekunde neu aufgebaut. Oben in meinem Quellcode finden Sie einen Abschnitt, der es ermöglicht, für verschiedene Anzeigegrößen zu optimieren. Es gibt einen Abschnitt für das kleine Composite-Video-Display und einen zweiten Abschnitt für das größere HDMI-Display. Ich kommentiere einfach einen der beiden Abschnitte basierend auf der Displaygröße, die ich benötige.

Um meinen Quellcode zum Laufen zu bringen, entpacken Sie einfach den Anhang und kopieren Sie das gesamte Verzeichnis mit File Manage auf den Pi. Starten Sie den Code nach dem Kopieren mit den folgenden ssh-Befehlen:

  1. cd Wetter
  2. sudo python wetter.py

Der sudo-Befehl wird benötigt, damit Python die GPIO-Pins steuern / lesen kann. Es gibt wahrscheinlich einen Weg, diese Einschränkung zu umgehen, aber sie entzieht sich mir.

Sobald alles mit ssh funktioniert, ist es an der Zeit, Wetter automatisch bei einem Neustart zu starten. Auch das geht ganz einfach.

  1. Führen Sie mit ssh "sudo vi /etc/rc.local" aus.
  2. Kurz vor der letzten Zeile, die "exit 0" sagt, fügen Sie Folgendes zu den Zeilen hinzu.

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

Dadurch wird die Wetteranwendung auf dem Pi nach einem Neustart automatisch gestartet. Wenn Sie dies später deaktivieren möchten, verwenden Sie einfach ssh, um die Datei zu bearbeiten und fügen Sie das Kommentarzeichen "#" vor beiden Zeilen hinzu und starten Sie neu.

Beachten Sie, dass mein Quellcode ein großer Hack ist und ich nicht sehr stolz darauf bin. Wenn ich jedoch wartete, bis es vorzeigbar war, wurde es nie präsentiert. Also, nimm es oder lass es, weine einfach nicht, da ich eine sehr dünne Haut habe.

Ein paar andere Dinge zu meinem Code zu beachten. Darin vergraben werden Sie Code bemerken, um mit einem X10-Gerät zu kommunizieren. Dies war mein Versuch, meine Außenmastleuchten an der Adresse A3 zu steuern. Ich wollte einfach, dass die Lampen in der Dämmerung an- und in der Morgendämmerung aus waren. Scheint einfach genug und ich dachte, ich hätte es funktioniert. Mit einem USB-to-RS232 Dongle am Pi hatte ich ein CM11A X10 Modul angeschlossen. Das CM11A ist ein altes X10 Makromodul. Der CM11A verfügt außerdem über einen RS232-Port, der die Steuerung über den X10-Bus ermöglicht. Anscheinend gibt es noch einige Fehler, weil die Lampenmastlichter die Nachricht nicht erhalten!

Bemerkenswert ist auch, dass auf dem größeren Display entlang der rechten Seite des Displays ein schöner offener Spalt vorhanden ist. Mein Plan ist es, in diesem Bereich einige Statuslampen hinzuzufügen. Ich spiele mit einigen IEEE802.15.4-Funkgeräten und ihre Ausgänge werden eines Tages an diesem offenen Ort auftauchen.

Für die neuesten und besten Updates besuchen Sie bitte meine Website unter ph-elec.com.

Nun, lassen Sie mich in den Kommentaren unten wissen, wenn Sie Fragen haben.

Danke, Jim.

Oh, und vergiss nicht, für mich zu stimmen! Danke noch einmal.

Übrigens: Auf meiner Website gibt es immer mehr Infos: www.ph-elec.com

Schritt 5: Messwertaktualisierung

Beigefügt ist eine neue Version, die die Anzeige von entweder metrisch oder imperial ermöglicht.

Hoffe das hilft, Jim

Empfohlen: