Add files via upload
This commit is contained in:
186
avtomatski.py
Normal file
186
avtomatski.py
Normal file
@@ -0,0 +1,186 @@
|
||||
import machine
|
||||
from machine import Pin, ADC
|
||||
import DS18B20 as dsb
|
||||
import time
|
||||
import ne555 as ne
|
||||
import math
|
||||
import display
|
||||
import sys
|
||||
import network as net
|
||||
|
||||
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, Pin.PULL_UP) #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
|
||||
vlaga=0
|
||||
temp=0
|
||||
svetloba=0
|
||||
ms=sleeptime*1000
|
||||
|
||||
def updatescreen():
|
||||
global vlaga, temp, svetloba, sleeptime
|
||||
oled.fill(0)
|
||||
oled.text('T: ' + str(temp) + 'C',15,10)
|
||||
oled.text('S: ' + str(svetloba) + ' enot',15,20)
|
||||
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(ms/1000) + 's',0,55)
|
||||
oled.show()
|
||||
active=0
|
||||
|
||||
def carefulsleep():
|
||||
startticks=time.ticks_ms()
|
||||
global ms, active, lasttick, firsttick, exit
|
||||
while time.ticks_diff(time.ticks_ms(), startticks)<ms:
|
||||
updatescreen()
|
||||
if not tipka.value():
|
||||
if firsttick==0:
|
||||
active=1
|
||||
firsttick=time.ticks_ms()
|
||||
lasttick=time.ticks_ms()
|
||||
if time.ticks_diff(lasttick, firsttick)>3000 and active==1:
|
||||
print('ttt')
|
||||
exit=3
|
||||
active=0
|
||||
if time.ticks_diff(time.ticks_ms(), lasttick)>60 and active==1:
|
||||
print("BING!")
|
||||
lasttick=0
|
||||
firsttick=0
|
||||
active=0
|
||||
setsleep(0)
|
||||
print(lasttick, firsttick,time.ticks_diff(lasttick, firsttick))
|
||||
|
||||
|
||||
def setsleep(x):
|
||||
global ms
|
||||
sleeptime=ms/1000
|
||||
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)
|
||||
ms=sleeptime*1000
|
||||
#print('set to', sleeptime)
|
||||
updatescreen()
|
||||
|
||||
#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()
|
||||
global temp, vlaga, svetloba
|
||||
try:
|
||||
temp=dsb.read_temp()
|
||||
except:
|
||||
print('Napaka v branju temperature!')
|
||||
temp='NAPAKA'
|
||||
|
||||
try:
|
||||
svetloba=svet.read()
|
||||
except:
|
||||
print('Napaka v branju svetlobe!')
|
||||
svetloba='NAPAKA'
|
||||
|
||||
try:
|
||||
vlaga=ne.main()
|
||||
except:
|
||||
print('Napaka v branju vlage!')
|
||||
vlaga='NAPAKA'
|
||||
alertled.value(0)
|
||||
lasttick=0
|
||||
firsttick=0
|
||||
|
||||
while exit<1:
|
||||
acq()
|
||||
updatescreen()
|
||||
carefulsleep()
|
||||
|
||||
oled.fill(0)
|
||||
oled.text('<-------------->', 0, 15)
|
||||
oled.text('<NodeMCU Senzor>', 0, 25)
|
||||
oled.text('<-------------->', 0, 35)
|
||||
oled.text(' !Nasvidenje! ', 0, 50)
|
||||
time.sleep(1.5)
|
||||
oled.show()
|
||||
oled.fill(0)
|
||||
oled.show()
|
||||
oled.poweroff()
|
||||
Reference in New Issue
Block a user