Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Autor: emihermesObserwuj Więcej autora:
Miałem Raspberry i e-Paper HAT i chciałem go użyć, aby pokazać informacje, takie jak gdzie jest ISS lub ile osób jest teraz w kosmosie…
Poprosiłem o sprawdzenie, czy w Internecie są interfejsy API, aby uzyskać te dane, i znalazłem je. OK, mam !!!!
Poczekaj, ten HAT ma 4 przyciski, a następnie potrzebuję 4 danych do wyświetlenia…
- Gdzie jest teraz ISS? - Ilu ludzi jest teraz w kosmosie? - W jakiej fazie jest Księżyc? - Czy będzie padać? Czy jest tak ciepło?…
W tej chwili pokazuję te informacje, ale mogę zaktualizować ten „Instruktaż”, gdy tylko wpadnę na dobry pomysł lub jeśli znasz dobry, możesz mi go zasugerować !!!
Cóż, zrobiłem to pewnego wieczoru, a "FrontEnd" skończył się kilka dni później. Nie narzekaj na to, jak wyświetlają się informacje, nie lubię robić tej części:)
Kieszonkowe dzieci
- Raspberry PI (wystarczy zero). - 2.7-calowy kapelusz e-papierowy. (Kupiłem tutaj) - karta SD (wystarczy 4Gb).
Potrzebujesz również tokena z OpenWeather, aby używać ich API (stąd)
Krok 1: Zaktualizuj oprogramowanie (SO)
Pierwszym krokiem, jak zawsze, jest przygotowanie Raspberry PI z najnowszym systemem operacyjnym. - Pobierz stąd najnowszy system operacyjny (z pulpitem). - Zapisz obraz na pustej karcie SD. - Utwórz pusty plik "ssh", aby umożliwić połączenie SSH. - Zapisz plik "wpa_supplicant.conf" na karcie SD, aby skonfigurować Wifi do łączenia się z Raspberry PI przez SSH (masz go przygotowany na swoim komputerze, wiem o tym).
Uruchom swoje Raspberry Pi.
Połącz się z nim przez SSH (możesz też to zrobić, jeśli masz monitor, klawiaturę i myszkę, ale ja nie mam i wolę łączyć się przez SSH) i zaktualizuj….
aktualizacja sudo apt-get -y
sudo apt-get upgrade -y
Teraz musisz włączyć VNC, aby móc połączyć się zdalnie i SPI dla e-Paper HAT:
sudo raspi-config
Opcje interfejsu > VNC > Tak Opcje interfejsu > SPI > Tak
I uruchom go ponownie.
Krok 2: Potrzebne oprogramowanie
Ok, teraz mamy działającego Raspberry PI z najnowszym oprogramowaniem i wszystkimi podstawowymi funkcjami do połączenia się z nim.
Nadszedł moment, aby rozpocząć instalację potrzebnego oprogramowania do sterowania e-Paper HAT.
Jeśli nie podłączyłeś HAT do Raspberry PI, teraz jest ostatni moment, aby go podłączyć. Wyłącz Raspberry PI i umieść na nim HAT.
Aby wykonać kolejne kroki, możesz postępować zgodnie z instrukcjami Waveshare lub postępować zgodnie z kolejnymi krokami….
Zainstaluj biblioteki BCM2835:
wget
tar zxvf bcm2835-1.60.tar.gz cd bcm2835-1.60/ sudo./configure sudo make sudo make check sudo make install # Aby uzyskać więcej informacji, odwiedź
Zainstaluj biblioteki okablowaniaPi:
sudo apt-get install wirepi
#Dla Pi 4 musisz go zaktualizować: cd /tmp wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wirepi-latest.deb gpio -v # Otrzymasz 2.52 informacje jeśli zainstalujesz go poprawnie
Zainstaluj biblioteki Pythona:(Jeśli zaktualizowałeś SO do najnowszej wersji, wszystkie te kroki będą wyglądały jak „Wymaganie już spełnione”).
aktualizacja sudo apt-get
sudo apt-get zainstaluj python3-pip sudo apt-get zainstaluj python3-pil sudo apt-get zainstaluj python3-numpy sudo pip3 zainstaluj RPi. GPIO sudo pip3 zainstaluj spidev
Teraz możesz pobrać przykłady z Waveshare:(Ta część NIE jest potrzebna, ale możesz je pobrać, aby wiedzieć, jak to działa).
klon sudo git
cd e-Papier/RaspberryPi\&JetsonNano/
Polecam usunąć niektóre foldery:- e-Paper/Arduino (to Raspberry PI).- e-Paper/STM32 (to Raspberry PI).- e-Paper/Raspberry & JetsonNano/c (będziemy używać Pythona na tym projekcie).
Nie będziesz ich używać i nie potrzebujesz ich na Raspberry PI.
A jeśli chcesz, możesz usunąć wszystkie niepotrzebne pliki z folderu „lib”, takie jak:- epd1in02.py - epd1in54.py - epd2in9.py - …
Jeśli zamierzamy użyć 2,7 cala, reszta plików NIE jest potrzebna.
Polecam cofnąć folder „lib”, aby móc z niego łatwo korzystać:
sudo mv lib /home/pi/e-Papier/
Jednak w moim kodzie (z GitHub) zawarte są biblioteki.
Całe potrzebne oprogramowanie jest zainstalowane.
Następnym krokiem jest nasz kod!
Krok 3: Pobierz mój kod
Teraz musimy pobrać kod z GitHub:
klon sudo git
Dzięki temu będziemy mieli cały potrzebny kod, w tym biblioteki z Waveshare do rzeczywistego projektu.
Edytuj plik „ShowInfo.py”, aby wstawić swój token API z OpenWeather.com….… i miasto (użyj nazwy lub identyfikatora miasta):
def Prognoza Pogody():
url = "https://api.openweathermap.org/data/2.5/forecast?" #url = url + "q={nazwa_miasta}" #url = url + "q=Düsseldorf" # Problemy z ASCII !!! url = url + "id=2934246" #url = url + "&appid={your_API_key}" url = url + "&units=metric" # Dane url = url + "&cnt=6" # Tylko 6 wyników
Musimy jednak zainstalować pliki czcionek, których używamy w projekcie. Pliki zostały pobrane z całym kodem.
Czcionki znajdują się w folderze „e-Papier/czcionki”.
Odsunąć zamek błyskawiczny:
sudo unzip Bangers.zip -d /usr/share/fonts/truetype/google/
sudo unzip Bungee_Inline.zip -d /usr/share/fonts/truetype/google/ sudo unzip Bungee_Outline.zip -d /usr/share/fonts/truetype/google/ sudo unzip Bungee_Shade.zip -d /usr/share/fonts/ truetype/google/ sudo unzip droid-sans.zip -d /usr/share/fonts/truetype/google/ sudo unzip Indie_Flower.zip -d /usr/share/fonts/truetype/google/ sudo unzip Jacques_Francois_Shadow.zip -d / usr/share/fonts/truetype/google/ sudo unzip Londrina_Outline.zip -d /usr/share/fonts/truetype/google/ sudo unzip Londrina_Shadow.zip -d /usr/share/fonts/truetype/google/ sudo unzip Londrina_Sketch. zip -d /usr/share/fonts/truetype/google/ sudo unzip Oswald.zip -d /usr/share/fonts/truetype/google/ sudo unzip Roboto.zip -d /usr/share/fonts/truetype/google/ sudo unzip Vast_Shadow.zip -d /usr/share/fonts/truetype/google/
Zalecam usunięcie plików zip po instalacji, ponieważ nie potrzebujemy już tych plików:
sudo rm -R czcionki
Krok 4: Wykonaj TEST
Przejdź do odpowiedniego folderu, w którym mamy plik testowy:
cd ~/eInk_Moon_ISS_PeopleSpace/e-Paper/ShowEInk
Uruchom plik testowy z wersją 3 Pythona:
python3 Test001.py
W międzyczasie program zostanie wykonany.
A na ekranie e-Papier zobaczysz wiadomości.
Dla każdego przycisku na ekranie pojawi się inny komunikat.
Krok 5: Pokaż informacje o Księżycu / Kosmosie / ISS…
OK, wszyscy mamy uruchomione i teraz chcemy zobaczyć, gdzie jest ISS nad światem lub faza Księżyca…
Najpierw musisz uruchomić plik " ShowInfo.py " (znajdujący się na " ~/eInk_Moon_ISS_PeopleSpace/e-Paper/ShowEInk ").
python3 ~/eInk_Moon_ISS_PeopleSpace/e-Paper/ShowEInk/ShowInfo.py
A teraz, jeśli naciśniesz jeden przycisk, będziesz miał informacje zaprogramowane do tego przycisku:
● Przycisk 1: Prognoza pogody.
● Przycisk 2: Kto jest w przestrzeni i gdzie.
● Przycisk 3: Gdzie jest ISS na świecie.
● Przycisk 4: Informacje o Księżycu.
Krok 6: Wykonaj to jako usługę
Alternatywnie skrypt Pythona można uruchomić podczas rozruchu, tworząc usługę - więcej informacji na
Utwórz nowy plik o nazwie ShowInfo.service i skopiuj poniższą zawartość do nowego pliku - odpowiednio dostosuj ścieżkę WorkingDirectory:
[Jednostka]
Description=ShowInfo After=network-online.target Wants=network-online.target [Usługa] ExecStart=/usr/bin/python3 ShowInfo.py WorkingDirectory=/home/pi/eInk_Moon_ISS_PeopleSpace/e-Paper/ShowEInk/ StandardOutput=inherit StandardError =inherit Restart=always User=pi [Zainstaluj] WantedBy=multi-user.target
Skopiuj plik ShowInfo.service do /etc/systemd/system jako root:
sudo cp ShowInfo.service /etc/systemd/system/
Uruchom usługę:
sudo systemctl start ShowInfo.service
Sprawdź, czy usługa działa:
stan sudo systemctl ShowInfo.service
Wynik powinien być podobny do:
● ShowInfo.service - ShowInfo
Załadowany: załadowany (/etc/systemd/system/ShowInfo.service; wyłączony; ustawienie dostawcy: włączony) Aktywny: aktywny (działa) od pt. 2020-09-11 15:17:16 CEST; 14s temu Główny PID: 1453 (python3) CGroup: /system.slice/ShowInfo.service └─1453 /usr/bin/python3 ShowInfo.py 11 września 15:33:17 eInk systemd[1]: Uruchomiono ShowInfo.
Jeśli usługa działa poprawnie, możesz ją włączyć i ponownie uruchomić Raspberry Pi, aby załadować ją automatycznie podczas rozruchu:
sudo systemctl włączyć ShowInfo.service
Aby zatrzymać usługę:
sudo systemctl zatrzymaj ShowInfo.service
I to wszystko !!!!!
Dziękuję !!!!!