3ENGINE

Programación y otros cachivaches

Etiqueta: Orange PI Zero

Tecnologia

Orange pi: control automático de un ventilador


Hola! a continuación un pequeño tutorial de cómo añadir un pequeño ventilador a un orange pi para mantener a raya la temperatura del procesador. Dependiendo del uso que le vayas a dar a tu Orange Pi, puede ser necesario añadirle un pequeño ventilador. Si sólo quieres que se encienda el ventilador cuando la temperatura del procesador suba, sigue leyendo

Conectar ventilador a la Orange Pi

Vamos a hacer uso de una de las GPIO de la Orange Pi para enviar una señal al ventilador y otros dos pines para alimentarlo. El esquema es el siguiente:

Hay esquemas mas sofisticados. Yo he elegido el mas sencillo. Sólo nesitamos un transistor de baja potencia NPN. Por ejemplo un 2N2222 y una resistencia de 1K (aprox). Utilizo el GPIO 7 para enviar la señal para activar/desactivar el ventilador, pero por supuesto se puede usar el GPIO que querais. Yo tengo una Orange Pi Zero. Aqui teneis el conexionado

Y asi quedaria una vez instalado

Programación del ventilador

Primero hay que comprobar si funciona el comando gpio. Nos conectamos por ssh y tecleamos lo siguiente:

Sino reconoce gpio entonces aqui las instrucciones para instalarlo.

El siguente paso es crear una carpeta que se llame Fan y dentro de la carpeta crear un fichero fancontrol.sh con permisos de ejecución (chmod +x fancontrol.sh) que contendrá el siguiente script:

#!/bin/bash

echo "Pres CTRL+C to stop..."
gpio mode 7 out

for (( ; ; ))
do

   temperature=$(< /sys/devices/virtual/thermal/thermal_zone0/temp)
   gpio=$(gpio read 7)

   if [ $gpio -eq "0" ]
   then
     if [ $temperature -gt 67000 ]
     then
       echo "temperature: $temperature > FAN ON"
       gpio write 7 1
     fi
   else
     if [ $temperature -lt 49000 ]
     then
       echo "temperature: $temperature > FAN OFF"
       gpio write 7 0
     fi
   fi

   sleep 10s
done

Este script lo que hace es obtener cada 10 segundos la temperatura del procesador. Si excede los 67ºC envia una señal de encendido por el GPIO 7. Cuando la temperatura baja de los 49ºC envia una señal de apagado.

Crear un servicio

Por último queremos que este script corra siempre en el sistema. Necesitamos instalar el script como servicio. En este link explico cómo hacer esto.

El primer paso es crear un fichero en /etc/systemd/system con extensión .service

cd /etc/systemd/system/
touch fancontrol.service

Con el siguiente contenido.

[Unit]
Description=FanControl
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=5
User=root
ExecStart=/root/Fan/fancontrol.sh

[Install]
WantedBy=multi-user.target

Y por último registramos y arrancamos el servicio

systemctl enable fancontrol.service
systemctl start fancontrol.service

Averiguar el estado del servicio

Para averiguar el estado del servicio y comprobar cuando se arranca y para el ventilador, podemos hacer uso de systemctl status.




Tecnologia

Puesta en marcha y configuracion Wifi de Orange PI Zero


Orange PI Zero (OPI) es un mini ordenador de 7 euros que funciona con Android, Ubuntu, Debian. Utiliza el AllWinner H2 SoC y tiene 256MB/512MB DDR3 SDRAM

Puesta en marcha y configuración Wifi de una Orange PI Zero

Paso 1: Instalar SO

1. Descargar de armbian la ultima versión estable del SO para la OPI. Me recomiendan Ubuntu Xenial server legacy kernel como versión solo por linea de comandos o la Ubuntu Xenial desktop legacy kernel si necesitamos desktop.

La OPI Zero no dispone de salida HDMI. Pero dispone de salida de video compuesto. Dos opciones. Puedes adquirir la placa de expansión para la OPI Zero:

expboard

O bien fabricarte uno casero y mediante un adaptador RCA conectar la OPI a un monitor o a una TV:

rca_opi

2. Descargar un instalador para instalar el SO en la tarjeta SD. Yo recomiendo bajarse la versión portable que es standalone y por lo tanto no instala nada en el PC. No preocuparse si Windows no reconoce la tarjeta SD una vez que etcher ha instalado el SO.

etcher

3. Opcional. Si etcher no reconoce la tarjeta micro SD, intenta formatearla a ver si hay suerte. Sigue las instrucciones de como formatear una tarjeta sd (para linux):

  1. Conectar la tarjeta micro SD
  2. Identificar nuestra tarjeta (por ejemplo sdc)
    > lsblk
    ... o bien ...
    > fdisk -l
    
  3. Crear partición (por ejemplo sdc)
    > sudo parted /dev/sdc
    
  4. Introducir contraseña de root
  5. Crear etiqueta
    > mklabel msdos
    
  6. Crear partición única
    > mkpart primary fat32 1MiB 100%
    
  7. Salir
    > quit
    

Paso 2: Configurar WIFI

1. Conectar Orange PI Zero (OPI) al router mediante cable ethernet
2. Enchufar un cargador de smartphone de 5V y 2A (recomendado) al OPI
3. Esperar unos minutos, se tiene que encender una luz verde en la placa y una luz roja debe parpadear
4. Averiguar IP asignada al OPI. Por ejemplo con colasoft MAC scanner o desde la consola mediante un PING a la IP de broadcast (192.168.1.255)
colasoft
5. Conectarse mediante SSH al OPI. Por ejemplo con MobaXterm user: root / password: 1234
Puesta en marcha y configuracion Wifi de Orange PI Zero
6. Nos pide que cambiemos el password del usuario root. Lo hacemos.
7. Ahora nos pide crear un usuario para el trabajo diario. Lo hacemos.
8. Rebotamos y esperamos 1 minuto

> reboot

9. Actualizar el sistema (este paso puede tardar bastante y es opcional)
> sudo apt-get update
> sudo apt-get upgrade

10. Configurar wifi con nmtui
> nmtui

11. En el menu seleccionar “activate a connection”
tui activate connection
12. Elegimos el SSID (el nombre de tu wifi) que nos interese
13. Introducimos la contraseña
14. Editamos la conexión para que la IP asignada al OPI sea siempre fija y así no tener que averiguar la IP asignada cada vez que necesitemos conectarnos por terminal al OPI.
Puesta en marcha y configuracion Wifi de Orange PI Zero
15. Para activar el wifi al arranque, editar el archivo /etc/rc.local y añadir la línea ‘nmtui connect
> nano /etc/rc.local

16. Reiniciar (reboot) y retirar el cable de red. Al volver a encenderse, la OPI debería funcionar por wifi.