الجمعة، 5 يونيو 2026

باور بي دي - مزود طاقة قابل للبرمجة بمنفذ USB-C PD/PPS لوحدة ESP32

PowerPD عبارة عن وحدة تزويد طاقة USB-C PD/PPS صغيرة الحجم ومحلل PD مبني حول وحدة تحكم دقيقة ESP32، ووحدة تحكم AP33772S USB-C PD sink،



المواد المستخدمة في هذا المشروع

مكونات الأجهزة

إسبريسيف ESP32


مشفّر دوّار مع زر ضغط

أردوينو أونو

لوحة دوائر مطبوعة مخصصة من نيكست بي سي بي

تطبيقات برمجية وخدمات عبر الإنترنت

بيئة تطوير أردوينو المتكاملة

أوتوديسك فيوجن

أدوات يدوية وآلات تصنيع

طابعة ثلاثية الأبعاد (عامة)

القصة

أصبحت شواحن USB-C منتشرة في كل مكان الآن. يمتلك معظمنا شاحن PD بقدرة 30 واط، أو 65 واط، أو حتى 100 واط، موجودًا في مكان ما. عادةً ما نعتبرها شواحن بسيطة للهواتف أو أجهزة الكمبيوتر المحمولة، لكنها في الواقع مصادر طاقة عالية الكفاءة قادرة على توفير فولتيات مختلفة حسب الحاجة.

هذا ما دفعني لتصميم PowerPD.

PowerPD عبارة عن وحدة تزويد طاقة USB-C PD/PPS صغيرة الحجم، ومحلل PD، مبنية على متحكم دقيق ESP32، ووحدة تحكم AP33772S USB-C PD، وجهاز مراقبة طاقة INA226. الفكرة بسيطة: قم بتوصيل شاحن USB-C PD، واختر الفولتية باستخدام مفتاح التشفير الدوار، وسيقوم الجهاز تلقائيًا بضبط الفولتية المطلوبة من الشاحن. في الوقت نفسه، يقيس الجهاز الفولتية والتيار والطاقة في الوقت الفعلي، ويعرض جميع البيانات على شاشة OLED صغيرة.

يدعم PowerPD فولتيات USB-C PD القياسية مثل 5 فولت، 9 فولت، 12 فولت، 15 فولت، و20 فولت. إذا كان الشاحن يدعم PPS (مزود الطاقة القابل للبرمجة)، فيمكن أيضًا تعديل جهد الخرج بخطوات صغيرة، مما يجعله مفيدًا لاختبار الإلكترونيات، وتشغيل النماذج الأولية، وتصحيح الدوائر، وغيرها من تطبيقات الطاقة الخفيفة على طاولة العمل.

الإمدادات



المكونات الرئيسية


وحدة ESP32-WROOM-32E

وحدة تحكم AP33772S USB-C PD

جهاز مراقبة الجهد/التيار/الطاقة INA226

محول خافض للجهد MP1584

منظم جهد AP2204K-3.3V

موصل USB من النوع C

مقاومة استشعار التيار 5 ملي أوم

مفتاح طاقة MOSFET

شاشة OLED مقاس 1.3 بوصة

مشفر دوار

أزرار ضغط

مؤشرات LED للحالة

مكونات سلبية مثل المقاومات والمكثفات والمحاثات وثنائيات الحماية

يتضمن المخطط وحدة تحكم AP33772S PD، وجهاز مراقبة INA226، ومحول خافض للجهد MP1584، ومنظم جهد 3.3V، ومرحلة خرج MOSFET، ووحدة ESP32، وواجهة شاشة OLED، ومشفر دوار، ومفاتيح، وموصل برمجة.




وحدة ESP32-WROOM-32E الأدوات المطلوبة


شاحن USB-C PD (يدعم 9 فولت PD على الأقل)

محول USB إلى UART بجهد 3.3 فولت (CP2102 أو CH340 أو FT232RL)

زران صغيران للتشغيل والتفعيل

أسلاك توصيل

جهاز قياس متعدد

الخطوة 1: مبدأ العمل


قبل الخوض في تفاصيل المكونات المادية، من المفيد فهم آلية عمل تقنية PowerPD.

عند توصيل شاحن USB-C بتقنية PD، يبدأ الشاحن بالعمل على خرج 5 فولت الافتراضي. ثم يقوم متحكم AP33772S PD بقراءة بيانات الجهد التي يدعمها الشاحن عبر خطوط CC في منفذ USB-C. يقوم ESP32 باختيار الجهد أو إعداد PPS المطلوب، ويُرسل إشارة إلى AP33772S لطلبه من الشاحن.

بمجرد أن ينتقل الشاحن إلى الجهد المُختار، يمر التيار عبر مقاومة تحويلية 5 ملي أوم ومفتاح خرج MOSFET قبل وصوله إلى طرف الخرج. يقوم INA226 بمراقبة الجهد والتيار والطاقة في الوقت الفعلي، ويرسل البيانات إلى ESP32 عبر بروتوكول I²C.

يقوم ESP32 بتحديث شاشة OLED، والتحكم في المُشفّر الدوار والأزرار، والتحكم في مفتاح الخرج، كما يمكنه إرسال بيانات مباشرة إلى Adafruit IO عبر Wi-Fi.

يُزوّد ​​مُحوّل الجهد الخافض ومُنظّم الجهد 3.3 فولت المُدمجان وحدة ESP32 وجميع الدوائر المنطقية بالطاقة مباشرةً من نفس جهد دخل USB-C PD.

الخطوة 2: نظرة عامة على الدائرة

يُوفّر موصل USB-C الطاقة وخطوط الاتصال. تتواصل وحدة AP33772S مع الشاحن وتطلب جهد PD أو PPS المُختار، مثل 5 فولت، أو 9 فولت، أو 12 فولت، أو 15 فولت، أو 20 فولت.

مراقبة التيار والطاقة

يقوم مقاوم تحويلة 5 ملي أوم ومضخم INA226 بمراقبة جهد الخرج والتيار والطاقة في الوقت الفعلي. تُرسل البيانات المقاسة إلى وحدة ESP32 عبر بروتوكول I²C.

تبديل الخرج

يُستخدم ترانزستور MOSFET كمفتاح خرج إلكتروني. تستطيع وحدة ESP32 تشغيل أو إيقاف الخرج بأمان وفصل الحمل في حالة حدوث عطل.

مصدر الطاقة الداخلي

يُخفّض محول الجهد MP1584 جهد دخل USB-C، ويُولّد منظم الجهد AP2204K جهدًا ثابتًا 3.3 فولت لوحدة ESP32 والدوائر المنطقية الأخرى.

وحدة تحكم ESP32

تتحكم وحدة ESP32 في النظام بأكمله. فهي تُجري عملية التفاوض على بيانات PD، وتقرأ بيانات المستشعرات، وتُحدّث شاشة OLED، وتُدير مُشفّر الدوران والأزرار، كما تُرسل البيانات اختياريًا إلى Adafruit IO عبر Wi-Fi.

واهة المستخدم

تتضمن اللوحة شاشة OLED من نوع SH1106 مقاس 1.3 بوصة، ومُشفِّرًا دوارًا، وأزرارًا للتنقل بين القوائم، واختيار الجهد، والتحكم في الإخراج.

الخطوة 3: أساسيات USB-C PD وPPS وAVS

يمكن لشواحن USB-C PD توفير مستويات جهد ثابتة متعددة حسب ما تدعمه. الملفات الشخصية القياسية في نطاق الطاقة القياسي (SPR) هي:

5 فولت (الوضع الافتراضي لجميع توصيلات USB-C)

9 فولت

12 فولت

15 فولت

20 فولت



تغطي هذه المستويات الثابتة معظم حالات الاستخدام، لكن أعمال الإلكترونيات غالبًا ما تتطلب جهدًا متوسطًا - 8.4 فولت لبطارية ليثيوم بوليمر ثنائية الخلايا، أو 13.2 فولت لدائرة تشغيل LED مخصصة، أو 10 فولت لاختبار منظم جهد محدد. وهنا يأتي دور تقنية PPS.

PPS - مزود الطاقة القابل للبرمجة: تتيح هذه التقنية للشاحن ضبط جهد الخرج باستمرار بخطوات 100 مللي فولت، بدلًا من التنقل بين مستويات ثابتة. كما يمكن ضبط حد التيار بخطوات 50 مللي أمبير. هذا يحوّل شاحن USB-C عالي الأداء إلى ما يشبه مصدر طاقة صغيرًا للاستخدامات الخفيفة. تُعدّ تقنية PPS جزءًا من مواصفات USB PD 3.0، وتدعمها العديد من الشواحن الحديثة - وإن لم يكن جميعها، لذا يُنصح دائمًا بمراجعة ورقة المواصفات أو الملصق الخاص بشاحنك.

نطاق الطاقة الموسّع (EPR): تدعم الشواحن الحديثة نطاق الطاقة الموسّع، الذي يضيف فولتيات ثابتة أعلى: 28 فولت، 36 فولت، و48 فولت. هذه الفولتيات مُصممة للأجهزة عالية الطاقة مثل الشاشات، ومحطات العمل، وأجهزة الكمبيوتر المحمولة المخصصة للألعاب. لا يدعم PowerPD نطاق الطاقة الموسّع في البرامج الثابتة الحالية، لذا يُرجى عدم محاولة طلب هذه الفولتيات

مزود الجهد القابل للتعديل (AVS): يُعدّ AVS إضافة حديثة إلى USB PD، ويوفر تحكمًا دقيقًا في الجهد عند مستويات الطاقة العالية. وهو مشابه لمزود الطاقة القابل للتعديل (PPS)، ولكنه مُصمم للتطبيقات ذات الفولتيات والطاقة العالية. لا يستخدم PowerPD حاليًا AVS.


تحقق دائمًا من الجهد الذي يدعمه الشاحن قبل طلب أي جهد. سيتفاوض متحكم AP33772S فقط مع الجهد المعلن عنه من قبل الشاحن، ولن يفرض جهدًا لا يدعمه. مع ذلك، يُنصح بالبدء بجهد 5 فولت ثم زيادته تدريجيًا، خاصةً عند اختبار أحمال جديدة.

الخطوة 4: تصميم وتجميع لوحة الدوائر المطبوعة (PCB)

قام صديقي رابيندرا بتصميم لوحة الدوائر المطبوعة PowerPD باستخدام برنامج EasyEDA.

تم وضع متحكم AP33772S USB-C PD بالقرب من موصل USB Type-C للحفاظ على مسارات التيار قصيرة ونظيفة. وتم وضع مضخم الإشارة INA226 بجوار مقاومة التحويلة 5 ملي أوم مباشرةً لضمان استخدام استشعار كلفن الصحيح لقياس التيار بدقة.


نظرًا لأن معظم الأجزاء المهمة عبارة عن مكونات SMD دقيقة التوصيل، لم يكن اللحام اليدوي خيارًا عمليًا. يأتي معالج AP33772S في حزمة QFN، بينما INA226 عبارة عن جهاز صغير من نوع SOT-23، وموصل USB-C ذو نقاط توصيل ضيقة جدًا. لهذا السبب، قررتُ منذ البداية استخدام لوحة دوائر مطبوعة احترافية، واستعنتُ بشركة NextPCB للتصنيع والتجميع.

كانت عملية الطلب مع NextPCB بسيطة. قمتُ بتحميل ملفات Gerber وقائمة المكونات وملف التجميع عبر نظامهم الإلكتروني.

تولت NextPCB مهمة توفير المكونات وتجميع لوحة الدوائر المطبوعة، بما في ذلك وحدة ESP32، ومعالج AP33772S، وINA226، وموصل USB-C، وقسم الطاقة MP1584، ومنظم الجهد AP2204K-3.3V، ومفتاح خرج MOSFET، وجميع المكونات السلبية الصغيرة.



قبل الشحن، أرسلوا لي صورة للوحات المُجمّعة لأتمكن من التحقق بصريًا من موضع المكونات. كان هذا مفيدًا جدًا، إذ مكّنني من التأكد من تركيب الأجزاء بشكل صحيح قبل حتى مغادرة اللوحات المصنع.

عند وصول اللوحات، لم يتبقَّ سوى القليل من العمل. قمتُ بتوصيل مُحوّل USB إلى UART بموصل البرمجة، ثمّ حمّلتُ البرنامج الثابت، وأصبحت اللوحة جاهزة للاختبار. لم تكن هناك حاجة لأي تعديلات، ولم تكن هناك أجزاء مفقودة، ولا وصلات لحام باردة.

إذا كنت ترغب في بناء لوحة PowerPD الخاصة بك، فإنّ ملفات Gerber وقائمة المكونات والمخطط متوفرة في مستودع GitHub. يمكنك تحميلها مباشرةً إلى NextPCB والحصول على اللوحات مُصنّعة ومُجمّعة بنفس الطريقة.

الخطوة 5: نظرة عامة على البرنامج الثابت

بالنسبة لوحدة تحكم AP33772S USB-C PD، استخدمتُ مكتبة Arduino مُخصصة من تصميمي. يمكنك العثور على هذه المكتبة في مستودع GitHub الخاص بي. https://github.com/Rau7han/PowerPD

لاستخدام الكود، حمّل الملفات التالية من المستودع:

AP33772S.h

AP33772S.cpp

PowerPD.ino

احتفظ بالملفات الثلاثة جميعها داخل مجلد مشروع Arduino نفسه. هذا مهم لأن ملف PowerPD.ino الرئيسي يتضمن مكتبة AP33772S باستخدام:

#include "AP33772S.h"

إذا لم تكن ملفات .h و .cpp في نفس المجلد، فلن يتمكن برنامج Arduino IDE من تجميع المشروع بشكل صحيح.

قبل الرفع، ثبّت مكتبات Arduino المطلوبة:

U8g2

INA226

PubSubClient

يتحكم البرنامج الثابت في نظام PowerPD بالكامل. ويتواصل مع AP33772S للتفاوض على بروتوكولات USB-C PD/PPS، ويقرأ بيانات الجهد والتيار من INA226، ويُحدّث شاشة SH1106 OLED، ويتعامل مع المُشفّر الدوّار وأزرار الضغط، ويتحكم في مفتاح خرج MOSFET، ويتضمن أيضًا دعمًا اختياريًا لمراقبة Wi-Fi/MQTT.

تكوين الدبابيس الرئيسي المستخدم في الكود هو:

I2C SDA GPIO21

I2C SCL GPIO22

PD_INT GPIO32

MOSFET CG GPIO25

Rotary CLK GPIO5

Rotary DT GPIO18

Rotary SW GPIO19

SW1 GPIO17

SW2 GPIO16

LED GPIO4

قبل استخدام اللوحة، من المفيد معرفة طريقة التحكم الأساسية:

تدوير المشفر: تغيير القيمة المحددة

ضغط قصير على المشفر: الانتقال إلى الحقل التالي

ضغط مطول على المشفر: تطبيق الإعدادات / فتح القائمة / تبديل الإخراج

ضغط قصير على SW1: التبديل بين إعداد الجهد والتيار

ضغط مطول على SW1: فتح القائمة

ضغط قصير على SW2: تشغيل/إيقاف الإخراج

ضغط مطول على SW2: فتح شاشة الجلسة

عند بدء التشغيل، يقوم ESP32 بتهيئة الشاشة، والتحقق من AP33772S وINA226 عبر I2C، وقراءة البيانات يعرض البرنامج ملفات تعريف PD المتاحة من الشاحن، ثم يعرض الشاشة الرئيسية. من هناك، يمكن للمستخدم اختيار قيم جهد PD ثابتة أو إعدادات PPS وتفعيل الإخراج عند الاستعداد.

أرفقتُ أيضًا شفرة المصدر الكاملة أدناه ليسهل الاطلاع عليها أو نسخها مباشرةً. تتضمن الشفرة عملية التفاوض على PD، والقياس، وواجهة المستخدم، وفحوصات السلامة، وتبديل الإخراج، ونظام القوائم.

الخطوة 6: إعداد Adafruit IO

يمكن لـ PowerPD أيضًا إرسال بيانات مباشرة إلى Adafruit IO، مما يسمح لي بمراقبة اللوحة من لوحة تحكم على الويب. في هذا المشروع، أبقيتُ لوحة التحكم بسيطة واقتصرتُ على القيم الأساسية فقط:

الجهد

التيار

الطاقة

درجة الحرارة

الإخراج

هذا كافٍ لعرض حالة مصدر الطاقة في الوقت الفعلي دون إثقال لوحة التحكم ببيانات غير ضرورية.

1. افتح Adafruit IO

أولًا، انتقل إلى Adafruit IO وسجّل الدخول إلى حسابك.

https://io.adafruit.com/

بعد تسجيل الدخول، ستظهر لك صفحة نظرة عامة على Adafruit IO. بما أنني أستخدم الخطة الأساسية، يُمكنني إنشاء ما يصل إلى 10 مصادر بيانات، وهو ما يكفي لهذا المشروع.

2. إنشاء مصادر البيانات

انتقل إلى:

مصادر البيانات ← مصدر بيانات جديد

أنشئ مصادر البيانات الخمسة التالية واحدًا تلو الآخر:

الجهد

التيار

الطاقة

درجة الحرارة

الإخراج

استخدمتُ أسماءً مختصرة لمصادر البيانات لأنها نفسها المستخدمة في كود ESP32.


استخدمتُ نصوصًا بسيطةً للوصف، مثل:

الجهد: جهد الخرج الفعلي المقاس بواسطة PowerPD

التيار: تيار الحمل الفعلي المقاس بواسطة PowerPD

الطاقة: طاقة الخرج في الوقت الفعلي

درجة الحرارة: درجة حرارة اللوحة / وحدة التحكم PD

حالة الخرج: 0 = إيقاف، 1 = تشغيل

3. إنشاء لوحة تحكم


بعد إنشاء مصادر البيانات، انتقل إلى:

لوحات المعلومات ← لوحة معلومات جديدة

أنشأتُ لوحة معلومات لمراقبة PowerPD. ستعرض هذه اللوحة بيانات الجهد والتيار والطاقة ودرجة الحرارة وحالة الإخراج بشكل مباشر.

مثال على اسم لوحة المعلومات:

مراقبة PowerPD

4. إضافة وحدات قياس

استخدمتُ وحدات قياس للجهد والتيار والطاقة.

انقر على:

وحدة جديدة ← قياس

ثم حدد مصدر البيانات واضبط قيم القياس.

إضافة وحدات قياس للجهد:

مصدر البيانات: الجهد

عنوان الكتلة: الجهد

الحد الأدنى: 0

الحد الأقصى: 25

الرمز: فولت

عدد المنازل العشرية: 2

للتيار:

مصدر البيانات: التيار

عنوان الكتلة: التيار

الحد الأدنى: 0

الحد الأقصى: 6

الرمز: أمبير

عدد المنازل العشرية: 3

للطاقة:

مصدر البيانات: الطاقة

عنوان الكتلة: الطاقة

الحد الأدنى: 0

الحد الأقصى: 120

الرمز: واط

عدد المنازل العشرية: 2

5. إضافة مخطط درجة الحرارة

استخدمتُ مخططًا لدرجة الحرارة لأنه يُسهّل رؤية تغير درجة الحرارة مع مرور الوقت.

استخدم هذه الإعدادات:

مصدر البيانات: درجة الحرارة

عنوان الكتلة: درجة الحرارة

عرض السجل: ٢٤ ساعة

تسمية المحور السيني: الوقت

تسمية المحور الصادي: درجة الحرارة (°مئوية)

الحد الأدنى للمحور الصادي: ٠

الحد الأقصى للمحور الصادي: ١٠٠

عدد المنازل العشرية: ١

رسم خطوط الشبكة: مُفعّل

يتيح لي هذا معرفة ما إذا كانت درجة حرارة اللوحة ترتفع تدريجيًا أثناء اختبار التحميل.

٦. إضافة مفتاح تبديل الإخراج

للتحكم في الإخراج، أضفتُ كتلة تبديل متصلة بمصدر بيانات الإخراج.

استخدم هذه الإعدادات:

مصدر البيانات: الإخراج

عنوان الكتلة: الإخراج

نص زر التشغيل: مُفعّل

قيمة زر التشغيل: ١

نص زر الإيقاف: مُعطّل

قيمة زر الإيقاف: ٠

هذا يعني:

١ = الإخراج مُفعّل

٠ = الإخراج مُعطّل

في البرنامج الثابت المُحدّث، يشترك ESP32 في مصدر البيانات هذا. لذلك عندما أقوم بتغيير المفتاح من لوحة التحكم، يستقبل ESP32 القيمة ويقوم بتشغيل أو إيقاف تشغيل خرج MOSFET.


لا يزال البرنامج الثابت يتحقق من شروط السلامة قبل تفعيل الإخراج. في حال وجود عطل، أو عدم وجود شاحن، أو إذا كانت اللوحة لا تزال تكتشف تقنية PD، فسيظل الإخراج مُعطّلاً.

أضف تفاصيل Adafruit IO في الكود

بعد إعداد مصادر البيانات ولوحة التحكم، انسخ اسم المستخدم والمفتاح الخاصين بك في Adafruit IO.

انتقل إلى:

View Adafruit IO Key

ثم قم بتحديث هذا الجزء في كود ESP32:

#define WIFI_SSID "your_ssid"
#define WIFI_PASSWORD "your_password"
#define AIO_SERVER "io.adafruit.com"
#define AIO_PORT 1883
#define AIO_USERNAME "your_aio_username"
#define AIO_KEY "your_aio_key"


استبدلها ببيانات شبكة Wi-Fi الخاصة بك وبيانات Adafruit IO.

الخطوة 7: تحميل البرنامج الثابت


إعداد المجلد

أنشئ مجلدًا باسم PowerPD وضع الملفات الثلاثة بداخله:

PowerPD/

PowerPD.ino

AP33772S.h

AP33772S.cpp

افتح ملف PowerPD.ino في بيئة تطوير Arduino. قبل التجميع، حدّث بيانات اعتماد Wi-Fi وAdafruit IO في أعلى الملف.

#define WIFI_SSID "Your_WiFi_Name"
#define WIFI_PASSWORD "Your_WiFi_Password"
#define AIO_SERVER "io.adafruit.com"
#define AIO_PORT 1883
#define AIO_USERNAME "Your_Adafruit_IO_Username"
#define AIO_KEY "Your_Adafruit_IO_Key"

إذا كنت لا تستخدم Adafruit IO، يمكنك ترك هذه النصوص كنصوص وهمية. ستظل الشاشة المحلية وعناصر التحكم تعمل بشكل طبيعي.

توصيل محول USB إلى UART

⚠️ استخدم محول USB إلى UART بمستوى منطقي 3.3 فولت. استخدام محول 5 فولت سيتلف ESP32.

موصل برمجة USB-to-UARTPowerPD

TX RX

RX TX

GND GND

3V3 3V3

الدخول إلى وضع التنزيل

لا تحتوي لوحة الدوائر المطبوعة على زري BOOT وEN مدمجين. استخدم زرين صغيرين يعملان بالضغط اللحظي، موصلين بأسلاك توصيل:

زر واحد: طرف BOOT → GND

زر واحد: طرف EN → GND

الدخول إلى وضع التنزيل

لا تحتوي لوحة الدوائر المطبوعة على زري BOOT وEN مدمجين. استخدم زرين صغيرين للضغط اللحظي موصلين بأسلاك توصيل:

زر واحد: طرف BOOT → أرضي (GND)

زر واحد: طرف EN → أرضي (GND)

للدخول إلى وضع التنزيل:

اضغط باستمرار على زر BOOT

اضغط ثم حرر زر EN

حرر زر BOOT

انقر على "تحميل" في بيئة تطوير Arduino فورًا

بعد التحميل

بمجرد اكتمال التحميل، اضغط على زر EN مرة واحدة لإعادة تشغيل ESP32. ستظهر شاشة بدء تشغيل PowerPD على شاشة OLED خلال 2-3 ثوانٍ.

افتح شاشة المراقبة التسلسلية بسرعة 115200 باود لعرض رسائل بدء التشغيل - هذه أسرع طريقة للتأكد من اكتشاف AP33772S وINA226 بشكل صحيح.

الخطوة 8: شواحن وكابلات USB-C PD

يُعدّ الشاحن والكابل المستخدمان مع PowerPD أكثر أهمية مما تتوقع.

يبدأ أي شاحن USB-C PD بجهد 5 فولت افتراضيًا. تقوم شريحة AP33772S بالتفاوض على الفولتية الأعلى من خلال التواصل مع الشاحن عبر خطوط CC - ولكن لا يمكنها إلا أن تطلب ما يعلنه الشاحن فعليًا.


قبل استخدام أي شاحن، تحقق من الملصق الموجود على ظهره. يجب أن يوضح الملصق مستويات الجهد والتيار المدعومة، على سبيل المثال: 5 فولت/3 أمبير، 9 فولت/3 أمبير، 12 فولت/3 أمبير، 15 فولت/3 أمبير، 20 فولت/3 أمبير. الشاحن الذي يُعلن عن قدرة 65 واط ولكنه يُظهر فقط 5 فولت/3 أمبير على الملصق لن يُعطيك 20 فولت مهما طلبت.

إذا كنت ترغب في اختبار تقنية PPS، فابحث تحديدًا عن كلمة "PPS" مطبوعة على الشاحن أو في مواصفاته. لا تدعم جميع الشواحن عالية القدرة هذه التقنية.


الكابل مهم أيضًا. قد يتسبب كابل USB-C رديء الجودة في انخفاض الجهد، وعدم استقرار الاتصال، أو فشل عملية التفاوض على تقنية الشحن السريع (PD)، مما يجعل اللوحة تبدو معيبة حتى وإن كانت تعمل بشكل صحيح. في معظم الاختبارات، يُعد أي كابل USB-C إلى USB-C مصنف بقدرة 3 أمبير ويدعم تقنية الشحن السريع (PD) مناسبًا. أما للأحمال ذات الطاقة العالية التي تقارب 20 فولت و5 أمبير، فاستخدم كابلًا حاصلًا على علامة الجودة الأوروبية (e-marked) بقدرة 5 أمبير.

تجنب محولات USB-A إلى USB-C، والموصلات المغناطيسية، وكابلات التمديد غير المعروفة. اجعل الأمر بسيطًا:

شاحن USB-C بتقنية الشحن السريع (PD) ← كابل USB-C إلى USB-C ← تقنية الشحن السريع (PD)

قبل توصيل أي حمل، تحقق دائمًا من جهد الخرج باستخدام جهاز قياس متعدد. يستغرق هذا 30 ثانية فقط، ويجنبك الكثير من الالتباسات المحتملة.

الخطوة 9: التشغيل الأولي

قم بتوصيل شاحن USB-C بتقنية الشحن السريع (PD) باستخدام كابل عالي الجودة. لا تقم بتوصيل أي شيء بمنافذ V_OUT بعد.

عند توصيل الشاحن:

يجب أن يضيء مؤشر الحالة (LED) - وهذا يؤكد وجود VBUS.

يجب أن تعرض شاشة OLED شاشة بدء تشغيل PowerPD في غضون ثوانٍ قليلة.

تقرأ اللوحة ملفات تعريف PD المتاحة من الشاحن.

يبقى خرج الطاقة مطفأً.

إذا بقيت شاشة OLED فارغة، فتحقق من تحديث البرنامج الثابت. إذا لم يضيء مؤشر الحالة (LED)، فتحقق من كابل USB-C والشاحن.


بمجرد ظهور شاشة بدء التشغيل، افتح شاشة مراقبة المنفذ التسلسلي بسرعة 115200 باود، وتأكد من اكتشاف كل من AP33772S وINA226. ثم تحقق من ظهور 5 فولت على الأقل كملف تعريف قابل للتحديد على شاشة OLED.


في هذه المرحلة، تعمل اللوحة بجهد ٥ فولت (الوضع الافتراضي). المخرج مُطفأ. لا يوجد أي شيء موصول بمنفذ V_OUT. هذه هي الحالة المثالية قبل الانتقال إلى اختبار الجهد.

الخطوة ١٠: تصميم CAD


قام صديقي موكيش بتصميم غلاف PowerPD بالكامل باستخدام برنامج Autodesk Fusion، مع التركيز على الحجم الصغير، والمظهر الأنيق، وسهولة التجميع حول لوحة الدوائر المطبوعة المخصصة.

يتكون التصميم بالكامل من 4 أجزاء رئيسية:

1. اللوحة الأمامية:
هي الغطاء العلوي/الجزء الأمامي من الغلاف.

تتضمن فتحات لشاشة OLED.
تحتوي على عمود التشفير الدوار وأزرار الضغط.
توفر فتحات لموصل USB-C ومنافذ الإخراج.
كما تعمل كغطاء علوي رئيسي للغلاف بالكامل.
2. الهيكل الرئيسي:
يثبت الهيكل السفلي لوحة الدوائر المطبوعة PowerPD المصنعة بإحكام.

مصمم وفقًا لأبعاد لوحة الدوائر المطبوعة بدقة.
يتضمن دعامات تثبيت لوحة الدوائر المطبوعة ونقاط تثبيت البراغي.
يوفر منفذًا لمنفذ USB-C وموصل البرمجة.
يحافظ على حماية المكونات الإلكترونية الداخلية ومحاذاتها بشكل صحيح.
3. مقبض التشفير الدوار:
مقبض تشفير دوار مصمم خصيصًا لـ PowerPD.

سهل الإمساك به أثناء ضبط الجهد وتصفح القوائم
تصميم صغير الحجم يتناسب مع شكل العلبة
تركيب سهل بالضغط على عمود المشفر الدوار
4. تخطيط تركيب لوحة الدوائر المطبوعة:
صُممت العلبة بحيث يمكن تركيب لوحة الدوائر المطبوعة المجمعة مباشرةً بداخلها دون الحاجة إلى دعامات إضافية أو أسلاك معقدة.

يتوافق موصل شاشة OLED مع نافذة اللوحة الأمامية
يتطابق موضع المشفر الدوار مع فتحة المقبض
يحافظ الترتيب الداخلي الصغير على تصميم أنيق وبسيط
مرفق:

ملفات تصميم Fusion 360 الأصلية
ملفات STL لجميع الأجزاء القابلة للطباعة



يمكنك:

عرض نموذج التصميم بمساعدة الحاسوب (CAD) وتعديله في برنامج Fusion 360

ضبط أبعاد الغلاف إذا لزم الأمر

تقطيع ملفات STL المرفقة وطباعتها ثلاثية الأبعاد مباشرةً لتصميمك الخاص

اختبار الجهد

بعد تشغيل اللوحة وتعطيل الإخراج، استخدمتُ مفتاح التشفير الدوار للتنقل بين أوضاع جهد USB-C PD المتاحة. عرضت شاشة OLED الأوضاع المدعومة من الشاحن، بما في ذلك 5 فولت، و9 فولت، و15 فولت، و20 فولت.

بعد اختيار الجهد، قمتُ بتفعيل الإخراج وتحققتُ من قيمة V_OUT الفعلية باستخدام جهاز قياس متعدد من نوع Fluke. تطابق الجهد المقاس مع قراءة شاشة OLED بدقة عالية:

في وضع 5 فولت، كان القياس حوالي 4.98 فولت

في وضع 16 فولت PPS، كان القياس حوالي 15.96 فولت

في وضع 20 فولت، كان القياس حوالي 20.07 فولت. أكد هذا أن شريحة AP33772S تتفاوض بشكل صحيح على وضع PD المُختار، وأن نظام مراقبة الجهد INA226 مُعاير بشكل صحيح.

اختبرتُ أيضًا وضع PPS عن طريق اختيار مستويات جهد قابلة للتعديل عبر مفتاح التشفير الدوار. تغير جهد الإخراج بشكل صحيح، وتطابقت قراءات جهاز القياس المتعدد مع القيم المطلوبة المعروضة على شاشة OLED.

الخطوة 12: اختبار التحميل

بعد التأكد من عمل ملفات تعريف الجهد بشكل صحيح، قمت بتوصيل بعض الأحمال الحقيقية بمخرج PowerPD للاختبار. بدلاً من استخدام حمل إلكتروني، اختبرت اللوحة باستخدام مروحة تبريد 12 فولت ومحرك BLDC عالي القدرة يعمل بجهد USB-C PD المحدد.

مع تفعيل المخرج، عرضت شاشة OLED الجهد والتيار والطاقة المحسوبة بشكل مباشر. كما تم تحديث لوحة تحكم Adafruit IO لاسلكيًا عبر Wi-Fi، لعرض نفس بيانات الجهد والتيار والطاقة ودرجة الحرارة عن بُعد.


وضع محلل التفريغ الجزئي لمراقبة عملية التفاوض مع الشاحن. تعرض شاشة OLED بيانات التفريغ الجزئي المكتشفة، والجهد الفعال، وحالة PPS، ومعلومات الإخراج في الوقت الفعلي مباشرةً من شاحن USB-C المتصل. أرفقتُ أدناه صورة GIF توضح عملية التفاوض مع التفريغ الجزئي وواجهة المحلل أثناء العمل.


بعد التأكد من عمل ملفات تعريف الجهد بشكل صحيح، قمت بتوصيل بعض الأحمال الحقيقية بمخرج PowerPD للاختبار. بدلاً من استخدام حمل إلكتروني، اختبرت اللوحة باستخدام مروحة تبريد 12 فولت ومحرك BLDC عالي الطاقة يعمل بجهد USB-C PD المحدد. مع تفعيل المخرج، عرضت شاشة OLED الجهد والتيار والطاقة المحسوبة في الوقت الفعلي. كما تم تحديث لوحة تحكم Adafruit IO لاسلكيًا عبر Wi-Fi، لعرض نفس بيانات الجهد والتيار والطاقة ودرجة الحرارة عن بُعد. أضفت أيضًا وضع محلل PD مدمجًا لمراقبة عملية التفاوض مع الشاحن. يمكن لشاشة OLED عرض ملفات تعريف PD المكتشفة، والجهد النشط، وحالة PPS، ومعلومات الإخراج في الوقت الفعلي مباشرةً من شاحن USB-C المتصل. أرفقت أدناه صورة GIF توضح عملية التفاوض مع PD وواجهة المحلل أثناء العمل.

قطع غيار وعلب مخصصة

مخططات الدوائر

sch_schematic1_2026-05-23_WavoOy7cPF.pdf

شفرة





 

السبت، 30 مايو 2026

مساعد وكيل محلي بالكامل على أردوينو أونو كيو

 اكتب برنامجًا لأردوينو. يقوم البرنامج بتجميعه وبرمجة وحدة التحكم الدقيقة. يعمل محليًا بالكامل. لا حاجة إلى سحابة. لا حاجة إلى مفاتيح واجهة برمجة التطبيقات. لا حاجة إلى اشتراكات


المواد المستخدمة في هذا المشروع

مكونات الأجهزة

أردوينو أونو كيو

القصة

كل عرض توضيحي لـ "الذكاء الاصطناعي على الأجهزة" شاهدته من قبل يعتمد على نموذج لغة. يتواصل المستخدم مع اللوحة عبر طرفية أو تطبيق تيليجرام، وتقوم اللوحة باستدعاء واجهة برمجة تطبيقات (API) لتفعيل نموذج سحابي. يُغيّر QClaw هذا الترتيب. يستضيف Arduino Uno Q نموذج اللغة، ويُشغّل حلقة الوكيل، ويُدير سلسلة أدوات التجميع، ويُبرمج وحدة التحكم الدقيقة الخاصة به.

عبر مصفوفة LED، ويفعل ذلك. من البداية إلى النهاية. على اللوحة. حتى بدون اتصال بالإنترنت.

يحتوي QClaw على سطح تحكم ثماني الأدوات، وموجه مسبق بخمس عشرة مهارة، ومسار فلاش OpenOCD مباشر يُمكّن عمليات التحميل التلقائي من التنفيذ الفعلي. يتيح لك وقت التشغيل ثنائي المسار اختيار السرعة أو التحكم الكامل في الأجهزة على نفس الطراز.

لماذا تُعد Uno Q اللوحة المناسبة لهذا الغرض؟

Arduino Uno Q عبارة عن جهاز سيليكون مقسم. يبدو من الخارج كجهاز Arduino كلاسيكي، ولكنه في الواقع لوحتان مدمجتان.


تتشارك وحدة المعالجة المركزية (MPU) ووحدة التحكم الدقيقة (MCU) نفس لوحة الدوائر المطبوعة (PCB). تستطيع وحدة المعالجة المركزية إبقاء وحدة التحكم الدقيقة في وضع إعادة الضبط وإعادة برمجة ذاكرتها مباشرةً عبر منافذ الإدخال/الإخراج العامة (GPIO) الموصولة ببرنامج SWD باستخدام برنامج التشغيل `linuxgpiod`. لا حاجة لكابل USB بينهما، ولا مسبار، ولا جهاز إضافي. هذه هي عبقرية QClaw.

تتولى حلقة التحكم إدارة دورة حياة البرنامج بالكامل عبر بنية السيليكون المزدوجة للوحة Arduino Uno Q، حيث تتولى وحدة المعالجة المركزية تشغيل الحلقة، بينما تقوم وحدة التحكم الدقيقة بتنفيذ البرنامج الثابت الناتج. هكذا يقوم QClaw بإنشاء البرنامج وتجميعه وبرمجته ومراقبته.


تُجمّع أداة `arduino` باستخدام الأمر `arduino-cli compile --fqbn arduino:zephyr:unoq --export-binaries`، ثم تستخرج الملف الناتج `.elf-zsk.bin`، وتمرره عبر OpenOCD باستخدام جسر GPIO SWD. يستدعي QClaw برنامج OpenOCD مباشرةً على العنوان الصحيح، وينفذ MUC البرنامج. لا حاجة إلى SSH، ولا بيانات اعتماد شبكة، ولا نفق OCD عن بُعد. فقط اتصال مباشر بين MPU وMCU، على نفس اللوحة. يتم تحميل الملف الثنائي على القرص في أقل من ثانية.


كما أن 4 جيجابايت من ذاكرة الوصول العشوائي (RAM) كافية تمامًا لاستضافة نموذج Qwen3.5 0.8B Q4_0 مع نافذة سياق 8 كيلوبايت، مُقفلة، مع ذاكرة تخزين مؤقتة q8_0 KV. يشغل QClaw حوالي 1.3 جيجابايت على Uno Q. يعمل فك التشفير بسرعة 8 رموز مميزة تقريبًا في الثانية. بطيء مقارنةً بمعالج رسومات سطح المكتب، لكنه سريع بما يكفي لتجميع برنامج صغير وتحميله قبل أن تنتهي من احتساء قهوتك.


كيفية استخدام QClaw


يأتي QClaw بنسختين تشغيليتين مبنيتين على نفس خادم llama، ونفس ملف `SOUL.md`، ونفس مُوجِّه ما قبل التوجيه ذي الـ 23 قاعدة. يختلفان في كيفية تغليف استدعاء LLM.


المسار الوكيل (`make qclaw-agentic`): تعمل بوابة qclaw Go كواجهة أمام النموذج. تشغل هذه البوابة مُهايئات القنوات (الطرفية، SSH، Telegram)، وحلقة الوكيل متعددة التكرارات، ومُوجِّه ما قبل التوجيه، ومُوزِّع الأدوات الثمانية. هذا هو الإعداد الافتراضي للإنتاج. وهو المسار الوحيد القادر على تجميع برنامج صغير وتحميله.

المسار المباشر (`make qclaw-direct`): واجهة سطر أوامر Python بسيطة تُرسل طلبات POST مباشرةً إلى `llama-server` بعد تشغيل نفس قواعد مُوجِّه ما قبل التوجيه في Python. لا توجد حلقة، ولا أدوات، ولا Telegram. انخفاض زمن الاستجابة بنسبة 33% تقريبًا عند استخدام موجهات البيانات الواقعية فقط مع الحفاظ على دقة البيانات، وذلك لعدم وجود مخطط أدوات في الموجه وعدم الحاجة إلى تكرار العملية.

استخدم المسار الوكيل عند الرغبة في تحميل رسم تخطيطي أو التقاط إطار. استخدم المسار المباشر عند الرغبة في معرفة أي دبابيس في لوحة Uno Q تدعم تعديل عرض النبضة (PWM).

أدخل أمرين فقط لتفعيل الجلسة.

git clone https://github.com/laurenvil/Uno-QClaw.git ~/ArduinoApps/QClaw
cd ~/ArduinoApps/QClaw
git submodule update --init --recursive

# Download the inference engine
cd yzma && make download-llama.cpp && cd ..

# Download the model (~490 MB for Q4_0)
mkdir -p ~/models
wget -O ~/models/Qwen_Qwen3.5-0.8B-Q4_0.gguf \
'https://huggingface.co/Qwen/Qwen3.5-0.8B-GGUF/resolve/main/Qwen3.5-0.8B-Q4_0.gguf'

# Build, install arduino-cli, configure (one time)
make qclaw-install

# Start a session — pick a path
make qclaw-agentic # full agent loop + 8 tools (compile/upload/camera/sysfs_led/network/i2cdetect)
make qclaw-direct # pre-router + direct API (fast Q&A, no tools)


يقوم الأمر `make qclaw-install` ببناء ملف Go التنفيذي، ونسخ موجه النظام وشجرة المهارات الخمس عشرة إلى `~/.qclaw/workspace/`، وتثبيت `arduino-cli` بالإضافة إلى نواة `arduino:zephyr`، وتشغيل معالج تفاعلي لإعداد بوابة Telegram الاختيارية.

بمجرد تشغيله، يتوفر لدى البرنامج ثماني أدوات ذات نطاق محدود:


`read_file` و`write_file` و`list_dir` للتنقل بين مساحات العمل

`arduino` للتجميع والبرمجة عبر OpenOCD

`camera` لالتقاط صور V4L2 أحادية الإطار عبر GStreamer

`sysfs_led` لمصابيح LED RGB الخاصة بوحدة المعالجة المركزية في `/sys/class/leds/*`

`network` لاسم المضيف والواجهات والبوابة الافتراضية، جميعها للقراءة فقط باستخدام مكتبة Go القياسية

`i2cdetect` لعرض ومسح ناقلات I²C في Linux باستخدام الخيارين `-y -r` فقط

لا يوجد أمر `exec` عام. لا يوجد موجه أوامر عام. تتحقق كل أداة من صحة وسائطها وفقًا لقائمة مسموح بها. يبلغ حجم مخطط الأدوات الإجمالي حوالي 3.4 ألف حرف، مما يترك مساحة كافية لموجه النظام في نافذة سياق بحجم 8 كيلوبايت.

الموجّه المسبق: مهارات، لا عشوائية

الموجّه المسبق هو الجزء الأساسي من QClaw الذي يُجري العمليات الحسابية المعقدة على نموذج بحجم 0.8 مليار. وهو ليس عشوائيًا، بل جدول مُسطّح يحتوي على 23 قاعدة تعبير نمطي للكلمات المفتاحية موزعة على 15 مهارة. عند إرسال رسالة، يقوم الموجّه المسبق بفحصها، والعثور على القواعد المطابقة، ثم يُضمّن ملف `SKILL.md` ذي الصلة، بالإضافة إلى الملفات المُشار إليها، مباشرةً في موجه النظام قبل استدعاء LLM.

لا يحتاج النموذج أبدًا إلى استدعاء `read_file` للحصول على محتوى المهارات الأساسي، فالمحتوى موجود بالفعل. عند حجم 0.8 مليار، يُكلّف استدعاء `read_file` دورة كاملة من LLM، أي ما يُقارب 10 إلى 20 دقيقة من التعبئة المسبقة وفك التشفير. يُلغي الموجّه المسبق هذه التكلفة تمامًا.

تشمل المهارات ما يلي:

أساسيات الرسم التخطيطي: الوميض، والتنفس، والزر، ومقياس الجهد، والمحرك المؤازر، والتجميع والتحميل، وناقل CAN، ومحول رقمي تناظري، ومضخم عملياتي.

مصفوفة LED بحجم 13x8 باستخدام قالب Arduino_LED_Matrix القياسي. مكونات Uno Q: جداول الدبابيس، وقواعد الجهد، والموصلات، والطاقة. سير عمل ثنائي الشريحة: Bridge RPC، وApp Lab، وBricks. إمكانيات جانب Linux: Wi-Fi، وBluetooth، والكاميرا، وOpenCV، والميكروفون، ومصابيح LED الخاصة بنظام sysfs. مستشعرات Modulino سهلة التوصيل والتشغيل. كل مهارة عبارة عن مجلد ضمن `workspace/skills/<name>/` يحتوي على ملف `SKILL.md` وملفات مرجعية اختيارية. إضافة مهارة جديدة تتم ببساطة عن طريق كتابة كود Markdown وإضافة قاعدة تعبير نمطي.

جرّبها بنفسك

المستودع: https://github.com/laurenvil/Uno-QClaw

نرحب بالمشاكل، والنسخ، وطلبات السحب على الرابط التالي: https://github.com/laurenvil/Uno-QClaw. إذا كان لديك لوحة أردوينو أونو كيو على مكتبك، يمكنك تشغيل مساعد ذكاء اصطناعي ذاتي الإضاءة عليها الليلة، مع فصل كابل الإيثرنت.

شفرة





















الجمعة، 29 مايو 2026

سنترا - أذكى كاميرا مراقبة منزلية الصنع

Sentra هي كاميرا مراقبة ذكية تعمل بالبطارية يمكنك تركيبها بنفسك، وتتميز ببث مباشر عبر الواي فاي، وكشف الحركة، والرؤية الليلية، والتسجيل على بطاقة SD.



المواد المستخدمة في هذا المشروع

مكونات الأجهزة

وحدة كاميرا الذكاء الاصطناعي DFRobot ESP32-S3 (التعرف على حواف الصور، الرؤية الليلية، التفاعل الصوتي ChatGPT)

بطارية، 3.7 فولت
شاحن بطاريات ليثيوم أيون USB 

تطبيقات برمجية وخدمات عبر الإنترنت

لوحة تحكم سنترا
أوتوديسك فيوجن
بيئة تطوير أردوينو
أدوات يدوية وآلات تصنيع
مكواة لحام (عامة)
سلك لحام خالٍ من الرصاص
قصة
مرحباً أيها المبدعون، أنا شغوفٌ ببناء مشاريع تجمع بين الهندسة والأنظمة المدمجة وتصميم المنتجات، لتُنتج شيئاً عملياً وجذاباً في آنٍ واحد.

في هذا المشروع، ابتكرتُ "سنترا" - كاميرا المراقبة الذكية "سنترا" - نظام مراقبة ذكي يعمل بالبطارية بالكامل، مبنيٌّ على معالج ESP32-S3. تجمع "سنترا" بين بث الفيديو المباشر عبر الواي فاي، والتسجيل المستمر على بطاقة SD، وكشف الحركة، والرؤية الليلية التلقائية، ومراقبة الصوت في الوقت الفعلي، وحتى الإعلانات الصوتية الآلية، كل ذلك في جهاز صغير الحجم مصمم خصيصاً.

صُمِّم الهيكل الخارجي والواجهة بالكامل باستخدام برنامج Autodesk Fusion 360، مع التركيز على التصميم الأنيق، وسهولة الحمل، وتجربة مستخدم عصرية. إلى جانب المكونات المادية، طورتُ أيضاً لوحة تحكم مخصصة تعمل في الوقت الفعلي، وتعمل مباشرةً على أي متصفح - دون الحاجة إلى تطبيقات أو اشتراكات أو خدمات سحابية.

ما يُميز هذا المشروع بالنسبة لي هو أن كل شيء يعمل محلياً على الجهاز نفسه. من تحليل الحركة والتحكم التكيفي بالأشعة تحت الحمراء إلى توليف الصوت في الوقت الفعلي ومراقبة المستشعرات، صُمِّمت "سنترا" لتُظهر مدى التطور الذي يُمكن أن تصل إليه الأجهزة الحديثة التي تُصنع يدوياً عندما تجتمع الهندسة المدروسة والإبداع.

هذا المشروع هو محاولتي لإنشاء نظام كاميرا ذكي لا يبدو كمشروع يدوي تقليدي، بل أقرب إلى منتج حقيقي من الجيل القادم.


الخطوة 1: تصميم CAD





كانت الخطوة الأولى في هذا المشروع تصميم الهيكل الخارجي والداخلي الكامل لكاميرا سينترا. صممت جميع الأجزاء من الصفر باستخدام برنامج أوتوديسك فيوجن 360، مع التركيز على المنحنيات الواضحة، والأبعاد المدمجة، والمسافات المناسبة بين المكونات، وسهولة التجميع.

بما أن هذه الكاميرا مصممة لتكون محمولة وتعمل بالبطارية، أردت أن يكون تصميمها بسيطًا وعصريًا، أشبه بمنتجات الشركات المصنعة، بدلًا من أن تبدو كمشروع إلكتروني تقليدي، مع الحفاظ على التصميم العام أنيقًا وبسيطًا.

استلهمتُ أفكارًا من هذا المشروع المميز لموكيش سانخلا، وأنصحكم بشدة بالاطلاع عليه أيضًا، فهو تصميم رائع وموثق جيدًا.

الخطوة الثانية: الطباعة ثلاثية الأبعاد






بعد اكتمال تصميم CAD، كانت الخطوة التالية هي طباعة جميع أجزاء الهيكل. يتكون التصميم من ثلاثة مكونات رئيسية مطبوعة:

الهيكل الرئيسي
الغطاء العلوي
امتداد الأزرار
اخترتُ لهذا التصميم خيوط PLA رمادية اللون لأنها تمنح الكاميرا مظهرًا أنيقًا وعصريًا، مع سهولة الطباعة ودقة أبعاد عالية. يُعدّ PLA خيارًا ممتازًا للحصول على سطح أملس والحفاظ على التفاوتات الدقيقة اللازمة للتجميع السليم.

الخطوة 3: تجميع Spekar




الخطوة التالية كانت تركيب السماعة داخل العلبة. قمتُ أولاً بقص أسلاك السماعة إلى الطول المناسب، ثم أضفتُ سلكًا إضافيًا لتسهيل عملية التركيب النهائية وجعلها أكثر ترتيبًا.

بعد ذلك، أزلتُ الغطاء اللاصق من السماعة ووضعتها بعناية في مكان التثبيت المخصص لها داخل العلبة الرئيسية. ضغطتُ عليها ضغطًا خفيفًا لتثبيتها في مكانها.

الخطوة 4: تركيب البطارية



الخطوة التالية كانت تركيب البطارية في العلبة. في البداية، قمتُ بلحام سلكين بأطراف البطارية لتسهيل توصيل الطاقة أثناء تجميع الدوائر الإلكترونية النهائية.

كان الغطاء العلوي مُصمماً مسبقاً في برنامج Autodesk Fusion 360 مع حجرة مخصصة للبطارية، لذا تتناسب البطارية تماماً مع مكانها دون إهدار أي مساحة داخلية. بعد وضعها في مكانها، استخدمتُ كمية قليلة من الغراء لتثبيتها بإحكام.

الخطوة 5: توصيل وحدة الشحن


الخطوة التالية كانت توصيل البطارية بوحدة الشحن. في البداية، قمتُ بلحام أسلاك البطارية بالأطراف الموجبة والسالبة الصحيحة في الوحدة، مع التأكد من صحة توصيل القطبية لتجنب تلف الدائرة.

بعد ذلك، قمتُ بلحام زوج آخر من الأسلاك بأطراف خرج 5 فولت في وحدة الشحن. ستُستخدم هذه الأسلاك لاحقًا لتزويد لوحة ESP32-S3 الرئيسية داخل Sentra بالطاقة.

الخطوة 6: تهيئة الكود



قبل تحميل الكود، عليك ضبط بيانات اعتماد شبكة Wi-Fi والمنطقة الزمنية داخل الكود المصدري. ما عليك سوى استبدال القيم الافتراضية باسم شبكة Wi-Fi وكلمة المرور الخاصة بك.

#define WIFI_SSID       "Your SSID"
#define WIFI_PASS "Your Pass"
#define TZ_OFFSET_SEC -28800 // UTC-8 Pacific Standard Time (PST)



تُستخدم قيمة المنطقة الزمنية للطوابع الزمنية والتسجيلات ومزامنة وقت النظام. يمكنك تغييرها حسب منطقتك.


الخطوة 7: تحميل الكود

قبل التحميل، تأكد من تحديد إعدادات اللوحة التالية بشكل صحيح داخل بيئة تطوير Arduino:


اللوحة: وحدة تطوير ESP32S3

ذاكرة PSRAM: OPI PSRAM

حجم الذاكرة الفلاشية: 16 ميجابايت (128 ميجابايت)

نظام التقسيم: تطبيق ضخم (3 ميجابايت بدون تحديثات عبر الهواء / 1 ميجابايت SPIFFS)

تفعيل USB CDC عند بدء التشغيل

تردد المعالج: 240 ميجاهرتز

سرعة التحميل: 921600

تُعدّ إعدادات ذاكرة PSRAM وحجم الذاكرة الفلاشية بالغة الأهمية لأن Sentra يستخدم مخازن مؤقتة كبيرة لبث الفيديو وتسجيل SD والمعالجة في الوقت الفعلي. قد تؤدي الإعدادات غير الصحيحة إلى أعطال أو حلقات إعادة تشغيل أو فشل في تهيئة الكاميرا.

بعد إتمام جميع الإعدادات، قم بتوصيل لوحة ESP32-S3 باستخدام كابل USB، ثم حدد منفذ COM الصحيح، وقم بتحميل الكود. بعد اكتمال عملية التحميل بنجاح، افتح شاشة المراقبة التسلسلية لعرض عنوان IP الخاص بالجهاز وحالة النظام.

الخطوة 8: لوحة التحكم


لوحة تحكم Sentra

لجعل Sentra منتجًا ذكيًا متكاملًا، صممنا لوحة تحكم عصرية عبر الإنترنت بواجهة سهلة الاستخدام وتحكم فوري.

ما عليك سوى فتح لوحة التحكم، وإدخال عنوان IP الخاص بالكاميرا، والاتصال فورًا. تتميز الواجهة بتصميم عصري ومتجاوب، وتعمل بسلاسة على الهواتف الذكية والأجهزة اللوحية وأجهزة الكمبيوتر المكتبية، مما يمنح Sentra تجربة استخدام احترافية ومميزة.

يمكنك مشاهدة البث المباشر للكاميرا ومراقبة معلومات مهمة مثل الحركة، ومستوى البطارية، والإضاءة المحيطة، ومستوى الصوت، وحالة التسجيل، واستخدام بطاقة SD، وحالة الرؤية الليلية في الوقت الفعلي.

كما توفر لوحة التحكم وصولًا سريعًا إلى ميزات مثل التحكم في التسجيل، والإعلانات الصوتية، ووضع صفارة الإنذار، والإضاءة بالأشعة تحت الحمراء، مما يسهل إدارة الكاميرا من أي مكان على شبكتك المحلية.

الخطوة 9: تجميع كاميرا ESP32 S3


الخطوة التالية كانت تركيب لوحة كاميرا ESP32-S3 في الهيكل الرئيسي. وضعتُ اللوحة في موضع التثبيت المخصص، وبعد تثبيتها، قمتُ بتوصيل السماعة باستخدام موصل JST الخاص بها.

صُمم الهيكل لدعم التثبيت القياسي باستخدام 4 براغي صغيرة لضمان تثبيت محكم. ولأنني لم أكن أملك البراغي في ذلك الوقت، استخدمتُ كمية صغيرة من الغراء الفائق لتثبيت اللوحة مؤقتًا.

الخطوة 10: تجميع وحدة الشحن







بعد تجهيز وحدة الشحن مسبقًا، وضعتها بعناية في مكانها المخصص، وقمت بمحاذاة موصل USB Type-C مع الفتحة الموجودة على جانب الهيكل، لتسهيل شحن الكاميرا من الخارج.

بعد تثبيت الوحدة في مكانها الصحيح، قمت بتوصيل سلكي خرج 5 فولت من وحدة الشحن بمدخل الطاقة في اللوحة الرئيسية، مع التأكد من صحة القطبية قبل تشغيل النظام.

الخطوة 11: تركيب وحدة تمديد الأزرار




الآن، نقوم بتركيب قطعة تمديد الزر الصغيرة. بما أن زر لوحة ESP32-S3 موجود داخل الغلاف، فقد صممتُ قطعة التمديد هذه بشكل منفصل لتسهيل الوصول إليه من خارج الغلاف.

ببساطة، قمتُ بمحاذاة قطعة تمديد الزر المطبوعة مع الفتحة الجانبية وأدخلتها في مكانها المخصص على الغطاء العلوي. بعد التركيب، تضغط القطعة مباشرةً على زر الضغط الداخلي، مما يتيح سهولة الوصول إليه دون الحاجة لفتح الغلاف.

الخطوة ١٢: التجميع النهائي





الخطوة الأخيرة هي إغلاق الغطاء وإتمام عملية التجميع. قمتُ بمحاذاة الغطاء العلوي مع الهيكل الرئيسي بعناية، وتأكدتُ من وضع عدسة الكاميرا، وامتداد الزر، والأسلاك الداخلية في مكانها الصحيح قبل إغلاق الغطاء. ولتثبيت كل شيء بإحكام، استخدمتُ ثلاثة براغي من الجهة الخلفية للغطاء.

قبل استخدام كاميرا Sentra، اشحن البطارية بالكامل عبر منفذ USB Type-C. بمجرد اكتمال الشحن، تصبح الكاميرا جاهزة للاستخدام.

بعد التشغيل، افتح لوحة التحكم في متصفحك باستخدام عنوان IP الخاص بـ ESP32-S3 للوصول إلى بث الكاميرا المباشر وجميع الميزات الذكية.

نظرًا لأن Sentra تعمل بالبطارية بالكامل وهي صغيرة الحجم، يمكنك حملها بسهولة إلى أي مكان أو تثبيتها على الحائط أو المكتب أو الرف أو أي مكان ترغب في مراقبته. خلال الاختبار، تحققت من بث الفيديو المباشر، وتسجيل بطاقة SD، وكشف الحركة، والرؤية الليلية التلقائية، ومراقبة الصوت، والإعلانات الصوتية، وعناصر التحكم في لوحة التحكم للتأكد من أن كل شيء يعمل بسلاسة.

كان شعورًا رائعًا أن أرى النظام بأكمله يعمل ككاميرا ذكية متكاملة، وقد أضفى ذلك حيوية على المشروع بأكمله.

الخطوة 14: الخاتمة

كان بناء Sentra تجربة ممتعة ومجزية للغاية بالنسبة لي. أردت تصميم كاميرا مراقبة منزلية الصنع لا تعمل بكفاءة فحسب، بل تتميز أيضًا بتصميم عصري، وسهولة الحمل، وأناقة التصميم. بدءًا من تصميم الهيكل باستخدام برنامج Autodesk Fusion 360، مرورًا ببناء لوحة التحكم، وصولًا إلى دمج جميع المكونات الإلكترونية، تم تصميم كل جزء من هذا المشروع وتجميعه من الصفر.

أكثر ما استمتعت به هو رؤية جميع الميزات المختلفة تتكامل في جهاز واحد صغير الحجم - بث فيديو مباشر، وكشف الحركة، ورؤية ليلية تلقائية، ومراقبة صوتية، وتسجيل على بطاقة SD، وحتى إعلانات صوتية، وكل ذلك يعمل بنظام ESP32-S3 يعمل بالبطارية.

ساعدني هذا المشروع أيضًا على تعلم الكثير عن الأنظمة المدمجة، وتصميم المنتجات، وتحسين البرمجيات في الوقت الفعلي. لقد أظهر لي مدى قوة وكفاءة لوحات التطوير الصغيرة عند دمجها مع الإبداع والتصميم الدقيق.

آمل أن يلهم هذا المشروع الآخرين لبناء أجهزتهم الذكية الخاصة وتجربة تقنيات "اصنعها بنفسك".

مخططات