شعار لافينESP32 أساسيات البدء
عدة

قائمة التعبئة

مجموعة أدوات البدء الأساسية LAFVIN ESP32 - قائمة التعبئة

مقدمة عن ESP32

هل أنت جديد على ESP32؟ ابدأ من هنا! ESP32 عبارة عن سلسلة من وحدات التحكم الدقيقة منخفضة التكلفة ومنخفضة الطاقة تعمل بنظام على شريحة (SoC) طورتها شركة Espressif وتتضمن إمكانيات الاتصال اللاسلكي بشبكة Wi-Fi وBluetooth ومعالج ثنائي النواة. إذا كنت على دراية بـ ESP8266، فإن ESP32 هو خليفته، وهو محمّل بالعديد من الميزات الجديدة.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - مقدمة عن ESP32مواصفات ESP32
إذا كنت تريد الحصول على مزيد من التفاصيل الفنية والتحديدية، فيمكنك إلقاء نظرة على المواصفات التفصيلية التالية لـ ESP32 (المصدر: http://esp32.net/)—لمزيد من التفاصيل، التحقق من ورقة البيانات):

  • الاتصال اللاسلكي WiFi: معدل بيانات 150.0 ميجابايت في الثانية مع HT40
  • البلوتوث: BLE (بلوتوث منخفض الطاقة) وبلوتوث كلاسيكي
  • المعالج: معالج Tensilica Xtensa ثنائي النواة 32 بت LX6، يعمل بسرعة 160 أو 240 ميجاهرتز
  • ذاكرة:
  • ROM: 448 كيلو بايت (للتشغيل والوظائف الأساسية)
  • SRAM: 520 كيلو بايت (للبيانات والتعليمات)
  • RTC fas SRAM: 8 كيلوبايت (لتخزين البيانات ووحدة المعالجة المركزية الرئيسية أثناء تمهيد RTC من وضع السكون العميق)
  • ذاكرة الوصول العشوائي البطيئة RTC: 8 كيلوبايت (للوصول إلى المعالج المساعد أثناء وضع السكون العميق) eFuse: 1 كيلوبت (يتم استخدام 256 بت منها للنظام (عنوان MAC وتكوين الشريحة) ويتم حجز 768 بت المتبقية لتطبيقات العملاء، بما في ذلك Flash-Encryption وChip-ID)

فلاش مدمج: فلاش متصل داخليًا عبر IO16، وIO17، وSD_CMD، وSD_CLK، وSD_DATA_0، وSD_DATA_1 على ESP32-D2WD وESP32-PICO-D4.

  • 0 ميجا بايت (ESP32-D0WDQ6، وESP32-D0WD، وESP32-S0WD)
  • 2 ميجا بايت (شريحة ESP32-D2WD)
  • 4 ميجا بايت (وحدة ESP32-PICO-D4 SiP)

طاقة منخفضة: تضمن أنه لا يزال بإمكانك استخدام تحويلات ADC، على سبيل المثالampأثناء النوم العميق.
الإدخال/الإخراج المحيطي:

  • واجهة محيطية مع DMA تتضمن اللمس بالسعة
  • محولات من تناظرية إلى رقمية (ADCs)
  • DACs (محول رقمي إلى تناظري)
  • I²C (الدائرة المتكاملة)
  • UART (جهاز استقبال/إرسال غير متزامن عالمي)
  • SPI (واجهة الأجهزة الطرفية التسلسلية)
  • I²S (صوت Interchip المتكامل)
  • RMII (واجهة مستقلة عن الوسائط المخفضة)
  • PWM (تعديل عرض النبضة)

حماية: مسرعات الأجهزة لـ AES وSSL/TLS

لوحات تطوير ESP32

يشير مصطلح ESP32 إلى شريحة ESP32 العارية. ومع ذلك، يُستخدم مصطلح "ESP32" أيضًا للإشارة إلى لوحات تطوير ESP32. إن استخدام شرائح ESP32 العارية ليس بالأمر السهل أو العملي، خاصة عند التعلم والاختبار والنماذج الأولية. في معظم الأحيان، ستحتاج إلى استخدام لوحة تطوير ESP32.
سنستخدم لوحة ESP32 DEVKIT V1 كمرجع. تُظهر الصورة أدناه لوحة ESP32 DEVKIT V1، الإصدار الذي يحتوي على 30 دبوس GPIO.مجموعة أدوات البدء الأساسية من LAFVIN ESP32 - لوحات تطوير ESP32المواصفات – ESP32 DEVKIT V1
يوضح الجدول التالي ملخصًا لميزات ومواصفات لوحة ESP32 DEVKIT V1 DOIT:

عدد النوى 2 (ثنائي النواة)
واي فاي 2.4 جيجا هرتز حتى 150 ميجا بت/ثانية
بلوتوث BLE (بلوتوث منخفض الطاقة) وبلوتوث القديم
بنيان 32 بت
تردد الساعة حتى 240 ميجا هرتز
كبش 512 كيلو بايت
دبابيس 30 (اعتمادًا على الطراز)
الأجهزة الطرفية اللمس السعوي، ADC (محول تناظري إلى رقمي)، DAC (محول رقمي إلى تناظري)، 12C (دائرة متكاملة)، UART (جهاز استقبال/إرسال غير متزامن عالمي)، CAN 2.0 (شبكة منطقة التحكم)، SPI (واجهة محيطية تسلسلية)، 12S (دائرة متكاملة بينية)
الصوت، وواجهة الوسائط المستقلة المخفضة (RMII)، وتعديل عرض النبضة (PWM)، والمزيد.
الأزرار المدمجة أزرار إعادة الضبط والتشغيل
مصابيح LED مدمجة مصباح LED أزرق مدمج متصل بـ GPIO2؛ ومصباح LED أحمر مدمج يوضح أن اللوحة قيد التشغيل
USB إلى UART
كوبري
CP2102

مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - ESP32 DEVKITيأتي مزودًا بواجهة microUSB التي يمكنك استخدامها لتوصيل اللوحة بالكمبيوتر لتحميل التعليمات البرمجية أو تطبيق الطاقة.
تستخدم شريحة CP2102 (USB إلى UART) للتواصل مع الكمبيوتر عبر منفذ COM باستخدام واجهة تسلسلية. شريحة CH340 شائعة أخرى. تحقق من محول شريحة USB إلى UART على لوحتك لأنك ستحتاج إلى تثبيت برامج التشغيل المطلوبة حتى يتمكن الكمبيوتر من التواصل مع اللوحة (مزيد من المعلومات حول هذا لاحقًا في هذا الدليل).
تأتي هذه اللوحة أيضًا مع زر RESET (قد يكون مُسمى EN) لإعادة تشغيل اللوحة وزر BOOT لوضع اللوحة في وضع الوميض (متاح لتلقي الكود). لاحظ أن بعض اللوحات قد لا تحتوي على زر BOOT.
كما يأتي مزودًا بمصباح LED أزرق مدمج متصل داخليًا بمنفذ GPIO 2. يُعد هذا المصباح مفيدًا في تصحيح الأخطاء لتقديم نوع من الناتج المادي المرئي. يوجد أيضًا مصباح LED أحمر يضيء عند توفير الطاقة للوحة.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - اللوحةتوصيلات ESP32
تتضمن الأجهزة الطرفية ESP32 ما يلي:

  • 18 قناة محول من تناظري إلى رقمي (ADC)
  • 3 واجهات SPI
  • 3 واجهات UART
  • 2 واجهة I2C
  • 16 قنوات إخراج PWM
  • 2 محولات رقمية إلى تناظرية (DAC)
  • 2 واجهة I2S
  • 10 منافذ GPIO ذات استشعار سعوي

يتم تعيين ميزات ADC (المحول التناظري إلى الرقمي) وDAC (المحول الرقمي إلى التناظري) إلى دبابيس ثابتة محددة. ومع ذلك، يمكنك تحديد الدبابيس التي هي UART وI2C وSPI وPWM وما إلى ذلك - ما عليك سوى تعيينها في الكود. وهذا ممكن بسبب ميزة الإرسال المتعدد لشريحة ESP32.
على الرغم من أنه يمكنك تحديد خصائص الدبابيس على البرنامج، إلا أن هناك دبابيس معينة بشكل افتراضي كما هو موضح في الشكل التاليمجموعة البدء الأساسية لـ LAFVIN ESP32 - توصيلات ESP32بالإضافة إلى ذلك، هناك دبابيس ذات خصائص محددة تجعلها مناسبة أو غير مناسبة لمشروع معين. يوضح الجدول التالي الدبابيس الأفضل للاستخدام كمدخلات ومخرجات وأيها يجب توخي الحذر عند استخدامها.
الدبابيس المميزة باللون الأخضر صالحة للاستخدام. والدبابيس المميزة باللون الأصفر صالحة للاستخدام، ولكن عليك الانتباه لأنها قد تصدر سلوكًا غير متوقع خاصة عند بدء التشغيل. ولا يُنصح باستخدام الدبابيس المميزة باللون الأحمر كمدخلات أو مخرجات.

جي بي آي أو مدخل الناتج ملحوظات
0 سحبت لأعلى OK يخرج إشارة PWM عند التمهيد، ويجب أن يكون منخفضًا للدخول إلى وضع الوميض
1 TX دبوس OK إخراج التصحيح عند التمهيد
2 OK OK متصل بمصباح LED الموجود على اللوحة، يجب تركه عائمًا أو منخفضًا للدخول في وضع الوميض
3 OK دبوس RX عالية عند التمهيد
4 OK OK
5 OK OK يخرج إشارة PWM عند التمهيد، دبوس الربط
12 OK OK يفشل التمهيد إذا تم سحبه لأعلى، دبوس الربط
13 OK OK
14 OK OK يخرج إشارة PWM عند التمهيد
15 OK OK يخرج إشارة PWM عند التمهيد، دبوس الربط
16 OK OK
17 OK OK
18 OK OK
19 OK OK
21 OK OK
22 OK OK
23 OK OK
25 OK OK
26 OK OK
27 OK OK
32 OK OK
33 OK OK
34 OK الإدخال فقط
35 OK الإدخال فقط
36 OK الإدخال فقط
39 OK الإدخال فقط

واصل القراءة للحصول على تحليل أكثر تفصيلاً وعمقًا لمنافذ GPIO الخاصة بـ ESP32 ووظائفها.
دبابيس الإدخال فقط
تعد منافذ GPIO من 34 إلى 39 عبارة عن منافذ إدخال فقط. ولا تحتوي هذه المنافذ على مقاومات سحب داخلية لأعلى أو لأسفل. ولا يمكن استخدامها كمخرجات، لذا استخدم هذه المنافذ كمدخلات فقط:

  • جي بي اي 34
  • جي بي اي 35
  • جي بي اي 36
  • جي بي اي 39

فلاش SPI مدمج في ESP-WROOM-32
يتم عرض GPIO 6 إلى GPIO 11 في بعض لوحات تطوير ESP32. ومع ذلك، فإن هذه الدبابيس متصلة بفلاش SPI المدمج على شريحة ESP-WROOM-32 ولا يُنصح باستخدامها في استخدامات أخرى. لذا، لا تستخدم هذه الدبابيس في مشاريعك:

  • GPIO 6 (SCK/CLK)
  • GPIO 7 (SDO/SD0)
  • GPIO 8 (SDI/SD1)
  • GPIO 9 (SHD/SD2)
  • GPIO 10 (SWP/SD3)
  • GPIO 11 (CSC/CMD)

منافذ GPIO تعمل باللمس بالسعة
يحتوي ESP32 على 10 مستشعرات لمس داخلية تعمل بالسعة. ويمكن لهذه المستشعرات استشعار الاختلافات في أي شيء يحمل شحنة كهربائية، مثل الجلد البشري. وبالتالي، يمكنها اكتشاف الاختلافات التي تحدث عند لمس منافذ GPIO بإصبع. ويمكن دمج هذه الدبابيس بسهولة في لوحات سعوية واستبدال الأزرار الميكانيكية. ويمكن أيضًا استخدام دبابيس اللمس السعوية لإيقاظ ESP32 من النوم العميق. وتتصل مستشعرات اللمس الداخلية هذه بمنافذ GPIO التالية:

  • T0 (GPIO 4)
  • T1 (GPIO 0)
  • T2 (GPIO 2)
  • T3 (GPIO 15)
  • T4 (GPIO 13)
  • T5 (GPIO 12)
  • T6 (GPIO 14)
  • T7 (GPIO 27)
  • T8 (GPIO 33)
  • T9 (GPIO 32)

محول تناظري إلى رقمي (ADC)
تحتوي وحدة ESP32 على 18 قناة إدخال محول تناظري رقمي 12 بت (بينما تحتوي وحدة ESP8266 على محول تناظري رقمي 1 بت فقط). وهذه هي منافذ الإدخال والإخراج العامة التي يمكن استخدامها كمحول تناظري رقمي والقنوات المقابلة:

  • ADC1_CH0 (GPIO 36)
  • ADC1_CH1 (GPIO 37)
  • ADC1_CH2 (GPIO 38)
  • ADC1_CH3 (GPIO 39)
  • ADC1_CH4 (GPIO 32)
  • ADC1_CH5 (GPIO 33)
  • ADC1_CH6 (GPIO 34)
  • ADC1_CH7 (GPIO 35)
  • ADC2_CH0 (GPIO 4)
  • ADC2_CH1 (GPIO 0)
  • ADC2_CH2 (GPIO 2)
  • ADC2_CH3 (GPIO 15)
  • ADC2_CH4 (GPIO 13)
  • ADC2_CH5 (GPIO 12)
  • ADC2_CH6 (GPIO 14)
  • ADC2_CH7 (GPIO 27)
  • ADC2_CH8 (GPIO 25)
  • ADC2_CH9 (GPIO 26)

ملحوظة: لا يمكن استخدام دبابيس ADC2 عند استخدام Wi-Fi. لذا، إذا كنت تستخدم Wi-Fi وتواجه مشكلة في الحصول على القيمة من ADC2 GPIO، فقد تفكر في استخدام ADC1 GPIO بدلاً من ذلك. يجب أن يحل هذا مشكلتك.
تتمتع قنوات إدخال المحول التناظري الرقمي بدقة 12 بت. وهذا يعني أنه يمكنك الحصول على قراءات تناظرية تتراوح من 0 إلى 4095، حيث يتوافق 0 مع 0 فولت و4095 إلى 3.3 فولت. يمكنك أيضًا ضبط دقة قنواتك على الكود ونطاق المحول التناظري الرقمي.
لا تتمتع دبابيس المحول التناظري الرقمي ESP32 بسلوك خطي. ربما لن تتمكن من التمييز بين 0 و0.1 فولت، أو بين 3.2 و3.3 فولت. يجب أن تضع ذلك في الاعتبار عند استخدام دبابيس المحول التناظري الرقمي. ستحصل على سلوك مشابه للسلوك الموضح في الشكل التالي.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - السلوكمحول رقمي إلى تناظري (DAC)
يوجد قناتان DAC 2 بت على ESP8 لتحويل الإشارات الرقمية إلى مستوى صوت تناظريtagمخرجات الإشارة e. هذه هي قنوات DAC:

  • محول رقمي تناظري رقم 1 (GPIO25)
  • محول رقمي تناظري رقم 2 (GPIO26)

منافذ GPIO في الوقت الفعلي
يوجد دعم RTC GPIO على ESP32. يمكن استخدام GPIOs الموجهة إلى نظام فرعي منخفض الطاقة RTC عندما يكون ESP32 في وضع السكون العميق. يمكن استخدام RTC GPIOs هذه لإيقاظ ESP32 من وضع السكون العميق عندما يكون مستوى الطاقة منخفضًا للغاية
يتم تشغيل معالج الطاقة المساعد (ULP). يمكن استخدام منافذ GPIO التالية كمصدر إيقاظ خارجي.

  • RTC_GPIO0 (GPIO36)
  • RTC_GPIO3 (GPIO39)
  • RTC_GPIO4 (GPIO34)
  • RTC_GPIO5 (GPIO35)
  • RTC_GPIO6 (GPIO25)
  • RTC_GPIO7 (GPIO26)
  • RTC_GPIO8 (GPIO33)
  • RTC_GPIO9 (GPIO32)
  • RTC_GPIO10 (GPIO4)
  • RTC_GPIO11 (GPIO0)
  • RTC_GPIO12 (GPIO2)
  • RTC_GPIO13 (GPIO15)
  • RTC_GPIO14 (GPIO13)
  • RTC_GPIO15 (GPIO12)
  • RTC_GPIO16 (GPIO14)
  • RTC_GPIO17 (GPIO27)

تعديل عرض النبضة
يحتوي متحكم ESP32 LED PWM على 16 قناة مستقلة يمكن تكوينها لتوليد إشارات PWM بخصائص مختلفة. يمكن استخدام جميع الدبابيس التي يمكن أن تعمل كمخرجات كدبابيس PWM (لا يمكن لـ GPIOs 34 إلى 39 توليد PWM).
لتعيين إشارة PWM، تحتاج إلى تحديد هذه المعلمات في الكود:

  • تردد الإشارة؛
  • دورة العمل؛
  • قناة PWM؛
  • GPIO حيث تريد إخراج الإشارة.

اي 2 سي
يحتوي ESP32 على قناتين I2C ويمكن ضبط أي دبوس كـ SDA أو SCL. عند استخدام ESP32 مع Arduino IDE، تكون دبابيس I2C الافتراضية هي:

  • GPIO 21 (SDA)
  • GPIO 22 (SCL)

إذا كنت تريد استخدام دبابيس أخرى عند استخدام مكتبة الأسلاك، فأنت تحتاج فقط إلى الاتصال بـ:
السلك.يبدأ (SDA، SCL)؛
إس بي آي
بشكل افتراضي، تعيين الدبوس لـ SPI هو:

إس بي آي MOSI ميسو سي إل كيه CS
vspi جي بي اي 23 جي بي اي 19 جي بي اي 18 جي بي اي 5
مؤشر الأداء الاقتصادي جي بي اي 13 جي بي اي 12 جي بي اي 14 جي بي اي 15

المقاطعات
يمكن تكوين كافة منافذ GPIO كمقاطعات.
دبابيس الربط
تحتوي شريحة ESP32 على دبابيس الربط التالية:

  • GPIO 0 (يجب أن يكون منخفضًا للدخول إلى وضع التمهيد)
  • GPIO 2 (يجب أن يكون عائمًا أو منخفضًا أثناء التمهيد)
  • جي بي اي 4
  • GPIO 5 (يجب أن يكون مرتفعًا أثناء التمهيد)
  • GPIO 12 (يجب أن يكون منخفضًا أثناء التمهيد)
  • GPIO 15 (يجب أن يكون مرتفعًا أثناء التمهيد)

تُستخدم هذه الدبابيس لوضع ESP32 في وضع أداة تحميل التشغيل أو وضع الوميض. في معظم لوحات التطوير المزودة بمنفذ USB/Serial مدمج، لا داعي للقلق بشأن حالة هذه الدبابيس. تضع اللوحة الدبابيس في الحالة الصحيحة لوضع الوميض أو وضع التمهيد. يمكن العثور على مزيد من المعلومات حول اختيار وضع تمهيد ESP32 هنا.
ومع ذلك، إذا كان لديك أجهزة طرفية متصلة بهذه الدبابيس، فقد تواجه مشكلة في محاولة تحميل كود جديد أو تحديث ESP32 ببرامج ثابتة جديدة أو إعادة ضبط اللوحة. إذا كان لديك بعض الأجهزة الطرفية المتصلة بدبابيس الربط وتواجه مشكلة في تحميل الكود أو تحديث ESP32، فقد يكون ذلك لأن هذه الأجهزة الطرفية تمنع ESP32 من الدخول إلى الوضع الصحيح. اقرأ وثائق تحديد وضع التمهيد لإرشادك في الاتجاه الصحيح. بعد إعادة الضبط أو التحديث أو التمهيد، تعمل هذه الدبابيس كما هو متوقع.
دبابيس عالية عند التمهيد
تغير بعض وحدات GPIO حالتها إلى HIGH أو تخرج إشارات PWM عند التشغيل أو إعادة التعيين.
يعني هذا أنه إذا كان لديك مخرجات متصلة بهذه GPIOs، فقد تحصل على نتائج غير متوقعة عند إعادة تعيين ESP32 أو تشغيله.

  • جي بي اي 1
  • جي بي اي 3
  • جي بي اي 5
  • GPIO 6 إلى GPIO 11 (متصل بذاكرة فلاش SPI المتكاملة ESP32 – لا ينصح باستخدامه).
  • جي بي اي 14
  • جي بي اي 15

تمكين (بالإنكليزية)
التمكين (EN) هو دبوس التمكين لمنظم الجهد 3.3 فولت. يتم سحبه لأعلى، لذا قم بتوصيله بالأرض لتعطيل منظم الجهد 3.3 فولت. هذا يعني أنه يمكنك استخدام هذا الدبوس المتصل بزر ضغط لإعادة تشغيل ESP32، على سبيل المثالampليه.
التيار المرسوم على GPIO
يبلغ الحد الأقصى المطلق للتيار المسحوب لكل GPIO 40 مللي أمبير وفقًا لقسم "ظروف التشغيل الموصى بها" في ورقة بيانات ESP32.
مستشعر تأثير هول المدمج ESP32
يتميز ESP32 أيضًا بمستشعر تأثير هول مدمج يكتشف التغييرات في المجال المغناطيسي في محيطه
بيئة تطوير متكاملة لـ ESP32 Arduino
هناك إضافة لـ Arduino IDE تتيح لك برمجة ESP32 باستخدام Arduino IDE ولغة البرمجة الخاصة به. في هذا البرنامج التعليمي، سنوضح لك كيفية تثبيت لوحة ESP32 في Arduino IDE سواء كنت تستخدم Windows أو Mac OS X أو Linux.
المتطلبات الأساسية: تم تثبيت Arduino IDE
قبل البدء في إجراء التثبيت هذا، يجب أن يكون لديك برنامج Arduino IDE مثبتًا على جهاز الكمبيوتر الخاص بك. هناك نسختان من برنامج Arduino IDE يمكنك تثبيتهما: الإصدار 1 والإصدار 2.
يمكنك تنزيل Arduino IDE وتثبيته بالضغط على الرابط التالي: arduino.cc/ar/الرئيسية/البرمجيات
ما هو إصدار Arduino IDE الذي نوصي به؟ في الوقت الحالي، هناك بعض الإصدارات plugins بالنسبة لـ ESP32 (مثل SPIFFS File(system Uploader Plugin) التي لا تدعمها Arduino 2 حتى الآن. لذا، إذا كنت تنوي استخدام البرنامج المساعد SPIFFS في المستقبل، فنوصيك بتثبيت الإصدار القديم 1.8.X. ما عليك سوى التمرير لأسفل على صفحة برنامج Arduino للعثور عليه.
تثبيت ESP32 Add-on في Arduino IDE
لتثبيت لوحة ESP32 في Arduino IDE الخاص بك، اتبع التعليمات التالية:

  1. في Arduino IDE الخاص بك، انتقل إلى File> التفضيلاتمجموعة أدوات البدء الأساسية LAFVIN ESP32 - التفضيلات
  2. أدخل ما يلي في "مدير المجلس الإضافي" URLs ":

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
ثم انقر على زر "موافق":مجموعة أدوات البدء الأساسية LAFVIN ESP32 - زر "موافق"ملحوظة: إذا كان لديك بالفعل لوحات ESP8266 URL، يمكنك فصل URLs مع فاصلة على النحو التالي:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,
http://arduino.esp8266.com/stable/package_esp8266com_index.json
افتح "مدير المجالس". انتقل إلى "أدوات" > "المجالس" > "مدير المجالس"...مجموعة أدوات البدء الأساسية LAFVIN ESP32 - Espressifبحث عن ESP32 and press install button for the “ESP32 by Espressif Systems“:مجموعة أدوات البدء الأساسية LAFVIN ESP32 - Espressifهذا كل شيء. يجب أن يتم تثبيته بعد بضع ثوانٍ.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - تم تركيبها

تحميل كود الاختبار

قم بتوصيل لوحة ESP32 بجهاز الكمبيوتر الخاص بك. مع فتح برنامج Arduino IDE، اتبع الخطوات التالية:

  1. حدد اللوحة الخاصة بك في قائمة الأدوات > اللوحة (في حالتي هي وحدة ESP32 DEV)مجموعة أدوات البدء الأساسية LAFVIN ESP32 - لوحة الأدوات
  2. حدد المنفذ (إذا لم تتمكن من رؤية منفذ COM في Arduino IDE الخاص بك، فستحتاج إلى تثبيت برامج تشغيل VCP الخاصة بـ CP210x USB إلى UART Bridge):مجموعة أدوات البدء الأساسية LAFVIN ESP32 - جسر UART
  3. افتح المثال التاليampلي تحت File > السابقamples > واي فاي
    (ESP32) > مسح واي فايمجموعة أدوات البدء الأساسية لجهاز LAFVIN ESP32 - WiFiScanمجموعة أدوات البدء الأساسية LAFVIN ESP32 - WiFiScan 1
  4. سيتم فتح رسم تخطيطي جديد في Arduino IDE الخاص بك:مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - Arduino IDE
  5. اضغط على زر التحميل في بيئة التطوير المتكاملة Arduino. انتظر بضع ثوانٍ أثناء تجميع الكود وتحميله إلى لوحتك.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - اللوحة
  6. إذا سارت الأمور كما هو متوقع، فيجب أن ترى رسالة "تم التحميل".مجموعة أدوات البدء الأساسية LAFVIN ESP32 - تم التحميل
  7. افتح Arduino IDE Serial Monitor بمعدل بود 115200:مجموعة أدوات البدء الأساسية LAFVIN ESP32 - شاشة
  8. اضغط على زر تمكين الموجود على لوحة ESP32 ويجب أن ترى الشبكات المتاحة بالقرب من ESP32 الخاص بك:مجموعة أدوات البدء الأساسية LAFVIN ESP32 - زر التمكين

استكشاف الأخطاء وإصلاحها

إذا حاولت تحميل رسم تخطيطي جديد إلى ESP32 الخاص بك وظهرت لك رسالة الخطأ هذه "حدث خطأ فادح: فشل الاتصال بـ ESP32: انتهت المهلة... جاري الاتصال..."، فهذا يعني أن ESP32 الخاص بك ليس في وضع الوميض/التحميل.
بعد تحديد اسم اللوحة الصحيح وCOM por، اتبع الخطوات التالية:
اضغط باستمرار على زر "BOOT" في لوحة ESP32 الخاصة بكمجموعة البدء الأساسية لـ LAFVIN ESP32 - "BOOT"

  • اضغط على زر "تحميل" في Arduino IDE لتحميل الرسم التخطيطي الخاص بك:مجموعة أدوات البدء الأساسية LAFVIN ESP32 - ICON 6
  • بعد أن ترى رسالة "جارٍ الاتصال...." في برنامج Arduino IDE الخاص بك، حرر إصبعك من زر "BOOT":مجموعة أدوات البدء الأساسية LAFVIN ESP32 - "تم التحميل"
  • بعد ذلك، يجب أن ترى رسالة "تم التحميل"
    هذا كل شيء. يجب أن يكون الرسم التخطيطي الجديد قيد التشغيل على جهاز ESP32 الخاص بك. اضغط على زر "تمكين" لإعادة تشغيل جهاز ESP32 وتشغيل الرسم التخطيطي الجديد الذي تم تحميله.
    سيتعين عليك أيضًا تكرار تسلسل الأزرار هذا في كل مرة تريد فيها تحميل رسم تخطيطي جديد.

المشروع 1 ESP32 المدخلات والمخرجات

في هذا الدليل التمهيدي، ستتعلم كيفية قراءة المدخلات الرقمية مثل مفتاح الزر والتحكم في المخرجات الرقمية مثل LED باستخدام ESP32 مع Arduino IDE.
المتطلبات الأساسية
سنقوم ببرمجة ESP32 باستخدام Arduino IDE. لذا، تأكد من تثبيت الوظيفة الإضافية للوحة ESP32 قبل المتابعة:

  • تثبيت ESP32 Add-on في Arduino IDE

ESP32 التحكم في المخرجات الرقمية
أولاً، تحتاج إلى تعيين GPIO الذي تريد التحكم فيه كمخرج. استخدم الدالة pinMode() على النحو التالي:
pinMode(GPIO، الإخراج)؛
للتحكم في الإخراج الرقمي، كل ما عليك فعله هو استخدام الدالة digitalWrite()، التي تقبل كوسائط GPIO (رقم int) الذي تشير إليه والحالة، سواء كانت HIGH أو LOW.
digitalWrite(GPIO، الحالة)؛
يمكن استخدام جميع منافذ GPIO كمخرجات باستثناء منافذ GPIO 6 إلى 11 (المتصلة بفلاش SPI المتكامل) ومنافذ GPIO 34 و35 و36 و39 (منافذ GPIO للإدخال فقط)؛
تعرف على المزيد حول ESP32 GPIOs: دليل مرجعي لـ ESP32 GPIO
ESP32 قراءة المدخلات الرقمية
أولاً، قم بتعيين GPIO الذي تريد قراءته كـ INPUT، باستخدام وظيفة pinMode() على النحو التالي:
pinMode(GPIO، الإدخال)؛
لقراءة إدخال رقمي، مثل زر، يمكنك استخدام الدالة digitalRead()، التي تقبل كحجة GPIO (رقم int) الذي تشير إليه.
قراءة رقمية(GPIO)؛
يمكن استخدام جميع منافذ GPIO الخاصة بـ ESP32 كمدخلات، باستثناء منافذ GPIO 6 إلى 11 (المتصلة بفلاش SPI المتكامل).
تعرف على المزيد حول ESP32 GPIOs: دليل مرجعي لـ ESP32 GPIO
مثال على المشروعample
لإظهار كيفية استخدام المدخلات والمخرجات الرقمية، سنقوم ببناء مشروع بسيطampباستخدام زر ضغط ومصباح LED. سنقرأ حالة الزر ونضيء مصباح LED وفقًا لذلك كما هو موضح في الشكل التالي.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - مشروع Example

الأجزاء المطلوبة
فيما يلي قائمة بالأجزاء التي تحتاجها لبناء الدائرة:

  • مجموعة أدوات تطوير ESP32 الإصدار 1
  • 5 ملم LED
  • 220 أوم المقاوم
  • اضغط الزر
  • مقاومة 10 كيلو أوم
  • لوحة التوصيل
  • أسلاك التوصيل

مخطط تخطيطي
قبل المتابعة، تحتاج إلى تجميع دائرة تحتوي على مصباح LED وزر ضغط.
سنقوم بتوصيل LED بـ GPIO 5 والزر بـ GPIO 4.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - مخطط تخطيطيشفرة
افتح الكود Project_1_ESP32_Inputs_Outputs.ino في arduino IDEمجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكودمجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكود 1كيف يعمل الكود
في السطرين التاليين، يمكنك إنشاء متغيرات لتعيين الدبابيس:

مجموعة أدوات البدء الأساسية LAFVIN ESP32 - Code Worksيتم توصيل الزر بـ GPIO 4 ويتم توصيل LED بـ GPIO 5. عند استخدام Arduino IDE مع ESP32، يتوافق 4 مع GPIO 4 ويتوافق 5 مع GPIO 5.
بعد ذلك، قم بإنشاء متغير للاحتفاظ بحالة الزر. بشكل افتراضي، يكون المتغير 0 (غير مضغوط).
int حالة الزر = 0؛
في setup()، يمكنك تهيئة الزر كمدخل، ومصباح LED كمخرج.
ولتحقيق هذه الغاية، يمكنك استخدام الدالة pinMode() التي تقبل الدبوس الذي تشير إليه، والوضع: INPUT أو OUTPUT.
pinMode(دبوس الزر، الإدخال)؛
pinMode(ledPin، الإخراج)؛
في loop() يمكنك قراءة حالة الزر وتعيين مؤشر LED وفقًا لذلك.
في السطر التالي، يمكنك قراءة حالة الزر وحفظها في المتغير buttonState.
كما رأينا سابقًا، يمكنك استخدام الدالة digitalRead().
buttonState = digitalRead(buttonPin);
يتحقق بيان if التالي مما إذا كانت حالة الزر HIGH أم لا. إذا كانت كذلك، فإنه يقوم بتشغيل LED باستخدام دالة digitalWrite() التي تقبل ledPin كحجة، والحالة HIGH.
إذا (حالة الزر == عالية)مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - Code Works 1إذا لم تكن حالة الزر HIGH، يمكنك إيقاف تشغيل LED. ما عليك سوى تعيين LOW كحجة ثانية في دالة digitalWrite().مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - digitalWriteتحميل الكود
قبل النقر على زر التحميل، انتقل إلى الأدوات > اللوحة، وحدد اللوحة: DOIT ESP32 DEVKIT V1 board.
انتقل إلى الأدوات > المنفذ وحدد منفذ COM الذي يتصل به ESP32. ثم اضغط على زر التحميل وانتظر رسالة "تم التحميل".مجموعة أدوات البدء الأساسية LAFVIN ESP32 - ICON 7ملاحظة: إذا رأيت الكثير من النقاط (جارٍ الاتصال...__...__) في نافذة التصحيح ورسالة "فشل الاتصال بـ ESP32: انتهت مهلة انتظار رأس الحزمة"، فهذا يعني أنك بحاجة إلى الضغط على زر BOOT الموجود على لوحة ESP32 بعد النقاط
بدء الظهور.استكشاف الأخطاء وإصلاحها

توضيح

بعد تحميل الكود، اختبر الدائرة. يجب أن يضيء مصباح LED الخاص بك عند الضغط على الزر:مجموعة أدوات البدء الأساسية LAFVIN ESP32 - عرض توضيحيوأغلقه عند إطلاقه:مجموعة أدوات البدء الأساسية LAFVIN ESP32 - دورة

المشروع 2 مدخلات ESP32 التناظرية

يوضح هذا المشروع كيفية قراءة المدخلات التناظرية باستخدام ESP32 باستخدام Arduino IDE.
القراءة التناظرية مفيدة لقراءة القيم من المقاومات المتغيرة مثل مقاييس الجهد أو أجهزة الاستشعار التناظرية.
المدخلات التناظرية (ADC)
قراءة القيمة التناظرية باستخدام ESP32 يعني أنه يمكنك قياس حجم متغيرtagمستويات بين 0 فولت و 3.3 فولت.
المجلدtagيتم بعد ذلك تعيين القيمة المقاسة إلى قيمة بين 0 و4095، حيث يتوافق 0 فولت مع 0، ويتوافق 3.3 فولت مع 4095. أي حجمtagبين 0 فولت و3.3 فولت سيتم إعطاء القيمة المقابلة بينهما.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - المدخلات التناظريةADC غير خطي
من الناحية المثالية، تتوقع سلوكًا خطيًا عند استخدام دبابيس ADC ESP32.
ومع ذلك، لا يحدث هذا. ما ستحصل عليه هو سلوك كما هو موضح في الرسم البياني التالي:مجموعة أدوات البدء الأساسية LAFVIN ESP32 - غير خطيةيعني هذا السلوك أن جهاز ESP32 الخاص بك غير قادر على التمييز بين 3.3 فولت و3.2 فولت.
سوف تحصل على نفس القيمة لكلا المجلدينtagالعربية: 4095.
ويحدث نفس الشيء بالنسبة للحجم المنخفض جدًاtagالقيم e: بالنسبة إلى 0 فولت و0.1 فولت، ستحصل على نفس القيمة: 0. يجب أن تضع ذلك في الاعتبار عند استخدام دبابيس ADC الخاصة بـ ESP32.
دالة analogRead()
قراءة مدخل تماثلي باستخدام ESP32 باستخدام Arduino IDE أمر بسيط مثل استخدام الدالة analogRead(). تقبل كحجة GPIO الذي تريد قراءته:
قراءة تناظرية(GPIO)؛
يتوفر 15 فقط في لوحة DEVKIT V1 (الإصدار الذي يحتوي على 30 GPIO).
قم بإمساك دبابيس لوحة ESP32 الخاصة بك وحدد دبابيس ADC. يتم تمييزها بإطار أحمر في الشكل أدناه.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الحدودتتمتع دبابيس الإدخال التناظرية هذه بدقة 12 بت. وهذا يعني أنه عند قراءة إدخال تناظري، قد يختلف نطاقه من 0 إلى 4095.
ملاحظة: لا يمكن استخدام دبابيس ADC2 عند استخدام Wi-Fi. لذا، إذا كنت تستخدم Wi-Fi وتواجه مشكلة في الحصول على القيمة من ADC2 GPIO، فيمكنك التفكير في استخدام ADC1 GPIO بدلاً من ذلك، وهذا من شأنه أن يحل مشكلتك.
لنرى كيف ترتبط كل الأشياء ببعضها البعض، سنقوم بعمل مثال بسيطampلقراءة قيمة تناظرية من مقياس الجهد.
الأجزاء المطلوبة
لهذا السابقampنعم، أنت بحاجة إلى الأجزاء التالية:

  • لوحة ESP32 DEVKIT V1
  • مقياس الجهد
  • لوحة التوصيل
  • أسلاك التوصيل

تخطيطي
قم بتوصيل مقياس الجهد بجهاز ESP32 الخاص بك. يجب توصيل دبوس مقياس الجهد الأوسط بمنفذ GPIO 4. يمكنك استخدام الرسم التخطيطي التالي كمرجع.مجموعة أدوات البدء الأساسية لجهاز LAFVIN ESP32 - مخططشفرة
سوف نقوم ببرمجة ESP32 باستخدام Arduino IDE، لذا تأكد من تثبيت الوظيفة الإضافية ESP32 قبل المتابعة: (إذا كنت قد قمت بالفعل بهذه الخطوة، فيمكنك التخطي إلى الخطوة التالية.)
تثبيت ESP32 Add-on في Arduino IDE
افتح الكود Project_2_ESP32_Inputs_Outputs.ino في arduino IDEمجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكود 2يقوم هذا الكود ببساطة بقراءة القيم من مقياس الجهد ويطبع تلك القيم في شاشة التسلسل.
في الكود، تبدأ بتحديد منفذ GPIO الذي يتصل به مقياس الجهد. في هذا المثالampنعم، GPIO 4.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - exampleفي setup()، قم بتهيئة اتصال تسلسلي بمعدل بود يبلغ 115200.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - exampليه 1في loop()، استخدم الدالة analogRead() لقراءة الإدخال التناظري من potPin.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - exampليه 2وأخيرًا، قم بطباعة القيم المقروءة من مقياس الجهد في الشاشة التسلسلية.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - exampليه 3قم بتحميل الكود المقدم إلى ESP32 الخاص بك. تأكد من تحديد اللوحة الصحيحة ومنفذ COM في قائمة الأدوات.
اختبار السابقample
بعد تحميل الكود والضغط على زر إعادة تعيين ESP32، افتح Serial Monitor بمعدل بود 115200. قم بتدوير مقياس الجهد وشاهد القيم تتغير.الحد الأقصى للقيمة التي ستحصل عليها هو 4095 والحد الأدنى للقيمة هو 0.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - القيمة القصوى

اختتام

في هذه المقالة، تعلمت كيفية قراءة المدخلات التناظرية باستخدام ESP32 مع Arduino IDE. باختصار:

  • تحتوي لوحة ESP32 DEVKIT V1 DOIT (الإصدار الذي يحتوي على 30 دبوسًا) على 15 دبوسًا ADC يمكنك استخدامها لقراءة المدخلات التناظرية.
  • تتمتع هذه الدبابيس بدقة 12 بت، مما يعني أنه بإمكانك الحصول على قيم تتراوح من 0 إلى 4095.
  • لقراءة قيمة في Arduino IDE، يمكنك ببساطة استخدام الدالة analogRead().
  • لا تتمتع دبابيس المحول التناظري الرقمي ESP32 بسلوك خطي. ربما لن تتمكن من التمييز بين 0 و0.1 فولت، أو بين 3.2 و3.3 فولت. يجب أن تضع ذلك في الاعتبار عند استخدام دبابيس المحول التناظري الرقمي.

المشروع 3 ESP32 PWM (المخرج التناظري)

في هذا البرنامج التعليمي، سنوضح لك كيفية إنشاء إشارات PWM باستخدام ESP32 باستخدام Arduino IDE. كمثالampسنبني دائرة بسيطة تعمل على تعتيم LED باستخدام وحدة التحكم LED PWM الخاصة بـ ESP32.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - AnalogOutputوحدة تحكم PWM LED ESP32
يحتوي ESP32 على وحدة تحكم LED PWM مع 16 قناة مستقلة يمكن تهيئتها لتوليد إشارات PWM بخصائص مختلفة.
فيما يلي الخطوات التي يجب عليك اتباعها لخفض إضاءة LED باستخدام PWM باستخدام Arduino IDE:

  1. أولاً، عليك اختيار قناة PWM. هناك 16 قناة تتراوح من 0 إلى 15.
  2. بعد ذلك، تحتاج إلى ضبط تردد إشارة PWM. بالنسبة لمصباح LED، فإن التردد المناسب هو 5000 هرتز.
  3. يجب عليك أيضًا ضبط دقة دورة عمل الإشارة: لديك دقة تتراوح من 1 إلى 16 بت. سنستخدم دقة 8 بت، مما يعني أنه يمكنك التحكم في سطوع LED باستخدام قيمة تتراوح من 0 إلى 255.
  4.  بعد ذلك، تحتاج إلى تحديد GPIO أو GPIOs التي ستظهر عليها الإشارة. للقيام بذلك، ستستخدم الوظيفة التالية:
    ledcAttachPin(GPIO، القناة)
    تقبل هذه الوظيفة وسيطتين. الوسيط الأول هو GPIO الذي سيخرج الإشارة، والوسيط الثاني هو القناة التي ستولد الإشارة.
  5. وأخيرًا، للتحكم في سطوع LED باستخدام PWM، يمكنك استخدام الوظيفة التالية:

ledcWrite(القناة، دورة العمل)
تقبل هذه الوظيفة كوسيطات القناة التي تولد إشارة PWM ودورة العمل.
الأجزاء المطلوبة
لمتابعة هذا البرنامج التعليمي، تحتاج إلى هذه الأجزاء:

  • لوحة ESP32 DEVKIT V1
  • 5mm LED
  • 220 أوم المقاوم
  •  لوحة التوصيل
  • أسلاك التوصيل

تخطيطي
قم بتوصيل LED بجهاز ESP32 الخاص بك كما هو موضح في الرسم التخطيطي التالي. يجب توصيل LED بمنفذ GPIO 4.مجموعة أدوات البدء الأساسية لجهاز LAFVIN ESP32 - مخططملحوظة: يمكنك استخدام أي دبوس تريده، طالما أنه يمكن أن يعمل كمخرج. يمكن استخدام جميع الدبابيس التي يمكن أن تعمل كمخرجات كدبابيس PWM. لمزيد من المعلومات حول ESP32 GPIOs، اقرأ: ESP32 Pinout Reference: ما هي دبابيس GPIO التي يجب عليك استخدامها؟
شفرة
سوف نقوم ببرمجة ESP32 باستخدام Arduino IDE، لذا تأكد من تثبيت الوظيفة الإضافية ESP32 قبل المتابعة: (إذا كنت قد قمت بالفعل بهذه الخطوة، فيمكنك التخطي إلى الخطوة التالية.)
تثبيت ESP32 Add-on في Arduino IDE
افتح الكود Project_3_ESP32_PWM.ino في arduino IDEمجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكود 3مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكود 4ابدأ بتحديد الدبوس الذي تم توصيل LED به. في هذه الحالة، يتم توصيل LED بـ GPIO 4.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكود 5بعد ذلك، يمكنك ضبط خصائص إشارة PWM. يمكنك تحديد تردد 5000 هرتز، واختيار القناة 0 لتوليد الإشارة، وتعيين دقة 8 بت. يمكنك اختيار خصائص أخرى، مختلفة عن هذه، لتوليد إشارات PWM مختلفة.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكود 6في setup()، تحتاج إلى تكوين LED PWM بالخصائص التي قمت بتعريفها مسبقًا باستخدام دالة ledcSetup() التي تقبل ledChannel والتردد والدقة كوسائط، على النحو التالي:مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكود 8بعد ذلك، تحتاج إلى اختيار GPIO الذي ستحصل منه على الإشارة. لذلك، استخدم دالة ledcAttachPin() التي تقبل كوسائط GPIO الذي تريد الحصول منه على الإشارة، والقناة التي تولد الإشارة. في هذا المثال،ampلذا، سنحصل على الإشارة في ledPin GPIO، والتي تتوافق مع GPIO 4. القناة التي تولد الإشارة هي ledChannel، والتي تتوافق مع القناة 0.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكود 9في الحلقة، ستقوم بتغيير دورة العمل بين 0 و255 لزيادة سطوع LED.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - السطوعومن ثم بين 255 و 0 لتقليل السطوع.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - السطوع 1لتعيين سطوع LED، كل ما عليك فعله هو استخدام الدالة ledcWrite() التي تقبل القناة التي تولد الإشارة ودورة العمل كوسيطتين.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - السطوع 2نظرًا لأننا نستخدم دقة 8 بت، فسيتم التحكم في دورة العمل باستخدام قيمة من 0 إلى 255. لاحظ أنه في دالة ledcWrite() نستخدم القناة التي تولد الإشارة، وليس GPIO.

اختبار السابقample

قم بتحميل الكود إلى ESP32 الخاص بك. تأكد من تحديد اللوحة الصحيحة ومنفذ COM. انظر إلى الدائرة الخاصة بك. يجب أن يكون لديك مصباح LED باهت يزيد ويقلل السطوع.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - اختبار Example

مشروع 4 مستشعر الحركة ESP32 PIR

يوضح هذا المشروع كيفية اكتشاف الحركة باستخدام ESP32 باستخدام مستشعر الحركة PIR. سيصدر الجرس إنذارًا عند اكتشاف الحركة، ويتوقف الإنذار عند عدم اكتشاف أي حركة لمدة زمنية محددة مسبقًا (مثل 4 ثوانٍ)
كيف يعمل مستشعر الحركة HC-SR501
.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - يعمل مستشعر الحركةيعتمد مبدأ عمل مستشعر HC-SR501 على تغيير الإشعاع تحت الأحمر على الجسم المتحرك. لكي يتم اكتشافه بواسطة مستشعر HC-SR501، يجب أن يفي الجسم بمتطلبين:

  • الجسم يصدر الأشعة تحت الحمراء.
  • الجسم يتحرك أو يهتز

لذا:
إذا كان الجسم يصدر الأشعة تحت الحمراء ولكنه لا يتحرك (على سبيل المثال، شخص يقف ساكنًا دون أن يتحرك)، فسيتم اكتشافه بواسطة المستشعر.
إذا كان الجسم يتحرك ولكنه لا يصدر الأشعة تحت الحمراء (على سبيل المثال، الروبوت أو المركبة)، فلن يتم اكتشافه بواسطة المستشعر.
مقدمة عن المؤقتات
في هذا المثال السابقampسنقدم أيضًا مؤقتات. نريد أن يظل مصباح LED مضاءً لعدد محدد مسبقًا من الثواني بعد اكتشاف الحركة. بدلاً من استخدام دالة delay() التي تمنع الكود الخاص بك ولا تسمح لك بفعل أي شيء آخر لعدد محدد من الثواني، يجب أن نستخدم مؤقتًا.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - مقدمة عن المؤقتاتدالة التأخير ()
يجب أن تكون على دراية بوظيفة delay() لأنها مستخدمة على نطاق واسع. هذه الوظيفة سهلة الاستخدام إلى حد كبير. فهي تقبل رقمًا واحدًا من النوع int كحجة.
يمثل هذا الرقم الوقت بالمللي ثانية الذي يتعين على البرنامج انتظاره حتى ينتقل إلى السطر التالي من التعليمات البرمجية.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكودعندما تقوم بـ delay(1000) يتوقف برنامجك على هذا السطر لمدة ثانية واحدة.
delay() هي دالة حظر. تمنع الدوال الحظرية البرنامج من القيام بأي شيء آخر حتى اكتمال هذه المهمة المحددة. إذا كنت بحاجة إلى حدوث مهام متعددة في نفس الوقت، فلا يمكنك استخدام delay().
بالنسبة لمعظم المشاريع، يجب عليك تجنب استخدام التأخيرات واستخدام المؤقتات بدلاً من ذلك.
دالة millis()
باستخدام الدالة millis() يمكنك إرجاع عدد المللي ثانية التي مرت منذ بدء تشغيل البرنامج لأول مرة.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - تم بدء البرنامج لأول مرةلماذا تعد هذه الوظيفة مفيدة؟ لأنه باستخدام بعض العمليات الحسابية، يمكنك بسهولة التحقق من مقدار الوقت الذي مر دون حظر الكود الخاص بك.
الأجزاء المطلوبة
لمتابعة هذا البرنامج التعليمي، تحتاج إلى الأجزاء التالية

  • لوحة ESP32 DEVKIT V1
  • مستشعر الحركة PIR (HC-SR501)
  • نشط الجرس
  • أسلاك التوصيل
  • لوحة التوصيل

تخطيطيمجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - الرسم التخطيطي 1ملحوظة: حجم العملtagتبلغ قيمة الجهد الكهربي لجهاز HC-SR501 5 فولت. استخدم دبوس Vin لتشغيله.
شفرة
قبل متابعة هذا البرنامج التعليمي، يجب أن يكون لديك البرنامج الإضافي ESP32 مثبتًا في Arduino IDE الخاص بك. اتبع أحد البرامج التعليمية التالية لتثبيت ESP32 على Arduino IDE، إذا لم تكن قد قمت بذلك بالفعل. (إذا كنت قد قمت بالفعل بهذه الخطوة، فيمكنك الانتقال إلى الخطوة التالية.)
تثبيت ESP32 Add-on في Arduino IDE
افتح الكود Project_4_ESP32_PIR_Motion_Sensor.ino في arduino IDE.
توضيح
قم بتحميل الكود إلى لوحة ESP32 الخاصة بك. تأكد من تحديد اللوحة الصحيحة ومنفذ COM. خطوات مرجعية لتحميل الكود.
افتح Serial Monitor بمعدل بود يبلغ 115200.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - العرض التوضيحي 1حرك يدك أمام مستشعر الأشعة تحت الحمراء. يجب أن يتم تشغيل الجرس، ويتم طباعة الرسالة على شاشة Serial Monitor والتي تقول "تم اكتشاف الحركة! إنذار الجرس".
بعد مرور 4 ثواني، يجب أن يتوقف الجرس.مجموعة أدوات البدء الأساسية لجهاز LAFVIN ESP32 - الجرس

مشروع 5 مفتاح ESP32 Web الخادم

في هذا المشروع سوف تقوم بإنشاء مشروع مستقل web خادم مزود بـ ESP32 يتحكم في المخرجات (مصباحان LED) باستخدام بيئة برمجة Arduino IDE. web الخادم متجاوب مع الأجهزة المحمولة ويمكن الوصول إليه من أي جهاز كمتصفح على الشبكة المحلية. سنوضح لك كيفية إنشاء web الخادم وكيفية عمل الكود خطوة بخطوة.
انتهى المشروعview
قبل الانتقال مباشرة إلى المشروع، من المهم تحديد ما هو web سيفعل الخادم ذلك، بحيث يكون من الأسهل اتباع الخطوات لاحقًا.

  • ال web يتحكم الخادم الذي ستبنيه في مصباحين LED متصلين بـ ESP32 GPIO 26 وGPIO 27؛
  • يمكنك الوصول إلى ESP32 web الخادم عن طريق كتابة عنوان IP ESP32 على متصفح في الشبكة المحلية؛
  • من خلال النقر على الأزرار الموجودة على جهازك web يمكنك تغيير حالة كل LED على الفور من خلال الخادم.

الأجزاء المطلوبة
ستحتاج إلى الأجزاء التالية لهذا البرنامج التعليمي:

  • لوحة ESP32 DEVKIT V1
  • 2 × 5 مم LED
  • 2x200 أوم المقاوم
  • لوحة التوصيل
  • أسلاك التوصيل

تخطيطي
ابدأ ببناء الدائرة. قم بتوصيل مصباحين LED بـ ESP32 كما هو موضح في الرسم التخطيطي التالي - مصباح LED متصل بـ GPIO 26، والآخر متصل بـ GPIO 27.
ملحوظة: نحن نستخدم لوحة ESP32 DEVKIT DOIT ذات 36 سنًا. قبل تجميع الدائرة، تأكد من فحص توصيلات اللوحة التي تستخدمها.مجموعة أدوات البدء الأساسية لجهاز LAFVIN ESP32 - مخططشفرة
هنا نقدم الكود الذي ينشئ ESP32 web الخادم. افتح الكود Project_5_ESP32_Switch _Web_Server.ino في arduino IDE، ولكن لا تقم بتحميله بعد. تحتاج إلى إجراء بعض التغييرات لجعله يعمل لصالحك.
سوف نقوم ببرمجة ESP32 باستخدام Arduino IDE، لذا تأكد من تثبيت الوظيفة الإضافية ESP32 قبل المتابعة: (إذا كنت قد قمت بالفعل بهذه الخطوة، فيمكنك التخطي إلى الخطوة التالية.)
تثبيت ESP32 Add-on في Arduino IDE
إعداد بيانات اعتماد الشبكة الخاصة بك
يتعين عليك تعديل الأسطر التالية باستخدام بيانات اعتماد الشبكة الخاصة بك: SSID وكلمة المرور. تم توضيح المكان الذي يجب عليك إجراء التغييرات فيه في الكود.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - بيانات اعتماد الشبكةتحميل الكود
الآن يمكنك تحميل الكود و web سيعمل الخادم على الفور.
اتبع الخطوات التالية لتحميل الكود إلى ESP32:

  1. قم بتوصيل لوحة ESP32 بالكمبيوتر الخاص بك؛
  2. في Arduino IDE، حدد اللوحة الخاصة بك في Tools > Board (في حالتنا نستخدم لوحة ESP32 DEVKIT DOIT)؛مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - تحميل الكود
  3. حدد منفذ COM في الأدوات > المنفذ.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - منفذ الأدوات
  4. اضغط على زر التحميل في Arduino IDE وانتظر بضع ثوانٍ أثناء تجميع الكود وتحميله إلى لوحتك.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - ICON 7
  5. انتظر رسالة "تم التحميل".مجموعة أدوات البدء الأساسية LAFVIN ESP32 - تم تحميل 1

العثور على عنوان IP الخاص بـ ESP
بعد تحميل الكود، افتح Serial Monitor بمعدل بود 115200.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - عنوان IP ESPاضغط على زر ESP32 EN (إعادة الضبط). يتصل ESP32 بشبكة Wi-Fi، ويخرج عنوان IP الخاص بـ ESP على Serial Monitor. انسخ عنوان IP هذا، لأنك بحاجة إليه للوصول إلى ESP32 web الخادم.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - web الخادمالوصول إلى Web الخادم
للوصول إلى web الخادم، افتح المتصفح الخاص بك، وألصق عنوان IP الخاص بـ ESP32، وستظهر لك الصفحة التالية.
ملحوظة: يجب أن يكون متصفحك وESP32 متصلين بنفس شبكة LAN.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الوصول إلى Web الخادمإذا ألقيت نظرة على Serial Monitor، يمكنك رؤية ما يحدث في الخلفية. يتلقى ESP طلب HTTP من عميل جديد (في هذه الحالة، متصفحك).مجموعة أدوات البدء الأساسية LAFVIN ESP32 - طلب HTTPيمكنك أيضًا رؤية معلومات أخرى حول طلب HTTP.
توضيح
الآن يمكنك اختبار ما إذا كان web يعمل الخادم بشكل صحيح. انقر فوق الأزرار للتحكم في مصابيح LED.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - الخلفيةفي الوقت نفسه، يمكنك إلقاء نظرة على Serial Monitor لمعرفة ما يحدث في الخلفية. على سبيل المثالampعلى سبيل المثال، عند النقر فوق الزر لتشغيل GPIO 26، يتلقى ESP32 طلبًا على /26/on URL.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - URLعندما يستقبل ESP32 هذا الطلب، فإنه يقوم بتشغيل مؤشر LED المرفق بـ GPIO 26 ويقوم بتحديث حالته على web صفحة.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - web صفحةيعمل الزر الخاص بمنفذ GPIO 27 بطريقة مماثلة. اختبره للتأكد من أنه يعمل بشكل صحيح.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - تعمل بشكل صحيح

كيف يعمل الكود

في هذا القسم سوف نلقي نظرة عن كثب على الكود لمعرفة كيفية عمله.
أول شيء يجب عليك فعله هو تضمين مكتبة WiFi.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - مكتبة WiFiكما ذكرنا سابقًا، يتعين عليك إدخال معرف SSID وكلمة المرور في الأسطر التالية داخل علامتي الاقتباس المزدوجتين.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - علامتا اقتباسثم قم بتعيين web الخادم إلى المنفذ 80.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - web الخادميؤدي السطر التالي إلى إنشاء متغير لتخزين رأس طلب HTTP:مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - HTTPrequestبعد ذلك، قم بإنشاء متغيرات مساعدة لتخزين الحالة الحالية لمخرجاتك. إذا كنت تريد إضافة المزيد من المخرجات وحفظ حالتها، فستحتاج إلى إنشاء المزيد من المتغيرات.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - المتغيراتيجب عليك أيضًا تعيين GPIO لكل من مخرجاتك. هنا نستخدم GPIO 26 وGPIO 27. يمكنك استخدام أي منافذ GPIO مناسبة أخرى.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - أخرى مناسبةيثبت()
الآن، دعنا ننتقل إلى الإعداد(). أولاً، نبدأ اتصالاً تسلسليًا بمعدل بود 115200 لأغراض التصحيح.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - الأغراضيمكنك أيضًا تعريف GPIOs الخاصة بك كمخرجات وتعيينها على LOW.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - GPIOs كمخرجاتتبدأ الأسطر التالية اتصال Wi-Fi بـ WiFi.begin(ssid، كلمة المرور)، وانتظر اتصالاً ناجحًا ثم اطبع عنوان IP الخاص بـ ESP في Serial Monitor.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - تسلسليةمجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - Serial 1حلقة()
في loop() نقوم ببرمجة ما يحدث عندما يقوم عميل جديد بإنشاء اتصال مع web الخادم.
يستمع ESP32 دائمًا للعملاء الواردين باستخدام السطر التالي:مجموعة أدوات البدء الأساسية LAFVIN ESP32 - حلقةعند تلقي طلب من أحد العملاء، سنحفظ البيانات الواردة. وستظل حلقة while التالية قيد التشغيل طالما ظل العميل متصلاً. لا نوصي بتغيير الجزء التالي من الكود إلا إذا كنت تعرف بالضبط ما تفعله.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - بالضبطمجموعة أدوات البدء الأساسية LAFVIN ESP32 - 1 بالضبطمجموعة أدوات البدء الأساسية LAFVIN ESP32 - 2 بالضبطيتحقق القسم التالي من عبارات if وelse من الزر الذي تم الضغط عليه في web الصفحة، ويتحكم في المخرجات وفقًا لذلك. وكما رأينا سابقًا، نقوم بتقديم طلب على صفحات مختلفة URLيعتمد ذلك على الزر الذي تم الضغط عليه.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الضغط على الزرمجموعة أدوات البدء الأساسية LAFVIN ESP32 - الضغط على الزر 1على سبيل المثالampإذا قمت بالضغط على زر GPIO 26 ON، فإن ESP32 يستقبل طلبًا على /26/ON URL (يمكننا أن نرى أن هذه المعلومات موجودة في رأس HTTP على Serial Monitor). لذا، يمكننا التحقق مما إذا كان الرأس يحتوي على التعبير GET /26/on. إذا كان يحتوي على ذلك، فإننا نغير متغير output26state إلى ON، ويقوم ESP32 بتشغيل LED.
يعمل هذا بشكل مشابه للأزرار الأخرى. لذا، إذا كنت تريد إضافة المزيد من المخرجات، فيجب عليك تعديل هذا الجزء من الكود لتضمينها.
عرض HTML web صفحة
الشيء التالي الذي عليك القيام به هو إنشاء web الصفحة. سيرسل ESP32 استجابة إلى متصفحك مع بعض أكواد HTML لبناء web صفحة.
ال web يتم إرسال الصفحة إلى العميل باستخدام التعبير client.println(). يجب عليك إدخال ما تريد إرساله إلى العميل كحجة.
الشيء الأول الذي يجب علينا إرساله دائمًا هو السطر التالي، الذي يشير إلى أننا نرسل HTML.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - إرسال HTMLثم السطر التالي يجعل web الصفحة تستجيب لأي شيء web المتصفح.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - web المتصفحويتم استخدام ما يلي لمنع الطلبات على favicon. - لا داعي للقلق بشأن هذا السطر.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - client.println

التصميم Web صفحة

بعد ذلك، لدينا بعض نصوص CSS لتصميم الأزرار و web مظهر الصفحة.
نختار الخط Helvetica، ونحدد المحتوى الذي سيتم عرضه على شكل كتلة ومحاذاته في المنتصف.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - التصميم Web صفحةنقوم بتصميم أزرارنا باللون #4CAF50، بدون حدود، والنص باللون الأبيض، وباستخدام هذا الحشو: 16 بكسل 40 بكسل. كما نقوم أيضًا بتعيين زخرفة النص على لا شيء، وتحديد حجم الخط، والهامش، والمؤشر إلى مؤشر.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - pointerنقوم أيضًا بتحديد النمط الخاص بالزر الثاني، مع جميع خصائص الزر التي حددناها سابقًا، ولكن بلون مختلف. سيكون هذا هو النمط الخاص بزر الإيقاف.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - client.println 1

ضبط Web العنوان الأول للصفحة
في السطر التالي يمكنك تعيين العنوان الأول لـ web الصفحة. هنا لدينا "ESP32 Web "الخادم"، ولكن يمكنك تغيير هذا النص إلى أي شيء تريده.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - Web عنوان الصفحةعرض الأزرار والحالة المقابلة لها
بعد ذلك، اكتب فقرة لعرض الحالة الحالية لـ GPIO 26. وكما ترى، نستخدم متغير output26State، بحيث يتم تحديث الحالة على الفور عند تغير هذا المتغير.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - تغييرات متغيرةثم نعرض زر التشغيل أو الإيقاف، حسب الحالة الحالية لـ GPIO. إذا كانت الحالة الحالية لـ GPIO هي إيقاف التشغيل، نعرض زر التشغيل، وإذا لم يكن الأمر كذلك، نعرض زر إيقاف التشغيل.مجموعة أدوات بدء التشغيل الأساسية LAFVIN ESP32 - عرض زر إيقاف التشغيلنستخدم نفس الإجراء لـGPIO 27.
إغلاق الاتصال
وأخيرًا، عندما تنتهي الاستجابة، نقوم بمسح متغير الرأس، وإيقاف الاتصال مع العميل باستخدام client.stop().مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - إغلاق الاتصال

اختتام

في هذا البرنامج التعليمي، أظهرنا لك كيفية بناء web الخادم مع ESP32. لقد أظهرنا لك مثالاً بسيطًاampهناك أيضًا وحدة تحكم في مصباحين LED، ولكن الفكرة هي استبدال هذين المصباحين بمرحل أو أي مخرج آخر تريد التحكم فيه.

مشروع 6 RGB LED Web الخادم

في هذا المشروع سنوضح لك كيفية التحكم عن بعد في LED RGB باستخدام لوحة ESP32 باستخدام web خادم مع أداة اختيار الألوان.
انتهى المشروعview
قبل البدء، دعونا نرى كيف يعمل هذا المشروع:مجموعة أدوات البدء الأساسية LAFVIN ESP32 - مشروع انتهىview

  • ESP32 web يعرض الخادم أداة اختيار الألوان.
  • عندما تختار لونًا، يقوم متصفحك بإرسال طلب على URL الذي يحتوي على معلمات R وG وB للون المحدد.
  • يتلقى جهاز ESP32 الخاص بك الطلب ويقوم بتقسيم القيمة لكل معلمة لون.
  • ثم يقوم بإرسال إشارة PWM بالقيمة المقابلة إلى GPIOs التي تتحكم في LED RGB.

كيف تعمل مصابيح LED RGB؟
في مصباح LED RGB ذو الكاثود المشترك، تشترك جميع مصابيح LED الثلاثة في اتصال سلبي (كاثود). جميع المصابيح المضمنة في المجموعة هي مصابيح RGB ذات كاثود مشترك.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - تعمل مصابيح LED RGBكيفية إنشاء ألوان مختلفة؟
باستخدام LED RGB، يمكنك بالطبع إنتاج الضوء الأحمر والأخضر والأزرق، ومن خلال تكوين شدة كل LED، يمكنك إنتاج ألوان أخرى أيضًا.
على سبيل المثالampلإنتاج ضوء أزرق نقي، يجب ضبط الصمام الثنائي الباعث للضوء الأزرق على أعلى شدة والصمامين الثنائي الباعث للضوء الأخضر والأحمر على أقل شدة. للحصول على ضوء أبيض، يجب ضبط جميع الصمامات الثنائية الباعثة للضوء الثلاثة على أعلى شدة.
خلط الألوان
لإنتاج ألوان أخرى، يمكنك الجمع بين الألوان الثلاثة بدرجات شدة مختلفة. لضبط شدة كل مصباح LED، يمكنك استخدام إشارة PWM.
نظرًا لأن مصابيح LED قريبة جدًا من بعضها البعض، فإن أعيننا ترى نتيجة مجموعة الألوان، بدلاً من الألوان الثلاثة بشكل فردي.
للحصول على فكرة حول كيفية الجمع بين الألوان، ألقي نظرة على الرسم البياني التالي.
هذا هو أبسط مخطط لخلط الألوان، لكنه يعطيك فكرة عن كيفية عمله وكيفية إنتاج ألوان مختلفة.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - ألوان مختلفةالأجزاء المطلوبة
بالنسبة لهذا المشروع، ستحتاج إلى الأجزاء التالية:

  • لوحة ESP32 DEVKIT V1
  • ليد RGB
  • 3 مقاومات 220 أوم
  • أسلاك التوصيل
  • لوحة التوصيل

تخطيطيمجموعة أدوات البدء الأساسية لجهاز LAFVIN ESP32 - مخططشفرة
سوف نقوم ببرمجة ESP32 باستخدام Arduino IDE، لذا تأكد من تثبيت الوظيفة الإضافية ESP32 قبل المتابعة: (إذا كنت قد قمت بالفعل بهذه الخطوة، فيمكنك التخطي إلى الخطوة التالية.)

  • تثبيت ESP32 Add-on في Arduino IDE

بعد تجميع الدائرة، افتح الكود
مشروع_6_RGB_LED_Web_Server.ino في arduino IDE.
قبل تحميل الكود، لا تنس إدخال بيانات اعتماد الشبكة الخاصة بك حتى يتمكن ESP من الاتصال بشبكتك المحلية.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الشبكة المحليةكيف يعمل الكود
يستخدم رسم ESP32 مكتبة WiFi.h.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - مكتبة WiFi.hتعرف الأسطر التالية متغيرات السلسلة لحمل معلمات R وG وB من الطلب.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - String redStringيتم استخدام المتغيرات الأربعة التالية لفك تشفير طلب HTTP لاحقًا.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - طلب HTTPقم بإنشاء ثلاثة متغيرات لمنفذي GPIO للتحكم في معلمات الشريط R وG وB. في هذه الحالة، نستخدم GPIO 13 وGPIO 12 وGPIO 14.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - تحتاج أجهزة GPIO إلىتحتاج هذه المنافذ الطرفية العامة للمدخلات والمخرجات إلى إخراج إشارات PWM، لذا نحتاج إلى تكوين خصائص PWM أولاً. اضبط تردد إشارة PWM على 5000 هرتز. ثم قم بربط قناة PWM لكل لونمجموعة أدوات البدء الأساسية LAFVIN ESP32 - كل لونوأخيرًا، اضبط دقة قنوات PWM على 8 بتمجموعة أدوات البدء الأساسية LAFVIN ESP32 - قنوات PWMفي setup()، قم بتعيين خصائص PWM لقنوات PWMمجموعة أدوات البدء الأساسية LAFVIN ESP32 - قنوات PWMقم بتوصيل قنوات PWM بمنافذ GPIO المقابلةمجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - منافذ GPIO المقابلةيعرض قسم التعليمات البرمجية التالي أداة اختيار الألوان في web الصفحة ويقدم طلبًا بناءً على اللون الذي اخترته.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - تم اختيارهامجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - client.printlnمجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - client.println 1عند اختيار لون، ستتلقى طلبًا بالتنسيق التالي.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - التنسيق التالي

لذا، نحتاج إلى تقسيم هذه السلسلة للحصول على معلمات R وG وB. يتم حفظ المعلمات في متغيرات redString وgreenString وblueString ويمكن أن يكون لها قيم تتراوح بين 0 و255.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - العنوانمجموعة أدوات البدء الأساسية LAFVIN ESP32 - العنوان 1للتحكم في الشريط باستخدام ESP32، استخدم الدالة ledcWrite() لتوليد إشارات PWM بالقيم المفككة من HTTP طلب.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - طلب HTTP 1ملحوظة: تعرف على المزيد حول PWM مع ESP32: المشروع 3 ESP32 PWM (الإخراج التناظري)
للتحكم في الشريط باستخدام ESP8266، نحتاج فقط إلى استخدام
تستخدم دالة analogWrite() لتوليد إشارات PWM بالقيم المفككة من طلب HTPP.
analogWrite(redPin، redString.toInt());
analogWrite(greenPin، greenString.toInt());
analogWrite(bluePin، blueString.toInt())
نظرًا لأننا نحصل على القيم في متغير سلسلة، فنحن بحاجة إلى تحويلها إلى أعداد صحيحة باستخدام طريقة toInt().
توضيح
بعد إدخال بيانات اعتماد الشبكة الخاصة بك، حدد اللوحة الصحيحة ومنفذ COM وقم بتحميل الكود إلى ESP32. خطوات مرجعية لتحميل الكود.
بعد التحميل، افتح Serial Monitor بمعدل نقل بيانات 115200 واضغط على زر تمكين/إعادة تعيين ESP. يجب أن تحصل على عنوان IP الخاص باللوحة.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - نفس الشبكة المحليةافتح المتصفح وأدخل عنوان IP الخاص بـ ESP. الآن، استخدم أداة اختيار الألوان لاختيار لون مصباح LED RGB.
بعد ذلك، يجب عليك الضغط على زر "تغيير اللون" حتى يتم تطبيق اللون.مجموعة البدء الأساسية LAFVIN ESP32 - LED RGBلإيقاف تشغيل LED RGB، حدد اللون الأسود.
الألوان الأقوى (في الجزء العلوي من أداة اختيار الألوان) هي الألوان التي ستنتج نتائج أفضل.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - نتائج أفضل

مشروع 7 ESP32 Relay Web الخادم

يعد استخدام مرحل مع ESP32 طريقة رائعة للتحكم عن بعد في الأجهزة المنزلية التي تعمل بالتيار المتردد. يشرح هذا البرنامج التعليمي كيفية التحكم في وحدة مرحل باستخدام ESP32.
سنلقي نظرة على كيفية عمل وحدة التتابع، وكيفية توصيل التتابع بـ ESP32 وبناء web خادم للتحكم في التتابع عن بعد.
مقدمة عن التتابعات
المرحل هو مفتاح يعمل بالكهرباء، ومثل أي مفتاح آخر، يمكن تشغيله أو إيقاف تشغيله، والسماح بمرور التيار أو عدمه. ويمكن التحكم فيه بمستوى منخفض من الصوت.tagمثل 3.3 فولت التي توفرها منافذ GPIO الخاصة بـ ESP32 وتسمح لنا بالتحكم في مستوى الصوت العاليtagمثل 12 فولت أو 24 فولت أو التيار الكهربائي الرئيسيtag(230 فولت في أوروبا و120 فولت في الولايات المتحدة).مجموعة أدوات البدء الأساسية LAFVIN ESP32 - مقدمة عن المرحلاتعلى الجانب الأيسر، هناك مجموعتان من ثلاثة مقابس لتوصيل أجهزة عالية الصوتtages، والدبابيس الموجودة على الجانب الأيمن (منخفضة الحجمtagهـ) الاتصال بـ ESP32 GPIOs.
التيار الكهربائي المجلدtagالتوصيلات الإلكترونيةمجموعة أدوات البدء الأساسية LAFVIN ESP32 - حجم التيار الكهربائيtagالتوصيلات الإلكترونيةتحتوي وحدة التتابع الموضحة في الصورة السابقة على موصلين، كل منهما يحتوي على ثلاثة مآخذ: مشترك (COM)، ومغلق عادةً (NC)، ومفتوح عادةً (NO).

  • COM: قم بتوصيل التيار الذي تريد التحكم فيه (مستوى التيار الكهربائي الرئيسي)tagهـ).
  • NC (مغلق عادةً): يتم استخدام التكوين المغلق عادةً عندما تريد إغلاق التتابع افتراضيًا. يتم توصيل دبابيس COM في NC، مما يعني أن التيار يتدفق ما لم ترسل إشارة من ESP32 إلى وحدة التتابع لفتح الدائرة وإيقاف تدفق التيار.
  • NO (مفتوح عادةً): يعمل التكوين المفتوح عادةً بطريقة معاكسة: لا يوجد اتصال بين دبابيس NO وCOM، وبالتالي يتم قطع الدائرة ما لم ترسل إشارة من ESP32 لإغلاق الدائرة.

دبابيس التحكممجموعة أدوات البدء الأساسية LAFVIN ESP32 - دبابيس التحكمانخفاض مستوى الصوتtagيحتوي الجانب e على مجموعة من أربعة دبابيس ومجموعة من ثلاثة دبابيس. تتكون المجموعة الأولى من VCC وGND لتشغيل الوحدة، والمدخل 1 (IN1) والمدخل 2 (IN2) للتحكم في مرحلات الجزء السفلي والعلوي على التوالي.
إذا كانت وحدة التتابع لديك تحتوي على قناة واحدة فقط، فسيكون لديك دبوس إدخال واحد فقط. وإذا كانت لديك أربع قنوات، فسيكون لديك أربعة دبابيس إدخال، وهكذا.
تحدد الإشارة التي ترسلها إلى دبابيس الإدخال ما إذا كان التتابع نشطًا أم لا. يتم تشغيل التتابع عندما ينخفض ​​الإدخال إلى أقل من 2 فولت تقريبًا. وهذا يعني أنك ستواجه السيناريوهات التالية:

  • التكوين المغلق عادةً (NC):
  • إشارة عالية – التيار يتدفق
  • إشارة منخفضة – التيار لا يتدفق
  • التكوين المفتوح عادةً (NO):
  • إشارة عالية – التيار لا يتدفق
  • إشارة منخفضة – التيار المتدفق

يجب عليك استخدام تكوين مغلق عادةً عندما يكون التيار يتدفق في معظم الأوقات، وتريد فقط إيقافه من حين لآخر.
استخدم تكوينًا مفتوحًا عادةً عندما تريد أن يتدفق التيار من حين لآخر (على سبيل المثالampليه، قم بتشغيل الكلamp أحياناً).
اختيار مصدر الطاقةمجموعة البدء الأساسية LAFVIN ESP32 - اختيار مصدر الطاقةالمجموعة الثانية من الدبابيس تتكون من دبابيس GND وVCC وJD-VCC.
يغذي دبوس JD-VCC المغناطيس الكهربائي للمرحل. لاحظ أن الوحدة بها غطاء وصلة توصيل يربط بين دبوسي VCC وJD-VCC؛ الوصلة الموضحة هنا باللون الأصفر، ولكن قد يكون لونها مختلفًا.
عند وضع غطاء العبور، يتم توصيل دبابيس VCC وJD-VCC. وهذا يعني أن مغناطيس التتابع يتم تشغيله مباشرة من دبوس الطاقة ESP32، وبالتالي فإن وحدة التتابع ودوائر ESP32 ليست معزولة فعليًا عن بعضها البعض.
بدون غطاء العبور، تحتاج إلى توفير مصدر طاقة مستقل لتشغيل المغناطيس الكهربائي للمرحل من خلال دبوس JD-VCC. يعمل هذا التكوين على عزل المرحلات فعليًا عن ESP32 باستخدام مقرن ضوئي مدمج في الوحدة، مما يمنع تلف ESP32 في حالة حدوث طفرات كهربائية.
تخطيطيمجموعة أدوات البدء الأساسية لجهاز LAFVIN ESP32 - مخططتحذير: استخدام حجم الصوت العاليtagقد تتسبب مصادر الطاقة في حدوث إصابات خطيرة.
لذلك، يتم استخدام مصابيح LED مقاس 5 مم بدلاً من مصابيح LED ذات حجم الإمداد العاليtagالمصابيح الكهربائية في التجربة. إذا لم تكن على دراية بحجم التيار الكهربائي الرئيسيtagاطلب من شخص ما أن يساعدك. أثناء برمجة ESP أو توصيل الدائرة، تأكد من فصل كل شيء عن مصدر الطاقة الرئيسي.tage.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - حجم التيار الكهربائيtageتثبيت المكتبة لـ ESP32
لبناء هذا web الخادم، نستخدم ESPAsyncWebمكتبة الخادم ومكتبة AsyncTCP.
تثبيت ESPAsyncWebمكتبة الخادم
اتبع الخطوات التالية لتثبيت إسباسينكWebالخادم مكتبة:

  1. انقر هنا لتنزيل ESPAsyncWebمكتبة الخادم. يجب أن يكون لديك
    مجلد .zip في مجلد التنزيلات الخاص بك
  2. قم بفك ضغط مجلد .zip ويجب أن تحصل على ESPAsyncWebمجلد الخادم الرئيسي
  3. أعد تسمية المجلد الخاص بك من ESPAsyncWebخادم رئيسي إلى ESPAsyncWebالخادم
  4. نقل ESPAsyncWebمجلد الخادم إلى مجلد مكتبات تثبيت Arduino IDE الخاص بك

بدلاً من ذلك، في Arduino IDE الخاص بك، يمكنك الانتقال إلى Sketch > Include
المكتبة > إضافة مكتبة .ZIP… ثم حدد المكتبة التي قمت بتنزيلها للتو.
تثبيت مكتبة AsyncTCP لـ ESP32
ال إسباسينكWebالخادم المكتبة تتطلب بروتوكول التحكم في الإرسال غير المتزامن المكتبة للعمل. اتبع
الخطوات التالية لتثبيت هذه المكتبة:

  1. انقر هنا لتنزيل مكتبة AsyncTCP. يجب أن يكون لديك مجلد .zip في مجلد التنزيلات
  2. قم بفك ضغط مجلد .zip ويجب أن تحصل على مجلد AsyncTCP-master
    1. قم بإعادة تسمية المجلد الخاص بك من AsyncTCP-master إلى AsyncTCP
    3. انقل مجلد AsyncTCP إلى مجلد مكتبات تثبيت Arduino IDE الخاص بك
    4. أخيرًا، أعد فتح Arduino IDE الخاص بك

بدلاً من ذلك، في Arduino IDE الخاص بك، يمكنك الانتقال إلى Sketch > Include
المكتبة > إضافة مكتبة .ZIP… ثم حدد المكتبة التي قمت بتنزيلها للتو.
شفرة
سوف نقوم ببرمجة ESP32 باستخدام Arduino IDE، لذا تأكد من تثبيت الوظيفة الإضافية ESP32 قبل المتابعة: (إذا كنت قد قمت بالفعل بهذه الخطوة، فيمكنك التخطي إلى الخطوة التالية.)
تثبيت ESP32 Add-on في Arduino IDE
بعد تثبيت المكتبات المطلوبة، افتح الكود Project_7_ESP32_Relay_Web_Server.ino في arduino IDE.
قبل تحميل الكود، لا تنس إدخال بيانات اعتماد الشبكة الخاصة بك حتى يتمكن ESP من الاتصال بشبكتك المحلية.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - شبكة Ocalتوضيح
بعد إجراء التغييرات اللازمة، قم بتحميل الكود إلى ESP32 الخاص بك. خطوات مرجع تحميل الكود.
افتح Serial Monitor بمعدل نقل بيانات 115200 واضغط على زر ESP32 EN للحصول على عنوان IP الخاص به. ثم افتح متصفحًا في شبكتك المحلية واكتب عنوان IP الخاص بـ ESP32 للوصول إلى web الخادم.
افتح Serial Monitor بمعدل نقل بيانات 115200 واضغط على زر ESP32 EN للحصول على عنوان IP الخاص به. ثم افتح متصفحًا في شبكتك المحلية واكتب عنوان IP الخاص بـ ESP32 للوصول إلى web الخادم.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - web الخادمملحوظة: يجب أن يكون متصفحك وESP32 متصلين بنفس شبكة LAN.
يجب أن تحصل على شيء على النحو التالي مع وجود زرين كعدد من المرحلات التي قمت بتحديدها في الكود الخاص بك.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الهاتف الذكيالآن، يمكنك استخدام الأزرار للتحكم في مرحلاتك باستخدام هاتفك الذكي.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الهاتف الذكي 1

مشروع 8: مزامنة حالة الإخراج Web_الخادم

يوضح هذا المشروع كيفية التحكم في مخرجات ESP32 أو ESP8266 باستخدام web الخادم والزر المادي في نفس الوقت. يتم تحديث حالة الإخراج على web الصفحة سواء تم تغييرها عبر زر مادي أو web الخادم.
انتهى المشروعview
دعونا نلقي نظرة سريعة على كيفية عمل المشروع.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - مشروع انتهىviewيستضيف ESP32 أو ESP8266 web الخادم الذي يسمح لك بالتحكم في حالة الإخراج؛

  • يتم عرض حالة الإخراج الحالية على web الخادم؛
  • يرتبط ESP أيضًا بزر ضغط مادي يتحكم في نفس الإخراج؛
  • إذا قمت بتغيير حالة الإخراج باستخدام زر الضغط المادي، فسيتم أيضًا تحديث حالته الحالية على web الخادم.

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

  • لوحة ESP32 DEVKIT V1
  • 5 ملم LED
  • مقاومة 220 أوم
  • اضغط الزر
  • مقاومة 10 كيلو أوم
  • لوحة التوصيل
  • أسلاك التوصيل

تخطيطيمجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - الرسم التخطيطي 1تثبيت المكتبة لـ ESP32
لبناء هذا web الخادم، نستخدم ESPAsyncWebمكتبة الخادم ومكتبة AsyncTCP. (إذا كنت قد قمت بالفعل بهذه الخطوة، فيمكنك التخطي إلى الخطوة التالية.)
تثبيت ESPAsyncWebمكتبة الخادم
اتبع الخطوات التالية لتثبيت ESPAsyncWebمكتبة الخادم:

  1. انقر هنا لتنزيل ESPAsyncWebمكتبة الخادم. يجب أن يكون لديك
    مجلد .zip في مجلد التنزيلات الخاص بك
  2. قم بفك ضغط مجلد .zip ويجب أن تحصل على ESPAsyncWebمجلد الخادم الرئيسي
  3. أعد تسمية المجلد الخاص بك من ESPAsyncWebخادم رئيسي إلى ESPAsyncWebالخادم
  4. نقل ESPAsyncWebمجلد الخادم إلى مجلد مكتبات تثبيت Arduino IDE الخاص بك
    بدلاً من ذلك، في Arduino IDE الخاص بك، يمكنك الانتقال إلى Sketch > Include
    المكتبة > إضافة مكتبة .ZIP… ثم حدد المكتبة التي قمت بتنزيلها للتو.

تثبيت مكتبة AsyncTCP لـ ESP32
الESPAsyncWebتتطلب مكتبة الخادم مكتبة AsyncTCP للعمل. اتبع الخطوات التالية لتثبيت تلك المكتبة:

  1. انقر هنا لتنزيل مكتبة AsyncTCP. يجب أن يكون لديك مجلد .zip في مجلد التنزيلات
  2. قم بفك ضغط مجلد .zip ويجب أن تحصل على مجلد AsyncTCP-master
  3. قم بإعادة تسمية المجلد الخاص بك من AsyncTCP-master إلى AsyncTCP
  4. انقل مجلد AsyncTCP إلى مجلد مكتبات تثبيت Arduino IDE الخاص بك
  5. أخيرًا، أعد فتح برنامج Arduino IDE الخاص بك
    بدلاً من ذلك، في Arduino IDE الخاص بك، يمكنك الانتقال إلى Sketch > Include
    المكتبة > إضافة مكتبة .ZIP… ثم حدد المكتبة التي قمت بتنزيلها للتو.

شفرة
سوف نقوم ببرمجة ESP32 باستخدام Arduino IDE، لذا تأكد من تثبيت الوظيفة الإضافية ESP32 قبل المتابعة: (إذا كنت قد قمت بالفعل بهذه الخطوة، فيمكنك التخطي إلى الخطوة التالية.)
تثبيت ESP32 Add-on في Arduino IDE
بعد تثبيت المكتبات المطلوبة، افتح الكود
مشروع 8: مزامنة حالة الإخراجWeb_Server.ino في arduino IDE.
قبل تحميل الكود، لا تنس إدخال بيانات اعتماد الشبكة الخاصة بك حتى يتمكن ESP من الاتصال بشبكتك المحلية.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكود

كيف يعمل الكود

حالة الزر وحالة الإخراج
يحتوي متغير ledState على حالة خرج LED. بشكل افتراضي، عندما web يبدأ الخادم، وهو منخفض.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - Code Works

يتم استخدام buttonState وlastButtonState للكشف عن ما إذا كان تم الضغط على الزر أم لا.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - تم الضغط عليهازر (web الخادم)
لم نقم بتضمين HTML لإنشاء الزر في المتغير index_html.
هذا لأننا نريد أن نكون قادرين على تغييره اعتمادًا على حالة LED الحالية، والتي يمكن أيضًا تغييرها بالضغط على الزر.
لذا، قمنا بإنشاء عنصر نائب للزر %BUTTONPLACEHOLDER% والذي سيتم استبداله بنص HTML لإنشاء الزر لاحقًا في الكود (يتم ذلك في وظيفة المعالج ()).مجموعة أدوات البدء الأساسية LAFVIN ESP32 - تم الضغط عليها 1المعالج()
تستبدل دالة المعالج أي عناصر نائبة في نص HTML بقيم فعلية. أولاً، تتحقق مما إذا كانت نصوص HTML تحتوي على أي
العناصر النائبة %BUTTONPLACEHOLDER%.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - المعالجثم، قم باستدعاء الدالة outputState() التي تقوم بإرجاع حالة الإخراج الحالية. نقوم بحفظها في متغير outputStateValue.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - outputStateبعد ذلك، استخدم هذه القيمة لإنشاء نص HTML لعرض الزر بالحالة الصحيحة:مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكود 4طلب HTTP GET لتغيير حالة الإخراج (JavaScript)
عند الضغط على الزر، يتم استدعاء دالة toggleCheckbox(). ستقوم هذه الدالة بإرسال طلب على مواقع مختلفة URLs لتشغيل أو إيقاف تشغيل LED.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - JavaScriptلتشغيل LED، فإنه يقوم بإرسال طلب على /update?state=1 URL:مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - element.checkedوإلا فإنه يقوم بتقديم طلب على /update?state=0 URL.
طلب HTTP GET لتحديث الحالة (JavaScript)
للحفاظ على حالة الإخراج محدثة على web الخادم، نستدعي الوظيفة التالية التي تقوم بإنشاء طلب جديد على /state URL كل ثانية.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - تحديث الحالةمجموعة أدوات البدء الأساسية LAFVIN ESP32 - تحديث الحالة 1معالجة الطلبات
بعد ذلك، نحتاج إلى التعامل مع ما يحدث عندما يستقبل ESP32 أو ESP8266 طلبات على تلك URLs.
عند تلقي طلب على الجذر /URLنقوم بإرسال صفحة HTML بالإضافة إلى المعالج.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - طلبات التعاملمجموعة أدوات البدء الأساسية LAFVIN ESP32 - طلبات التعامل 1تتحقق الأسطر التالية مما إذا كنت قد تلقيت طلبًا على /update?state=1 أو /update?state=0 URL ويغير ledState وفقًا لذلك.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - ledStateمجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - inputParamعند تلقي طلب على /state URL, نرسل حالة الإخراج الحالية:مجموعة أدوات البدء الأساسية LAFVIN ESP32 - حالة الإخراجحلقة()
في loop()، نقوم بإلغاء ارتداد الزر وتشغيل أو إيقاف تشغيل LED اعتمادًا على قيمة ledState عامل.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الحلقة 1توضيح
قم بتحميل الكود إلى لوحة ESP32 الخاصة بك. خطوات مرجعية لتحميل الكود.
بعد ذلك، افتح Serial Monitor بمعدل نقل بيانات 115200. اضغط على الزر EN/RST الموجود على اللوحة للحصول على عنوان IP الخاص به.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - عرض توضيحيافتح متصفحًا على شبكتك المحلية، واكتب عنوان IP الخاص بـ ESP. يجب أن يكون لديك حق الوصول إلى web الخادم كما هو موضح أدناه.
ملحوظة: يجب أن يكون متصفحك وESP32 متصلين بنفس شبكة LAN.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - المتصفحيمكنك تبديل الزر الموجود على web الخادم لتشغيل الصمام.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - web الخادم 1يمكنك أيضًا التحكم في نفس الصمام الثنائي الباعث للضوء باستخدام الزر الفيزيائي. سيتم تحديث حالته دائمًا تلقائيًا على web الخادم.

المشروع 9 ESP32 DHT11 Web الخادم

في هذا المشروع، ستتعلم كيفية بناء ESP32 غير متزامن web خادم مع DHT11 الذي يعرض درجة الحرارة والرطوبة باستخدام Arduino IDE.
المتطلبات الأساسية
ال web سوف نقوم ببناء خادم يقوم بتحديث القراءات تلقائيًا دون الحاجة إلى تحديث web صفحة.
مع هذا المشروع سوف تتعلم:

  • كيفية قراءة درجة الحرارة والرطوبة من أجهزة استشعار DHT؛
  • بناء غير متزامن web الخادم باستخدام إسباسينكWebمكتبة الخادم;
  • تحديث قراءات المستشعر تلقائيًا دون الحاجة إلى تحديث web صفحة.

غير متزامن Web الخادم
لبناء web الخادم الذي سوف نستخدمه إسباسينكWebمكتبة الخادم وهو ما يوفر طريقة سهلة لبناء غير متزامن web الخادم. بناء خادم غير متزامن web الخادم لديه العديد من المزاياtagكما هو مذكور في صفحة مكتبة GitHub، مثل:

  • "التعامل مع أكثر من اتصال في نفس الوقت"؛
  • "عندما ترسل الاستجابة، تكون جاهزًا على الفور للتعامل مع الاتصالات الأخرى بينما يتولى الخادم مهمة إرسال الاستجابة في الخلفية"؛
  • "محرك معالجة قوالب بسيط للتعامل مع القوالب"؛

الأجزاء المطلوبة
لإكمال هذا البرنامج التعليمي، ستحتاج إلى الأجزاء التالية:

  • لوحة تطوير ESP32
  • وحدة DHT11
  • لوحة التوصيل
  • أسلاك التوصيل

تخطيطيمجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - الرسم التخطيطي 2تثبيت المكتبات
يجب عليك تثبيت زوج من المكتبات لهذا المشروع:

تثبيت مكتبة مستشعرات DHT
لقراءة البيانات من مستشعر DHT باستخدام Arduino IDE، تحتاج إلى تثبيت مكتبة مستشعرات DHT. اتبع الخطوات التالية لتثبيت المكتبة.

  1. انقر هنا لتنزيل مكتبة DHT Sensor. يجب أن يكون لديك مجلد .zip في مجلد التنزيلات
  2. قم بفك ضغط مجلد .zip ويجب أن تحصل على مجلد DHT-sensor-library-master
  3. قم بإعادة تسمية المجلد الخاص بك من DHT-sensor-library-master إلى DHT_sensor
  4. انقل مجلد DHT_sensor إلى مجلد مكتبات تثبيت Arduino IDE الخاص بك
  5. أخيرًا، أعد فتح برنامج Arduino IDE الخاص بك

تثبيت برنامج تشغيل المستشعر الموحد Adafruit
تحتاج أيضًا إلى تثبيت مكتبة برنامج تشغيل المستشعر الموحد Adafruit للعمل مع مستشعر DHT. اتبع الخطوات التالية لتثبيت المكتبة.

  1. انقر هنا لتنزيل مكتبة Adafruit Unified Sensor. يجب أن يكون لديك مجلد .zip في مجلد التنزيلات
  2. قم بفك ضغط مجلد .zip ويجب أن تحصل على مجلد Adafruit_sensor-master
  3. قم بإعادة تسمية المجلد الخاص بك من Adafruit_sensor-master إلى Adafruit_sensor
  4. انقل مجلد Adafruit_sensor إلى مجلد مكتبات تثبيت Arduino IDE الخاص بك
  5. أخيرًا، أعد فتح برنامج Arduino IDE الخاص بك

تثبيت ESPAsyncWebمكتبة الخادم

اتبع الخطوات التالية لتثبيت إسباسينكWebالخادم مكتبة:

  1. انقر هنا لتنزيل ESPAsyncWebمكتبة الخادم. يجب أن يكون لديك
    مجلد .zip في مجلد التنزيلات الخاص بك
  2. قم بفك ضغط المجلد .zip ويجب عليك
    احصل على ESPAsyncWebمجلد الخادم الرئيسي
  3. أعد تسمية المجلد الخاص بك من ESPAsyncWebخادم رئيسي إلى ESPAsyncWebالخادم
  4. نقل ESPAsyncWebمجلد الخادم إلى مجلد مكتبات تثبيت Arduino IDE الخاص بك

تثبيت مكتبة TCP غير المتزامنة لـ ESP32
ال إسباسينكWebالخادم المكتبة تتطلب بروتوكول التحكم في الإرسال غير المتزامن المكتبة للعمل. اتبع الخطوات التالية لتثبيت تلك المكتبة:

  1. انقر هنا لتنزيل مكتبة AsyncTCP. يجب أن يكون لديك مجلد .zip في مجلد التنزيلات
  2. قم بفك ضغط مجلد .zip ويجب أن تحصل على مجلد AsyncTCP-master
  3. قم بإعادة تسمية المجلد الخاص بك من AsyncTCP-master إلى AsyncTCP
  4. انقل مجلد AsyncTCP إلى مجلد مكتبات تثبيت Arduino IDE الخاص بك
  5. أخيرًا، أعد فتح برنامج Arduino IDE الخاص بك

شفرة
سوف نقوم ببرمجة ESP32 باستخدام Arduino IDE، لذا تأكد من تثبيت الوظيفة الإضافية ESP32 قبل المتابعة: (إذا كنت قد قمت بالفعل بهذه الخطوة، فيمكنك التخطي إلى الخطوة التالية.)
تثبيت ESP32 Add-on في Arduino IDE
بعد تثبيت المكتبات المطلوبة، افتح الكود
المشروع_9_ESP32_DHT11_Web_Server.ino في arduino IDE.
قبل تحميل الكود، لا تنس إدخال بيانات اعتماد الشبكة الخاصة بك حتى يتمكن ESP من الاتصال بشبكتك المحلية.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكودكيف يعمل الكود
في الفقرات التالية سنشرح كيفية عمل الكود. تابع القراءة إذا كنت تريد معرفة المزيد أو انتقل إلى قسم العرض التوضيحي لرؤية النتيجة النهائية.
استيراد مكتبات
أولاً، قم باستيراد المكتبات المطلوبة. WiFi وESPAsyncWebهناك حاجة إلى الخادم وESPAsyncTCP لبناء web الخادم. هناك حاجة إلى مكتبات Adafruit_Sensor وDHT للقراءة من أجهزة استشعار DHT11 أو DHT22.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - استيراد المكتباتمجموعة أدوات البدء الأساسية لجهاز LAFVIN ESP32 - كيفية عمل الكودتعريف المتغيرات
قم بتحديد GPIO الذي يتصل به دبوس بيانات DHT. في هذه الحالة، يكون متصلاً بـ GPIO 4.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - تعريف المتغيراتثم حدد نوع مستشعر DHT الذي تستخدمه. في المثال السابقampحسنًا، نحن نستخدم DHT22. إذا كنت تستخدم نوعًا آخر، فما عليك سوى إلغاء التعليق على المستشعر الخاص بك والتعليق على جميع المستشعرات الأخرى.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - تعريف المتغيرات 1

قم بإنشاء كائن DHT باستخدام النوع والدبوس الذي حددناه سابقًا.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - تعريف المتغيرات 2إنشاء AsyncWebكائن الخادم على المنفذ 80.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - تعريف المتغيرات 3قراءة وظائف درجة الحرارة والرطوبة
لقد أنشأنا دالتين: واحدة لقراءة درجة الحرارة لقد أنشأنا دالتين: واحدة لقراءة درجة الحرارة (readDHTTemperature()) والأخرى لقراءة الرطوبة (readDHTHumidity()).مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - readDHTHumidityمجموعة أدوات البدء الأساسية لجهاز LAFVIN ESP32 - قراءات المستشعرالحصول على قراءات المستشعر أمر بسيط مثل استخدام طريقتي readTemperature() و readHumidity() على كائن dht. الحصول على قراءات المستشعر أمر بسيط مثل استخدام طريقتي readTemperature() و readHumidity() على كائن dht.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - كائنلدينا أيضًا شرطًا يعيد شرطتين (-) في حالة فشل المستشعر في الحصول على القراءات.مجموعة أدوات البدء الأساسية لجهاز LAFVIN ESP32 - القراءاتيتم إرجاع القراءات كنوع سلسلة. لتحويل عدد عشري إلى سلسلة، استخدم الدالة String()مجموعة أدوات البدء الأساسية LAFVIN ESP32 - سلسلةافتراضيًا، نقرأ درجة الحرارة بالدرجات المئوية. للحصول على درجة الحرارة بالدرجات الفهرنهايتية، قم بتعليق درجة الحرارة بالدرجات المئوية وإزالة التعليق عن درجة الحرارة بالفهرنهايت، بحيث يكون لديك ما يلي:مجموعة أدوات البدء الأساسية لجهاز LAFVIN ESP32 - فهرنهايتمجموعة أدوات البدء الأساسية لجهاز LAFVIN ESP32 - فهرنهايت 1تحميل الكود
الآن، قم بتحميل الكود إلى ESP32 الخاص بك. تأكد من تحديد اللوحة الصحيحة ومنفذ COM. خطوات مرجع تحميل الكود.
بعد التحميل، افتح Serial Monitor بمعدل نقل بيانات 115200. اضغط على زر إعادة تعيين ESP32. يجب طباعة عنوان IP الخاص بـ ESP32 في السجل التسلسلي. شاشة.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - تحميل الكودتوضيح
افتح متصفحًا واكتب عنوان IP الخاص بـ ESP32. web يجب أن يعرض الخادم أحدث قراءات المستشعر.
ملحوظة: يجب أن يكون متصفحك وESP32 متصلين بنفس شبكة LAN.
لاحظ أن قراءات درجة الحرارة والرطوبة يتم تحديثها تلقائيًا دون الحاجة إلى تحديث web صفحة.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - العرض التوضيحي 1

مشروع_10_شاشة_ESP32_OLED

يوضح هذا المشروع كيفية استخدام شاشة SSD0.96 OLED مقاس 1306 بوصة مع ESP32 باستخدام Arduino IDE.
تقديم شاشة OLED مقاس 0.96 بوصة
ال شاشة OLED الذي سنستخدمه في هذا البرنامج التعليمي هو نموذج SSD1306: شاشة أحادية اللون، مقاس 0.96 بوصة بدقة 128×64 بكسل كما هو موضح في الشكل التالي.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - شاشة OLEDلا تتطلب شاشة OLED إضاءة خلفية، مما ينتج عنه تباين رائع في البيئات المظلمة. بالإضافة إلى ذلك، تستهلك وحدات البكسل الطاقة فقط عندما تكون قيد التشغيل، وبالتالي تستهلك شاشة OLED طاقة أقل مقارنة بالشاشات الأخرى.
نظرًا لأن شاشة OLED تستخدم بروتوكول الاتصال I2C، فإن التوصيلات الكهربائية بسيطة للغاية. يمكنك استخدام الجدول التالي كمرجع.

دبوس OLED ESP32
فين 3.3 فولت
أرضي أرضي
إس سي إل جي بي اي 22
السبتيون جي بي اي 21

تخطيطيمجموعة أدوات البدء الأساسية لجهاز LAFVIN ESP32 - مخططتثبيت مكتبة OLED SSD1306 – ESP32
تتوفر العديد من المكتبات للتحكم في شاشة OLED باستخدام ESP32.
في هذا البرنامج التعليمي سوف نستخدم مكتبتين Adafruit: مكتبة Adafruit_SSD1306 و مكتبة Adafruit_GFX.
اتبع الخطوات التالية لتثبيت تلك المكتبات.

  1. افتح Arduino IDE وانتقل إلى Sketch > Include Library > Manage Libraries. يجب أن يفتح Library Manager (مدير المكتبة).
  2. اكتب "SSD1306" في مربع البحث وقم بتثبيت مكتبة SSD1306 من Adafruit.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - مكتبة OLED–
  3. بعد تثبيت مكتبة SSD1306 من Adafruit، اكتب "GFX" في مربع البحث وقم بتثبيت المكتبة.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - المكتبة
  4. بعد تثبيت المكتبات، قم بإعادة تشغيل Arduino IDE الخاص بك.

شفرة
بعد تثبيت المكتبات المطلوبة، افتح Project_10_ESP32_OLED_Display.ino في arduino IDE. الكود
سوف نقوم ببرمجة ESP32 باستخدام Arduino IDE، لذا تأكد من تثبيت الوظيفة الإضافية ESP32 قبل المتابعة: (إذا كنت قد قمت بالفعل بهذه الخطوة، فيمكنك التخطي إلى الخطوة التالية.)
تثبيت ESP32 Add-on في Arduino IDEمجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكود 1مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكود 2مجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكود 3كيف يعمل الكود
استيراد مكتبات
أولاً، تحتاج إلى استيراد المكتبات الضرورية. مكتبة Wire لاستخدام I2C ومكتبات Adafruit للكتابة على الشاشة: Adafruit_GFX وAdafruit_SSD1306.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - Code Works 1مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - Code Works 2تهيئة شاشة OLED
بعد ذلك، يمكنك تحديد عرض وارتفاع شاشة OLED. في هذا المثال،ampحسنًا، نحن نستخدم شاشة OLED بحجم 128×64. إذا كنت تستخدم أحجامًا أخرى، فيمكنك تغيير ذلك في متغيري SCREEN_WIDTH وSCREEN_HEIGHT.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - شاشة OLEDبعد ذلك، قم بتهيئة كائن العرض بالعرض والارتفاع المحددين مسبقًا باستخدام بروتوكول الاتصالات I2C (&Wire).مجموعة أدوات البدء الأساسية LAFVIN ESP32 - بروتوكول الاتصالتعني المعلمة (-1) أن شاشة OLED الخاصة بك لا تحتوي على دبوس إعادة الضبط. إذا كانت شاشة OLED الخاصة بك تحتوي على دبوس إعادة الضبط، فيجب توصيلها بمنفذ GPIO. في هذه الحالة، يجب عليك تمرير رقم منفذ GPIO كمعلمة.
في setup()، قم بتهيئة Serial Monitor بمعدل بود 115200 لأغراض التصحيح.مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - الأغراضقم بتهيئة شاشة OLED باستخدام طريقة begin() على النحو التالي:مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - display.beginمجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - Serial.printlnتقوم هذه القطعة أيضًا بطباعة رسالة على الشاشة التسلسلية، في حالة عدم تمكننا من الاتصال بالشاشة.

مجموعة أدوات البدء الأساسية لـ LAFVIN ESP32 - Serial.println 1في حالة استخدام شاشة OLED مختلفة، قد تحتاج إلى تغيير عنوان OLED. في حالتنا، العنوان هو 0x3C.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - العنوانبعد تهيئة العرض، أضف تأخيرًا لمدة ثانيتين، حتى يتوفر لدى OLED وقت كافٍ للتهيئة قبل كتابة النص:مجموعة أدوات البدء الأساسية LAFVIN ESP32 - تأخيرعرض واضح، وضبط حجم الخط واللون وكتابة النص
بعد تهيئة العرض، قم بمسح مخزن العرض باستخدام طريقة clearDisplay():مجموعة أدوات البدء الأساسية LAFVIN ESP32 - العرض

قبل كتابة النص، يجب عليك تحديد حجم النص ولونه ومكان عرض النص في شاشة OLED.
قم بتعيين حجم الخط باستخدام طريقة setTextSize():مجموعة أدوات البدء الأساسية LAFVIN ESP32 - العرض 1قم بتعيين لون الخط باستخدام طريقة setTextColor():
يضع WHITE خطًا أبيض وخلفية سوداء.
قم بتحديد الموضع الذي يبدأ فيه النص باستخدام طريقة setCursor(x,y). في هذه الحالة، نقوم بتعيين النص ليبدأ عند إحداثيات (0,0) - في الزاوية العلوية اليسرى.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - setTextColor 1أخيرًا، يمكنك إرسال النص إلى الشاشة باستخدام طريقة println()، على النحو التاليمجموعة أدوات البدء الأساسية LAFVIN ESP32 - الكود 5بعد ذلك، يتعين عليك استدعاء طريقة العرض () display() لعرض النص فعليًا على الشاشة.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - العرض

توفر مكتبة Adafruit OLED طرقًا مفيدة للتمرير عبر النص بسهولة.

  • startscrollright(0x00, 0x0F): تمرير النص من اليسار إلى اليمين
  • startscrollleft(0x00, 0x0F): تمرير النص من اليمين إلى اليسار
  • startscrolldiagright(0x00, 0x07): تمرير النص من الزاوية اليسرى السفلية إلى الزاوية اليمنى العلوية startscrolldiagleft(0x00, 0x07): تمرير النص من الزاوية اليمنى السفلية إلى الزاوية اليسرى العلوية

تحميل الكود
الآن قم بتحميل الكود إلى ESP32 الخاص بك. خطوات مرجعية لتحميل الكود.
بعد تحميل الكود، سيعرض OLED نصًا متمرّرًا.مجموعة أدوات البدء الأساسية LAFVIN ESP32 - نص متحركشعار لافين

المستندات / الموارد

مجموعة البدء الأساسية لـ LAFVIN ESP32 [بي دي اف] دليل التعليمات
مجموعة أدوات البدء الأساسية لـ ESP32، ESP32، مجموعة أدوات البدء الأساسية، مجموعة أدوات البدء

مراجع

اترك تعليقا

لن يتم نشر عنوان بريدك الإلكتروني. تم وضع علامة على الحقول المطلوبة *