first commit

This commit is contained in:
Aitzol Berasategi 2022-02-03 09:45:55 +01:00
parent 1586bd21de
commit 479ebdd354
10 changed files with 131 additions and 1 deletions

BIN
Fan - Haizemailea.fzpz Normal file

Binary file not shown.

View File

@ -1,2 +1,13 @@
# haizemailea ## Hozte-sistema Raspberry Pi 4 batean
https://apunteak.lainoa.eus/post61f18774a1ea181132376291
#### v0.1:
* Oinarrizko eskema NPN transistorea switch moduan konfiguratuta, **emitter** edo igorlea *GND*-era ezarrita.
#### v0.2:
* Haizemailea martxan dagoela adierazten duen LED bat gehitu da zirkuitoan.
* Haizemailearen deskonexioak sor ditzakeen piko iragankorrengandik zirkuitoa babesteko diodo bat gehitu da *antiparaleloan*.
#### zirkuito simulazioak
https://falstad.com/circuit/circuitjs.html

53
fan_control Normal file
View File

@ -0,0 +1,53 @@
#!/usr/bin/python3
import RPi.GPIO as GPIO
import subprocess
import time
class FanStatus(object):
ON_THRESHOLD = 50 # 50 (gradu zentigradu) Haizemailea pizten da.
OFF_THRESHOLD = 43 # 43 (gradu zentrigadu) Haizemailea itzaltzen da.
SLEEP_INTERVAL = 20 # (segundoak) Tenperatura neurketa maiztasuna.
def __init__(self):
super(FanStatus, self).__init__()
self.FanPin = 27 # pin13
def setup(self):
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(self.FanPin, GPIO.OUT)
def get_temp(self):
output = subprocess.run(['vcgencmd', 'measure_temp'], capture_output=True)
temp_str = output.stdout.decode()
try:
return float(temp_str.split('=')[1].split('\'')[0])
except (IndexError, ValueError):
raise RuntimeError('Akatsa tenperatura eskuratzerakoan')
def main(self):
# Piztu/Itzaldu balioak egokiak direla ziurtatu
if self.OFF_THRESHOLD >= self.ON_THRESHOLD:
raise RuntimeError('Konfiguraketa akatsa -> ITZALTZE tenperatura PIZTE tenperatura baina txikiagoa izan behar da!')
while True:
temp = f_status.get_temp()
if temp > self.ON_THRESHOLD and not GPIO.input(self.FanPin):
GPIO.output(self.FanPin, True)
elif GPIO.input(self.FanPin) and temp < self.OFF_THRESHOLD:
GPIO.output(self.FanPin, False)
time.sleep(self.SLEEP_INTERVAL)
def destroy(self):
GPIO.cleanup()
f_status = FanStatus()
if __name__ == '__main__':
f_status.setup()
try:
f_status.main()
except KeyboardInterrupt:
f_status.destroy()

15
fan_control.service Normal file
View File

@ -0,0 +1,15 @@
[Unit]
Description=Haizemailearen kontrol zerbitzua
After=sysinit.target
DefaultDependencies=no
[Service]
ExecStart=/script-aren/kokapena/fan_control
Restart=always
RestartSec=10
WorkingDirectory=/script-aren/kokapena
StandardOutput=/var/log/syslog
StandardError=/var/log/syslog
[Install]
WantedBy=sysinit.target

BIN
fan_control_muntaia-0.1.fzz Normal file

Binary file not shown.

BIN
fan_control_muntaia-0.1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
fan_control_muntaia-0.2.fzz Normal file

Binary file not shown.

1
requirements.txt Normal file
View File

@ -0,0 +1 @@
RPi.GPIO==0.7.0

21
simulazioa-0.1.txt Normal file
View File

@ -0,0 +1,21 @@
$ 1 0.000005 10.20027730826997 50 5 43 5e-11
s 32 288 112 288 0 1 false
v 448 432 448 368 0 0 40 5 0 0 0.5
r 112 288 208 288 0 680
t 208 288 240 288 0 1 -4.706872324968529 0.2192719221397147 100 default
w 448 368 448 224 0
415 336 80 416 80 0 0.5 6 0.15 0.15 0.02 0.05 1 0
w 416 80 448 80 0
w 448 144 448 224 0
w 448 144 448 80 0
w 240 272 240 224 0
w 240 144 240 224 0
w 240 144 240 80 1
w 240 80 336 80 0
w 240 304 240 432 1
w 240 432 448 432 0
v -80 416 -80 352 0 0 40 3.3 0 0 0.5
w -80 352 -80 288 0
w -80 288 32 288 0
w -80 416 -80 432 0
w -80 432 240 432 0

29
simulazioa-0.2.txt Normal file
View File

@ -0,0 +1,29 @@
$ 1 0.000005 10.20027730826997 50 5 43 5e-11
r 272 224 336 224 0 220
s 32 288 112 288 0 1 false
v 448 432 448 368 0 0 40 5 0 0 0.5
r 112 288 208 288 0 680
t 208 288 240 288 0 1 -4.770399947854952 0.21961158136024417 100 default
162 448 224 336 224 2 default-led 1 0 0 0.01
w 448 368 448 224 0
415 336 80 416 80 0 0.5 6 0.15 0.15 0.02 0.05 1 0
w 416 80 448 80 0
d 336 144 400 144 2 default
w 448 144 448 224 0
w 448 144 448 80 0
w 400 144 448 144 0
w 240 272 240 224 0
w 240 224 272 224 1
w 336 144 240 144 0
w 240 144 240 224 0
w 240 144 240 80 1
w 240 80 336 80 0
w 240 304 240 432 0
w 240 432 448 432 0
v -80 416 -80 352 0 0 40 3.3 0 0 0.5
w -80 352 -80 288 0
w -80 288 32 288 0
w -80 416 -80 432 0
w -80 432 240 432 0
o 0 64 0 4099 0.0000762939453125 0.00009765625 0 2 0 3
38 0 F1 0 1 101 -1 Resistance