from blynkLib import Blynk # Blynk library
from machine import I2C, Pin, SoftI2C, sleep # Hardware libraries
import time # Timing functions
import network
from i2c_lcd import I2cLcd
import dht
BLYNK_AUTH_TOKEN = "IS6Ux5UuPWHZNgEAioJf_BkbzD_LxYI1"
# Initilization
led=Pin(2,Pin.OUT)
sensor_dht = dht.DHT22(Pin(15))
i2c = SoftI2C(scl=Pin(22), sda=Pin(21))
lcd = I2cLcd(i2c, 0x27, 2, 16)
V0 =0
V1=1
wifi= network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect("Wokwi-GUEST","")
while not wifi.isconnected():
pass
print("Wifi Connected Successfully")
blynk= Blynk(BLYNK_AUTH_TOKEN)
#Blink printing function
def blynk_tempratur(value):
blynk.virtual_write(V0,value)
def blynk_humidity(value):
blynk.virtual_write(V1,value)
def blynk_rainfall():
pass
def blynk_pressuare():
pass
# --- Functions ---
def dht11_sensor():
sensor_dht.measure()
def rain_sensor():
pass
# Read rain sensor value and update Blynk virtual pin
# ... (implementation similar to C++ code)
def pressure():
pass
# Read BMP180 pressure and temperature and update Blynk virtual pin
# ... (implementation using bmp180 library)
def led_control(value):
if int(value[0])==1:
led.on()
else:
led.off()
def i2c_lcd_print():
dht11_sensor()
lcd.move_to(0,0)
lcd.putstr('Temp %.1fC'%sensor_dht.temperature())
lcd.move_to(0,1)
lcd.putstr('Hum %.1f'%sensor_dht.humidity())
blynk_tempratur(sensor_dht.temperature())
blynk_humidity(sensor_dht.humidity())
blynk.on("V4",led_control)
# --- Main Loop ---
while True:
blynk.run() # Run Blynk
i2c_lcd_print()
dht11_sensor() # Call sensor functions
rain_sensor()
pressure()
time.sleep_ms(100) # Delay between readings