from machine import Pin, #I2C
# from dht20 import DHT20
from neopixel import NeoPixel
from utime import sleep_ms
from random import uniform
import network
from BlynkLib import Blynk
from BlynkTimer import BlynkTimer
sw = 0
led = Pin(48, Pin.OUT)
# np = NeoPixel(Pin(48), 1) # only 1 LED on board; GPIO48 ESP32-S3;
# ---------------------------------------------------------------------------
# i2c = I2C(1, scl=Pin(5), sda=Pin(4)) # OLED addr: 0x3c, DHT20 addr: 0x38
# dht20 = DHT20(0x38, i2c)
# def my_dht20():
# try:
# measurements = dht20.measurements
# return measurements['t'], measurements['rh']
# except OSError as e:
# print("Blad z DHT20:", e)
# return 0.0, 0.0
# ===========================================================================
WIFI_SSID = 'Wokwi-GUEST'
WIFI_PASS = ''
wifi = network.WLAN(network.STA_IF)
if not wifi.isconnected():
print("Connecting to WiFi...")
wifi.active(True)
wifi.connect(WIFI_SSID, WIFI_PASS)
while not wifi.isconnected():
print('.',end='')
sleep_ms(100)
print('\nIP:', wifi.ifconfig()[0])
# ===========================================================================
BLYNK_AUTH = 'your_auth_token'
blynk = Blynk(BLYNK_AUTH)
@blynk.on("connected")
def blynk_connected(ping):
print('Blynk ready. Ping:', ping, 'ms')
@blynk.on("disconnected")
def blynk_disconnected():
print('Blynk disconnected')
@blynk.on("V2")
def v2_write_handler(value):
# print('Current value: {}'.format(value[0])) # value: <class 'list'> ['1']
global sw
sw = int(value[0])
timer = BlynkTimer()
# ---------------------------------------------------------------------------
def send_sensor():
# temperature, humidity = my_dht20()
global sw
if sw:
# np[0] = (0, 10, 0)
# np.write()
led.on()
t = uniform(18, 25)
h = uniform(40, 70)
blynk.virtual_write(0, "{:.2f}".format(t))
blynk.virtual_write(1, "{:.2f}".format(h))
# blynk.virtual_write(0, "{:.2f}".format(temperature))
# blynk.virtual_write(1, "{:.2f}".format(humidity))
# np[0] = (10, 0, 10)
# np.write()
led.off()
sleep_ms(300)
led.on()
# np[0] = (0, 10, 0)
# np.write()
else:
led.off()
# np[0] = (0, 0, 0)
# np.write()
timer.set_interval(3, send_sensor)
# ---------------------------------------------------------------------------
while True:
blynk.run()
timer.run()