Software > WeeWX

Proyecto de Weewx (setup.py) + Raspi + Pincho USB-WIFI

(1/15) > >>

jantoni:
ATENCION: Este sistema de instalación ha quedado obsoleto con el lanzamiento de Weewx 5.0

Buenos días....

Ayer vencí a la pereza y me pongo con un proyecto que tengo en mente desde hace tiempo.

Se trata de configurar una Raspi, desde cero, con un pincho WIFI USB para que sea totalmente autónoma, Weewx y dos estaciones:


* Davis Vantage Vue
* Fine Offset GW1000/WH2650
Me diréis que esto ya lo hemos tratado anteriormente. Sí, pero hay ciertas connotaciones interesantes:


* Vamos a utilizar el pincho Wifi más vendido del mercado, el TP-LINK TL-WN725N, que funciona de maravilla, pero es puñetero de iniciar por un tema de drivers
* Vamos a utilizar dos estaciones de forma simultánea con Weewx y vamos a generar informes y gráficos, tanto de cada una de las estaciones, como mezclando datos de una y otra.
* Vamos a utilizar el procedimiento de instalación setup.py. Este procedimiento no es habitual en estas tierras, y tiene muchas ventajas sobre el procedimiento de instalación con paquete Debian. El inconveniente es que nuestro querido script meteowee no va a funcionar, y habrá que reescribirlo más adelante.
* Instalaremos el skin Belchertown, pero básico. Es decir, sin informes de terremotos ni el estado actual del cielo ni previsiones, porque fallan más que aciertan. En su lugar instalaremos el meteograma de yr.no

jantoni:
Este procedimiento debería poder utilizarse en cualquier Raspi.

Por ejemplo en una Raspi que disponga de wifi integrado, nos saltaremos los pasos para instalar los driver, y solo tendremos que hacer la configuración del wifi.

Si utilizas otro pincho Wifi USB es posible que funcione sin necesidad de drivers. Este pincho WN725N es magnífico, pero es puñetero de narices con los drivers. Otros pinchos solo tendrás que escribir la configuración del router.

Una cuestión......esto lo voy a escribir ONLINE.....es decir, según vaya haciendo en mi raspi, iré escribiendo, por lo que iréis viendo el proceso según lo voy haciendo, y hasta que no diga FIN, no estará terminado.

Ah, el procedimiento funcionará igualmente si solo tenéis una estación. Y si tenéis 3 estaciones, pues lo tendréis fácil para modificarlo......o más estaciones.

Cuando terminemos toda la explicación, pruebas y configuración, crearé un script automático, similar a meteowee para que todo sea más sencillo. Pero estaría bien que te leyeras todo el hilo, porque aprenderás mucho más de lo que crees

jantoni:
Empezamos.

Bajamos y grabamos la imagen de Raspberry Pi OS Lite

Aunque podemos usar cualquier imagen, siempre he preferido usar las imágenes sin escritorio ya que todas mis Raspberrys son de gama baja. Si dispones de una Raspberry Pi 3 o 4, puedes usar la imagen con escritorio. No creo que cambie mucho.

Accedemos al repositorio de Raspberry Pi

https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit y descargamos la imagen de Raspberry Pi OS Lite.

A continuación, descomprimimos el fichero y extraemos la imagen (extensión .img).

Grabamos la imagen en una tarjeta SD con nuestro programa favorito para ello. Yo lo hago con Win32diskimager o BalenaEtcher.

Una vez grabada la imagen, la retiramos del PC e insertamos la tarjeta SD en la Raspberry PI (que estará conectado a un monitor o TV y un teclado)

Arrancamos el sistema y esperamos a que nos salga la petición de identificación.

Nos identificamos con el usuario y contraseña por defecto (user=pi password=raspberry)

Bien, ya estamos dentro.

Primera configuración de Raspi y Wifi

Ahora, vamos a preparar a la raspberry para que la próxima vez que arranquemos, nos permita conectarnos por SSH, puesto que la idea es que sea totalmente autónoma (sin monitor, sin teclado ni ratón ni cable de red)

Simplemente tecleamos esto:


--- Código: ---sudo touch /boot/ssh
--- Fin del código ---

Ahora empezamos con la configuración del Wifi de la Raspi para que, la próxima vez que arranquemos, se conecte al Wifi de nuestro router.

Escribimos


--- Código: ---sudo nano /boot/wpa_supplicant.conf
--- Fin del código ---

en el editor escribimos lo necesario para editar la configuración del wifi


--- Citar ---ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=ES

network={
        ssid="ssiddelwifi"
        psk="password de nuestro wifi"
        key_mgmt=WPA-PSK
}
--- Fin de la cita ---

Pulsamos CTRL-X para grabar los cambios (respondemos S o Y en función del idioma establecido en la raspi)

Comprobamos los cambios con


--- Código: ---sudo cat /boot/wpa_supplicant.conf
--- Fin del código ---

Si no es correcto, volvemos a editar el fichero......si todo está bien, continuamos con la configuración del driver.

El driver para este dispositivo Wifi, aparentemente funciona. Puedes ver las redes disponibles, puedes ver que el sistema operativo ha detectado el pincho USB, pero no se va a conectar correctamente (hablamos siempre del WN725N)

Para instalar el driver correcto tecleamos en la Raspi:


--- Código: ---uname -a
--- Fin del código ---

Nos responderá algo como esto:


--- Citar ---pi@raspberrypi:/etc/wpa_supplicant $ uname -a
Linux raspberrypi 5.10.17+ #1403 Mon Feb 22 11:26:13 GMT 2021 armv6l GNU/Linux
pi@raspberrypi:/etc/wpa_supplicant $
--- Fin de la cita ---

Nos fijamos en la versión.....en nuestro caso 5.10.17+ #1403. Asi que debemos buscar el driver para el kernel 5.10.17 compilación 1403.

En el navegador web del PC, nos vamos a http://downloads.fars-robotics.net/wifi-drivers/8188eu-drivers/ y buscamos el driver para nuestro dispositivo. Recordad que si actualizáis el kernel tendréis que volver a instalar los driver.

Bajamos el driver y extraemos los 3 archivos (8188eu.ko, 8188eu.conf y install.sh) del driver en cualquier carpeta

A continuación vamos a la Raspi y la apagamos:


--- Código: ---sudo poweroff
--- Fin del código ---

Extraemos la tarjeta SD de la Raspi y la insertamos en nuestro PC

Abrimos la carpeta ROOT

Copiamos los 3 ficheros del driver, que habíamos extraído anteriormente, en la carpeta ROOT.

Extraemos la tarjeta SD (con la opción de expulsión del Windows) del PC y la insertamos en la Raspi.

Arrancamos la raspi.

En el momento de arrancar, los ficheros /boot/ssh y /boot/wpa_supplicant.conf serán procesados y desaparecerán de /boot. El fichero wpa_supplicant.conf además de ser procesado, será copiado a /etc/wpa_supplicant/wpa_supplicant.conf

Una vez arrancado el sistema, nos identificamos con usuario y contraseña.

Instalamos el driver:


--- Código: ---cd /boot
sudo ./install.sh
--- Fin del código ---

Esperamos que termine.

Reiniciamos


--- Código: ---sudo reboot
--- Fin del código ---

Si todo ha ido bien, tenemos la raspi conectada a nuestro router wifi.

Nos volvemos a identificar y miramos la dirección IP asignada


--- Código: ---ifconfig
--- Fin del código ---


--- Citar ---pi@raspberrypi:/etc/wpa_supplicant $ ifconfig
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b8:27:eb:5e:29:6e  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 6  bytes 570 (570.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 6  bytes 570 (570.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.120  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::6abd:ea0f:f3e4:20f0  prefixlen 64  scopeid 0x20<link>
        ether e8:de:27:20:f1:63  txqueuelen 1000  (Ethernet)
        RX packets 33574  bytes 18287494 (17.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1927  bytes 231114 (225.6 KiB)
        TX errors 0  dropped 3 overruns 0  carrier 0  collisions 0
--- Fin de la cita ---

Veremos la dirección ip asignada, generalmente en el interface wlan0. El disponer de dirección IP significa que todo ha ido correctamente.

Es posible que veas una dirección IP extraña, que empieza por 169. Deja un poco de tiempo hasta que nuestra raspi deje de "negociar" con nuestro router. Si pasados un par de minutos no aparece una dirección IP que reconozcamos, tendremos que revisar el procedimiento.

Ya tenemos nuestra Raspi lista para trabajar con Wifi. Ya podemos desconectar el teclado y el monitor y conectarnos por SSH.

jantoni:
Como es habitual en las instalaciones de Raspberry Pi, ahora nos toca hacer un par de cosas.

Iniciamos raspi-config


--- Código: ---sudo raspi-config
--- Fin del código ---

Nos vamos a Performance Options - GPU Memory y le indicamos una cantidad de memoria para el video de 16. Recordad que vamos a trabajar sin monitor. Pero aunque tengas monitor, con 16 irá bien, siempre que no uses la versión Desktop del S.O.

Después nos vamos a Localisation Options y elegimos Timezone. Elegimos después "None of the above" y luego UTC, pinchamos en OK. Todos mis sistemas funcionan en UTC. Eso no es problema, posteriormente para ver la fecha y hora en el formato que queramos. Pero manejar los servidores (y la raspi no deja de ser un servidor) en formato de hora local no es una buena idea y nos traerá algún problema.

Como vamos a conectarnos a la raspi por SSH no nos hace falta modificar el teclado. Si lo queréis cambiar, a vuestro criterio. El idioma no os recomiendo cambiarlo, al menos de momento.

Siguiente paso es ir a Advanced Options y usar la opción de "Expand filesystem". Con esto el sistema operativo utilizará todo el espacio disponible en nuestra tarjeta SD.

Nos contestará con un mensaje que dice "Root partition has been resized. The filesystem will be enlarged upon the next reboot", pinchamos en OK, volviendo al menú principal.

Y finalizamos pulsando en "Finish", nos preguntará "Would you like to reboot now?", pulsamos en Yes y el sistema se reinicia.

jantoni:
¿Que información voy a necesitar?

Bueno, estamos en Meteoclimatic. Aunque me consta que por ahí, en toda la geografía nacional, se redirige a los usuarios a Meteoclimatic para configurar sus estaciones (¿por qué será?), vamos a dar las instrucciones para configurar todo este invento para que envíe datos a Meteoclimatic.

Por tanto, voy a necesitar esta información para dejarlo todo niquelado:

Ubicación
Latitud de la estación en grados decimales. En mi caso 40.356510
Longitud de la estación en grados decimales (Oeste negativo, Este positivo). En mi caso -3.520050

Códigos de Meteoclimatic
Código de estación en Meteoclimatic: En mi caso ESMAD2800000028522A
El password de nuestra estación en Meteoclimatic. Un churro muy largo que no se puede compartir con nadie, aunque últimamente hay usuarios que lo van dando alegremente, tanto por el foro, como a otras páginas web para que generen la plantilla de Meteoclimatic.

Igualmente nos hará falta tener a mano, los usuarios y contraseñas de aquellos servicios meteorológicos a los que vayáis a subir datos desde Weewx, además de Meteoclimatic. Aquí veremos como hacerlo con Awekas, CWOP, WU, PWSweather, WOW MetOffice y alguna más que ahora no me acuerdo.

Además, configuraremos a Weewx para que envíe nuestros bonitas páginas resultantes a un servidor web.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa