E-Ink: Lua / ISS / Pessoas no Espaço : 6 etapas
E-Ink: Lua / ISS / Pessoas no Espaço : 6 etapas
Anonim

Por emihermesSiga mais pelo autor:

Lapso de tempo com framboesa PI
Lapso de tempo com framboesa PI
Lapso de tempo com framboesa PI
Lapso de tempo com framboesa PI

Eu tinha um Raspberry e um e-Paper HAT e queria usá-lo para mostrar informações como onde fica a ISS ou quantas pessoas estão agora no espaço …

Eu disse para olhar se existem APIs na Internet para obter esses dados, e eu os encontrei. OK, entendi !!!!

Espere, este HAT tem 4 botões, e então, eu preciso de 4 dados para serem mostrados …

- Onde está agora a ISS? - Quantas pessoas estão agora no espaço? - Em que fase está a Lua? - Vai chover? Está tão quente? …

No momento, estou mostrando essas informações, mas poderia atualizar este "Instrutível" assim que tiver uma boa ideia, ou se você conhece uma boa, pode sugerir-me !!!

Bem, eu consegui uma noite e o "FrontEnd" foi encerrado alguns dias depois. Não reclame de como as informações são mostradas, não gosto de fazer essa parte:)

Suprimentos

- Raspberry PI (Zero é suficiente).- CHAPÉU de papel eletrônico de 2,7 polegadas. (Comprei o meu aqui) - Cartão SD (4 Gb é o suficiente).

Você também precisa de um token da OpenWeather para usar as APIs (a partir daqui)

Etapa 1: Atualizar o Software (SO)

Atualizar software (SO)
Atualizar software (SO)
Atualizar software (SO)
Atualizar software (SO)
Atualizar software (SO)
Atualizar software (SO)

O primeiro passo, como sempre, é preparar seu Raspberry PI com o SO mais recente.- Baixe o SO mais recente (com desktop) aqui.- Escreva a imagem em um cartão SD vazio.- Crie um arquivo vazio "ssh" para habilitar a conexão SSH.- Salve o arquivo "wpa_supplicant.conf" no cartão SD para ter seu Wifi configurado para se conectar ao Raspberry PI via SSH (você tem preparado em seu computador, eu sei disso).

Comece o seu Raspberry Pi.

Conecte-se a ele via SSH (você também pode fazer se tiver monitor, teclado e mouse, mas eu não tenho e prefiro me conectar via SSH) e atualize-o….

sudo apt-get update -y

sudo apt-get upgrade -y

Agora, você deve habilitar o VNC para poder se conectar remotamente e o SPI para o e-Paper HAT:

sudo raspi-config

Opções de interface> VNC> Sim Opções de interface> SPI> Sim

E reinicie.

Etapa 2: Software necessário

Software Necessário
Software Necessário

Ok, agora temos um Raspberry PI rodando com o software mais recente e todo o básico para se conectar a ele.

É o momento de começar a instalar o software necessário para controlar o e-Paper HAT.

Se você não conectou o HAT ao seu Raspberry PI, agora é o último momento para conectá-lo. Desligue o seu Raspberry PI e coloque o HAT nele.

Para as próximas etapas, você pode seguir as instruções do Waveshare ou seguir com as próximas etapas….

Instale as bibliotecas BCM2835:

wget

tar zxvf bcm2835-1.60.tar.gz cd bcm2835-1.60 / sudo./configure sudo make sudo make check sudo make install # Para obter mais detalhes, consulte

Instale as bibliotecas wiringPi:

sudo apt-get install wiringpi

#Para Pi 4, você precisa atualizá-lo : cd / tmp wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb gpio -v #Você obterá 2.52 informações se você instalar corretamente

Instale as bibliotecas Python: (se você atualizou o SO com a versão mais recente, todas essas etapas serão como "Requisito já satisfeito").

sudo apt-get update

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

Agora você pode baixar os exemplos do Waveshare: (Esta parte NÃO é necessária, mas você pode baixá-los para saber como funciona).

sudo git clone

cd e-Paper / RaspberryPi / & JetsonNano /

Recomendo que você remova algumas pastas: - e-Paper / Arduino (é um Raspberry PI).- e-Paper / STM32 (é um Raspberry PI).- e-Paper / Raspberry & JetsonNano / c (usaremos python neste projeto).

Você não os usará e não precisará deles em um Raspberry PI.

E, se desejar, você pode remover todos os arquivos desnecessários da pasta "lib", como: - epd1in02.py - epd1in54.py - epd2in9.py -…

Se vamos usar um de 2,7 polegadas, o resto dos arquivos NÃO são necessários.

Eu recomendo que você mova a pasta "lib" um pouco para trás para usá-la facilmente:

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

No entanto, no meu código (do GitHub) as bibliotecas estão incluídas.

Todo o software necessário está instalado.

O próximo passo é nosso código!

Etapa 3: Baixe meu código

Agora precisamos baixar o código do GitHub:

sudo git clone

Com isso, teremos todo o código necessário, incluindo as bibliotecas do Waveshare para o projeto real.

Edite o arquivo "ShowInfo.py" para inserir seu token API de OpenWeather.com….… E a cidade (use o nome ou o ID da cidade):

def WeatherForecast ():

url = "https://api.openweathermap.org/data/2.5/forecast?" #url = url + "q = {city_name}" #url = url + "q = Düsseldorf" # problemas de ASCII !!! url = url + "id = 2934246" #url = url + "& appid = {your_API_key}" url = url + "& units = metric" # In Metric url = url + "& cnt = 6" # Apenas 6 resultados

No entanto, precisamos instalar os arquivos de fontes que usamos no projeto. Os arquivos foram baixados com todo o código.

As fontes estão na pasta "e-Paper / fonts".

Para descompactar:

sudo unzip Bangers.zip -d / usr / share / fonts / truetype / google /

sudo descompacte Bungee_Inline.zip -d / usr / share / fonts / truetype / google / sudo descompacte Bungee_Outline.zip -d / usr / share / fonts / truetype / google / sudo descompacte Bungee_Shade.zip -d / usr / share / fonts / truetype / google / sudo descompacte droid-sans.zip -d / usr / share / fonts / truetype / google / sudo descompacte Indie_Flower.zip -d / usr / share / fonts / truetype / google / sudo descompacte Jacques_Francois_Shadow.zip -d / usr / share / fonts / truetype / google / sudo descompacta Londrina_Outline.zip -d / usr / share / fonts / truetype / google / sudo descompacta Londrina_Shadow.zip -d / usr / share / fonts / truetype / google / sudo descompacta Londrina_Sketch. zip -d / usr / share / fonts / truetype / google / sudo descompacte Oswald.zip -d / usr / share / fonts / truetype / google / sudo descompacte Roboto.zip -d / usr / share / fonts / truetype / google / sudo descompacte Vast_Shadow.zip -d / usr / share / fonts / truetype / google /

Eu recomendo que você exclua os arquivos zip após a instalação, porque não precisamos mais desses arquivos:

fontes sudo rm -R

Etapa 4: execute o TESTE

Execute o TESTE
Execute o TESTE
Execute o TESTE
Execute o TESTE

Vá para a pasta correta onde temos o arquivo de teste:

cd ~ / eInk_Moon_ISS_PeopleSpace / e-Paper / ShowEInk

Execute o arquivo de teste com a versão 3 do Python:

python3 Test001.py

Você terá comentários rastreados enquanto o programa é executado.

E na tela do e-Paper você verá as mensagens.

Para cada botão, a tela mostrará uma mensagem diferente.

Etapa 5: Mostrar as informações da Lua / Espaço / ISS…

Mostrar as informações da Lua / Espaço / ISS…
Mostrar as informações da Lua / Espaço / ISS…
Mostrar as informações da Lua / Espaço / ISS…
Mostrar as informações da Lua / Espaço / ISS…
Mostrar as informações da Lua / Espaço / ISS…
Mostrar as informações da Lua / Espaço / ISS…
Mostrar as informações da Lua / Espaço / ISS…
Mostrar as informações da Lua / Espaço / ISS…

OK, temos tudo funcionando e agora queremos ver onde está a ISS sobre o mundo, ou a fase da Lua …

Primeiro você deve executar o arquivo "ShowInfo.py" (localizado em "~ / eInk_Moon_ISS_PeopleSpace / e-Paper / ShowEInk").

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

E agora, se você pressionar um botão, terá as informações programadas para este botão:

● Botão 1: Previsão do tempo.

● Botão 2: Quem está no Space e onde.

● Botão 3: Onde fica a ISS no mundo.

● Botão 4: Informações da Lua.

Etapa 6: execute-o como um serviço

Como alternativa, o script Python pode ser iniciado durante a inicialização criando um serviço - mais informações em

Crie um novo arquivo chamado ShowInfo.service e copie o conteúdo abaixo para o novo arquivo - ajuste o caminho WorkingDirectory de acordo:

[Unidade]

Description = 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 = herdar StandardError = herdar Reiniciar = sempre Usuário = pi [Instalar] WantedBy = multi-user.target

Copie o arquivo ShowInfo.service em / etc / systemd / system como root:

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

Inicie o serviço:

sudo systemctl start ShowInfo.service

Verifique se o serviço está em execução:

sudo systemctl status ShowInfo.service

A saída deve ser semelhante a:

● ShowInfo.service - ShowInfo

Carregado: carregado (/etc/systemd/system/ShowInfo.service; desativado; predefinição do fornecedor: ativado) Ativo: ativo (em execução) desde Sex. 2020-09-11 15:17:16 CEST; 14s atrás PID principal: 1453 (python3) CGroup: /system.slice/ShowInfo.service └─1453 / usr / bin / python3 ShowInfo.py Set 11 15:33:17 eInk systemd [1]: ShowInfo iniciado.

Se o serviço estiver funcionando bem, você pode habilitá-lo e reiniciar o Raspberry Pi para carregá-lo automaticamente durante a inicialização:

sudo systemctl enable ShowInfo.service

Para parar o serviço:

sudo systemctl stop ShowInfo.service

E isso é tudo !!!!!

Obrigado !!!!!