-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfrozen_guardian.py
71 lines (62 loc) · 2.36 KB
/
frozen_guardian.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/python3
#coding: UTF-8
#-------------------------------------------------------------------
#
# FROZEN GUARDIAN
#
# Frozen Guardian est un programme gerant l'alimentation USB d'un
# ventilateur en fonction de la temperature mesuré par un capteur
#
# FG est conçu pour tourner sur Raspberry PI avec Sense Hat.
#
# Pour fonctionner correctement, ce programme est dependant d'un
# autre, 'hub-ctrl', dont les sources sont disponnibles ici :
# https://github.com/codazoda/hub-ctrl.c
# Une fois compile, il faut mettre le programme dans le dossier
# 'frozen' de l'utilisateur pi, qui lancera ce programme '/home/pi/frozen'
#
# Le programme n'a pas de fonction d'arret.
# Il doit etre execute de la façon suivante :
# user@machine:/home/pi/frozen $ sudo ./frozen_guardian.py &
#
# Schema :
# ________ __________________
# | | | |
# | USB | | Raspberry PI |
# | FAN [----------] Sense Hat |
# |________| |__________________|
# ____ ____ ____
# ___ |* *| |____||____|
# |___| < FAN |____| |_x__||____| < RPI with Sense Hat
# | |
# |_______________________| < USB
#
#-------------------------------------------------------------------
# Dev. : Cyril ESCLASSAN
# Contact : @cynex294 on Twitter
# Sources : github.com/cesclass/
# Update : 19.05.11
# Licence : MIT
#-------------------------------------------------------------------
from sense_hat import SenseHat
from time import sleep
from os import system
#-------------------------------------------------------------------
SENSE = SenseHat()
TEMPERATURE = 28 # 28°C / Temperature de declenchement
FROST_TIME = 300 # 300s = 5 min
CHECK_TIME = 20 # 20s
fan_on = lambda: system('/home/pi/frozen/hub-ctrl -h 0 -P 2 -p 1')
fan_off = lambda: system('/home/pi/frozen/hub-ctrl -h 0 -P 2 -p 0')
#-------------------------------------------------------------------
def main():
while True :
if SENSE.get_temperature() > TEMPERATURE :
fan_on()
sleep(FROST_TIME)
elif SENSE.get_temperature() < TEMPERATURE :
fan_off()
sleep(CHECK_TIME)
#-------------------------------------------------------------------
if __name__ == '__main__' :
main()