#MATIC KOBALE

from machine import Pin, ADC
from utime import sleep
import neopixel
import random
import time
import dht
import machine

nl = 16
leds = neopixel.NeoPixel(Pin(2), nl)
gumb = Pin(18, Pin.IN, Pin.PULL_UP)
rdec_gumb = Pin(5, Pin.IN, Pin.PULL_UP)
moder_gumb= Pin(19, Pin.IN, Pin.PULL_UP)

pot1 = ADC(Pin(4, Pin.IN))
potPin1 = 4

d = dht.DHT22(machine.Pin(0))


for i in range(5):              # utripanje v random rdečih odtenkih
    rndBarva = [random.randint(0,255), 0, 0]
    for x in range(nl):
        leds[x] = rndBarva
    leds.write()
    sleep(0.5)
    leds.fill([0,0,0])
    leds.write()
    sleep(0.5)

rdeca = 255
for y in range(5):                  # ledica gre 5x naokoli, vsak krog je temnejši odtenek
    barva = [rdeca, 0, 0]
    for x in range(nl):
        leds[x] = barva
        leds.write()
        sleep(0.25)
        leds.fill([0,0,0])
        leds.write()
    rdeca = rdeca - 30

'''while True:                         # če je rdeč gumb pritisnjen ob koncu kroga se zanka ustavi
    if rdec_gumb.value() == 0:
        break
    rdeca = 255
    barva = [rdeca, 0, 0]
    for x in range(nl):
        if gumb.value() == 0:
            leds[-x] = barva
            leds.write()
            sleep(0.2)
            leds.fill([0,0,0])
            leds.write()
        else:
            leds[x] = barva
            leds.write()
            sleep(0.2)
            leds.fill([0,0,0])
            leds.write()
            print(rdec_gumb.value())
    rdeca = rdeca - 30
    if rdeca <= 0:
        rdeca = 255'''

# če je rdeč gumb pritisnjen ob koncu kroga se zanka ustavi
#  z potencioometrom se upravlja hitrost animacije
while True:                         
    val1 = pot1.read()
    val1 = val1/1000    
    print(val1)
    if rdec_gumb.value() == 0:
        break
    rdeca = 255
    barva = [rdeca, 0, 0]
    for x in range(nl):
        if gumb.value() == 0:
            leds[-x] = barva
            leds.write()
            sleep(val1)
            leds.fill([0,0,0])
            leds.write()
        else:
            leds[x] = barva
            leds.write()
            sleep(val1)
            leds.fill([0,0,0])
            leds.write()
            print(rdec_gumb.value())
    rdeca = rdeca - 30
    if rdeca <= 0:
        rdeca = 255

'''while True:
    print(rdec_gumb.value())'''
            
while True:                 # spreminjanje temperature z DHT-jem na led krogu
    d.measure()
    print(d.temperature())
    #print(d.humidity())

    temperatura = d.temperature()
    temperatura = int(temperatura)
    obarvanostR = int(temperatura*3.18)
    obarvanostM = int(temperatura*6.375)

    if temperatura >= 0:
        for x in range(nl):
            leds.fill([obarvanostR, 0,0])
            leds.write()

    elif temperatura < 0:
        for x in range(nl):
            leds.fill([0, 0,obarvanostM])
            leds.write()

esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
ring1:GND
ring1:VCC
ring1:DIN
ring1:DOUT
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
pot1:GND
pot1:SIG
pot1:VCC
dht1:VCC
dht1:SDA
dht1:NC
dht1:GND
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r