E-Ink: Luna / ISS / Gente en el espacio : 6 pasos
E-Ink: Luna / ISS / Gente en el espacio : 6 pasos
Anonim

Por emihermes Siga más por el autor:

Lapso de tiempo con Raspberry PI
Lapso de tiempo con Raspberry PI
Lapso de tiempo con Raspberry PI
Lapso de tiempo con Raspberry PI

Tenía una Raspberry y un e-Paper HAT y quería usarlo para mostrar información como dónde está la ISS o cuántas personas hay ahora en el espacio …

Dije que buscara si hay API en Internet para obtener esos datos y las encontré.

Espera, este SOMBRERO tiene 4 botones, y luego, necesito que se muestren 4 datos …

- ¿Dónde está ahora la ISS? - ¿Cuántas personas hay ahora en el espacio? - ¿En qué fase está la Luna? - ¿Va a llover? ¿Hace tanto calor? …

En este momento, estoy mostrando esa información, pero podría actualizar este "Instructable" tan pronto como tenga una buena idea, o si conoces una buena, ¡me la puedes sugerir!

Bueno, lo hice una noche y el "FrontEnd" terminó unos días después. No te quejes de cómo se muestra la información, no me gusta hacer esta parte:)

Suministros

- Raspberry PI (cero es suficiente).- SOMBRERO de papel electrónico de 2,7 pulgadas. (Compré el mío aquí) - Tarjeta SD (4Gb es suficiente).

También necesita un Token de OpenWeather para usar las API (desde aquí)

Paso 1: Actualice el software (SO)

Actualizar software (SO)
Actualizar software (SO)
Actualizar software (SO)
Actualizar software (SO)
Actualizar software (SO)
Actualizar software (SO)

El primer paso, como siempre, es preparar su Raspberry PI con el último sistema operativo.- Descargue el último sistema operativo (con escritorio) desde aquí.- Escriba la imagen en una tarjeta SD vacía.- Cree un archivo vacío "ssh" para habilitar la conexión SSH.- Guarda el archivo "wpa_supplicant.conf" en la tarjeta SD para tener tu Wifi configurado para conectarse a tu Raspberry PI vía SSH (lo tienes preparado en tu ordenador, lo sé).

Inicie su Raspberry Pi.

Conéctalo vía SSH (también puedes hacerlo si tienes monitor, teclado y ratón, pero yo no tengo y prefiero conectarme vía SSH) y actualizarlo….

sudo apt-get update -y

sudo apt-get upgrade -y

Ahora, debe habilitar VNC para poder conectarse de forma remota y SPI para el e-Paper HAT:

sudo raspi-config

Opciones de interfaz> VNC> Sí Opciones de interfaz> SPI> Sí

Y reinícielo.

Paso 2: software necesario

Software necesario
Software necesario

Ok, ahora tenemos una Raspberry PI en ejecución con el software más reciente y todo lo básico para conectarse a ella.

Es el momento de comenzar a instalar el software necesario para controlar el e-Paper HAT.

Si no conectó el HAT en su Raspberry PI, ahora es el último momento para conectarlo. Apague su Raspberry PI y coloque el HAT en él.

Para los siguientes pasos, puede seguir las instrucciones de Waveshare o seguirlo con los siguientes pasos….

Instale las 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 obtener más detalles, consulte

Instale las bibliotecas wirePi:

sudo apt-get install cableadopi

#Para Pi 4, necesita actualizarlo: cd / tmp wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i cableadopi-latest.deb gpio -v # Obtendrá información 2.52 si lo instalas correctamente

Instale las bibliotecas de Python: (si actualizó el SO con la última versión, todos estos pasos serán como "Requisito ya satisfecho").

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

Ahora puede descargar los ejemplos de Waveshare: (Esta parte NO es necesaria, pero puede descargarlos para saber cómo funciona).

sudo git clone

cd e-Paper / RaspberryPi / & JetsonNano /

Te recomiendo que elimines algunas carpetas: - e-Paper / Arduino (es un Raspberry PI).- e-Paper / STM32 (es un Raspberry PI).- e-Paper / Raspberry & JetsonNano / c (usaremos python en este proyecto).

No los usará y no los necesitará en un Raspberry PI.

Y, si lo desea, puede eliminar todos los archivos que no necesita de la carpeta "lib", como: - epd1in02.py - epd1in54.py - epd2in9.py -…

Si vamos a utilizar un 2,7 pulgadas, el resto de archivos NO son necesarios.

Te recomiendo que muevas un poco la carpeta "lib" para usarla fácilmente:

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

Sin embargo, en mi código (de GitHub) se incluyen las bibliotecas.

Todo el software necesario está instalado.

¡El siguiente paso es nuestro código!

Paso 3: descarga mi código

Ahora necesitamos descargar el código de GitHub:

sudo git clone

Con esto tendremos todo el código necesario, incluidas las bibliotecas de Waveshare en el proyecto real.

Edite el archivo "ShowInfo.py" para insertar su API-Token de OpenWeather.com….… Y la Ciudad (use el nombre o el ID de la ciudad):

def WeatherForecast ():

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

Sin embargo, necesitamos instalar los archivos de fuentes que usamos en el proyecto, los archivos fueron descargados con todo el código.

Las fuentes están en la carpeta "e-Paper / fuentes".

Descomprimir:

sudo descomprime 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 descomprime Londrina_Outline.zip -d / usr / share / fonts / truetype / google / sudo descomprime Londrina_Shadow.zip -d / usr / share / fonts / truetype / google / sudo descomprime 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 descomprime Vast_Shadow.zip -d / usr / share / fonts / truetype / google /

Te recomiendo que elimines los archivos zip después de la instalación, porque ya no necesitamos esos archivos:

fuentes sudo rm -R

Paso 4: Ejecute la PRUEBA

Ejecutar la PRUEBA
Ejecutar la PRUEBA
Ejecutar la PRUEBA
Ejecutar la PRUEBA

Vaya a la carpeta correcta donde tenemos el archivo de prueba:

cd ~ / eInk_Moon_ISS_PeopleSpace / e-Paper / ShowEInk

Ejecute el archivo de prueba con la versión 3 de Python:

python3 Test001.py

Tendrá un seguimiento de los comentarios mientras se ejecuta el programa.

Y en la pantalla de e-Paper verá los mensajes.

Para cada botón, la pantalla mostrará un mensaje diferente.

Paso 5: Muestre la información de la Luna / Espacio / ISS…

Muestre la información de la Luna / Espacio / ISS…
Muestre la información de la Luna / Espacio / ISS…
Muestre la información de la Luna / Espacio / ISS…
Muestre la información de la Luna / Espacio / ISS…
Muestre la información de la Luna / Espacio / ISS…
Muestre la información de la Luna / Espacio / ISS…
Muestre la información de la Luna / Espacio / ISS…
Muestre la información de la Luna / Espacio / ISS…

Bien, tenemos todos corriendo y ahora queremos ver dónde está la ISS en el mundo, o la fase de la Luna …

Primero debe ejecutar el archivo "ShowInfo.py" (ubicado en "~ / eInk_Moon_ISS_PeopleSpace / e-Paper / ShowEInk").

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

Y ahora, si presiona un botón, tendrá la información programada para este botón:

● Botón 1: Previsión meteorológica.

● Botón 2: Quién está en el espacio y dónde.

● Botón 3: Dónde está la ISS en el mundo.

● Botón 4: Información de la Luna.

Paso 6: ejecútelo como un servicio

Como alternativa, la secuencia de comandos de Python se puede iniciar durante el arranque creando un servicio; más información en

Cree un nuevo archivo llamado ShowInfo.service y copie el contenido a continuación en el nuevo archivo; ajuste la ruta de WorkingDirectory en consecuencia:

[Unidad]

Descripción = 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 = heredar StandardError = heredar Reiniciar = siempre Usuario = pi [Instalar] WantedBy = multi-user.target

Copie el archivo ShowInfo.service en / etc / systemd / system como root:

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

Inicie el servicio:

sudo systemctl iniciar ShowInfo.service

Compruebe si el servicio se está ejecutando:

sudo systemctl status ShowInfo.service

La salida debe ser similar a:

● ShowInfo.service - ShowInfo

Cargado: cargado (/etc/systemd/system/ShowInfo.service; deshabilitado; preajuste del proveedor: habilitado) Activo: activo (en ejecución) desde el viernes 11 de septiembre de 2020 a las 15:17:16 CEST; Hace 14s PID principal: 1453 (python3) CGroup: /system.slice/ShowInfo.service └─1453 / usr / bin / python3 ShowInfo.py 11 de septiembre 15:33:17 eInk systemd [1]: Se inició ShowInfo.

Si el servicio está funcionando bien, puede habilitarlo y reiniciar la Raspberry Pi para cargarlo automáticamente durante el arranque:

sudo systemctl habilitar ShowInfo.service

Para detener el servicio:

sudo systemctl detener ShowInfo.service

Y eso es todo !!!!!

Gracias !!!!!