Files
nodemcu-fe/avtosenzor.py
kristjan-komlosi b74d42b3dd Update avtosenzor.py
2017-06-28 14:47:04 +02:00

152 lines
3.1 KiB
Python

import machine
from machine import Pin, ADC
import DS18B20 as dsb
import time
import ne555 as ne
import math
import display
import sys
def dane(vpr='Potrdi(d/n)->'):
str=input(vpr)
if str=='d':
return True
else:
return False
try:
display.init()
from display import oled
except:
print('Napaka OLED!')
if dane('Resetiram(d/n)->'):
machine.reset()
oled.text('OLED deluje!',0,0)
oled.show()
#Offline firmware za Vremensko postajo PTIT FE 2017
try:
svet=ADC(0) #svetloba
pin12=tipka=Pin(12, Pin.IN) #tipka
pin13=statusled=Pin(13, Pin.OUT) #status LED
pin15=alertled=Pin(15, Pin.OUT ) #alert LED
except:
print('Napaka I/O!')
if dane('Resetiram(d/n)->'):
machine.reset()
oled.text('I/O postavljen!',0,10)
oled.show()
try:
dsb.setup(0)
except:
print('Napaka Temp. senzorja!')
if dane('Resetiram(d/n)->'):
machine.reset()
oled.text('TS postavljen!',0,20)
oled.show()
time.sleep(1)
oled.fill(0)
oled.text('<-------------->', 0, 15)
oled.text('<NodeMCU Senzor>', 0, 25)
oled.text('<-------------->', 0, 35)
oled.text(' !Pozdravljeni! ', 0, 50)
oled.show()
time.sleep_ms(750)
oled.fill(0)
oled.text('Tipka menja',0,0)
oled.text('casovne razmike',0,10)
oled.text('med meritvami',0,20)
oled.text('0.25/0.5/1/2/10s',0,30)
oled.text('7x tipka=izhod',0,40)
oled.show()
time.sleep(4)
oled.fill(0)
oled.show()
statusled.value(1)
alertled.value(0)
def konec(p):
exit=1
sleeptime=15
count=0
def setsleep(x):
global sleeptime
global count
if count>6:
exit=3
if sleeptime==15:
sleeptime=0.25
elif sleeptime==0.25:
sleeptime=0.5
elif sleeptime==0.5:
sleeptime=1
elif sleeptime==1:
sleeptime=2
elif sleeptime==2:
sleeptime=15
else:
sleeptime=15
time.sleep_ms(15)
count=count+1
tipka.irq(trigger=Pin.IRQ_FALLING, handler=setsleep)
exit=0
temp=0
svetloba=0
def acq():
oled.text('BUSY...',70,55)
alertled.value(1)
oled.show()
oled.fill(0)
global sleeptime
try:
temp=dsb.read_temp()
except:
print('Napaka v branju temperature!')
temp='NAPAKA'
finally:
oled.text('T: ' + str(temp) + 'C',15,10)
try:
svetloba=svet.read()
except:
print('Napaka v branju svetlobe!')
svetloba='NAPAKA'
finally:
oled.text('S: ' + str(svetloba) + ' enot',15,20)
try:
vlaga=ne.main()
except:
print('Napaka v branju vlage!')
vlaga='NAPAKA'
finally:
oled.text('RH: ' + str(vlaga) +' Hz', 15, 30)
oled.text('NodeMCU Senzor',0,0)
oled.text('Uptime: ' + str(time.time()) + 's',5,45)
oled.text('S: ' + str(sleeptime) + 's',0,55)
oled.show()
alertled.value(0)
while exit<1:
if count>6:
exit=3
count=0
acq()
time.sleep(sleeptime)
oled.fill(0)
oled.text('<-------------->', 0, 15)
oled.text('<NodeMCU Senzor>', 0, 25)
oled.text('<-------------->', 0, 35)
oled.text(' !Nasvidenje! ', 0, 50)
oled.show()
time.sleep(1.5)
oled.poweroff()