Orange Pi Zero y control de ventilador

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/

Anuncios
Libreelec con ventilador ruidoso

Libreelec con ventilador ruidoso

Se trata de un post para control del ventilador de la Raspberry Pi con la distribución Libreelec. En mi caso la raspberry está siempre encendida porque tiene instalada un servidor Bittorrent (Transmission) funcionando todo el día. Es una solución fantástica pero en el verano necesita del ventilador ya que se calienta mucho, lo malo es que genera un pequeño ruido después de estar un tiempo encendida, así que después de revisar lo que hay al respecto  por internet, he encontrado una solución ideal que describo a continuación.

  •  Instalar Add-ons Raspberry Pi Tools, disponible desde los repositorios por defecto por lo que en una simple búsqueda aparecerá. Este add-on contiene las funciones de control en Python RPi.GPIO que permite controlar el pineado GPIO de la raspberry.

Raspberry Tools Add-ons

  • Añadir script en python de control que activará/desactivará ventilador según temperatura con nombre autoexec.py y en la ubicación /storage/.kodi/userdata/autoexec.py:

#!/usr/bin/env python
# Original Author: Edoardo Paolo Scalafiotti <edoardo849@gmail.com>
# Modified to work on libreElec by Gary Beldon

import os
import time
import signal
import sys
sys.path.append(‘/storage/.kodi/addons/virtual.rpi-tools/lib’)
import RPi.GPIO as GPIO
import subprocess

maxTemp = 55 # The temperature in Celsius after which we trigger the fan
minTemp = 45 # Temp when we turn the fan off
sleepTime = 10 # Read the temperature every n sec, increase or decrease this limit if you want

logfile = “/storage/.kodi/temp/power.log”
pin = 18 # The pin ID, edit here to change it
fanRunning = False

def setup():
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin, GPIO.OUT)
logging(“Initializing.”)
return()

def getCPUtemperature():
temp = subprocess.check_output([‘vcgencmd’, ‘measure_temp’])[5:-3]
return temp
def fanON():
GPIO.output(pin, True)
return()
def fanOFF():
GPIO.output(pin, False)
return()
def checkTemp():
global fanRunning
CPUtemp = float(getCPUtemperature())
if fanRunning==False and CPUtemp>maxTemp:
fanRunning = True
fanON()
logging(“Temp=” + str(CPUtemp) + “C. Switching fan On.”)
if fanRunning==True and CPUtemp<minTemp:
fanRunning = False
fanOFF()
logging(“Temp=” + str(CPUtemp) + “C. Switching fan Off.”)
return()
def logging(message):
logfilehandle=open(logfile,’a’)
logfilehandle.write(time.strftime(“%c”) + ” :- ” + message + “\n”)
logfilehandle.close()
return();

try:
setup()
while True:
checkTemp()
time.sleep(sleepTime)

except KeyboardInterrupt: # trap a CTRL+C keyboard interrupt
logging(“Terminating.”)
GPIO.cleanup() # resets all GPIO ports used by this program

  • Añadir un transistor S8050 conectado al ventilador.  Se puede conseguir por Amazon por unos 2 euros y que dejo a continuación con mi enlace de afiliado:

amazon_transistor  10X Transistor S8050 40V 1,5A 1500mA TO-92

El conexionado del transistor con el ventilador sería el siguiente:

conexionado_raspberry_fan
En mi caso he reciclado un cable de audio interno de los antiguos CDROM de PC, quedando para las pruebas de la siguiente forma:

Una vez montado solo queda ver que funciona, para ello se puede monitorizar las entradas del log configurado en el script:

frambu2:~ # tail -f /storage/.kodi/temp/power.log

Wed Jun 27 15:43:49 2018 :- Temp=55.3C. Switching fan On.

Wed Jun 27 15:48:02 2018 :- Temp=44.5C. Switching fan Off.

Wed Jun 27 15:55:36 2018 :- Temp=55.3C. Switching fan On.

Wed Jun 27 15:59:49 2018 :- Temp=44.5C. Switching fan Off.

Wed Jun 27 16:06:53 2018 :- Temp=55.3C. Switching fan On.

Wed Jun 27 16:10:56 2018 :- Temp=44.5C. Switching fan Off.

Wed Jun 27 16:17:10 2018 :- Temp=55.3C. Switching fan On.

Wed Jun 27 16:20:42 2018 :- Temp=44.5C. Switching fan Off.

Wed Jun 27 16:28:26 2018 :- Temp=55.3C. Switching fan On.

Wed Jun 27 16:32:39 2018 :- Temp=44.5C. Switching fan Off.

Wed Jun 27 16:40:03 2018 :- Temp=55.3C. Switching fan On.

Wed Jun 27 16:45:06 2018 :- Temp=44.5C. Switching fan Off.

Con unas bridas pequeñas y silicona caliente se quedó al final así:

raspberrypi-control-fan-final

Fuentes:

Para instalar las RPi.GPIO y script en python se explica en foro de proyecto Libreelec:

https://forum.libreelec.tv/thread/9472-cooling-fan-control-raspberry-pi-libreelec/

Para el conexionado del transistor y ventilador:

https://github.com/KyleRoss/rpi-fan-controller

Para comprar el transistor S8050 por Amazon:

https://www.amazon.es/gp/product/B01M9CJ4CL/ref=as_li_tl?ie=UTF8&camp=3638&creative=24630&creativeASIN=B01M9CJ4CL&linkCode=as2&tag=ventanasolead-21&linkId=cea12262ce9864c330768f325049d993

Linux Apesta (Linux Sucks)

Por curiosidad me he encontrado un vídeo en youtube que explica de forma sencilla y cómica el absurdo de los FORKs en el mundo de las distribuciones de Linux y Software Libre en general. Por ejemplo el escritorio CINNAMON (fork de GNOME) en la distro de Linux Mint o el proyecto LibreSSL (fork de OpenSSL). Son unos 45 minutos donde Bryan Lunduke de forma divertida hace críticas de como se gestionan los proyectos de Fedora y Ubuntu, el motivo de porqué se eternizan proyectos como el nuevo servidor X Wayland, … temas que en Linux apestan 🙂 …

Router de Jazztel con OpenWrt

Al cambiar de domicilio, he tenido que dar de baja la línea de Jazztel y darme alta en el nuevo domicilio con un nuevo número de teléfono. En el alta me han proporcionado un nuevo router y como el antiguo se quedó sin uso le he instalado una versión de OpenWrt. El modelo de Router es Comtrend AR-5387un y el firmware junto con los detalles de la instalación lo podéis ver en el siguiente hilo del foro de la comunidad SeguridadWireless:

http://foro.seguridadwireless.net/openwrt/openwrt-en-comtrend-ar5387un/

La versión que he instalado ha sido:

Firmware Openwrt
luci + kmod-brcmsmac + wpad-mini + kmod-usb-ohci + kmod-usb2 + kmod-usb-storage + kmod-fs-ext4 + kmod-ath9k-htc + kmod-brcmfmac + kmod-carl9170 + kmod-libertas-usb + kmod-net-zd1201 + kmod-p54-usb + kmod-rt2500-usb + kmod-rt2800-usb + kmod-rt73-usb + kmod-rtl8187 + kmod-rtl8192cu + kmod-zd1211rw
r38342

Lo que más me ha gustado una vez instalada es su facilidad para configurarla como WDS y sus gráficas de red en tiempo real 😛

Luci-test-velocidad

test-de-velocidad3

Como el router tiene un puerto USB hay versiones de OpenWrt con cliente Bittorrent …

http://wiki.openwrt.org/doc/uci/transmission

Así que creo que voy a tener juguete para entretenerme durante un rato 🙂

Backup Academy Certified Professional – Pon a prueba tus conocimientos de backup en entornos virtuales

Backup Academy se trata de un proyecto de comunidad soportado por expertos en almacenamiento y virtualización con un portal en el siguiente enlace http://www.backupacademy.com y dedicado a profesionales IT en especial de almacenamiento. Proporcionan material educacional en backups para entornos virtuales y cloud junto con una certificación gratuita que se consigue tras un examen tipo test basado en sus contenidos.

Lo más interesante que pretende ser neutral a vendedores y productos y a través de su certificación te ponen a prueba para refrescar tus conocimientos y apoyarte en su material multimedia.

Certificaciones en Sistemas de Almacenamiento y salarios

En los últimos años cada vez mas común la especialización en el área de sistemas en almacenamiento y backup. Lo que eran tareas comunes para un administrador UNIX tales como la provisión de almacenamiento o sus copias de seguridad, en grandes entornos de sistemas tienen a sus especialistas con tareas específicas dedicadas exclusivamente al dato y la administración de su ciclo de vida.

Al igual que  un especialista en redes suele tener una certificación que demuestra su competencia en CISCO, tipo CCNA o CCNP, en almacenamiento, redes de almacenamiento y backup hay interesantes y valoradas certificaciones que se han convertido en el estándar de su área. Además destacaría que son muy pocos profesionales los que las poseen, proporcionando al poseedor gran credibilidad a la hora de optar a un empleo de alta cualificación y especialización. Destacaría para los interesados certificaciones de la SNIA que son libre de fabricantes, o específicas de un fabricante como Brocade, Hitachi o EMC.

Si el mercado demanda de perfiles de especialistas junto a que hay pocos certificados, hace que una certificación en cualquier área del ciclo de vida del dato tenga gran valor … y tanto ! Sólo hay que ver el salario medio para un administrador de almacenamiento en EEUU por tera administrado:

salarios2012

O salario por certificación según fabricante.

EMC

salariosEMC

Fuentes:

http://searchstorage.techtarget.com/