E-Ink: Moon / ISS / People in Space : 6 pași
E-Ink: Moon / ISS / People in Space : 6 pași
Anonim

De emihermes Urmăriți mai multe de la autor:

Time Lapse Cu Raspberry PI
Time Lapse Cu Raspberry PI
Time Lapse Cu Raspberry PI
Time Lapse Cu Raspberry PI

Am avut un Raspberry și un e-Paper HAT și am vrut să-l folosesc pentru a arăta informații cum ar fi ISS sau câți oameni sunt acum în spațiu …

Am declarat să mă uit dacă există API-uri pe Internet pentru a obține acele date și le-am găsit. OK, gotcha !!!!

Așteaptă, acest HAT are 4 butoane și apoi am nevoie de 4 date pentru a fi afișate …

- Unde este acum ISS? - Câți oameni sunt acum în spațiu? - În ce fază este Luna? - Va ploua? Este atât de cald? …

În acest moment, afișez acele informații, dar aș putea actualiza acest „instructabil” imediat ce am o idee bună sau, dacă știi una bună, îmi poți sugera !!!

Ei bine, am făcut-o într-o seară și "FrontEnd" a fost încheiat la câteva zile după aceea. Nu vă plângeți despre modul în care sunt afișate informațiile, nu-mi place să fac această parte:)

Provizii

- Raspberry PI (Zero este suficient).- 2,7 inch e-Paper HAT. (Am cumpărat-o pe a mea aici) - card SD (este suficient 4 GB).

De asemenea, aveți nevoie de un Token de la OpenWeather pentru a le utiliza API-urile (de aici)

Pasul 1: Actualizați software-ul (SO)

Actualizare software (SO)
Actualizare software (SO)
Actualizare software (SO)
Actualizare software (SO)
Actualizare software (SO)
Actualizare software (SO)

Primul pas, ca întotdeauna, este să vă pregătiți Raspberry PI cu cel mai recent sistem de operare. - Descărcați cel mai recent sistem de operare (cu desktop) de aici. - Scrieți imaginea pe un card SD gol. conexiunea SSH.- Salvați fișierul „wpa_supplicant.conf” de pe cardul SD pentru a avea Wifi-ul configurat pentru a vă conecta la Raspberry PI prin SSH (îl aveți pregătit pe computer, îl știu).

Porniți Raspberry Pi.

Conectați-vă la acesta prin SSH (o puteți face și dacă aveți un monitor, tastatură și mouse, dar nu am și prefer să mă conectez prin SSH) și actualizați-l …

sudo apt-get update -y

sudo apt-get upgrade -y

Acum, trebuie să activați VNC pentru a vă putea conecta de la distanță și SPI pentru e-Paper HAT:

sudo raspi-config

Opțiuni de interfațare> VNC> Da Opțiuni de interfațare> SPI> Da

Și reporniți-l.

Pasul 2: Software necesar

Software necesar
Software necesar

Ok, acum avem un Raspberry PI care rulează cu cel mai recent software și toate elementele de bază pentru conectarea la acesta.

Este momentul pentru a începe instalarea software-ului necesar pentru a controla e-Paper HAT.

Dacă nu ați conectat HAT-ul la Raspberry PI, acum este ultimul moment pentru a-l conecta. Opriți Raspberry PI și puneți HAT-ul pe el.

Pentru următorii pași puteți urma instrucțiunile de la Waveshare sau urmați-l cu pașii următori ….

Instalați bibliotecile BCM2835:

wget

tar zxvf bcm2835-1.60.tar.gz cd bcm2835-1.60 / sudo./configure sudo make sudo make check sudo make install #Pentru mai multe detalii, vă rugăm să consultați

Instalați bibliotecile wiringPi:

sudo apt-get install wiringpi

#Pentru Pi 4, trebuie să îl actualizați : cd / tmp wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb gpio -v # Veți obține 2,52 informații dacă îl instalați corect

Instalați bibliotecile Python: (Dacă ați actualizat SO-ul cu cea mai recentă versiune, toți acești pași vor fi ca „Cerința deja satisfăcută”).

sudo apt-get update

sudo apt-get install python3-pip sudo apt-get install python3-pil sudo apt-get install python3-numpy sudo pip3 install RPi. GPIO sudo pip3 install spidev

Acum puteți descărca exemplele din Waveshare: (Această parte NU este necesară, dar le puteți descărca pentru a afla cum funcționează).

clona sudo git

cd e-Paper / RaspberryPi / & JetsonNano /

Vă recomand să eliminați câteva foldere: - e-Paper / Arduino (Este un Raspberry PI).- e-Paper / STM32 (Este un Raspberry PI).- e-Paper / Raspberry & JetsonNano / c (vom folosi python pe acest proiect).

Nu le veți folosi și nu aveți nevoie de ele pe un Raspberry PI.

Și, dacă doriți, puteți elimina toate fișierele de care nu aveți nevoie din folderul „lib”, cum ar fi: - epd1in02.py - epd1in54.py - epd2in9.py - …

Dacă vom folosi un 2.7inch, restul fișierelor NU sunt necesare.

Vă recomand să mutați folderul „lib” puțin înapoi pentru al utiliza cu ușurință:

sudo mv lib / home / pi / e-Paper /

Cu toate acestea, în codul meu (de la GitHub) sunt incluse bibliotecile.

Este instalat tot software-ul necesar.

Următorul pas este codul nostru!

Pasul 3: Descărcați codul meu

Acum trebuie să descărcăm codul din GitHub:

clona sudo git

Cu aceasta vom avea tot codul necesar, inclusiv bibliotecile de la Waveshare în proiectul real.

Editați fișierul „ShowInfo.py” pentru a insera API-token-ul dvs. de la OpenWeather.com …. și Oraș (utilizați numele sau ID-ul orașului):

def WeatherForecast ():

url = "https://api.openweathermap.org/data/2.5/forecast?" #url = url + "q = {city_name}" #url = url + "q = Düsseldorf" # probleme ASCII !!! url = url + "id = 2934246" #url = url + "& appid = {your_API_key}" url = url + "& units = metric" # În metric url = url + "& cnt = 6" # Doar 6 rezultate

Cu toate acestea, trebuie să instalăm fișierele de font pe care le folosim în proiect. Fișierele au fost descărcate cu tot codul.

Fonturile se află în folderul „e-Paper / fonts”.

Pentru a dezarhiva:

sudo dezarhivați 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 dezarhivați Vast_Shadow.zip -d / usr / share / fonts / truetype / google /

Vă recomand să ștergeți fișierele zip după instalare, deoarece nu mai avem nevoie de aceste fișiere:

fonturi sudo rm -R

Pasul 4: Executați TESTUL

Executați TESTUL
Executați TESTUL
Executați TESTUL
Executați TESTUL

Mergeți la folderul corect unde avem fișierul de testare:

cd ~ / eInk_Moon_ISS_PeopleSpace / e-Paper / ShowEInk

Executați fișierul de testare cu versiunea 3 a Python:

python3 Test001.py

Veți avea un comentariu urmărit în timp ce programul este executat.

Și în ecranul e-Paper veți vedea mesajele.

Pentru fiecare buton, ecranul va afișa un mesaj diferit.

Pasul 5: Afișați informațiile despre Lună / Spațiu / ISS…

Afișați informațiile despre Lună / Spațiu / ISS…
Afișați informațiile despre Lună / Spațiu / ISS…
Afișați informațiile despre Lună / Spațiu / ISS…
Afișați informațiile despre Lună / Spațiu / ISS…
Afișați informațiile despre Lună / Spațiu / ISS…
Afișați informațiile despre Lună / Spațiu / ISS…
Afișați informațiile despre Lună / Spațiu / ISS…
Afișați informațiile despre Lună / Spațiu / ISS…

OK, toți alergăm și acum vrem să vedem unde este ISS peste lume sau faza Lunii …

Mai întâi trebuie să executați fișierul „ShowInfo.py” (situat pe „~ / eInk_Moon_ISS_PeopleSpace / e-Paper / ShowEInk”).

python3 ~ / eInk_Moon_ISS_PeopleSpace / e-Paper / ShowEInk / ShowInfo.py

Și acum, dacă apăsați un buton, veți avea informațiile programate pentru acest buton:

● Butonul 1: Prognoza meteo.

● Butonul 2: cine este în spațiu și unde.

● Butonul 3: Unde este ISS peste lume.

● Butonul 4: Informații despre Lună.

Pasul 6: Executați-l ca serviciu

Ca alternativă, scriptul Python poate fi pornit în timpul bootului prin crearea unui serviciu - mai multe informații la

Creați un fișier nou numit ShowInfo.service și copiați conținutul de mai jos în noul fișier - reglați calea WorkingDirectory în consecință:

[Unitate]

Descriere = ShowInfo After = network-online.target Wants = network-online.target [Service] ExecStart = / usr / bin / python3 ShowInfo.py WorkingDirectory = / home / pi / eInk_Moon_ISS_PeopleSpace / e-Paper / ShowEInk / StandardOutput = mostenesc StandardError = mostenire Repornire = întotdeauna Utilizator = pi [Instalare] WantedBy = multi-user.target

Copiați fișierul ShowInfo.service în / etc / systemd / system ca root:

sudo cp ShowInfo.service / etc / systemd / system /

Porniți serviciul:

sudo systemctl pornește ShowInfo.service

Verificați dacă serviciul rulează:

sudo systemctl status ShowInfo.service

Rezultatul ar trebui să fie similar cu:

● ShowInfo.service - ShowInfo

Încărcat: încărcat (/etc/systemd/system/ShowInfo.service; dezactivat; presetare furnizor: activat) Activ: activ (rulează) de vineri 2020-09-11 15:17:16 CEST; Acum 14 secunde PID principal: 1453 (python3) CGroup: /system.slice/ShowInfo.service └─1453 / usr / bin / python3 ShowInfo.py 11 sept. 15:33:17 eInk systemd [1]: StartInfo ShowInfo.

Dacă serviciul funcționează bine, îl puteți activa și reporniți Raspberry Pi pentru al încărca automat în timpul bootului:

sudo systemctl activa ShowInfo.service

Pentru a opri serviciul:

sudo systemctl stop ShowInfo.service

Și asta e tot !!!!!

Mulțumiri !!!!!