Orange Pi Zero y control de ventilador


Al igual que en el anterior post  que puse un ventilador controlado a una raspberry pi con libreelec, en este post voy a realizar lo mismo pero con una orange pi zero con el sistema operativo retropie adaptado –> retrorangepi basado en armbian.

Lo primero es instalar el software de control de las entrada/salida GPIO. Hay un proyecto  WiringOP que permitirá controlar por software la GPIO de la OrangePi y que se instala de la siguiente forma:

git clone https://github.com/zhaolei/WiringOP.git -b h3

cd WiringOP/

./build

A continuación ya se podrá leer el listado de los puertos GPIO de la OrangePi:

gpio readall

 

Los puertos a usar dependerá del tipo de ventilador, en mi caso el ventilador es un ENOKAY de tamaño 25x25x10 mm de 5V y 0.2 A.

Para una Orange Pi Zero  con módulo de expansión y carcasa …

 … se puede colocar el ventilador en la parte superior de la carcasa o en un lateral, para este caso lo he realizado en un lateral. Para ello hay que taladrar en el lado de la carcasa elegido para la disposición del ventilador. En mi caso he usado un minitaladro KKmon siguiente:

 

Quedando de la siguiente forma el ventilador:

Para este caso vamos a utilizar los puertos físicos 2(5V) 6 (0V)  3 (GPIO 8) y el 5 (GPIO 9)de control atendiendo al siguiente esquema:

He realizado la soldadura de solo los primeros pines de la siguiente forma:

 

Una implementación del circuito propuesto en placa protoboard de prueba se ve en el siguiente video, donde se ejecutan los comandos siguientes de prueba:

root@RetrOrangePi:~# gpio mode 8 out
root@RetrOrangePi:~# gpio mode 9 out

root@RetrOrangePi:~# gpio write 8 1
root@RetrOrangePi:~# gpio write 9 1
root@RetrOrangePi:~# gpio write 9 0
root@RetrOrangePi:~# gpio write 8 0

 

Se comprueba de esta forma el funcionamiento correcto del pineado y su control. Ejercicio didáctico que hay que ajustarlo a su foto final, le quitamos los leds, la placa protoboard y las resistencias, el conexionado GPIO9 y al final se nos queda en …

 

Se añade script de control:

root@RetrOrangePi:~/scripts# cat /root/scripts/fan-control.sh

#!/bin/bash

gpio mode 8 out

temperature=$(< /sys/devices/virtual/thermal/thermal_zone1/temp)

lineToLog=”FAN-“

if [ $temperature -gt 55 ]

then

    lineToLog+=”ON-“

    lineToLog+=”$temperature”

    echo $lineToLog $(date) >> /root/scripts/logfan.txt                                   

    gpio write 8 1

else

#    lineToLog+=”OFF-“

#    lineToLog+=”$temperature”

#    echo $lineToLog $(date) >> logfan.txt

    gpio write 8 0                                                          

fi

Y ejecución cada minuto desde cron con limpieza de log de forma semanal:

root@RetrOrangePi:~/scripts# crontab -l

# Edit this file to introduce tasks to be run by cron.

#

# Each task to run has to be defined through a single line

# indicating with different fields when the task will be run

# and what command to run for the task

#

# To define the time you can provide concrete values for

# minute (m), hour (h), day of month (dom), month (mon),

# and day of week (dow) or use ‘*’ in these fields (for ‘any’).#

# Notice that tasks will be started based on the cron’s system

# daemon’s notion of time and timezones.

#

# Output of the crontab jobs (including errors) is sent through

# email to the user the crontab file belongs to (unless redirected).

#

# For example, you can run a backup of all your user accounts

# at 5 a.m every week with:

# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

#

# For more information see the manual pages of crontab(5) and cron(8)

#

# m h  dom mon dow   command

* * * * * /root/scripts/fan-control.sh

0 0 * * 0 > /root/scripts/logfan.txt

 

Un ventilador supone una bajada de temperatura de 15 grados, dejo un pantallazo de OPi-Monitor cuando desactivo el ventilador:

Y cuando se deja activo mediante cron/script:

La observación de la temperatura durante el tiempo se mantiene constante en los 54/56 grados con este sistema:

Los dos picos que aparece se refieren a pequeños intervalos donde se ha desconectado el ventilador.

 

Fuentes:

Para el esquema del circuito del ventilador:

https://www.hackster.io/erhan9049/orange-pi-zero-fan-controller-f39e52

Para GPIO:

https://github.com/zhaolei/WiringOP

Para profundizar:

https://descubriendolaorangepi.wordpress.com/2017/06/20/gpio-en-c-control-automatico-de-ventilador-segun-la-temperatura/

https://descubriendolaorangepi.wordpress.com/2017/08/05/ventilador-automatico-segun-temperatura-en-openeleclibreelec/

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios .