El circuito ya se ha realisado para otra naranja, pero justo ahora tomé el soldador, y Orange Pi PC Plus se convirtió en la naranja principal gracias a eMMC y su estabilidad y consume menos electricidad (ahora es importante, todo se está volviendo importante ahora).
Aquí está la esquema de conexión. Transistor S9012, todas las resistencias son 220 Ohm. En la placa, el ventilador está conectado al conector, el rojo negro es importante, pero no hay tal conexión en el circuito porque dibujat en Fritzing es un dolor insoportable.
IMPORTANTE: Interesante, pero este circuito no funciona en absoluto en la Raspberry Pi 3 en el carcasa NesPi: allí la energía proviene de los pines de la carcasa, no de la Raspberry. Pues no, solo el ventilador tiembla un poco, cuando desconecto todo de la base …
Aqui esta la foto de la placa terminada, la resistencia es la misma, la marca es diferente
Enlaces a componentes, quizás ya viejos, los he comprado hace mucho tiempo
Ventilador de 5V 0.2A
https://ru.aliexpress.com/item/Raspberry-PI-Fan-Active-Cooling-Fan-for-Customized-Acrylic-Case-5V-plug-in-and-play-Support/32294328071.html
Mix placas 5×7 4×6 3×7 2×8
Mix de transistoreshttps://ru.aliexpress.com/item/15Values-TO-92-Transistor-Assorted-Kit-S9012-S9013-S9014-S8050-S8550-2N3904-2N3906-BC327-BC337-Tl431/32384690394.html
Para comunicarse con GPIO hay que instalar WiringOP
git clone https://github.com/zhaolei/WiringOP.git -b h3
cd WiringOP
chmod +x ./build
sudo ./build
La forma más fácil es ejecutar un script a través de cron, que mirará la temperatura y ejecutará el arranque del ventilador
Ademas se enciende el LED,si la temperatura es más de 45 grados es rojo, si menos es azul. Verifique la ruta al script
whereis bash
lo interesante, si la ruta no es correcta, entonces el script funcionará desde la consola, pero desde cron no, quien sabra porque
Crearemos un script en el directorio raíz
vi cool.sh
Añádele código
#!/bin/bash C=`/bin/cat /sys/class/thermal/thermal_zone0/temp` if [ $C -ge 45000 ] then /usr/local/bin/gpio mode 1 out&&/usr/local/bin/gpio write 1 off&&/usr/local/bin/gpio mode 3 out&&/usr/local/bin/gpio write 3 on&&/usr/local/bin/gpio write 2 off else /usr/local/bin/gpio write 1 on&&/usr/local/bin/gpio write 3 off&&/usr/local/bin/gpio mode 2 out&&/usr/local/bin/gpio write 2 on fi
hazlo ejecutivo
chmod +x cool.sh
y agregamoslo al horario
crontab -e
la linea
*/1 * * * * /root/cool.sh
y funciona
Pero solo una vez por minuto … pero puedes hacerlo en C y se lanzara una vez por segundo, y es demasiado repetido, hasta habra que pausarlo
Vamos a la carpeta con ejemplos de WiringOP
cd /root/WiringOP/examples
Editamos file
vi acool.c
Añádele código
#include <stdio.h> #include <wiringPi.h> #define LEDB 3 #define LEDR 2 #define COOLER 1 #define WARNING_TEMP 45000 int main (void) { int number1; wiringPiSetup (); pinMode (LEDB, OUTPUT); pinMode (LEDR, OUTPUT); pinMode (COOLER, OUTPUT); for (;;) { FILE *in_file; in_file = fopen("/sys/class/thermal/thermal_zone0/temp", "r"); if (in_file == NULL) { printf("Can't open file for reading.\n"); } else { fscanf(in_file, "%d", &number1); fclose(in_file); } if ( number1 <= WARNING_TEMP) { digitalWrite (LEDB, HIGH); // On digitalWrite (COOLER, HIGH); // Off digitalWrite (LEDR, LOW); // Off delay (500); // mS digitalWrite (LEDB, LOW); // Off delay (500); } else { digitalWrite (LEDR, HIGH); // On digitalWrite (COOLER, LOW); // On delay (50000); // mS } } return 0 ; }
Esa es la ruta al file con temperatura en Armbian /sys/class/thermal/thermal_zone0/temp
PRECAUCIÓN: Resulta que los programas C con ciclos cargan el procesador al 100%, pensandolo pues no hay nada sorprendente aquí. Pero en este script, el LED parpadeante proporciona un ciclo de frenado para que la sobrecarga del CPU no suceda … pero debes estar listo
Compilamos el programma C
make acool
Y ejecutamos
./acool
Y el programa funciona. Cuando la temperatura es menos de 45000 (45 Celsius), una luz azul parpadea, comprueba una vez por segundo (este periodo establece el intervalo de parpadeo: los LEDs juegan un papel importante aquí), cuando se eleva por encima, la luz roja se enciende y el script se congela durante 50 segundos, para no arrancar repentinamente el ventilador.
Este es solo un programa C, no entendí cómo convertirlo en un system demon. Pero simplemente se puede ejecutar desde el principio en boot!
el programma ya compilado, pongo en el directorio root
cp /root/WiringOP/examples/acool /root/acool
editamos cron
crontab -e
cambio la linea por esa nieva
@reboot /root/acool
y funciona!
Deja una respuesta