import network
import urequests
import time
import dht
import ujson
from machine import Pin
# Inisialisasi sensor DHT22 (pakai GPIO 14)
dht_sensor = dht.DHT22(Pin(14))
# Inisialisasi LED (pakai GPIO 2, biasanya LED built-in ESP32 di Wokwi)
led = Pin(2, Pin.OUT)
led.value(1) # LED menyala saat program aktif
# Setup WiFi
ssid = "Wokwi-GUEST" # Atau WiFi lain kalau kamu pakai simulator WiFi
password = ""
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect(ssid, password)
print("Menghubungkan ke WiFi...")
while not wifi.isconnected():
time.sleep(1)
print("✅ WiFi Terhubung:", wifi.ifconfig())
# URL server Flask kamu (dari ngrok)
FLASK_URL = "https://251e-35-245-117-53.ngrok-free.app/kirim" # Ganti dengan URL ngrok dan endpoint /kirim
# Kirim data setiap 10 detik
try:
while True:
try:
dht_sensor.measure()
suhu = dht_sensor.temperature()
kelembapan = dht_sensor.humidity()
print(f"Suhu: {suhu}°C, Kelembapan: {kelembapan}%")
# Kirim data ke server Flask dalam format JSON
data = ujson.dumps({"suhu": suhu, "kelembapan": kelembapan})
headers = {'Content-Type': 'application/json'}
response = urequests.post(FLASK_URL, data=data, headers=headers)
print("Server response:", response.text)
response.close()
except Exception as e:
print("❌ Gagal baca/kirim data:", e)
time.sleep(10)
except KeyboardInterrupt:
print("Program dihentikan.")
led.value(0) # Matikan LED saat program berhenti