import network
import urequests
from machine import Pin, I2C
from time import sleep
import bh1750
# إعدادات الواي فاي
ssid = "Wokwi-GUEST"
password = "" # ضع كلمة المرور هنا إذا كانت موجودة
# مفتاح الكتابة في ThingSpeak
api_key = "LWZY7N2A1Q8ETPGJ"
# إعداد I2C - في ESP32: غالباً SDA = 21 و SCL = 22
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
# تهيئة حساس BH1750
sensor = bh1750.BH1750(i2c)
# وضع القراءة المستمرة بدقة عالية
sensor.set_mode(bh1750.BH1750.CONT_HIRES_1)
# الاتصال بشبكة الواي فاي
def connect_wifi():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, password)
print("⏳ جاري الاتصال بالواي فاي...", end="")
while not wlan.isconnected():
print(".", end="")
sleep(0.5)
print("\n✅ تم الاتصال! IP:", wlan.ifconfig()[0])
# إرسال البيانات إلى ThingSpeak
def send_to_thingspeak(lux_value):
url = f"https://api.thingspeak.com/update?api_key={api_key}&field1={lux_value}"
try:
response = urequests.get(url)
print("📤 تم الإرسال إلى ThingSpeak. رد:", response.text)
response.close()
except Exception as e:
print("⚠️ خطأ في الإرسال:", e)
# الحلقة الرئيسية
def main():
connect_wifi()
while True:
lux = sensor.luminance() # قراءة شدة الإضاءة
print("💡 شدة الإضاءة:", lux, "lux")
send_to_thingspeak(lux)
sleep(5) # ThingSpeak يقبل إرسال كل 15 ثانية على الأقل
# استدعاء دالة main
main()