import network
import urequests
import time
from machine import Pin
# Wi-Fi credentials
WIFI_SSID = "Wokwi-GUEST"
WIFI_PASSWORD = ""
# Adafruit IO credentials
ADAFRUIT_IO_USERNAME = "TK_Tech"
ADAFRUIT_IO_KEY = "aio_iHIv42jNU58Y6CHNJHOzfFHcNUWX"
FEED_NAME = "led-control"
# Adafruit IO URL
ADAFRUIT_IO_URL = f"https://io.adafruit.com/api/v2/{ADAFRUIT_IO_USERNAME}/feeds/{FEED_NAME}/data"
# LED setup
LED_PIN = 15
led = Pin(LED_PIN, Pin.OUT)
# Connect to Wi-Fi
def connect_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(WIFI_SSID, WIFI_PASSWORD)
print("Connecting to Wi-Fi...")
while not wlan.isconnected():
time.sleep(1)
print(".", end="")
print("\nWi-Fi connected!")
print("IP:", wlan.ifconfig()[0])
# Fetch the latest Adafruit IO feed value
def fetch_feed_value():
try:
headers = {"X-AIO-Key": ADAFRUIT_IO_KEY}
response = urequests.get(f"{ADAFRUIT_IO_URL}/last", headers=headers)
if response.status_code == 200:
data = response.json()
value = data["value"]
print(f"Feed value: {value}")
return value
else:
print(f"Failed to fetch feed value. HTTP Status Code: {response.status_code}")
return None
except Exception as e:
print("Error:", e)
return None
# Control LED based on feed value
def control_led(feed_value):
if feed_value == "ON":
led.value(1)
print("LED turned ON")
elif feed_value == "OFF":
led.value(0)
print("LED turned OFF")
else:
print("Invalid feed value. No action taken.")
# Main program
def main():
connect_wifi()
while True:
feed_value = fetch_feed_value()
if feed_value:
control_led(feed_value)
time.sleep(10) # Check feed every 10 seconds
if __name__ == "__main__":
main()