Spisu treści:

Internetowa stacja pogodowa Raspberry Pi: 5 kroków (ze zdjęciami)
Internetowa stacja pogodowa Raspberry Pi: 5 kroków (ze zdjęciami)

Wideo: Internetowa stacja pogodowa Raspberry Pi: 5 kroków (ze zdjęciami)

Wideo: Internetowa stacja pogodowa Raspberry Pi: 5 kroków (ze zdjęciami)
Wideo: Raspberry Pi 4 może drogie ale przynajmniej g*wniane! 2024, Lipiec
Anonim
Internetowa stacja pogodowa Raspberry Pi
Internetowa stacja pogodowa Raspberry Pi
Internetowa stacja pogodowa Raspberry Pi
Internetowa stacja pogodowa Raspberry Pi

*** Aktualizacja ***

Ta instrukcja jest nieaktualna. Usługi pogodowe dla danych pogodowych, używane w tej instrukcji, już nie działają. JEDNAK istnieje alternatywny projekt, który robi w zasadzie to samo (tylko lepiej - ten Instructable zawsze był tylko hackiem). Oto link, który będziesz chciał śledzić:

https://piweatherrock.technicalissues.us/

Bardzo dziękuję Gene Livermanowi z PiWeatherRock za objęcie płaszcza w tym projekcie.

Ten instruktaż pokaże Ci, jak zbudować naprawdę fajną internetową stację pogodową Raspberry Pi. Właściwie nazwanie tej budowy „stacją pogodową” jest trochę niedorzeczne. Ten build można łatwo rozbudować, aby zapewnić znacznie więcej niż tylko pogodę. Jednak to dobry początek i naprawdę fajnie wygląda na moim biurku.

Nasza rodzina (ok, głównie ja) cieszyła się z posiadania rodzinnego iPada na blacie kuchennym, gdy nie jest używany, cicho pokazując aktualne warunki pogodowe na zewnątrz. Jednak ładowanie i rozładowywanie iPada do i z etui z arkadami jest trudne. Poza tym, kiedy idę spojrzeć na pogodę, odkrywam, że ktoś zabrał iPada / wyświetlacz pogody. Potrzebny jest stały wyświetlacz nablatowy, którego dzieci nie będą przesuwać jak iPad.

Krok 1: Gen 1 - stacja pogodowa Lunchbox Pi

Gen 1 – stacja pogodowa Lunchbox Pi
Gen 1 – stacja pogodowa Lunchbox Pi
Gen 1 – stacja pogodowa Lunchbox Pi
Gen 1 – stacja pogodowa Lunchbox Pi

Moją pierwszą myślą było użycie małego kompozytowego wyświetlacza wideo. Kupiłem ten na zdjęciu w serwisie eBay za 22 dolców - po prostu wyszukaj „Monitor samochodowy 4,3 cala TFT LCD z widokiem z tyłu samochodu”. Wyświetlacz ma zgłoszoną rozdzielczość 656 na 416 pikseli, co sprawia, że wyświetlanie wielu przydatnych informacji jest wyzwaniem! Wyświetlacz wymaga 12Vdc jako napięcia zasilania. Raspberry Pi oczywiście potrzebuje 5Vdc jako napięcie zasilania. Aby rozwiązać ten problem, kupiłem tanią ładowarkę samochodową USB od Amazona. Za około 6 dolców znalazłem zmieniarkę samochodową 5Vdc na 2A. Dlatego lunchbox ma zewnętrzny zasilacz ścienny 12Vdc. Napięcie 12 V DC bezpośrednio zasila wyświetlacz. Napięcie 12 V DC trafia również do ładowarki samochodowej USB, która obniża napięcie do regulowanego 5 V DC. Jako ostatni hack przylutowałem parę przewodów bezpośrednio między ładowarką samochodową a Raspberry Pi - nie jest to mój najlepszy pomysł.

Chociaż to wszystko działało, nie byłem naprawdę zadowolony z jakości wideo na wyświetlaczu kompozytowym. Mała czcionka na wyświetlaczu była bardziej rozmyta, niż bym chciał. Plus, chociaż pudełko na lunch początkowo wydawało się słodkie, później wydawało się trochę tandetne.

Krok 2: Gen 2 - monitor HDMI + obudowa z laserowo wycinanego pleksiglasu Arcade

Gen 2 - monitor HDMI + obudowa z laserowo wycinanego pleksiglasu Arcade
Gen 2 - monitor HDMI + obudowa z laserowo wycinanego pleksiglasu Arcade
Gen 2 - monitor HDMI + obudowa z laserowo wycinanego pleksiglasu Arcade
Gen 2 - monitor HDMI + obudowa z laserowo wycinanego pleksiglasu Arcade
Gen 2 - monitor HDMI + obudowa z laserowo wycinanego pleksiglasu Arcade
Gen 2 - monitor HDMI + obudowa z laserowo wycinanego pleksiglasu Arcade

Po powrocie na eBay znalazłem ładnie wyglądający monitor HDMI z otwartą ramką za 54 dolarów i rozdzielczością 800x600. Z definicji, każda otwarta rama potrzebuje ramki do zamontowania. Ponieważ słodycz pudełka na lunch już dawno minęła, nadszedł czas na laserowo wycinany akryl. Moja lokalna przestrzeń hakerska i3Detroit ma naprawdę fajny 150-watowy nóż, który może zrobić mięso mielone z 4,5 mm akrylu.

Swoją obudowę zręcznościową luźno oparłem na pudełku na iPada. Jeśli kiedykolwiek zrobię projekt Gen 3, wyzywająco będzie zawierał wyjmowaną / wysuwaną tacę dla Pi. Okazuje się, że to duży ból szyi, gdy próbujesz podłączyć i wyjąć Pi, ponieważ między Pi a ścianami bocznymi nie ma zbyt wiele miejsca.

Monitor HDMI wymaga również zasilania 12Vdc. Użyłem więc tej samej sztuczki, polegającej na ponownym użyciu ładowarki samochodowej USB. Tym razem jednak posiekałem stary kabel USB, więc lutowanie przewodów na Pi nie było wymagane.

Jeśli ktoś jest zainteresowany przypadkiem arcade, zamieść komentarz poniżej, a ja prześlę pliki DXF. Lub pliki są na mojej stronie internetowej pod adresem ph-elec.com.

Krok 3: Konfiguracja Pi

Konfiguracja pi
Konfiguracja pi

Konfiguracja nowego Raspberry Pi z potrzebnym oprogramowaniem nie jest taka trudna. Całe oprogramowanie jest napisane w Pythonie z tylko jednym dodanym modułem Pythona. Dodatkowy moduł Pythona nazywa się „pywapi”. Oto link, z którego możesz pobrać moduł. Ten moduł ułatwia uzyskanie informacji o pogodzie w czasie rzeczywistym z Yahoo, Weather.com lub NOAA.

Po pierwsze, oto lista kontrolna konfiguracji surowego Raspberry Pi:

  1. Pobierz najnowszą wersję Raspbian (Debian Wheezy). Rozpakuj, aby uzyskać plik.img.
  2. Zapisz na karcie SD z "dd bs=4M if=2014-09-09-wheezy-raspbian.img of=/dev/sdb"
  3. Polecenie dd zajmuje około pięciu minut. Po zakończeniu uruchom „sync”, aby przepłukać rury.
  4. Zainstaluj kartę SD w Pi i uruchom ponownie. Upewnij się, że istnieje połączenie Ethernet z Pi.
  5. Korzystając ze strony „Dołączone urządzenia” na routerze, znajdź adres IP nowego Pi.
  6. Zaloguj się do Pi używając "ssh [email protected].???" gdzie ??? to numer IP z góry. Hasło będzie „malinowe”.
  7. W urządzeniu Pi użyj polecenia „raspi-config”, aby skonfigurować ustawienia domyślne.

    1. Włącz automatyczne uruchamianie do GUI.
    2. Ustaw nazwę hosta na coś w rodzaju „MyPi”.
  8. Zainstaluj VNC na Pi za pomocą "sudo apt-get install tightvncserver".

    Uruchom "tightvncserver", który ustawia hasło

  9. Wracając do dużego Linux-a, użyj „Remote Desktop”, aby wyświetlić pulpit Pi GUI.

    1. Ustaw Protokół na „VNC”, a numer IP na „192.168.1.???:1”. Zwróć uwagę na „:1” na końcu numeru IP.
    2. Naciśnij przycisk łączenia i podaj hasło VNC.
    3. Bingo, zdalny pulpit GUI Pi!

      Oszczędza to przeciągania monitora, klawiatury i myszy, aby połączyć się z nowym Pi

    4. Na pulpicie uruchom ikonę konfiguracji WiFi. Skonfiguruj nowe Pi / USB WiFi, aby połączyć się z siecią.
    5. Zamknij połączenie VNC - skończyliśmy ze zdalnymi pulpitami.
  10. Wróć do okna ssh, uruchom ponownie Pi za pomocą „sudo reboot”. Odłącz kabel Ethernet, ponieważ Wi-Fi jest teraz skonfigurowane.
  11. Wróć na router domowy, znajdź nowy numer IP, którego Pi używa z Wi-Fi.
  12. Używając ssh, zaloguj się ponownie, używając nowego numeru IP. Tym razem połączenie będzie się odbywać przez Wi-Fi.
  13. Korzystając z Menedżera plików w systemie Linux, połącz się z Pi za pomocą polecenia „połącz z serwerem”.

    Adres serwera to „sftp://192.168.1.???/home/pi”

  14. Konfiguracja podstawowa zakończona.

Następnie należy pobrać i zainstalować pywapi. Ponownie, nie jest to zbyt trudne dzięki następującym krokom:

  1. Pobierz najnowsze tutaj. Wypakuj archiwum do nowego katalogu.
  2. Korzystając z Menedżera plików, skopiuj katalog do katalogu domowego Pi.
  3. Używając ssh, wykonaj następujące czynności na Pi:

    1. cd pywapi-0.3.8
    2. sudo python setup.py build
    3. sudo python setup.py zainstalować
  4. Gotowe.

Aktualizacja, zapomniałem o dwóch wspomnieć o dwóch innych rzeczach:

  1. Na Pi uruchom następujące polecenie:

    1. sudo apt-get install avahi-demon

      Pozwala to na połączenie z Pi według nazwy. Tak więc na głównym komputerze możesz połączyć się jako „ssh [email protected]” zamiast używać numerów IP. Mając wiele Pi w sieci, łatwo je pomylić, chyba że zostaną wywołane po imieniu

    2. sudo raspi-config

      1. Poszukaj i uruchom czwartą opcję o nazwie „Opcje internacjonalizacji” i ustaw swoją strefę czasową.
      2. Przy ustawionej strefie czasowej i uruchomionym ntpd (demon protokołu czasu sieciowego) Pi zawsze wyświetla prawidłowy czas z dokładnością do kilku milisekund! Pokochaj to.
  2. OK, teraz znowu skończyliśmy.

Krok 4: Kod źródłowy

Kod źródłowy
Kod źródłowy

Cały kod źródłowy tego małego wyświetlacza pogodowego jest oparty na Pythonie, PyGame i Pywapi. Całe oprogramowanie typu open source/wolne oprogramowanie.

PyGame służy do robienia wszystkich rzeczy związanych z GUI. Naprawdę niesamowite rzeczy. Za pomocą PyGame cały wyświetlacz jest przebudowywany raz na sekundę. W górnej części mojego kodu źródłowego znajdziesz sekcję, która umożliwia dostosowanie do różnych rozmiarów ekranu. Jest jedna sekcja dla małego wyświetlacza kompozytowego wideo i druga sekcja dla większego wyświetlacza HDMI. Po prostu komentuję jedną z dwóch sekcji w oparciu o rozmiar wyświetlacza, którego potrzebuję.

Aby uruchomić mój kod źródłowy, po prostu rozpakuj załącznik i skopiuj cały katalog do Pi za pomocą zarządzania plikami. Po skopiowaniu uruchom kod za pomocą następujących poleceń ssh:

  1. cd Pogoda
  2. sudo python weather.py

Polecenie sudo jest potrzebne, aby Python mógł kontrolować / odczytywać piny GPIO. Prawdopodobnie istnieje jakiś sposób na obejście tego ograniczenia, ale mnie to umyka.

Gdy wszystko zacznie działać za pomocą ssh, nadszedł czas, aby pogoda uruchomiła się automatycznie po ponownym uruchomieniu. To też jest naprawdę łatwe.

  1. Używając ssh, uruchom "sudo vi /etc/rc.local"
  2. Tuż przed ostatnią linią, która mówi "exit 0", dodaj następujące do linii.

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

Spowoduje to automatyczne uruchomienie aplikacji pogodowej na Pi po ponownym uruchomieniu. Jeśli później chcesz to wyłączyć, po prostu użyj ssh do edycji pliku i dodaj znak komentarza "#" przed obiema liniami i uruchom ponownie.

Uwaga, mój kod źródłowy to duży hack i nie jestem z niego zbyt dumny. Gdybym jednak poczekał, aż będzie można go zaprezentować, nigdy nie zostanie zaprezentowany. Więc weź to lub zostaw po prostu nie płacz, bo mam bardzo cienką skórę.

Kilka innych rzeczy, o których warto pamiętać o moim kodzie. Pochowany tam, zauważysz kod do rozmowy z urządzeniem X10. To była moja próba kontrolowania moich zewnętrznych świateł słupowych, które są pod adresem A3. Po prostu chciałem, żeby lampy zapalały się o zmierzchu i gasły o świcie. Wydaje się dość łatwe i myślałem, że to działa. Używając klucza USB-to-RS232 na Pi podłączyłem moduł CM11A X10. CM11A to stary moduł makr X10. CM11A posiada również port RS232, który umożliwia sterowanie przez magistralę X10. Wygląda na to, że nadal jest kilka błędów, ponieważ światła na słupach lamp nie otrzymują wiadomości!

Warto również zauważyć, że na większym wyświetlaczu jest ładna otwarta szczelina po prawej stronie wyświetlacza. Mój plan to dodanie kilku lampek stanu w tym obszarze. Bawię się niektórymi radiotelefonami IEEE802.15.4 i ich wyjścia pewnego dnia pojawią się w tym otwartym miejscu.

Aby uzyskać najnowsze i najlepsze aktualizacje, odwiedź moją witrynę internetową pod adresem ph-elec.com.

Cóż, daj mi znać w sekcji komentarzy poniżej wszelkie pytania, które możesz mieć.

Dzięki, Jim.

Aha, i nie zapomnij zagłosować na mnie! Dzięki jeszcze raz.

BTW: Zawsze jest więcej informacji na mojej stronie internetowej: www.ph-elec.com

Krok 5: Aktualizacja danych

W załączniku znajduje się nowa wersja, która umożliwia wyświetlanie jednostek metrycznych lub imperialnych.

Mam nadzieję że to pomoże, Jim

Zalecana: