Created
February 18, 2016 14:21
-
-
Save kloneets/68e382d2594386638899 to your computer and use it in GitHub Desktop.
Termo regulācija caur wifiplug un usb releju.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import time | |
import datetime | |
import Adafruit_DHT | |
from relay import Relay | |
from subprocess import check_output | |
# te es definēju vēlamās temperatūras (DHT11 mēdz kļūdīties par +/- 1 grādu pēc Celsija) | |
maxTempNormal = 23 | |
maxTempHollyday = 20 | |
# te es norādu sava USB releja kanālu (jo man taču ir divi) | |
relayChannel = 1 | |
relay = Relay() | |
# šī funkcija pārbauda vai mans wifi slēdzis ir ieslēgts. Vairāk https://github.com/kloneets/wifiplug-java-api | |
# neaizmirsti, ka tev jāievada savi wifi plug parametri | |
# šo, protams, palaiž caur konsoli un WifiPlug.jar jābūt kaut kur novietotam | |
def wifiPlugOn(): | |
return str(check_output("java -jar ./WifiPlug.jar [email protected] parole wifiplugID list", shell=True)).find('Currently ON') > -1 | |
# Programma strādā visu laiku, kamēr nav kāds nospiedis ctrl + c | |
while True: | |
try: | |
# nosakam temperatūru un mitrumu no sava sensora un parādam to uz ekrāna | |
humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11, 4) | |
print "Temperature: " + str(temperature) | |
# es visus grādus logoju, ja nu sagribās uztaisīt kādu grafiku vēlāk | |
f = open('log.txt', 'a+') | |
f.write(str(datetime.datetime.now().strftime("%d.%m.%Y %H:%M:%S")) + ';' + str(humidity) + ';' + str( | |
temperature) + '\n') | |
f.close() | |
# nosakam nedēļas dienu, lai zinātu vai ir brīvdiena vai darba diena | |
today = datetime.datetime.today().weekday() | |
# paskatamies, kura stunda ir pašlaik, lai zinātu vai ir darba laiks vai vairs nav | |
nowHour = int(datetime.datetime.now().strftime("%H")) | |
# ja ir darba diena | |
if today < 6: | |
# ja ir darba laiks | |
if nowHour > 5 and nowHour < 20: | |
# ja telpā ir pārāk maza temperatūra | |
if temperature < maxTempNormal: | |
# pārbaudam vai wifiplug ir izslēgts (switch on if off) un ieslēdzam, ja izslēgts | |
if not wifiPlugOn(): | |
check_output("java -jar ./WifiPlug.jar [email protected] parole wifiplugID on", shell=True) | |
#to pašu izdaram ar releju | |
if not relay.is_on(relayChannel): | |
relay.on(relayChannel) | |
# nav darba laiks, tāpēc temperatūras ir aukstuma režīmā | |
else: | |
if wifiPlugOn(): | |
check_output("java -jar ./WifiPlug.jar [email protected] parole wifiplugID off", shell=True) | |
#check if relay on (switch on if off) | |
if relay.is_on(relayChannel): | |
relay.off(relayChannel) | |
# vairs nav darba laiks un temperatūras nometam uz aukstuma režīmu | |
else: | |
if temperature < maxTempHollyday: | |
#check if wifiplug on (switch on if off) | |
if not wifiPlugOn(): | |
check_output("java -jar ./WifiPlug.jar [email protected] parole wifiplugID on", shell=True) | |
#check if relay on (switch on if off) | |
if not relay.is_on(relayChannel): | |
relay.on(relayChannel) | |
else: | |
if wifiPlugOn(): | |
check_output("java -jar ./WifiPlug.jar [email protected] parole wifiplugID off", shell=True) | |
#check if relay on (switch on if off) | |
if relay.is_on(relayChannel): | |
relay.off(relayChannel) | |
# ir brīvdiena un menedžējam kā pienākas brīvdienai | |
else: | |
if temperature < maxTempHollyday: | |
#check if wifiplug on (switch on if off) | |
if not wifiPlugOn(): | |
check_output("java -jar ./WifiPlug.jar [email protected] parole wifiplugID on", shell=True) | |
#check if relay on (switch on if off) | |
if not relay.is_on(relayChannel): | |
relay.on(relayChannel) | |
else: | |
if wifiPlugOn(): | |
check_output("java -jar ./WifiPlug.jar [email protected] parole wifiplugID off", shell=True) | |
#check if relay on (switch on if off) | |
if relay.is_on(relayChannel): | |
relay.off(relayChannel) | |
# pārbaudam temperatūru ik pa piecām minūtēm | |
time.sleep((60 * 5)) | |
# ja lietotājs nospiež ctrl + c, tad beidzam darbu | |
except (KeyboardInterrupt, SystemExit): | |
print "\nInterrupted by user" | |
break |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment