لا أستطيع تنفيذ التصميم داخل المشروع الآن لأن رصيد التنفيذ غير متاح، لذلك لم أضف مكونات أو أوصل مخططًا في Flux. لكن أقدر أوضح لك التوصيل الكامل لكل مكون على breadboard كمرجع عملي.
ملخص النظام
المتحكم الرئيسي: ESP32-CAM AI Thinker
المدخلات:
PIR Motion Sensor: كشف الحركة
DHT11 KY-015: حرارة ورطوبة
LDR ×3: قياس شدة الإضاءة / اتجاه الضوء
FTDI FT232RL: برمجة فقط
المخرجات:
SG90 Servo: تدوير الكاميرا
Active Buzzer: إنذار صوتي
1-Channel Relay Module: تشغيل لمبة/حمل خارجي
Micro SD: تخزين الصور — لكن مهم جدًا: ESP32-CAM AI Thinker يحتوي أصلًا على microSD slot داخلي، واستخدام SD module خارجي مع الكاميرا غالبًا يسبب تعارض GPIO.
تنبيه مهم قبل التوصيل
ESP32-CAM AI Thinker عدد الأرجل المتاحة فيه قليل جدًا لأن الكاميرا والـ microSD الداخلي يستخدمون كثير من GPIOs. لذلك أنصح بشدة:
استخدم فتحة microSD الموجودة على ESP32-CAM نفسها بدل Micro SD Card Module خارجي.
لا تشغل السيرفو والريليه من 5V الخارج من FTDI. استخدم مزود 5V خارجي 2A على الأقل.
لازم توصل كل الأرضي مع بعض:
GND مزود 5V
GND ESP32-CAM
GND FTDI
GND PIR
GND Servo
GND Relay
GND Buzzer
GND sensors
توصيل الطاقة على breadboardمزود 5V خارجي
موجب 5V إلى خط + في breadboard
GND إلى خط - في breadboard
ESP32-CAM
5V على ESP32-CAM إلى خط +5V
GND إلى خط GND
يفضل وضع مكثف:
470µF أو 1000µF بين 5V و GND قريب من السيرفو/ESP32-CAM
100nF بين 5V و GND للتنعيم
جدول التوصيلات المقترح
Table
المكون
طرف المكون
يتوصل مع
النوع
ESP32-CAM
5V
+5V breadboard
Power input
ESP32-CAM
GND
GND breadboard
Ground
PIR Sensor
VCC
+5V
Power
PIR Sensor
GND
GND
Ground
PIR Sensor
OUT
GPIO13
Digital input
SG90 Servo
Red
+5V خارجي
Power
SG90 Servo
Brown/Black
GND
Ground
SG90 Servo
Orange/Yellow
GPIO14
PWM output
Active Buzzer
+
GPIO15 عبر ترانزستور مفضل
Digital output
Active Buzzer
-
GND
Ground
Relay Module
VCC
+5V
Power
Relay Module
GND
GND
Ground
Relay Module
IN
GPIO2 أو GPIO16
Digital output
DHT11 KY-015
VCC
3.3V أو 5V حسب الموديول
Power
DHT11 KY-015
GND
GND
Ground
DHT11 KY-015
DATA/S
GPIO12
Digital input
LDR Sensor 1
AO/DO
GPIO33 غير متاح غالبًا في ESP32-CAM
Input
LDR Sensor 2
AO/DO
غير مفضل مباشرة
Input
LDR Sensor 3
AO/DO
غير مفضل مباشرة
Input
FTDI FT232RL
TX
ESP32-CAM U0R / RX0
Programming
FTDI FT232RL
RX
ESP32-CAM U0T / TX0
Programming
FTDI FT232RL
GND
GND
Ground
FTDI FT232RL
5V
5V ESP32-CAM فقط أثناء البرمجة إذا لا يوجد مزود خارجي
Power
ESP32-CAM
GPIO0
GND أثناء البرمجة فقط
Boot mode
توصيل FTDI FT232RL لبرمجة ESP32-CAMأثناء البرمجة فقط
Table
FTDI
ESP32-CAM
TXD
U0R / RX0
RXD
U0T / TX0
GND
GND
5V
5V
وللدخول في وضع البرمجة:
وصل GPIO0 إلى GND
اضغط Reset أو افصل ووصل الطاقة
ارفع الكود
بعد الرفع افصل GPIO0 من GND
اضغط Reset مرة أخرى للتشغيل العادي
مهم: اجعل FTDI على وضع 5V لتغذية ESP32-CAM من طرف 5V، لكن إشارات UART في ESP32 هي 3.3V. أغلب FTDI يعمل بشكل مقبول، لكن الأفضل ضبط منطق الإشارة على 3.3V إن كان متاحًا.
PIR Motion Sensor
الأطراف غالبًا:
VCC
OUT
GND
التوصيل:
VCC إلى 5V
GND إلى GND
OUT إلى GPIO13
وظيفته:
لا توجد حركة: OUT = LOW غالبًا
توجد حركة: OUT = HIGH
مدخل إلى ESP32-CAM.
SG90 Servo Motor
الأطراف:
أحمر: 5V
بني/أسود: GND
برتقالي/أصفر: Signal
التوصيل:
Red إلى 5V خارجي
GND إلى GND
Signal إلى GPIO14
وظيفته:
خرج PWM من ESP32-CAM
تدوير الكاميرا مثلًا إلى 0° / 90° / 180°
مهم:
السيرفو يسحب تيار عالي لحظيًا، لذلك لا تشغله من FTDI. استخدم 5V خارجي 1A–2A.
Active Buzzer 5–6V
الأطراف:
+
الأفضل توصيله بترانزستور NPN لأن ESP32 لا يتحمل تيار عالي.
توصيل مقترح:
Buzzer + إلى 5V
Buzzer - إلى Collector ترانزستور NPN مثل 2N2222
Emitter إلى GND
Base إلى GPIO15 عبر مقاومة 1kΩ
دايود غير ضروري غالبًا للبازر النشط، لكنه لا يضر إذا كان الحمل حثي
التحكم:
GPIO15 = HIGH → البازر يعمل
GPIO15 = LOW → البازر يتوقف
Relay Module 1 Channel 5V
الأطراف المنطقية:
VCC
GND
IN
التوصيل:
VCC إلى 5V
GND إلى GND
IN إلى GPIO2 أو GPIO16
ملاحظة مهمة:
بعض الريليه modules تكون active-low:
IN = LOW → relay ON
IN = HIGH → relay OFF
أطراف الحمل:
COM
NO
NC
لتشغيل لمبة عند الإنذار:
مصدر الكهرباء للحمل يدخل COM
خرج NO يذهب إلى اللمبة
الطرف الآخر من اللمبة يرجع للمصدر
تحذير:
لو اللمبة تعمل على 220VAC، لازم عزل وحذر شديد. لا تلمس الدائرة وهي موصلة بالكهرباء، واستخدم علبة حماية.
DHT11 KY-015
الأطراف غالبًا:
S أو DATA
VCC أو +
GND أو -
التوصيل:
VCC إلى 3.3V أو 5V حسب الموديول
GND إلى GND
DATA إلى GPIO12
وظيفته:
مدخل بيانات حرارة ورطوبة
يمكن تخزين القراءة مع اسم الصورة أو في ملف log
ملاحظة:
GPIO12 من boot strapping pins في ESP32، وقد يسبب مشاكل إقلاع لو عليه سحب غير مناسب. إذا حصلت مشاكل boot، غيّر توصيل DHT11 إلى GPIO16 إن كان متاحًا.
LDR / Photoresistor Sensors ×3
لو عندك LDR module جاهز غالبًا فيه:
VCC
GND
AO
DO
المشكلة:
ESP32-CAM لا يوفر أرجل ADC كثيرة متاحة بسهولة، ومع استخدام الكاميرا وSD تصبح الأرجل قليلة جدًا.
الحل العملي:
إما تستخدم LDR واحد فقط على GPIO بدخل رقمي DO
أو تضيف ADC خارجي مثل ADS1115 على I2C
أو تستخدم ESP32 عادي بدل ESP32-CAM لو تحتاج 3 LDRs فعليًا
لو module فيه DO:
VCC إلى 3.3V
GND إلى GND
DO إلى GPIO مناسب متاح
يتم ضبط الحساسية من potentiometer
لكن مع ESP32-CAM، إضافة 3 LDR + PIR + Servo + Relay + Buzzer + DHT11 + SD خارجي غير مريحة بسبب نقص الأرجل.
Micro SD Card Module
أنصح بعدم استخدامه هنا لأن ESP32-CAM AI Thinker فيه microSD slot داخلي.
لو استخدمت SD الداخلي:
لا تحتاج توصيل module خارجي
الصور تخزن مباشرة على الكارت داخل ESP32-CAM
مهم:
استخدام SD الداخلي يستهلك GPIOs مثل:
GPIO2
GPIO4
GPIO12
GPIO13
GPIO14
GPIO15
وهذا يتعارض مع بعض التوصيلات أعلاه. لذلك يجب اختيار وضع SD بعناية، أو استخدام WiFi للتخزين بدل SD، أو تقليل عدد الملحقات.
توزيع GPIO أكثر أمانًا
بسبب تعارضات ESP32-CAM، هذا توزيع عملي مبدئي إذا لم تستخدم SD الخارجي:
Table
الوظيفة
GPIO مقترح
PIR OUT
GPIO13
Servo Signal
GPIO14
Buzzer Control
GPIO15
Relay IN
GPIO2
DHT11 DATA
GPIO16
SD Storage
SD الداخلي
لكن قد تظهر تعارضات مع SD حسب وضع المكتبة المستخدمة. إذا أردت أعلى اعتمادية، الأفضل استخدام:
ESP32-CAM للتصوير فقط
ESP32/Arduino ثاني للتحكم في PIR/Servo/Relay/Buzzer/Sensors
التواصل بينهم عبر Serial أو WiFi
أوضاع التشغيل المطلوبةNormal Time-Lapse Mode
عندما PIR = LOW:
البازر OFF
الريليه OFF
السيرفو في وضع standby أو scan بطيء
الكاميرا تلتقط صورة كل 5 ثواني
تحفظ الصورة على SD باسم فيه timestamp
Alert Mode
عندما PIR = HIGH:
السيرفو يتحرك لاتجاه محدد أو يقوم sweep
البازر ON أو يعمل بنمط beep
الريليه ON لتشغيل لمبة تحذير
الكاميرا تلتقط burst صور متتالية
يستمر طالما PIR = HIGH
بعد رجوع PIR = LOW ينتظر ثواني بسيطة ثم يرجع time-lapse
ملاحظة عن timestamps
ESP32-CAM لا يحتوي RTC حقيقي عادة. للحصول على timestamp:
الأفضل استخدام WiFi + NTP للحصول على الوقت من الإنترنت
أو إضافة RTC module مثل DS3231
بدون ذلك، يمكن استخدام millis() فقط، مثل image_0001 أو elapsed time
ما يتبقى عمله داخل Flux عند توفر التنفيذ
تسمية المشروع باسم مناسب مثل: ESP32-CAM Smart Security Breadboard System.
إنشاء schematic يوضح:
ESP32-CAM
PIR
Servo
Relay
Buzzer driver transistor
DHT11
LDR modules
FTDI programming header
Breadboard power rails
توثيق تعارضات GPIO الخاصة بالـ SD الداخلي.
إنشاء جدول wiring نهائي حسب الموديولات الفعلية.
إضافة ملاحظات firmware modes: time-lapse و alert.
مراجعة ERC والتأكد من عدم وجود أرجل طاقة غير موصلة.
أفضل تعديل تصميمي أوصي به: استخدم SD الداخلي في ESP32-CAM، ولا تستخدم SD module خارجي، وشغّل السيرفو والريليه من 5V خارجي مشترك الأرضي مع ESP32-CAM.