import network
import urequests
from machine import ADC, Pin
import time
# ---- Wi-Fi Credentials ----
WIFI_SSID = "YOUR_WIFI_SSID"
WIFI_PASSWORD = "YOUR_WIFI_PASSWORD"
# ---- ThingSpeak API ----
THINGSPEAK_API_KEY = "28AC8HF7GNG2479W" # Replace with your Write API Key
THINGSPEAK_URL = "https://api.thingspeak.com/update"
# ---- Hardware Setup ----
adc = ADC(Pin(26)) # Potentiometer on GP26 (ADC0)
led = Pin(15, Pin.OUT) # Alert LED
# ---- Connect to Wi-Fi ----
print("Connecting to Wi-Fi...")
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(WIFI_SSID, WIFI_PASSWORD)
while not wlan.isconnected():
print(".", end="")
time.sleep(1)
print("\nConnected to Wi-Fi!")
print("IP Address:", wlan.ifconfig()[0])
# ---- Main Loop ----
while True:
# Read humidity value
raw_value = adc.read_u16()
humidity = (raw_value / 65535) * 100 # Scale 0-100%
print(f"Humidity: {humidity:.2f}%")
# Alert if humidity > 80%
if humidity > 80:
led.value(1)
print("⚠️ ALERT: High Humidity!")
else:
led.value(0)
# Send data to ThingSpeak
try:
response = urequests.get(f"{THINGSPEAK_URL}?api_key={THINGSPEAK_API_KEY}&field1={humidity:.2f}")
print("ThingSpeak response:", response.text)
response.close()
except Exception as e:
print("Error sending data:", e)
time.sleep(3) # ThingSpeak free accounts require a 15-second delay