import network # للتحكم في الاتصال بشبكة Wi-Fi
import time # للتعامل مع الوقت (sleep، حساب الفروقات)
import machine # للتحكم في عتاد ESP32 (ليست مستخدمة في الكود الحالي)
from umqtt.simple import MQTTClient # مكتبة MQTT مصغرة لمراسلة MQTT
SSID = "Wokwi-GUEST" # اسم شبكة الواي فاي (Wi-Fi)
PASSWORD = "" # لا يوجد كلمة مرور في Wokwi
MQTT_BROKER = "test.mosquitto.org" # عنوان خادم MQTT المجاني
TOPIC_PUB = b"johnesp" # اسم الموضوع (Topic) الذي سترسل إليه الرسائل
def connect_wifi():
print("Connecting to Wi-Fi...")
wlan = network.WLAN(network.STA_IF) # واجهة المحطة (STA)
wlan.active(True) # تفعيل الاتصال
wlan.connect(SSID, PASSWORD) # محاولة الاتصال
while not wlan.isconnected(): # الانتظار حتى يتم الاتصال
time.sleep(0.1)
print("Connected:", wlan.ifconfig()) # طباعة عنوان IP إلخ.
connect_wifi()
client = MQTTClient("John", MQTT_BROKER) # إنشاء عميل MQTT
client.connect() # الاتصال بالسيرفر
print("MQTT connected")
last_heartbeat = time.ticks_ms() # حفظ وقت آخر نبضة
while True:
if time.ticks_diff(time.ticks_ms(), last_heartbeat) > 10000: # مرت 10 ثوانٍ؟
client.publish(TOPIC_PUB, b"I'm alive!") # أرسل الرسالة
print("Sent heartbeat") # طباعة للتأكيد
last_heartbeat = time.ticks_ms() # تحديث وقت آخر نبضة
time.sleep(0.1) # انتظار قصير لتقليل الضغط على المعالج
main()