import machine
import network
import urequests
import time
# ThingSpeak API settings
THINGSPEAK_API_KEY = "TSF3NPYXCYBEMGQX"
THINGSPEAK_URL = "https://api.thingspeak.com/update"
# GPIO setup
mq2 = machine.ADC(26) # Analog input from MQ2
led = machine.Pin(15, machine.Pin.OUT)
# WiFi credentials
SSID = "One"
PASSWORD = "i2n8ghxc"
# Threshold value
THRESHOLD = 500 # Adjust this value as needed
# Connect to WiFi
print("Connecting to WiFi...")
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(SSID, PASSWORD)
while not wlan.isconnected():
print(".", end="")
time.sleep(0.5)
print(" Connected!")
# Main loop
while True:
gas_value = mq2.read_u16() >> 4 # Normalize to 0-4095 range
print("Gas value:", gas_value)
# Send to ThingSpeak
try:
response = urequests.get(
f"{THINGSPEAK_URL}?api_key={THINGSPEAK_API_KEY}&field1={gas_value}"
)
print("Data sent to ThingSpeak:", response.text)
response.close()
except:
print("Failed to send data")
# LED alert
if gas_value > THRESHOLD:
led.value(1)
else:
led.value(0)
time.sleep(15) # ThingSpeak accepts data every 15 sec