RTL-SDR ile kullanmak için elimdeki OrangePi-Zeroyu kullanmak istedim. Anten kablosu kısa olsun, besleme ile uğraşmayayım diye, antenin dibine, su geçirmez kutu içine Zero’yu koydum.
Zeronun beslemesini POE adaptör ile yaptım. Pasif POE adaptör 24V veriyor. Zero’da bu 24V’u alarak, regülatör devresi ile 5V’a düşürdüm.
Genel olarak zero’da aşırı ısınma problemi var. Benim modülüm de, boşta 70-80 dereceleri buluyor.
Dış ortamda, yazın da çalışacağını düşünerek bir fan eklemek istedim.
Zeroda sistem sıcaklığını aşağıdaki komut ile takip edebilirsiniz.
sudo armbianmonitor -m
Öncelikle network ayarlarımızı yapalım.
aşağıdaki komutla, “interfaces” dosyasını açalım. Ve içine gerekli eklemeleri yapalım,
kaydedip reboot yapalım.
sudo nano /etc/network/interfaces
#Local loopback
auto lo
iface lo inet loopback
#Ethernet Static IP
auto eth0
allow-hotplug eth0iface eth0 inetstatic
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
////////////////////////////////////////////////////////////////////////////////////////////////
Sıra geldi Python kurulumuna;
sudo apt-get update
sudo apt-get install python-dev
git git clone https://github.com/Jeremie-C/OrangePi.GPIO
cd /OrangePi.GPIO
sudo python setup.py install
Python ile GPIO erişimi ve örneklere bu linlten erişebilirsiniz.
https://arrhythmicobsession.wordpress.com/2020/06/30/attaching-a-temperature-controlled-cooling-fan-on-an-orange-pi-zero-plus/
Bu komut ile sistem sıcaklığını okuyabilirsiniz. Biz de kod içinde bunu kullanacağız. (zone1 yaparsanız, GPU sıcaklığını okursunuz)
cat /sys/class/thermal/thermal_zone0/temp
Bir py dosyası oluşturun ve içine aşağıdakileri kopyalayın.
#!/usr/bin/env python # -*- coding: utf-8 -*- import OPi.GPIO as GPIO from time import sleep # this lets us have a time delay GPIO.setboard(GPIO.ZEROPLUS) # Orange Pi ZERO PLUS board GPIO.setmode(GPIO.BOARD) # set up BOARD BCM numbering GPIO.setup(7, GPIO.OUT) file= open("/sys/class/thermal/thermal_zone0/temp", "r") tx = int(file.read()) file.close() print tx if tx > 40000: GPIO.output(7, 1) else: GPIO.output(7, 0) #GPIO.cleanup()
kodumuzu çalıştıralım.
sudo python autofan.py
Sıcaklık 40 derece üstüne çıktığında fan çalışmaya başlayacaktır.
Fan bağlantısını şu şekilde yapabilirsiniz.
GPIO.7 pinini, bir mosfetin “G” ucuna bağlayın. (2N7000 olabilir)
Mosfetin “S” ucu şasede olacak, “D” ucu da, fanın eksi ucuna bağlanacak. Fanın artı ucu da, beslemeye bağlanacak (5V).
Programı periyodik olarak çalıştırmak için “crontab” uygulamasını kullanabilirsiniz. Yukarıda verdiğim linkte bununla ilgili detay bulabilirsiniz.