from machine import Pin
import time
import network
from umqtt.simple import MQTTClient
# Cấu hình nút nhấn thay cho PIR
pir = Pin(14, Pin.IN, Pin.PULL_DOWN)
# Thông tin WiFi và MQTT
WIFI_SSID = "Wokwi-GUEST"
WIFI_PASS = ""
MQTT_SERVER = "broker.hivemq.com" # MQTT broker miễn phí
MQTT_TOPIC = b"wokwi/pir"
# Kết nối WiFi
def connect_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print("Đang kết nối WiFi...")
wlan.connect(WIFI_SSID, WIFI_PASS)
while not wlan.isconnected():
time.sleep(0.5)
print("WiFi đã kết nối:", wlan.ifconfig())
# Kết nối MQTT
def connect_mqtt():
client = MQTTClient("esp32-pir", MQTT_SERVER)
client.connect()
print("Đã kết nối MQTT")
return client
# Chương trình chính
connect_wifi()
client = connect_mqtt()
last_state = 0
while True:
current_state = pir.value()
if current_state != last_state:
msg = b"Motion" if current_state else b"NoMotion"
print("Gửi:", msg)
client.publish(MQTT_TOPIC, msg)
last_state = current_state
time.sleep(0.2)