لوحة تطوير ESP32 Dev Kitc
معلومات المنتج
تحديد
- المنتج: ESP32
- دليل البرمجة: ESP-IDF
- إصدار الإصدار: v5.0.9
- الشركة المصنعة: اسبريسيف سيستمز
- تاريخ الإصدار: 16 مايو 2025
تعليمات استخدام المنتج
1. البدء
قبل البدء في استخدام ESP32، تعرف على
التالي:
1.1 المقدمة
تعرف على الوظائف والقدرات الأساسية لـ
ESP32.
1.2 ما تحتاجه
تأكد من أن لديك الأجهزة والبرامج اللازمة:
- الأجهزة: تحقق من قائمة الأجهزة المطلوبة
عناصر. - برمجة: قم بتثبيت البرنامج المطلوب
عناصر.
1.3 التثبيت
اتبع الخطوات التالية لتثبيت IDE وإعداده
بيئة:
- بيئة تطوير متكاملة: قم بتثبيت IDE الموصى به لـ
برمجة ESP32. - التثبيت اليدوي: إعداد يدوي
البيئة إذا لزم الأمر.
1.4 قم ببناء مشروعك الأول
قم بإنشاء وبناء مشروعك الأولي باستخدام ESP32.
1.5 إلغاء تثبيت ESP-IDF
إذا لزم الأمر، تعرف على كيفية إلغاء تثبيت ESP-IDF من جهازك
نظام.
2. مرجع واجهة برمجة التطبيقات (API)
راجع وثائق واجهة برمجة التطبيقات للحصول على معلومات مفصلة حول
بروتوكولات التطبيق، ومعالجة الأخطاء، والتكوين
الهياكل.
الأسئلة الشائعة
س: كيف يمكنني إصلاح المشكلات الشائعة مع ESP32؟
أ: راجع قسم استكشاف الأخطاء وإصلاحها في دليل البرمجة
أو زيارة الشركة المصنعة webموقع لموارد الدعم.
س: هل يمكنني استخدام ESP-IDF مع وحدات تحكم دقيقة أخرى؟
ج: تم تصميم ESP-IDF خصيصًا لـ ESP32، ولكن قد تجد
التوافق مع وحدات التحكم الدقيقة Espressif الأخرى.
ESP32
دليل برمجة ESP-IDF
إصدار v5.0.9 Espressif Systems في 16 مايو 2025
جدول المحتويات
جدول المحتويات
i
1 لتبدأ
3
1.1 المقدمة . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 ما تحتاجه . ...
1.2.1 الأجهزة . ...
1.2.2 البرمجيات . ...
1.3 التثبيت . ...
1.3.1 بيئة تطوير متكاملة. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2 التثبيت اليدوي . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 قم ببناء مشروعك الأول . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.5 إلغاء تثبيت ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2 مرجع API
45
2.1 اتفاقيات واجهة برمجة التطبيقات (API) 45
2.1.1 معالجة الأخطاء . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.2 هياكل التكوين . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.1.3 واجهات برمجة التطبيقات الخاصة 46
2.1.4 المكونات في المثالampالمشاريع . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1.5 استقرار واجهة برمجة التطبيقات 47
2.2 بروتوكولات التطبيق 48
2.2.1 منفذ اسيو . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.2 ESP-Modbus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.3 ESP-MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.2.4 ESP-TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.2.5 عميل HTTP ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.2.6 التحكم المحلي في ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.2.7 رابط تابع تسلسلي لـ ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.2.8 حزمة شهادة ESP x509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
2.2.9 خادم HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
2.2.10 خادم HTTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
2.2.11 صدى ICMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
2.2.12 خدمة mDNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.13 ميجابايت TLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
2.2.14 طبقة شبكة IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3 واجهة برمجة تطبيقات البلوتوث . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.1 بلوتوث® مشترك . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
2.3.2 بلوتوث® منخفض الطاقة . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
2.3.3 بلوتوث® كلاسيك . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
2.3.4 وحدة التحكم والواجهة الحاسوبية البشرية . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
2.3.5 شبكة ESP-BLE-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
2.3.6 واجهات برمجة التطبيقات المضيفة المستندة إلى NimBLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
2.4 مرجع رموز الخطأ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
2.5 واجهات برمجة تطبيقات الشبكات . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.1 واي فاي . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.5.2 إيثرنت . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
2.5.3 الخيط . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
i
2.5.4 ESP-NETIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942 2.5.5 طبقة شبكة IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974 2.5.6 طبقة التطبيق . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 976 2.6 واجهة برمجة التطبيقات للأجهزة الطرفية. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977 2.6.1 برنامج تشغيل الوضع أحادي اللقطة لمحول من تناظري إلى رقمي (ADC). . . . . . . . . . . . . . . . . 977 2.6.2 برنامج تشغيل الوضع المستمر للمحول التناظري إلى الرقمي (ADC). . . . . . . . . . . . . . . 986 2.6.3 برنامج تشغيل معايرة المحول التناظري إلى الرقمي (ADC). . . . . . . . . . . . . . . . . . . 993 2.6.4 شجرة الساعة . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 2.6.5 محول رقمي إلى تناظري (DAC). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004 2.6.6 GPIO وRTC GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008 2.6.7 مؤقت للأغراض العامة (GPTimer). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027 2.6.8 الدائرة المتكاملة (I2C). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039 2.6.9 الصوت بين الدوائر المتكاملة (I2S). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056 2.6.10 LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090 2.6.11 التحكم في LED (LEDC). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1107 2.6.12 مُعدّل عرض النبضة للتحكم في المحرك (MCPWM). . . . . . . . . . . . . . . . . . . . . 1126 2.6.13 عداد النبضات (PCNT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178 2.6.14 جهاز الإرسال والاستقبال للتحكم عن بعد (RMT). . . . . . . . . . . . . . . . . . . . . . . . . . . . 1193 2.6.15 متطلبات السحب لأعلى SD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1220 2.6.16 برنامج تشغيل مضيف SDMMC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223 2.6.17 برنامج تشغيل مضيف SD SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229 2.6.18 برنامج تشغيل تابع لبطاقة SDIO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1234 2.6.19 تعديل سيجما دلتا (SDM). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 2.6.20 برنامج تشغيل SPI الرئيسي. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1249 2.6.21 برنامج تشغيل تابع لـ SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1274 2.6.22 ESP32-WROOM-32SE (العنصر الآمن). . . . . . . . . . . . . . . . . . . . . . . . . 1281 2.6.23 مستشعر اللمس . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1282 2.6.24 واجهة السيارات ثنائية الأسلاك (TWAI). . . . . . . . . . . . . . . . . . . . . . . . . . 1299 2.6.25 جهاز الإرسال/الاستقبال العالمي غير المتزامن (UART). . . . . . . . . . . . . . . . . . 1317 2.7 تكوين المشروع . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.1 المقدمة . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.2 قائمة تكوين المشروع . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.3 استخدام sdkconfig.defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342 2.7.4 قواعد تنسيق Kconfig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.5 التوافق مع الإصدارات السابقة من خيارات Kconfig . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.7.6 مرجع خيارات التكوين. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1343 2.8 واجهة برمجة التطبيقات للتجهيز. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.1 بروتوكول الاتصالات . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1647 2.8.2 التزويد الموحد . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1665 2.8.3 توفير شبكة Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669 2.9 واجهة برمجة التطبيقات للتخزين. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fileدعم النظام . ... 1703 2.9.4 أداة إنشاء أقسام NVS . ... . . . . . . . . . . . 1744 2.9.7 SPIFFS Fileالنظام . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1780 2.9.8 افتراضي fileمكون النظام . ... 1803 2.10.1 تنسيق صورة التطبيق 1803 2.10.2 تتبع مستوى التطبيق 1808 2.10.3 استدعاء الدالة باستخدام مكدس خارجي 1813 2.10.4 مراجعة الشريحة 1815 2.10.5 وحدة التحكم 1817 2.10.6 مدير eFuse . ...
ii
2.10.8 ESP HTTPS OTA . ...view) . ... 1988 2.10.13 تخصيص ذاكرة الكومة 2008 2.10.14 تصحيح أخطاء ذاكرة الكومة 2021 2.10.15 مؤقت عالي الدقة (مؤقت ESP) 2032 2.10.16 واجهات برمجة التطبيقات الداخلية وغير المستقرة 2038 2.10.17 استدعاء بين المعالجين 2040 2.10.18 تخصيص المقاطعة 2045 2.10.19 مكتبة التسجيل 2051 2.10.20 واجهات برمجة تطبيقات النظام المتنوعة 2058 2.10.21 التحديثات اللاسلكية (OTA) 2073 2.10.22 مراقب الأداء 2084 2.10.23 إدارة الطاقة 2087 2.10.24 دعم خيوط POSIX . ... 2099 2.10.27 إمكانيات نظام على رقاقة 2111 2.10.28 وقت النظام 2121 2.10.29 واجهة برمجة تطبيقات تخصيص himem 2126 2.10.30 برمجة المعالج المساعد ULP 2129 2.10.31 مراقبو النظام 2161
3 مرجع الأجهزة
2167
3.1 مقارنة سلسلة الرقائق . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2167
3.1.1 المستندات ذات الصلة . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2170
4 أدلة API
2171
4.1 مكتبة تتبع مستوى التطبيق . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.1 أكثرview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.2 طرق التشغيل . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2171
4.1.3 خيارات التكوين والتبعيات . . . . . . . . . . . . . . . . . . . . . . . . . . 2172
4.1.4 كيفية استخدام هذه المكتبة . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2173
4.2 تدفق بدء تشغيل التطبيق . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2181
4.2.1 أول سtagأداة تحميل التشغيل الإلكترونية . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.2 ثانيةtagأداة تحميل التشغيل الإلكترونية . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2182
4.2.3 بدء تشغيل التطبيق . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2183
4.3 بلوتوث® كلاسيك . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.3.1 أكثرview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184
4.4 بلوتوث® منخفض الطاقة . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.1 أكثرview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2186
4.4.2 البدء . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2191
4.4.3 بروfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2240
4.5 أداة تحميل التشغيل . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2284
4.5.1 توافق أداة تحميل التشغيل . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.2 مستوى السجل . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285
4.5.3 إعادة ضبط المصنع . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.4 التمهيد من البرنامج الثابت للاختبار . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2286
4.5.5 التراجع . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.6 مراقب . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.7 حجم أداة تحميل التشغيل . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.8 التمهيد السريع من وضع السكون العميق . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.5.9 أداة تحميل التشغيل المخصصة . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2287
4.6 نظام البناء . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.1 أكثرview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2288
4.6.2 استخدام نظام البناء . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2289
ثالثا
4.6.3 مثالampالمشروع . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.4 مشروع CMakeLists File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2291 4.6.5 مكونات قوائم CMakeLists Files . ... 2295 4.6.8 متطلبات المكونات . ... . 2300 4.6.11 تصحيح أخطاء CMake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2300 4.6.12 Examp2301 4.6.13 إعدادات sdkconfig الافتراضية المخصصة 2305 4.6.14 وسيطات Flash 2305 4.6.15 بناء أداة تحميل التشغيل 2306 4.6.16 كتابة مكونات CMake خالصة 2306 4.6.17 استخدام مشاريع CMake من جهات خارجية مع المكونات 2306 4.6.18 استخدام المكتبات المعدة مسبقًا مع المكونات . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.19 استخدام ESP-IDF في مشاريع CMake المخصصة . . . . . . . . . . . . . . . . . . . . . . . . . . 2307 4.6.20 واجهة برمجة تطبيقات نظام بناء CMake باستخدام ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2308 4.6.21 File التجميع والبناء التدريجي 2312 4.6.22 بيانات تعريف نظام البناء 2313 4.6.23 مكونات نظام البناء الداخلية 2313 4.6.24 الانتقال من نظام ESP-IDF GNU Make . ...view 2316 4.7.2 التكوينات 2317 4.7.3 حفظ تفريغ النواة في الفلاش 2317 4.7.4 طباعة تفريغ النواة إلى UART 2318 4.7.5 وظائف ROM في Backtraces 2318 4.7.6 تفريغ المتغيرات عند الطلب 2318 4.7.7 تشغيل espcoredump.py 2319 4.8 أعقاب الاستيقاظ في حالة النوم العميق 2322 4.8.1 قواعد أعقاب الاستيقاظ 2322 4.8.2 تنفيذ كائن ثانوي 2322 4.8.3 تحميل الكود إلى ذاكرة RTC 2322 4.8.4 تحميل البيانات إلى ذاكرة RTC 2323 4.8.5 فحص CRC لآثار الاستيقاظ 2323 4.8.6 سابقample . ...view 2324 4.9.2 رموز الخطأ 2324 4.9.3 تحويل رموز الخطأ إلى رسائل خطأ 2324 4.9.4 ماكرو ESP_ERROR_CHECK . ... 2325 4.9.7 ماكرو ESP_GOTO_ON_ERROR . ... . 2325 4.9.10 التحقق من وحدات الماكرو Examples . ... . 2327 4.10 ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2327 4.10.1 أكثر منview 2327 4.10.2 المقدمة 2328 4.10.3 مفاهيم ESP-WIFI-MESH 2329 4.10.4 بناء شبكة 2334 4.10.5 إدارة شبكة 2339 4.10.6 نقل البيانات . ...
iv
4.10.8 الأداء . ... 2348 4.11.1 أحداث Wi-Fi وEthernet وIP 2348 4.11.2 أحداث الشبكة الشبكية 2349 4.11.3 أحداث البلوتوث 2350 4.12 أخطاء قاتلة 2350 4.12.1 أكثر منview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.2 معالج الذعر . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2350 4.12.3 تفريغ السجل والتتبع الخلفي. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2351 4.12.4 GDB Stub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2353 4.12.5 مهلة مراقبة RTC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.6 أخطاء تأمل المعلم. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2354 4.12.7 أخطاء قاتلة أخرى . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2356 4.13 تشفير الفلاش . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2358 4.13.1 المقدمة . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.2 الصمامات الإلكترونية ذات الصلة. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2359 4.13.3 عملية تشفير الفلاش. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.4 تكوين تشفير الفلاش. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2360 4.13.5 الأعطال المحتملة. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2366 4.13.6 حالة تشفير فلاش ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.7 قراءة وكتابة البيانات في فلاش مشفر. . . . . . . . . . . . . . . . . . . . . . . 2368 4.13.8 تحديث الفلاش المشفر. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.9 تعطيل تشفير الفلاش . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2369 4.13.10 نقاط رئيسية حول تشفير الفلاش. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.11 حدود تشفير الفلاش. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2370 4.13.12 تشفير الفلاش والتمهيد الآمن . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.13 الميزات المتقدمة . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2371 4.13.14 التفاصيل الفنية . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14 تجريد الأجهزة . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2373 4.14.1 الهندسة المعمارية . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2374 4.14.2 طبقة LL (المستوى المنخفض). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2375 4.14.3 HAL (طبقة تجريد الأجهزة). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2376 4.15 المقاطعات عالية المستوى. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.1 مستويات المقاطعة . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2377 4.15.2 ملاحظات . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAG تصحيح الأخطاء . ... . . . . . . . . . . . . . . . . . . . . . 2379 4.16.3 اختيار JTAG المحول . ... . . . . . 2380 4.16.6 تشغيل مصحح الأخطاء . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2386 4.16.7 تصحيح الأخطاءamples . ... 2391 4.16.10 مستندات ذات صلة 2396 4.17 إنشاء نصوص الربط 2421 4.17.1 أكثر منview 2421 4.17.2 البدء السريع 2421 4.17.3 المكونات الداخلية لإنشاء نصوص الرابط 2424 4.18 lwIP 2430 4.18.1 واجهات برمجة التطبيقات المدعومة 2430 4.18.2 واجهة برمجة تطبيقات مآخذ توصيل BSD 2431 4.18.3 واجهة برمجة تطبيقات Netconn 2435 4.18.4 مهمة FreeRTOS ذات النطاق المنخفض ... 2435 4.18.5 دعم IPv6 2435 4.18.6 تعديلات esp-lwip المخصصة 2436
v
4.18.7 تحسين الأداء . ...
4.19.1 DRAM (ذاكرة الوصول العشوائي للبيانات) . ... 2441 4.19.4 DROM (البيانات المخزنة في الفلاش) 2441 4.19.5 ذاكرة RTC البطيئة 2441 4.19.5 ذاكرة RTC البطيئة 2441 4.19.6 ذاكرة RTC السريعة 2441 4.19.7 متطلبات إمكانية الوصول المباشر للذاكرة 2441 4.19.8 مخزن الوصول المباشر للذاكرة في المكدس 2442 4.20 OpenThread 2442 4.20.1 أوضاع مكدس OpenThread 2443 4.20.2 كيفية كتابة تطبيق OpenThread 2443 4.20.3 موجه حدود OpenThread . ...view . ... 2445 4.21.4 إنشاء جدول تقسيم ثنائي 2448 4.21.5 فحص حجم القسم 2448 4.21.6 تحديث جدول التقسيم 2449 4.21.7 أداة التقسيم (parttool.py) 2449 4.22 الأداء 2450 4.22.1 كيفية تحسين الأداء 2450 4.22.2 الأدلة 2451 4.23 معايرة التردد اللاسلكي 2468 4.23.1 معايرة جزئية 2468 4.23.2 معايرة كاملة 2469 4.23.3 لا معايرة 2469 4.23.4 بيانات تهيئة PHY 2469 4.23.5 مرجع واجهة برمجة التطبيقات 2469 4.23.5 مرجع واجهة برمجة التطبيقات 2469 4.24 التمهيد الآمن 2472 4.24.1 الخلفية 2472 4.24.2 عملية التمهيد الآمنview 2473 4.24.3 المفاتيح 2473 4.24.4 حجم أداة تحميل التشغيل 2474 4.24.5 كيفية تمكين التمهيد الآمن 2474 4.24.6 أداة تحميل تشغيل البرامج القابلة لإعادة التثبيت 2475 4.24.7 إنشاء مفتاح توقيع التمهيد الآمن 2475 4.24.8 التوقيع عن بُعد للصور 2475 4.24.9 أفضل ممارسات التمهيد الآمن 2476 4.24.10 التفاصيل الفنية 2476 4.24.11 التمهيد الآمن وتشفير الفلاش 2477 4.24.12 التحقق من صحة التطبيق الموقّع بدون تمهيد آمن للأجهزة 2478 4.24.13 الميزات المتقدمة 2478 4.25 التمهيد الآمن الإصدار 2 2478 4.25.1 الخلفية 2479 4.25.2 المتقدمtages . ... 2480 4.25.5 الحشو الآمن 2480 4.25.6 التحقق من كتلة التوقيع 2481 4.25.7 التحقق من الصورة 2481 4.25.8 حجم أداة تحميل التشغيل 2481 4.25.9 استخدام eFuse 2481 4.25.10 كيفية تمكين التمهيد الآمن الإصدار 2 . ...
vi
4.25.13 التوقيع عن بُعد للصور . ... 2484 4.25.16 التمهيد الآمن وتشفير الفلاش 2484 4.25.17 التحقق من صحة التطبيق الموقّع بدون تمهيد آمن للأجهزة 2484 4.25.18 الميزات المتقدمة 2485 4.26 دعم ذاكرة الوصول العشوائي الخارجية . ... 2485 4.26.3 تكوين ذاكرة الوصول العشوائي الخارجية 2486 4.26.4 القيود 2487 4.26.5 فشل التهيئة 2488 4.26.6 مراجعات الشريحة 2488 4.27 التخزين المحلي للخيط . . . 2488 4.27.1 أكثر منview 2488 4.27.2 واجهة برمجة تطبيقات FreeRTOS الأصلية 2489 4.27.3 واجهة برمجة تطبيقات Pthread 2489 4.27.4 C11 القياسي 2489 4.28 الأدوات 2489 4.28.1 واجهة IDF الأمامية - idf.py . ... 2495 4.28.4 مدير مكونات IDF 2496 4.28.5 IDF Clang Tidy 2497 4.28.6 أدوات قابلة للتنزيل 2498 4.29 اختبار الوحدة في ESP32 2512 4.29.1 حالات الاختبار العادية 2512 4.29.2 حالات اختبار الأجهزة المتعددة . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513 4.29.3 حالات اختبار الأجهزة المتعددةtagحالات الاختبار . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.4 اختبارات لأهداف مختلفة . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2514 4.29.5 بناء تطبيق اختبار الوحدة. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.6 تشغيل اختبارات الوحدة. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2515 4.29.7 كود التوقيت مع مؤقت تعويض ذاكرة التخزين المؤقت. . . . . . . . . . . . . . . . . . . . . . . 2516 4.29.8 موكس . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2517 4.30 اختبار الوحدة على Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.1 اختبارات البرامج المضمنة. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2519 4.30.2 اختبارات وحدة IDF على Linux Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2520 4.31 برنامج تشغيل Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.1 قائمة ميزات Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.2 كيفية كتابة تطبيق Wi-Fi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2521 4.31.3 رمز خطأ واجهة برمجة تطبيقات Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.4 تهيئة معلمات واجهة برمجة تطبيقات Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.5 نموذج برمجة Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2522 4.31.6 وصف حدث Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2523 4.31.7 السيناريو العام لمحطة ESP32 Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . 2526 4.31.8 ESP32 Wi-Fi AP السيناريو العام. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.9 مسح شبكة Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2529 4.31.10 سيناريو توصيل محطة Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . 2536 4.31.11 محطة ESP32 Wi-Fi تتصل عند العثور على نقاط وصول متعددة. . . . . . . . . . . . . 2543 4.31.12 إعادة الاتصال بشبكة Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.13 مهلة إشارة Wi-Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.14 تكوين Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2543 4.31.15 Wi-Fi Easy ConnectTM (DPP). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.16 إدارة الشبكة اللاسلكية . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.17 قياس موارد الراديو. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2549 4.31.18 انتقال سريع إلى BSS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.19 وضع توفير الطاقة لشبكة Wi-Fi ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2550 4.31.20 معدل نقل بيانات Wi-Fi ESP32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
سابعا
4.31.21 إرسال حزمة Wi-Fi 80211 . ... 2554 4.31.24 معلومات حالة قناة Wi-Fi 2556 4.31.25 معلومات حالة قناة Wi-Fi تكوين 2557 4.31.26 Wi-Fi HT20/40 . . . . . . . . . . . . . . . . . 2557 4.31.27 جودة خدمة الواي فاي . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2557 4.31.28 واي فاي أمسدو . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2558 4.31.29 جزء واي فاي . ... 2558 4.31.32 كيفية تحسين أداء شبكة Wi-Fi 2559 4.31.33 تكوين قائمة Wi-Fi 2562 4.31.34 استكشاف الأخطاء وإصلاحها 2565 4.32 أمان شبكة Wi-Fi 2568 4.32.1 ميزات أمان شبكة Wi-Fi ESP32 . . 2568 4.32.2 إطارات الإدارة المحمية (PMF) . ... 2572 4.32.5 Wi-Fi Enhanced OpenTM 2573 4.33 تعايش التردد اللاسلكي 2573 4.33.1 أكثر منview 2574 4.33.2 سيناريو التعايش المدعوم لـ ESP32 2574 4.33.3 آلية التعايش والسياسة 2574 4.33.4 كيفية استخدام ميزة التعايش . ... 2577 4.34.2 أسباب عدم إمكانية إعادة إنتاج الإصدارات 2577 4.34.3 تمكين عمليات البناء القابلة لإعادة الإنتاج في ESP-IDF 2577 4.34.4 كيفية تحقيق عمليات البناء القابلة لإعادة الإنتاج 2578 4.34.5 عمليات البناء القابلة للتكرار وتصحيح الأخطاء 2578 4.34.6 العوامل التي لا تزال تؤثر على عمليات البناء القابلة للتكرار 2578 4.35 دليل مستخدم وضع الطاقة المنخفضة . . . 2578
5 أدلة الهجرة
2579
5.1 دليل ترحيل ESP-IDF 5.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
5.1.1 الانتقال من الإصدار 4.4 إلى الإصدار 5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2579
6 المكتبات والأطر
2611
6.1 أطر العمل السحابية . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.1 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.2 إنترنت الأشياء من AWS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.3 إنترنت الأشياء Azure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.4 جوهر إنترنت الأشياء من جوجل . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.5 إنترنت الأشياء عليون. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.6 جويلينك إنترنت الأشياء . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2611
6.1.7 إنترنت الأشياء من تينسنت . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.1.8 إنترنت الأشياء من تينسنت 2612
6.1.9 إنترنت الأشياء من بايدو 2612
6.2 أطر التعبير . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.1 إطار عمل تطوير الصوت Espressif . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.2 ESP-CSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.3 مكتبة Espressif DSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2612
6.2.4 إطار عمل تطوير ESP-WIFI-MESH . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.5 ESP-WHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.6 ESP RainMaker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.7 حلول إنترنت الأشياء ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
6.2.8 بروتوكولات ESP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2613
الثامن
6.2.9 ESP-BSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2614
دليل المساهمات السبعة
2615
7.1 كيفية المساهمة . ...
7.2 قبل المساهمة . ...
7.3 عملية طلب السحب . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2615
7.4 الجزء القانوني . ...
7.5 المستندات ذات الصلة . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2616
7.5.1 دليل أسلوب إطار عمل تطوير إنترنت الأشياء Espressif . . . . . . . . . . . . . . . . . . . . 2616
7.5.2 تثبيت خطاف ما قبل الالتزام لمشروع ESP-IDF . . . . . . . . . . . . . . . . . . . . . . 2623
7.5.3 توثيق الكود . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2624
7.5.4 إنشاء Exampليه . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2629
7.5.5 قالب توثيق واجهة برمجة التطبيقات . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2630
7.5.6 اتفاقية المساهم . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2632
7.5.7 دليل رأس الصفحة لحقوق الطبع والنشر . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2634
7.5.8 اختبارات ESP-IDF مع دليل Pytest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2635
8 إصدارات ESP-IDF
2645
8.1 الإصدارات . ...
8.2 ما هو الإصدار الذي يجب أن أبدأ به؟ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.3 مخطط الإصدار . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2645
8.4 فترات الدعم . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2646
8.5 التحقق من الإصدار الحالي . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2647
8.6 سير عمل Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7 تحديث ESP-IDF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2648
8.7.1 التحديث إلى الإصدار المستقر . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.2 التحديث إلى إصدار ما قبل الإصدار . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.3 التحديث إلى الفرع الرئيسي . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2649
8.7.4 التحديث إلى فرع الإصدار . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2650
9 مصادر
2651
9.1 منصة IO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.1 ما هو PlatformIO؟ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.2 التثبيت . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2651
9.1.3 التكوين . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.4 دروس تعليمية . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.5 مشروع سابقampليه. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.1.6 الخطوات التالية . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2652
9.2 روابط مفيدة . ...
10 حقوق الطبع والنشر والتراخيص
2653
10.1 حقوق الطبع والنشر للبرمجيات 2653
10.1.1 مكونات البرامج الثابتة . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2653
10.1.2 التوثيق . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
حقوق الطبع والنشر الخاصة بمصدر كود ROM 10.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2654
10.3 رخصة Xtensa libhal من معهد ماساتشوستس للتكنولوجيا. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.4 ترخيص TinyBasic Plus من معهد ماساتشوستس للتكنولوجيا. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
10.5 ترخيص TJpgDec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2655
11 حول
2657
12 التبديل بين اللغات
2659
فِهرِس
2661
فِهرِس
2661
ix
x
جدول المحتويات
هذه وثيقة إطار عمل تطوير إنترنت الأشياء Espressif (esp-idf). ESP-IDF هو إطار العمل الرسمي لتطوير أنظمة ESP32 وESP32-S وESP32-C. يصف هذا المستند استخدام ESP-IDF مع نظام ESP32.
البدء
مرجع واجهة برمجة التطبيقات
أدلة واجهة برمجة التطبيقات
أنظمة اسبرريف
1 إرسال ملاحظات حول المستند
الإصدار v5.0.9
جدول المحتويات
أنظمة اسبرريف
2 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول
البدء
هذه الوثيقة مُصممة لمساعدتك في إعداد بيئة تطوير برمجيات للأجهزة القائمة على شريحة ESP32 من Espressif. بعد ذلك، ستحتاج إلى مثال بسيط.ampسنوضح لك كيفية استخدام ESP-IDF (إطار عمل تطوير إنترنت الأشياء Espressif) لتكوين القائمة، ثم لبناء البرامج الثابتة وتثبيتها على لوحة ESP32.
ملاحظة: هذه وثيقة للإصدار المستقر v5.0.9 من ESP-IDF. تتوفر أيضًا إصدارات أخرى من ESP-IDF.
1.1 المقدمة
ESP32 هو نظام على شريحة يدمج الميزات التالية: · Wi-Fi (نطاق 2.4 جيجاهرتز) · Bluetooth · نواة وحدة المعالجة المركزية Xtensa® 32 بت LX6 عالية الأداء · معالج مساعد منخفض الطاقة للغاية · أجهزة محيطية متعددة
بفضل تقنية 40 نانومتر، توفر ESP32 منصةً متينةً ومتكاملةً للغاية، تُلبي الاحتياجات المستمرة لكفاءة استخدام الطاقة، وتصميمًا مدمجًا، وأمانًا، وأداءً عاليًا، وموثوقيةً عالية. تُوفر Espressif مواردَ أساسيةً للأجهزة والبرامج لمساعدة مطوري التطبيقات على تحقيق أفكارهم باستخدام أجهزة سلسلة ESP32. صُمم إطار عمل تطوير البرامج من Espressif لتطوير تطبيقات إنترنت الأشياء (IoT) المزودة بتقنيات Wi-Fi وBluetooth وإدارة الطاقة والعديد من ميزات النظام الأخرى.
1.2 ما تحتاجه
1.2.1 الأجهزة
· لوحة ESP32. · كابل USB – USB A / micro USB B. · كمبيوتر يعمل بنظام Windows أو Linux أو macOS.
ملاحظة: حاليًا، تستخدم بعض لوحات التطوير موصلات USB Type C. تأكد من استخدام الكابل المناسب لتوصيل لوحتك!
إذا كان لديك إحدى لوحات تطوير ESP32 الرسمية المدرجة أدناه، فيمكنك النقر فوق الرابط لمعرفة المزيد عن الأجهزة.
3
الفصل الأول. البدء
مجموعة تطوير ESP32 (-R)
يقدم دليل المستخدم هذا معلومات عن ESP32-DevKitS(-R)، وهي لوحة وميض مبنية على ESP32 من إنتاج Espressif. ESP32-DevKitS(-R) هي مزيج من اسمي لوحتين: ESP32-DevKitS وESP32-DevKitS-R. S يرمز إلى النوابض، وR يرمز إلى WROVER.
مجموعات تطوير ESP32
ESP32-DevKitS-R
تتكون الوثيقة من الأقسام الرئيسية التالية: · البدء: توفر شرحًا وافيًاview دليل إعداد ESP32-DevKitS(-R) وإرشادات إعداد الأجهزة/البرمجيات للبدء. · مرجع الأجهزة: يوفر معلومات أكثر تفصيلاً حول أجهزة ESP32-DevKitS(-R)ns. · وثائق ذات صلة: يوفر روابط للوثائق ذات الصلة.
البدء: يصف هذا القسم كيفية البدء باستخدام ESP32-DevKitS(-R). يبدأ ببضعة أقسام تمهيدية حول ESP32-DevKitS(-R)، ثم يقدم قسم "كيفية تثبيت لوحة" تعليمات حول كيفية تركيب وحدة على ESP32-DevKitS(-R)، وتجهيزها، وتثبيت البرنامج الثابت عليها.
زيادةview ESP32-DevKitS(-R) هي لوحة برمجة Espressifns مصممة خصيصًا لـ ESP32. يمكن استخدامها لبرمجة وحدة ESP32 دون الحاجة إلى لحامها بمصدر الطاقة وأسلاك الإشارة. بعد تثبيت الوحدة، يمكن أيضًا استخدام ESP32-DevKitS(-R) كلوحة تطوير مصغرة مثل ESP32-DevKitC.
تختلف لوحات ESP32-DevKitS وESP32-DevKitS-R فقط في تصميم دبابيس الزنبرك لتناسب وحدات ESP32 التالية.
· مجموعات تطوير ESP32: ESP32-WROOM-32 ESP32-WROOM-32D ESP32-WROOM-32U ESP32-SOLO-1 ESP32-WROOM-32E ESP32-WROOM-32UE
· ESP32-DevKitS-R: ESP32-WROVER (PCB & IPEX) ESP32-WROVER-B (PCB & IPEX) ESP32-WROVER-E ESP32-WROVER-IE
للحصول على معلومات حول الوحدات المذكورة أعلاه، يرجى الرجوع إلى وحدات سلسلة ESP32.
وصف المكونات
أنظمة اسبرريف
4 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
الشكل 1: ESP32-DevKitS – الواجهة الأمامية
أنظمة اسبرريف
الشكل 2: ESP32-DevKitS-R – الواجهة الأمامية 5
إرسال تعليقات المستند
الإصدار v5.0.9
الفصل الأول. البدء
دبابيس زنبركية للمكونات الرئيسية، رؤوس أنثوية مقاس 2.54 مم
جسر USB إلى UART موصل LDO Micro-USB/منفذ Micro USB زر EN زر التمهيد
الطاقة على الصمام
الوصف: انقر على الوحدة. ستُثبّت الدبابيس في فتحات الوحدة المُقوّسة. هذه الموصلات الأنثوية متصلة بدبابيس الوحدة المُثبّتة على هذه اللوحة. للاطلاع على وصف الموصلات الأنثوية، يُرجى مراجعة قسم "كتل الموصلات". يوفر جسر USB أحادي الشريحة إلى UART سرعات نقل تصل إلى 3 ميجابت في الثانية.
انخفاض مستوى الجهد من 5 فولت إلى 3.3 فولتtagمنظم الضغط (LDO).
منفذ USB. مصدر طاقة للوحة، بالإضافة إلى واجهة الاتصال بين الكمبيوتر واللوحة.
زر إعادة الضبط.
زر التنزيل. الضغط باستمرار على زر Boot ثم الضغط على EN يُفعّل وضع تنزيل البرامج الثابتة لتنزيلها عبر المنفذ التسلسلي.
يتم تشغيله عند توصيل USB أو مصدر الطاقة باللوحة.
كيفية تحديث اللوحة قبل تشغيل ESP32-DevKitS(-R)، يرجى التأكد من أنها في حالة جيدة ولا يوجد بها أي علامات واضحة للتلف.
الأجهزة المطلوبة · وحدة ESP32 من اختيارك · كابل USB 2.0 (قياسي-A إلى Micro-B) · كمبيوتر يعمل بنظام Windows أو Linux أو macOS
إعداد الأجهزة يرجى تركيب الوحدة التي تختارها على ESP32-DevKitS(-R) وفقًا للخطوات التالية:
ضع الوحدة برفق على لوحة ESP32-DevKitS(-R). تأكد من محاذاة فتحات القلاع في الوحدة مع دبابيس الزنبرك على اللوحة.
· اضغط الوحدة على اللوحة حتى تسمع صوت طقطقة. · تأكد من إدخال جميع دبابيس الزنبرك في الفتحات المُحكمة. إذا كانت بعض دبابيس الزنبرك غير محاذية،
ضعيهم في ثقوب محفورة باستخدام الملقط.
إعداد البرامج
الطريقة المفضلة: يوفر إطار عمل تطوير ESP-IDF طريقة مفضلة لتحميل الملفات الثنائية على ESP32-DevKitS(-R). يُرجى الانتقال إلى "البدء"، حيث سيساعدك قسم "التثبيت" بسرعة على إعداد بيئة التطوير ثم تحميل تطبيق.ampقم بتنزيل الملف على ESP32-DevKitS(-R) الخاص بك.
طريقة بديلة: كبديل، يمكن لمستخدمي ويندوز تثبيت الملفات الثنائية باستخدام أداة تنزيل الفلاش. ما عليك سوى تنزيل الملف، وفك ضغطه، واتباع التعليمات الموجودة في مجلد المستندات.
ملاحظة: 1. لوميض الثنائي fileيجب ضبط ESP32 على وضع تنزيل البرامج الثابتة. يمكن القيام بذلك إما باستخدام أداة التثبيت التلقائي، أو بالضغط باستمرار على زر التشغيل والنقر على زر EN. 2. بعد تثبيت الملف الثنائي files، تقوم أداة Flash Download Tool بإعادة تشغيل وحدة ESP32 الخاصة بك وتشغيل التطبيق الذي تم تنزيله بشكل افتراضي.
أبعاد اللوحة والمحتويات والتغليف
أنظمة اسبرريف
6 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل 1. البدء الشكل 3: أبعاد لوحة ESP32-DevKitS - الخلف
أنظمة اسبرريف
الشكل 4: أبعاد لوحة ESP32-DevKitS-R - الجزء الخلفي 7
إرسال تعليقات المستند
الإصدار v5.0.9
الفصل الأول. البدء
طلبات التجزئة إذا طلبت عددًا قليلًا منampيأتي كل ESP32-DevKitS(-R) في عبوة منفصلة، إما في كيس مضاد للكهرباء الساكنة أو في أي عبوة أخرى، وذلك حسب البائع. لطلبات التجزئة، يُرجى زيارة الرابط التالي: https://www.espressif.com/en/contact-us/get-sampليز.
طلبات الجملة: إذا طلبت بكميات كبيرة، فستصلك الألواح في صناديق كرتونية كبيرة. لطلبات الجملة، يُرجى زيارة الرابط التالي: https://www.espressif.com/en/contact-us/sales-questions.
مرجع الأجهزة
الرسم التخطيطي الكتلي يوضح الرسم التخطيطي الكتلي أدناه مكونات ESP32-DevKitS(-R) وارتباطاتها المتبادلة.
الشكل 5: ESP32-DevKitS(-R) (انقر للتكبير)
خيارات مصدر الطاقة هناك ثلاث طرق متبادلة الحصر لتوفير الطاقة للوحة: · منفذ Micro USB، مصدر الطاقة الافتراضي · دبابيس توصيل 5 فولت وGND · دبابيس توصيل 3 فولت و3 وGND
من المستحسن استخدام الخيار الأول: منفذ micro USB.
أنظمة اسبرريف
.
إشارة الملصق
L1 3V3 VDD 3V3
L2 EN CHIP_PU
L3 نائب الرئيس SENSOR_VP
مستشعر L4 VN_VN
ل5 34
GPIO34
ل6 35
GPIO35
ل7 32
GPIO32
ل8 33
GPIO33
يتبع في الصفحة التالية
8 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
الجدول 1 استمرار للصفحة السابقة
.
إشارة الملصق
ل9 25
GPIO25
ل10 26
GPIO26
ل11 27
GPIO27
ل12 14
GPIO14
ل13 12
GPIO12
L14 أرضي أرضي
ل15 13
GPIO13
L16 D2 SD_DATA2
L17 D3 SD_DATA3
L18 CMD SD_CMD
L19 5 فولت
5 فولت خارجي
R1 أرضي أرضي
ر2 23
GPIO23
ر3 22
GPIO22
R4 TX U0TXD
R5 RX U0RXD
ر6 21
GPIO21
R7 أرضي أرضي
ر8 19
GPIO19
ر9 18
GPIO18
ر10 5
GPIO5
ر11 17
GPIO17
ر12 16
GPIO16
ر13 4
GPIO4
ر14 0
GPIO0
ر15 2
GPIO2
ر16 15
GPIO15
R17 D1 SD_DATA1
R18 D0 SD_DATA0
R19 CLK SD_CLK
كتل الرأس بالنسبة لصورة كتل الرأس، يرجى الرجوع إلى وصف المكونات.
المستندات ذات الصلة
· مخططات ESP32-DevKitS(-R) (PDF) · ورقة بيانات ESP32 (PDF) · ورقة بيانات ESP32-WROOM-32 (PDF) · ورقة بيانات ESP32-WROOM-32D وESP32-WROOM-32U (PDF) · ورقة بيانات ESP32-SOLO-1 (PDF) · ورقة بيانات ESP32-WROVER (PDF) · ورقة بيانات ESP32-WROVER-B (PDF) · محدد منتج ESP
ESP32-DevKitM-1
سيساعدك دليل المستخدم هذا على البدء في استخدام ESP32-DevKitM-1 وسيوفر لك أيضًا معلومات أكثر تفصيلاً.
ESP32-DevKitM-1 هي لوحة تطوير مبنية على ESP32-MINI-1(1U) من إنتاج Espressif. معظم دبابيس الإدخال/الإخراج متصلة برؤوس الدبابيس على كلا الجانبين لسهولة التوصيل. يمكن للمستخدمين توصيل الأجهزة الطرفية بأسلاك توصيل أو تركيب ESP32-DevKitM-1 على لوحة توصيل.
أنظمة اسبرريف
9 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
ESP32-DevKitM-1 - أمامي
ESP32-DevKitM-1 – متساوي القياس
تتكون الوثيقة من الأقسام الرئيسية التالية: · البدء: توفر شرحًا وافيًاview تعليمات إعداد ESP32-DevKitM-1 والعتاد/البرمجيات للبدء. · مرجع العتاد: يوفر معلومات أكثر تفصيلاً حول عتاد ESP32-DevKitM-1ns. · مستندات ذات صلة: روابط للوثائق ذات الصلة.
البدء: يصف هذا القسم كيفية البدء باستخدام ESP32-DevKitM-1. يبدأ ببضعة أقسام تمهيدية حول ESP32-DevKitM-1، ثم يقدم قسم "بدء تطوير التطبيقات" تعليمات حول كيفية إعداد الأجهزة الأولي، ثم كيفية تثبيت البرامج الثابتة على ESP32-DevKitM-1.
زيادةview هذه لوحة تطوير صغيرة ومريحة تتميز بما يلي:
· وحدة ESP32-MINI-1 أو ESP32-MINI-1U · واجهة برمجة USB إلى تسلسلية توفر أيضًا مصدر طاقة للوحة · رؤوس دبوس · أزرار ضغط لإعادة الضبط وتنشيط وضع تنزيل البرنامج الثابت · بعض المكونات الأخرى
المحتويات والتغليف
طلبات التجزئة إذا طلبت عددًا قليلًا منampيأتي كل ESP32-DevKitM-1 في عبوة فردية إما في كيس مضاد للكهرباء الساكنة أو أي عبوة أخرى اعتمادًا على بائع التجزئة الخاص بك.
للطلبات بالتجزئة، يرجى الانتقال إلى https://www.espressif.com/en/contact-us/get-sampليز.
طلبات الجملة: إذا طلبت بكميات كبيرة، فستصلك الألواح في صناديق كرتونية كبيرة. لطلبات الجملة، يُرجى زيارة الرابط التالي: https://www.espressif.com/en/contact-us/sales-questions.
وصف المكونات: يوضح الشكل والجدول التاليان المكونات الرئيسية والواجهات وعناصر التحكم في لوحة ESP32-DevKitM-1. نأخذ اللوحة مع وحدة ESP32-MINI-1 كمثال.ample في الأقسام التالية.
أنظمة اسبرريف
10 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
الشكل 6: ESP32-DevKitM-1 – الواجهة الأمامية
المكون الرئيسي للوحدة الموجودة على متن الطائرة
زر تشغيل LDO من 5 فولت إلى 3.3 فولت
زر إعادة الضبط منفذ Micro-USB
مؤشر LED لتشغيل جسر USB إلى UART بجهد 3.3 فولت
موصل الإدخال/الإخراج
وصف
وحدة ESP32-MINI-1 أو وحدة ESP32-MINI-1U. تأتي ESP32-MINI-1 مزودة بهوائي مدمج في لوحة الدوائر المطبوعة (PCB). وتأتي ESP32-MINI-1U مزودة بموصل هوائي خارجي. تحتوي كلتا الوحدتين على ذاكرة فلاش بسعة 4 ميجابايت داخل علبة الشريحة. لمزيد من التفاصيل، يُرجى الاطلاع على ورقة بيانات ESP32-MINI-1 وESP32-MINI-1U.
يحول منظم الطاقة 5 فولت إلى 3.3 فولت.
زر التنزيل. الضغط باستمرار على زر التمهيد ثم الضغط على زر إعادة الضبط يُفعّل وضع تنزيل البرنامج الثابت عبر المنفذ التسلسلي.
زر إعادة الضبط
واجهة USB. مزود الطاقة للوحة بالإضافة إلى واجهة الاتصال بين الكمبيوتر وشريحة ESP32.
توفر شريحة جسر USB-UART أحادية معدلات نقل تصل إلى 3 ميجابت في الثانية.
يُشغّل عند توصيل منفذ USB باللوحة. للمزيد من التفاصيل، يُرجى الاطلاع على المخططات في قسم "المستندات ذات الصلة". جميع دبابيس GPIO المتاحة (باستثناء ناقل SPI للذاكرة الفلاشية) متصلة برؤوس الدبابيس على اللوحة. يمكن للمستخدمين برمجة شريحة ESP32 لتمكين وظائف متعددة.
بدء تطوير التطبيق قبل تشغيل ESP32-DevKitM-1، يرجى التأكد من أنه في حالة جيدة ولا توجد به أي علامات واضحة للتلف.
الأجهزة المطلوبة · ESP32-DevKitM-1 · كابل USB 2.0 (قياسي-A إلى Micro-B) · كمبيوتر يعمل بنظام Windows أو Linux أو macOS
إعداد البرنامج يرجى الانتقال إلى البدء، حيث سيساعدك قسم التثبيت بسرعة في إعداد بيئة التطوير ثم تثبيت تطبيقample على جهاز ESP32-DevKitM-1.
أنظمة اسبرريف
11 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
تنبيه: لوحات ESP32-DevKitM-1 المصنعة قبل 2 ديسمبر 2021 مُثبّتة بوحدة أحادية النواة. للتحقق من نوع الوحدة المُثبّتة، يُرجى مراجعة معلومات علامة الوحدة في PCN-2021-021. إذا كانت لوحتك مُثبّتة بوحدة أحادية النواة، يُرجى تفعيل وضع النواة الأحادية (CONFIG_FREERTOS_UNICORE) في menuconfig قبل تثبيت تطبيقاتك.
مخطط كتلة مرجع الأجهزة يوضح المخطط الكتلي أدناه مكونات ESP32-DevKitM-1 وارتباطاتها المتبادلة.
الشكل 7: ESP32-DevKitM-1
اختيار مصدر الطاقة هناك ثلاث طرق متبادلة الحصر لتوفير الطاقة للوحة: · منفذ Micro USB، مصدر الطاقة الافتراضي · دبابيس توصيل 5 فولت وGND · دبابيس توصيل 3 فولت و3 وGND
تحذير: يجب توفير مصدر الطاقة باستخدام أحد الخيارات المذكورة أعلاه فقط، وإلا فقد تتلف اللوحة و/أو مصدر الطاقة. يُنصح باستخدام منفذ micro USB لإمداد الطاقة.
أوصاف الدبابيس: يوضح الجدول أدناه أسماء ووظائف الدبابيس على جانبي اللوحة. للاطلاع على تكوينات الدبابيس الطرفية، يُرجى مراجعة ورقة بيانات ESP32.
لا.
اسم
يكتب
1
أرضي
P
2
3 فولت 3
P
وظيفة مصدر الطاقة الأرضي 3.3 فولت
يتبع في الصفحة التالية
أنظمة اسبرريف
12 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
الجدول 2 استمرار للصفحة السابقة
لا.
اسم
يكتب
وظيفة
3
36
I
GPIO36 ، ADC1_CH0 ، RTC_GPIO0
4
37
I
GPIO37 ، ADC1_CH1 ، RTC_GPIO1
5
38
I
GPIO38 ، ADC1_CH2 ، RTC_GPIO2
6
39
I
GPIO39 ، ADC1_CH3 ، RTC_GPIO3
7
ر.س.ت
I
إعادة ضبط؛ عالية: تمكين ؛ منخفض: إيقاف التشغيل
8
34
I
GPIO34 ، ADC1_CH6 ، RTC_GPIO4
9
35
I
GPIO35 ، ADC1_CH7 ، RTC_GPIO5
10
IO32
إدخال/إخراج
GPIO32، XTAL_32K_P (مدخل مذبذب بلوري 32.768 كيلوهرتز)،
ADC1_CH4 ، TOUCH9 ، RTC_GPIO9
11
IO33
إدخال/إخراج
GPIO33 ، XTAL_32K_N (إخراج مذبذب بلوري 32.768 كيلو هرتز) ،
ADC1_CH5 ، TOUCH8 ، RTC_GPIO8
12
IO25
إدخال/إخراج
GPIO25 ، DAC_1 ، ADC2_CH8 ، RTC_GPIO6 ، EMAC_RXD0
13
IO26
إدخال/إخراج
GPIO26 ، DAC_2 ، ADC2_CH9 ، RTC_GPIO7 ، EMAC_RXD1
14
IO27
إدخال/إخراج
GPIO27 ، ADC2_CH7 ، TOUCH7 ، RTC_GPIO17 ، EMAC_RX_DV
15
IO14
إدخال/إخراج
GPIO14 ، ADC2_CH6 ، TOUCH6 ، RTC_GPIO16 ، MTMS ، HSPICLK ،
HS2_CLK ، SD_CLK ، EMAC_TXD2
16
5V
P
مصدر طاقة 5 فولت
17
IO12
إدخال/إخراج
GPIO12 ، ADC2_CH5 ، TOUCH5 ، RTC_GPIO15 ، MTDI ، HSPIQ ،
HS2_DATA2 ، SD_DATA2 ، EMAC_TXD3
18
IO13
إدخال/إخراج
GPIO13 ، ADC2_CH4 ، TOUCH4 ، RTC_GPIO14 ، MTCK ، HSPID ،
HS2_DATA3 ، SD_DATA3 ، EMAC_RX_ER
19
IO15
إدخال/إخراج
GPIO15، ADC2_CH3، TOUCH3، RTC_GPIO13، MTDO، HSPICS0،
HS2_CMD، SD_CMD، EMAC_RXD3
20
IO2
إدخال/إخراج
GPIO2، ADC2_CH2، TOUCH2، RTC_GPIO12، HSPIWP،
HS2_DATA0، SD_DATA0
21
IO0
إدخال/إخراج
GPIO0 ، ADC2_CH1 ، TOUCH1 ، RTC_GPIO11 ، CLK_OUT1 ،
EMAC_TX_CLK
22
IO4
إدخال/إخراج
GPIO4 ، ADC2_CH0 ، TOUCH0 ، RTC_GPIO10 ، HSPIHD ،
HS2_DATA1، SD_DATA1، EMAC_TX_ER
23
IO9
إدخال/إخراج
GPIO9 ، HS1_DATA2 ، U1RXD ، SD_DATA2
24
IO10
إدخال/إخراج
GPIO10 ، HS1_DATA3 ، U1TXD ، SD_DATA3
25
IO5
إدخال/إخراج
GPIO5 ، HS1_DATA6 ، VSPICS0 ، EMAC_RX_CLK
26
IO18
إدخال/إخراج
GPIO18 ، HS1_DATA7 ، VSPICLK
27
IO23
إدخال/إخراج
GPIO23 ، HS1_STROBE ، VSPID
28
IO19
إدخال/إخراج
GPIO19 ، VSPIQ ، U0CTS ، EMAC_TXD0
29
IO22
إدخال/إخراج
GPIO22 ، VSPIWP ، U0RTS ، EMAC_TXD1
30
IO21
إدخال/إخراج
GPIO21 ، VSPIHD ، EMAC_TX_EN
31
TXD0
إدخال/إخراج
GPIO1 ، U0TXD ، CLK_OUT3 ، EMAC_RXD2
32
RXD0
إدخال/إخراج
GPIO3 ، U0RXD ، CLK_OUT2
تفاصيل إصدار الأجهزة لا توجد إصدارات سابقة متاحة.
المستندات ذات الصلة
· ورقة بيانات ESP32-MINI-1 وESP32-MINI-1U (PDF) · مخططات ESP32-DevKitM-1 (PDF) · تخطيط لوحة الدوائر المطبوعة ESP32-DevKitM-1 (PDF) · تخطيط ESP32-DevKitM-1 (DXF) - يمكنك view مع أوتوديسك Viewمتوفر على الإنترنت · ورقة بيانات ESP32 (PDF) · محدد منتج ESP
للحصول على وثائق تصميم أخرى للوحة، يرجى الاتصال بنا على sales@espressif.com.
أنظمة اسبرريف
13 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
برنامج 1.2.2
لبدء استخدام ESP-IDF على ESP32، قم بتثبيت البرنامج التالي: · Toolchain لتجميع الكود الخاص بـ ESP32 · أدوات البناء - CMake وNinja لبناء تطبيق كامل لـ ESP32 · ESP-IDF الذي يحتوي بشكل أساسي على واجهة برمجة التطبيقات (مكتبات البرامج والكود المصدر) لـ ESP32 والبرامج النصية لتشغيل Toolchain
1.3 التثبيت
لتثبيت جميع البرامج المطلوبة، نقدم طرقًا مختلفة لتسهيل هذه المهمة. اختر أحد الخيارات المتاحة.
1.3.1 بيئة التطوير المتكاملة
ملاحظة: نوصي بشدة بتثبيت ESP-IDF من خلال IDE المفضل لديك.
· مكون إضافي لـ Eclipse · ملحق VSCode
1.3.2 التثبيت اليدوي
بالنسبة للإجراء اليدوي، يرجى التحديد وفقًا لنظام التشغيل الخاص بك.
أنظمة اسبرريف
14 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
الإعداد القياسي لـ Toolchain لنظام التشغيل Windows
مقدمة يتطلب ESP-IDF تثبيت بعض الأدوات الأساسية حتى تتمكن من بناء البرامج الثابتة للشرائح المدعومة. تتضمن الأدوات الأساسية Python و Git والمترجمات المتقاطعة وأدوات بناء CMake و Ninja. بالنسبة لبدء الاستخدام، سنستخدم موجه الأوامر، ولكن بعد تثبيت ESP-IDF يمكنك استخدام Eclipse Plugin أو أي بيئة تطوير متكاملة رسومية أخرى تدعم CMake بدلاً من ذلك. ملاحظة: القيود: - يجب ألا يتجاوز مسار تثبيت ESP-IDF وأدوات ESP-IDF 90 حرفًا. قد تؤدي مسارات التثبيت الطويلة جدًا إلى فشل البناء. - يجب ألا يحتوي مسار تثبيت Python أو ESP-IDF على مسافات بيضاء أو أقواس. - يجب ألا يحتوي مسار تثبيت Python أو ESP-IDF على أحرف خاصة (غير ASCII) إلا إذا تم تكوين نظام التشغيل مع دعم uUnicode UTF-8p. يمكن لمسؤول النظام تمكين الدعم عبر لوحة التحكم - تغيير تنسيقات التاريخ أو الوقت أو الأرقام - علامة التبويب "الإدارة" - تغيير إعدادات النظام المحلية - حدد الخيار oBeta: استخدام Unicode UTF-8 لدعم اللغة العالمية - موافق وأعد تشغيل الكمبيوتر.
أسهل طريقة لتثبيت المتطلبات الأساسية لـ ESP-IDFns هي تنزيل أحد مثبتات أدوات ESP-IDF.
تنزيل برنامج تثبيت Windows
ما هي حالة استخدام المُثبّت عبر الإنترنت وخارجه؟ المُثبّت عبر الإنترنت صغير الحجم جدًا، ويتيح تثبيت جميع إصدارات ESP-IDF المتاحة. سيقوم المُثبّت بتنزيل التبعيات الضرورية فقط، بما في ذلك Git لنظام Windows، أثناء عملية التثبيت. يُخزّن المُثبّت الملفات التي تم تنزيلها. files في دليل ذاكرة التخزين المؤقت %userprofile%.إسبرسيف
لا يتطلب برنامج التثبيت دون اتصال بالإنترنت أي اتصال بالشبكة. يحتوي البرنامج على جميع التبعيات المطلوبة، بما في ذلك Git لنظام Windows.
مكونات التثبيت يقوم المثبت بنشر المكونات التالية:
· Python المضمن · المترجمات المتقاطعة · OpenOCD · أدوات بناء CMake وNinja · ESP-IDF
يتيح لك المُثبِّت أيضًا إعادة استخدام المجلد الحالي مع ESP-IDF. يُنصح باستخدام المجلد %userpro.file%Desktopesp-idf حيث %userprofile% هو الدليل الرئيسي الخاص بك.
أنظمة اسبرريف
15 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
تشغيل بيئة ESP-IDF: في نهاية عملية التثبيت، يمكنك تحديد خيار "تشغيل بيئة ESP-IDF PowerShell" أو "تشغيل موجه أوامر ESP-IDF" (cmd.exe). سيُشغّل المُثبّت بيئة ESP-IDF في موجه الأوامر المُختار. تشغيل بيئة ESP-IDF PowerShell:
الشكل 8: إكمال معالج إعداد أدوات ESP-IDF باستخدام تشغيل بيئة ESP-IDF PowerShell
تشغيل موجه أوامر ESP-IDF (cmd.exe):
استخدام موجه الأوامر: لخطوات البدء المتبقية، سنستخدم موجه أوامر ويندوز. يُنشئ مُثبّت أدوات ESP-IDF أيضًا اختصارًا في قائمة ابدأ لتشغيل موجه أوامر ESP-IDF. يُشغّل هذا الاختصار موجه الأوامر (cmd.exe) ويُشغّل البرنامج النصي export.bat لإعداد متغيرات البيئة (PATH وIDF_PATH وغيرها). داخل موجه الأوامر هذا، تتوفر جميع الأدوات المُثبّتة. يُرجى ملاحظة أن هذا الاختصار مُخصّص لمجلد ESP-IDF المُحدّد في مُثبّت أدوات ESP-IDF. إذا كان لديك عدة مجلدات ESP-IDF على جهاز الكمبيوتر (على سبيل المثالampلكي تتمكن من العمل مع إصدارات مختلفة من ESP-IDF، لديك خياران لاستخدامهما:
1. قم بإنشاء نسخة من الاختصار الذي تم إنشاؤه بواسطة مثبت أدوات ESP-IDF، وقم بتغيير دليل العمل الخاص بالاختصار الجديد إلى دليل ESP-IDF الذي ترغب في استخدامه.
٢. كبديل، شغّل cmd.exe، ثم انتقل إلى مجلد ESP-IDF الذي ترغب في استخدامه، وشغّل export.bat. تجدر الإشارة إلى أنه بخلاف الخيار السابق، تتطلب هذه الطريقة وجود Python وGit في مسار PATH. إذا ظهرت لك أخطاء تتعلق بعدم العثور على Python أو Git، فاستخدم الخيار الأول.
الخطوات الأولى على ESP-IDF الآن بعد استيفاء جميع المتطلبات، سوف يرشدك الموضوع التالي إلى كيفية بدء مشروعك الأول.
أنظمة اسبرريف
16 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل 1. البدء الشكل 9: ESP-IDF PowerShell
الشكل 10: إكمال معالج إعداد أدوات ESP-IDF باستخدام تشغيل موجه أوامر ESP-IDF (cmd.exe)
أنظمة اسبرريف
17 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
الشكل 11: موجه أوامر ESP-IDF
أنظمة اسبرريف
18 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
سيساعدك هذا الدليل على الخطوات الأولى لاستخدام ESP-IDF. اتبع هذا الدليل لبدء مشروع جديد على ESP32، وبناء الجهاز وتحديثه ومراقبته. ملاحظة: إذا لم تقم بتثبيت ESP-IDF بعد، يُرجى الانتقال إلى صفحة التثبيت واتباع التعليمات للحصول على جميع البرامج اللازمة لاستخدام هذا الدليل.
ابدأ مشروعًا، أنت الآن جاهز لإعداد تطبيقك لـ ESP32. يمكنك البدء بمشروع getstarted/hello_world من exampدليل les في ESP-IDF.
هام: لا يدعم نظام بناء ESP-IDF المسافات الموجودة في المسارات إلى ESP-IDF أو إلى المشاريع.
انسخ المشروع get-started/hello_world إلى الدليل ~/esp: cd %userprofile%esp xcopy /e /i %IDF_PATH%examplesget-startedhello_world hello_world
ملحوظة: هناك مجموعة منampلو في السابقampدليل les في ESP-IDF. يمكنك نسخ أي مشروع بنفس الطريقة الموضحة أعلاه وتشغيله. ومن الممكن أيضا لبناء السابقينampقم بوضع العناصر في مكانها دون نسخها أولاً.
الآن، وصّل لوحة ESP32 بالكمبيوتر، وتحقق من المنفذ التسلسلي الذي تظهر اللوحة من خلاله. تبدأ أسماء المنافذ التسلسلية بـ COM في نظام Windows. إذا لم تكن متأكدًا من كيفية التحقق من اسم المنفذ التسلسلي، يُرجى مراجعة قسم "إنشاء اتصال تسلسلي مع ESP32" للاطلاع على التفاصيل الكاملة.
ملاحظة: احتفظ باسم المنفذ في متناول يديك حيث ستحتاج إليه في الخطوات التالية.
قم بتكوين مشروعك انتقل إلى دليل hello_world الخاص بك، وقم بتعيين ESP32 كهدف، ثم قم بتشغيل أداة تكوين المشروع menuconfig.
قرص Windows cd %userprofile%esphello_world idf.py set-target esp32 idf.py menuconfig
بعد فتح مشروع جديد، يجب عليك أولاً تعيين الهدف باستخدام idf.py set-target esp32. يُرجى ملاحظة أنه سيتم مسح وتهيئه أي عمليات بناء أو تكوينات موجودة في المشروع، إن وجدت، في هذه العملية. يُمكن حفظ الهدف في متغير البيئة لتخطي هذه الخطوة تمامًا. راجع "تحديد شريحة الهدف: set-target" لمزيد من المعلومات. إذا تم تنفيذ الخطوات السابقة بشكل صحيح، فستظهر القائمة التالية: أنت تستخدم هذه القائمة لإعداد متغيرات خاصة بالمشروع، مثل اسم شبكة Wi-Fi وكلمة المرور، وسرعة المعالج، إلخ. يُمكن تخطي إعداد المشروع باستخدام menuconfig لـ ohello_wordp، لأن هذا المثال...ampيتم تشغيل le باستخدام التكوين الافتراضي.
انتبه: إذا كنت تستخدم لوحة ESP32-DevKitC مع وحدة ESP32-SOLO-1، أو لوحة ESP32-DevKitM-1 مع وحدة ESP32-MIN1-1(1U)، فيرجى تمكين وضع النواة الفردية (CONFIG_FREERTOS_UNICORE) في menuconfig قبل وميض exampليز.
أنظمة اسبرريف
19 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
الشكل 12: تكوين المشروع – النافذة الرئيسية
ملاحظة: قد تختلف ألوان القائمة في جهازك. يمكنك تغيير مظهرها باستخدام الخيار –style. يُرجى تشغيل الأمر idf.py menuconfig –help لمزيد من المعلومات.
إذا كنت تستخدم إحدى لوحات التطوير المدعومة، يمكنك تسريع عملية التطوير باستخدام حزمة دعم اللوحات. راجع "نصائح إضافية" لمزيد من المعلومات.
إنشاء المشروع قم بإنشاء المشروع عن طريق تشغيل:
idf.py بناء
سيقوم هذا الأمر بتجميع التطبيق وجميع مكونات ESP-IDF ، ثم يقوم بإنشاء أداة تحميل التشغيل ، وجدول الأقسام ، وثنائيات التطبيق.
$ idf.py build تشغيل cmake في الدليل /path/to/hello_world/build تنفيذ "cmake -G Ninja –warn-uninitialized /path/to/hello_world"... تحذير بشأن القيم غير المهيئة. — تم العثور على Git: /usr/bin/git (تم العثور على الإصدار "2.17.0") — بناء مكون aws_iot فارغ بسبب التكوين — أسماء المكونات: … — مسارات المكونات: …
... (المزيد من سطور مخرجات نظام البناء)
[527/527] إنشاء hello_world.bin esptool.py v2.3.1
اكتمل بناء المشروع. للتحديث، نفّذ الأمر التالي: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_world. bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin أو نفّذ الأمر 'idf.py -p PORT flash'
إذا لم تكن هناك أخطاء ، فسيتم الانتهاء من الإنشاء عن طريق إنشاء البرنامج الثابت الثنائي .bin files.
أنظمة اسبرريف
20 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
قم بتثبيت الملفات الثنائية التي قمت ببنائها للتو (bootloader.bin، وpartition-table.bin، وhello_world.bin) على لوحة ESP32 الخاصة بك عن طريق تشغيل: idf.py -p PORT [-b BAUD] flash
استبدل PORT باسم المنفذ التسلسلي للوحة ESP32. يمكنك أيضًا تغيير معدل الباود للفلاش باستبدال BAUD بمعدل الباود المطلوب. معدل الباود الافتراضي هو 460800. لمزيد من المعلومات حول وسيطات idf.py، راجع idf.py.
ملاحظة: يقوم خيار flash تلقائيًا ببناء المشروع ووميضه، لذا فإن تشغيل idf.py build ليس ضروريًا.
هل واجهتَ مشاكل أثناء التثبيت؟ إذا شغّلتَ الأمر المذكور وظهرت أخطاء مثل "فشل الاتصال"، فقد يكون هناك عدة أسباب لذلك. أحدها قد يكون مشاكل في أداة esptool.py، وهي الأداة التي يستدعيها نظام البناء لإعادة ضبط الشريحة، والتفاعل مع مُحمِّل إقلاع ذاكرة القراءة فقط (ROM)، وتثبيت البرامج الثابتة. أحد الحلول البسيطة التي يُمكن تجربتها هو إعادة الضبط يدويًا الموضح أدناه، وإذا لم يُجدِ ذلك نفعًا، يُمكنك الاطلاع على مزيد من التفاصيل حول المشاكل المُحتملة في قسم استكشاف الأخطاء وإصلاحها.
يُعيد ملف esptool.py ضبط ESP32 تلقائيًا عبر تأكيد خطوط التحكم DTR وRTS لشريحة محول USB إلى تسلسلي، مثل FTDI أو CP210x (لمزيد من المعلومات، راجع "إنشاء اتصال تسلسلي مع ESP32"). تتصل خطوط التحكم DTR وRTS بدورها بدبابيس GPIO0 وCHIP_PU (EN) في ESP32، مما يؤدي إلى تغيير مستوى الصوت.tagستؤدي مستويات DTR وRTS إلى تشغيل ESP32 في وضع تنزيل البرنامج الثابت. كمثالampيرجى التحقق من الرسم التخطيطي للوحة تطوير ESP32 DevKitC.
بشكل عام، لن تواجه أي مشاكل مع لوحات تطوير esp-idf الرسمية. مع ذلك، لا يستطيع esptool.py إعادة ضبط جهازك تلقائيًا في الحالات التالية:
· لا يحتوي جهازك على خطوط DTR وRTS المتصلة بـ GPIO0 وCHIP_PU. · تم تكوين خطوط DTR وRTS بشكل مختلف. · لا توجد خطوط تحكم تسلسلية من هذا القبيل على الإطلاق.
اعتمادًا على نوع الأجهزة التي لديك، قد يكون من الممكن أيضًا وضع لوحة ESP32 يدويًا في وضع تنزيل البرامج الثابتة (إعادة التعيين).
بالنسبة للوحات التطوير التي تنتجها Espressif، يمكن العثور على هذه المعلومات في أدلة البدء أو أدلة المستخدم الخاصة بها. على سبيل المثالampلإعادة تعيين لوحة تطوير ESP-IDF يدويًا، اضغط باستمرار على زر التمهيد (GPIO0) واضغط على زر EN (CHIP_PU).
· بالنسبة للأنواع الأخرى من الأجهزة، حاول سحب GPIO0 للأسفل.
التشغيل العادي عند الوميض، ستشاهد سجل الإخراج مشابهًا لما يلي:
… esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –before=default_reset -after=hard_reset write_flash –flash_mode dio –flash_freq 40m –flash_size 2MB 0x8000 partition_table/partition-table.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev المنفذ التسلسلي /dev/ttyUSB0 جاري الاتصال…….._ الشريحة هي ESP32D0WDQ6 (المراجعة 0) الميزات: WiFi، BT، ثنائي النواة، مخطط الترميز لا شيء Crystal هو 40 ميجا هرتز MAC: 24:0a:c4:05:b9:14 تحميل stub… تشغيل stub… تشغيل stub… تغيير معدل الباود إلى 460800 تم التغيير.
(يتبع في الصفحة التالية)
أنظمة اسبرريف
21 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
(يتبع من الصفحة السابقة) ضبط حجم الفلاش... ضغط ٣٠٧٢ بايت إلى ١٠٣ بايت... الكتابة عند ٠x٠٠٠٨٠٠٠... (١٠٠٪) كتابة ٣٠٧٢ بايت (١٠٣ بايت مضغوط) عند ٠x٠٠٠٨٠٠٠ في ٠.٠ ثانية (بسرعة ٥٩٦٢.٨ كيلوبت/ثانية)... تم التحقق من تجزئة البيانات. ضغط ٢٦٠٩٦ بايت إلى ١٥٤٠٨ بايت... الكتابة عند ٠x٠٠٠١٠٠٠... (١٠٠٪) كتابة ٢٦٠٩٦ بايت (١٥٤٠٨ بايت مضغوط) عند ٠x٠٠٠١٠٠٠ في ٠.٤ ثانية (بسرعة ٥٤٦.٧ كيلوبت/ثانية)... تم التحقق من تجزئة البيانات. تم ضغط 147104 بايت إلى 77364... الكتابة عند 0x00010000... (20%) الكتابة عند 0x00014000... (40%) الكتابة عند 0x00018000... (60%) الكتابة عند 0x0001c000... (80%) الكتابة عند 0x00020000... (100%) كتابة 147104 بايت (77364 مضغوط) عند 0x00010000 في 1.9 ثانية (فعال 615.5 كيلوبت/ثانية)... تم التحقق من تجزئة البيانات.
جاري المغادرة… إعادة الضبط الثابت عبر دبوس RTS… تم
إذا لم تحدث أي مشاكل بنهاية عملية الفلاش، فسيتم إعادة تشغيل اللوحة وتشغيل تطبيق ohello_worldp. إذا كنت ترغب في استخدام بيئة التطوير المتكاملة Eclipse أو VS Code بدلاً من تشغيل idf.py، فراجع ملحق Eclipse Plugin، ملحق VSCode.
راقب المخرجات للتأكد من تشغيل ohello_worldpis بالفعل، اكتب idf.py -p PORT monitor (لا تنس استبدال PORT باسم المنفذ التسلسلي الخاص بك).
يقوم هذا الأمر بتشغيل تطبيق IDF Monitor:
$ idf.py -p تشغيل idf_monitor في الدليل […]/esp/hello_world/build تنفيذ "python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf"… — تشغيل idf_monitor ١١٥٢٠٠ —– إغلاق: Ctrl+] | القائمة: Ctrl+T | المساعدة: Ctrl+T متبوعًا بـ Ctrl+H –ets ٨ يونيو ٢٠١٦ ٠٠:٢٢:٥٧
rst:0x1 (POWERON_RESET)،boot:0x13 (SPI_FAST_FLASH_BOOT) ets 8 يونيو 2016 00:22:57 …
بعد أن تنتقل سجلات بدء التشغيل والتشخيص إلى الأعلى، يجب أن ترى رسالة oHello world!p مطبوعة بواسطة التطبيق.
أهلاً بالعالم! إعادة التشغيل خلال ١٠ ثوانٍ... هذه شريحة ESP32 مزودة بنواتين للمعالج، تدعم WiFi/BT/BLE، إصدار السيليكون ١، ذاكرة فلاش خارجية ٢ ميجابايت. الحد الأدنى لحجم الذاكرة المؤقتة: ٢٩٨٩٦٨ بايت. إعادة التشغيل خلال ٩ ثوانٍ... إعادة التشغيل خلال ٨ ثوانٍ... إعادة التشغيل خلال ٧ ثوانٍ...
للخروج من شاشة IDF ، استخدم الاختصار Ctrl +].
أنظمة اسبرريف
22 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
إذا تعطلت شاشة IDF بعد التحميل بفترة وجيزة، أو إذا ظهرت لك بيانات عشوائية غير مرغوب فيها مشابهة لما هو موضح أدناه، فغالبًا ما تستخدم لوحتك ترددًا 26 ميجاهرتز. تستخدم معظم تصميمات لوحات التطوير ترددًا 40 ميجاهرتز، لذا يستخدم ESP-IDF هذا التردد كقيمة افتراضية.
إذا واجهتَ هذه المشكلة، فاتبع الخطوات التالية: 1. اخرج من الشاشة. 2. ارجع إلى menuconfig. 3. انتقل إلى Component config > Hardware Settings > Main XTAL Config > Main XTAL frequency، ثم غيّر CONFIG_XTAL_FREQ_SEL إلى 26 ميجاهرتز. 4. بعد ذلك، أنشئ التطبيق وحمّله مرة أخرى.
في الإصدار الحالي من ESP-IDF، ترددات XTAL الرئيسية التي يدعمها ESP32 هي كما يلي:
· 26 ميجا هرتز · 40 ميجا هرتز
ملاحظة: يمكنك الجمع بين البناء والوميض والمراقبة في خطوة واحدة عن طريق تشغيل: idf.py -p PORT flash monitor
انظر أيضًا: · IDF Monitor للحصول على اختصارات مفيدة ومزيد من التفاصيل حول استخدام IDF monitor. · idf.py للحصول على مرجع كامل لأوامر وخيارات idf.py.
هذا كل ما تحتاجه للبدء مع ESP32! أنت الآن جاهز لتجربة بعض الميزات الأخرى.ampأو انتقل مباشرة إلى تطوير تطبيقاتك الخاصة.
هام: بعض من السابقينampلا تدعم هذه الأنظمة ESP32 لأن الأجهزة المطلوبة غير مضمنة في ESP32، لذا لا يمكن دعمها. في حال بناء نظام سابقampيرجى التحقق من ملف README file لجدول الأهداف المدعومة. إذا كان هذا موجودًا، بما في ذلك هدف ESP32، أو لم يكن الجدول موجودًا على الإطلاق، فسيتم حذفه.ampسوف يعمل على ESP32.
نصائح إضافية
في بعض توزيعات لينكس، قد تظهر لك رسالة الخطأ "فشل فتح المنفذ /dev/ttyUSB0" عند تثبيت ESP32. يمكن حل هذه المشكلة بإضافة المستخدم الحالي إلى مجموعة الاتصال.
توافق بايثون: يدعم ESP-IDF بايثون 3.7 أو أحدث. يُنصح بترقية نظام التشغيل لديك إلى إصدار أحدث يُلبي هذا الشرط. تشمل الخيارات الأخرى تثبيت بايثون من مصادر خارجية أو استخدام نظام إدارة إصدارات بايثون مثل pyenv.
لتسريع عملية إنشاء النماذج الأولية على بعض لوحات التطوير، يمكنك استخدام حزم دعم اللوحة (BSPs)، والتي تجعل تهيئة لوحة معينة سهلة مثل عدد قليل من استدعاءات الوظائف.
أنظمة اسبرريف
23 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
يدعم BSP عادةً جميع مكونات الأجهزة المتوفرة على لوحة التطوير. بالإضافة إلى تعريف توزيع الدبابيس ووظائف التهيئة، يأتي BSP مزودًا ببرامج تشغيل للمكونات الخارجية، مثل المستشعرات والشاشات وبرامج ترميز الصوت، إلخ. يتم توزيع BSPs عبر مدير مكونات IDF، لذا يمكن العثور عليها في سجل مكونات IDF. إليك مثال:ampلمعرفة كيفية إضافة ESP-WROVER-KIT BSP إلى مشروعك: idf.py add-dependency esp_wrover_kit
المزيد على سبيل المثالampيمكن العثور على أمثلة لاستخدام BSP في BSP exampمجلد ليه.
المستندات ذات الصلة للمستخدمين المتقدمين الذين يريدون تخصيص عملية التثبيت: · تحديث أدوات ESP-IDF على Windows · إنشاء اتصال تسلسلي مع ESP32 · مكون Eclipse الإضافي · ملحق VSCode · IDF Monitor
تحديث أدوات ESP-IDF على Windows
ثبّت أدوات ESP-IDF باستخدام برنامج نصي. من موجه أوامر Windows، انتقل إلى المجلد الذي ثبّت فيه ESPIDF. ثم شغّل:
تثبيت.bat
بالنسبة لـ PowerShell، انتقل إلى المجلد الذي تم فيه تثبيت ESP-IDF. ثم شغّل:
تثبيت ps1
سيؤدي هذا إلى تنزيل وتثبيت الأدوات اللازمة لاستخدام ESP-IDF. إذا كان الإصدار المحدد من الأداة مثبتًا مسبقًا، فلن يتم اتخاذ أي إجراء. يتم تنزيل الأدوات وتثبيتها في المجلد المحدد أثناء عملية تثبيت أدوات ESP-IDF. المسار الافتراضي هو C:Usersusername.espressif.
أضف أدوات ESP-IDF إلى PATH باستخدام نص برمجي للتصدير. يُنشئ مُثبِّت أدوات ESP-IDF اختصارًا في قائمة "ابدأ" لموجه أوامر oESP-IDF. يفتح هذا الاختصار نافذة موجه الأوامر حيث تكون جميع الأدوات مُفعَّلة.
متوفر. في بعض الحالات، قد ترغب في العمل مع ESP-IDF في نافذة موجه الأوامر التي لم تبدأ باستخدام هذا الاختصار. في هذه الحالة، اتبع التعليمات أدناه لإضافة أدوات ESP-IDF إلى PATH. في موجه الأوامر حيث تحتاج إلى استخدام ESP-IDF، انتقل إلى المجلد الذي تم تثبيت ESP-IDF فيه، ثم نفّذ export.bat:
القرص المضغوط٪ userprofile%espesp-idf export.bat
بدلاً من ذلك، في Powershell حيث تحتاج إلى استخدام ESP-IDF، قم بالتبديل إلى الدليل حيث تم تثبيت ESP-IDF، ثم قم بتنفيذ export.ps1:
cd ~/esp/esp-idf export.ps1
عندما يتم ذلك، ستكون الأدوات متاحة في موجه الأوامر هذا.
إنشاء اتصال تسلسلي مع ESP32 يوفر هذا القسم إرشادات حول كيفية إنشاء اتصال تسلسلي بين ESP32 والكمبيوتر الشخصي.
أنظمة اسبرريف
24 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
توصيل ESP32 بالكمبيوتر: وصّل لوحة ESP32 بالكمبيوتر باستخدام كابل USB. إذا لم يُثبّت برنامج تشغيل الجهاز تلقائيًا، فحدد شريحة محول USB إلى تسلسلي على لوحة ESP32 (أو دونجل محول خارجي)، ثم ابحث عن برامج التشغيل على الإنترنت وثبّتها. فيما يلي قائمة بشرائح محول USB إلى تسلسلي المثبتة على معظم لوحات ESP32 التي تنتجها Espressif، بالإضافة إلى روابط لبرامج التشغيل:
· CP210x: برامج تشغيل VCP لجسر USB إلى UART CP210x · FTDI: برامج تشغيل منفذ FTDI الافتراضي COM. يُرجى مراجعة دليل مستخدم اللوحة لمعرفة شريحة تحويل USB إلى تسلسلي المُستخدمة. برامج التشغيل المذكورة أعلاه هي للرجوع إليها فقط. في الظروف العادية، يجب أن تكون برامج التشغيل مُرفقة مع نظام التشغيل، وتُثبّت تلقائيًا عند توصيل اللوحة بالكمبيوتر.
تحقق من المنفذ على نظام ويندوز. تحقق من قائمة منافذ COM المحددة في إدارة أجهزة ويندوز. افصل ESP32 ثم أعد توصيله، للتحقق من المنفذ الذي يختفي من القائمة ثم يظهر مجددًا. توضح الأشكال أدناه المنفذ التسلسلي لـ ESP32 DevKitC وESP32 WROVER KIT.
الشكل 13: جسر USB إلى UART لـ ESP32-DevKitC في إدارة الأجهزة في Windows
للتحقق من اسم الجهاز للمنفذ التسلسلي للوحة ESP32 (أو دونجل المحول الخارجي)، قم بتشغيل هذا الأمر مرتين، أولاً مع فصل اللوحة/الدونجل، ثم مع توصيله. المنفذ الذي يظهر في المرة الثانية هو المنفذ الذي تحتاجه: Linux
ls / dev / tty *
ماك
أنظمة اسبرريف
25 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
الشكل 14: منفذا USB تسلسليان لبرنامج ESP-WROVER-KIT في إدارة الأجهزة بنظام Windows
أنظمة اسبرريف
26 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
ls /dev/cu.* ملاحظة: لمستخدمي ماك: إذا لم يظهر المنفذ التسلسلي، فتأكد من تثبيت برامج تشغيل USB/التسلسلي. راجع قسم "توصيل ESP32 بالكمبيوتر" للاطلاع على روابط برامج التشغيل. بالنسبة لنظام ماك هاي سييرا (10.13)، قد تحتاج أيضًا إلى السماح بتحميل برامج التشغيل. افتح "تفضيلات النظام" ← "الأمان والخصوصية" ← "عام" وتحقق مما إذا كانت هناك رسالة معروضة هنا حول برنامج نظام التشغيل من صفحة المطور، حيث يكون اسم المطور هو Silicon Labs أو FTDI.
إضافة مستخدم إلى مجموعة الاتصال الهاتفي على لينكس. يجب أن يتمتع المستخدم المسجل حاليًا بصلاحيات القراءة والكتابة عبر المنفذ التسلسلي عبر USB. في معظم توزيعات لينكس، يتم ذلك بإضافة المستخدم إلى مجموعة الاتصال الهاتفي باستخدام الأمر التالي:
sudo usermod -a -G dialout $ USER
على Arch Linux يتم ذلك عن طريق إضافة المستخدم إلى مجموعة uucp بالأمر التالي:
sudo usermod -a -G uucp $ USER
تأكد من إعادة تسجيل الدخول لتمكين أذونات القراءة والكتابة للمنفذ التسلسلي.
تحقق من الاتصال التسلسلي. تأكد الآن من أن الاتصال التسلسلي يعمل. يمكنك القيام بذلك باستخدام برنامج طرفية تسلسلية، وذلك بالتحقق من ظهور أي إخراج على الطرفية بعد إعادة ضبط ESP32. معدل نقل البيانات الافتراضي لوحدة التحكم في ESP32 هو 115200.
ويندوز ولينكس في هذا المثالampسنستخدم برنامج PuTTY SSH Client المتوفر لنظامي التشغيل Windows وLinux. يمكنك استخدام برامج تسلسلية أخرى وضبط معلمات الاتصال كما هو موضح أدناه. شغّل الطرفية واضبط المنفذ التسلسلي المُحدد. معدل الباود = 115200 (إذا لزم الأمر، غيّره إلى معدل الباود الافتراضي للشريحة المستخدمة)، بتات البيانات = 8، بتات التوقف = 1، والتكافؤ = N. فيما يلي الأمثلة:ampلقطات شاشة لضبط المنفذ ومعلمات الإرسال (المُوصوفة باختصار بـ 115200-8-1-N) على نظامي ويندوز ولينكس. تذكر تحديد نفس المنفذ التسلسلي الذي حددته في الخطوات السابقة. ثم افتح المنفذ التسلسلي في الطرفية وتحقق مما إذا كان ESP32 قد قام بطباعة أي سجل. يعتمد محتوى السجل على التطبيق المُحمّل على ESP32، انظر المثال.ample Output.
ملاحظة: أغلق المنفذ التسلسلي بعد التأكد من سلامة الاتصال. إذا أبقيت جلسة العمل مفتوحة، فلن تتمكن من تحميل البرامج الثابتة لاحقًا عبر المنفذ التسلسلي.
macOS لتوفير عناء تثبيت برنامج طرفية تسلسلية، يوفر macOS أمر الشاشة. · كما هو موضح في "التحقق من المنفذ" على Linux وmacOS، قم بتشغيل:
ls /dev/cu.* · يجب أن ترى إخراجًا مشابهًا:
/dev/cu.منفذ وارد للبلوتوث /dev/cu.SLAB_USBtoUART USBtoUART7
/dev/cu.SLAB_
يختلف الناتج باختلاف نوع وعدد اللوحات المتصلة بجهاز الكمبيوتر. بعد ذلك، اختر اسم جهاز اللوحة وشغّله (إذا لزم الأمر، غيّر o115200p إلى معدل الباود الافتراضي للشريحة المستخدمة):
الشاشة /dev/cu.device_name 115200 استبدل device_name بالاسم الموجود أثناء تشغيل ls /dev/cu.*.
أنظمة اسبرريف
27 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
الشكل 15: إعداد الاتصال التسلسلي في PuTTY على نظام التشغيل Windows
أنظمة اسبرريف
28 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
الشكل 16: إعداد الاتصال التسلسلي في PuTTY على Linux
أنظمة اسبرريف
29 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
ما تبحث عنه هو سجل معروض على الشاشة. يعتمد محتوى السجل على التطبيق المُحمّل على ESP32، انظر المثال.ampالمخرج. للخروج من جلسة الشاشة، اكتب Ctrl-A + .
ملاحظة: لا تنسَ إغلاق جلسة الشاشة بعد التأكد من عمل الاتصال. إذا لم تفعل ذلك وأغلقت نافذة الطرفية، فلن تتمكن من تحميل البرامج الثابتة لاحقًا عبر المنفذ التسلسلي.
Example Output An exampيظهر السجل أدناه. أعد ضبط اللوحة إذا لم يظهر شيء. ets ٨ يونيو ٢٠١٦ ٠٠:٢٢:٥٧
rst:0x5 (DEEPSLEEP_RESET)،boot:0x13 (SPI_FAST_FLASH_BOOT) ets 8 يونيو 2016 00:22:57
rst:0x7 (TG0WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0x00 clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0008,len:8 load:0x3fff0010,len:3464 load:0x40078000,len:7828 load:0x40080000,len:252 entry 0x40080034 I (44) boot: ESP-IDF v2.0-rc1-401-gf9fba35 2nd stagأداة تحميل التشغيل I (45) التمهيد: وقت التجميع 18:48:10
…
إذا تمكنت من رؤية إخراج سجل قابل للقراءة، فهذا يعني أن الاتصال التسلسلي يعمل وأنك جاهز للمتابعة مع التثبيت وأخيرًا تحميل التطبيق إلى ESP32.
ملاحظة: في بعض تكوينات توصيل المنافذ التسلسلية، يجب تعطيل دبابيس RTS وDTR التسلسلية في برنامج الطرفية قبل تشغيل ESP32 وإنتاج خرج تسلسلي. يعتمد هذا على نوع الجهاز نفسه، فمعظم لوحات التطوير (بما في ذلك جميع لوحات Espressif) لا تعاني من هذه المشكلة. تظهر المشكلة إذا تم توصيل RTS وDTR مباشرةً بدبابيس EN وGPIO0. راجع وثائق esptool لمزيد من التفاصيل.
إذا وصلت إلى هنا من الخطوة 5. الخطوات الأولى على ESP-IDF عند تثبيت البرامج لتطوير ESP32، فيمكنك المتابعة إلى الخطوة 5. الخطوات الأولى على ESP-IDF.
IDF Monitor هو في الأساس برنامج طرفية تسلسلية، ينقل البيانات التسلسلية من وإلى المنفذ التسلسلي للجهاز المستهدف. كما يوفر بعض الميزات الخاصة بـ IDF. يمكن تشغيل IDF Monitor من مشروع IDF بتشغيل idf.py monitor.
اختصارات لوحة المفاتيح للتفاعل بسهولة مع IDF Monitor، استخدم اختصارات لوحة المفاتيح الموضحة في الجدول.
أنظمة اسبرريف
30 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
اختصار لوحة المفاتيح Ctrl+] Ctrl+T
· Ctrl+T
· Ctrl+] · Ctrl+P
· Ctrl+R
· Ctrl+F
· Ctrl+A (أو A)
· Ctrl+Y
· Ctrl+L
· Ctrl+I (أو I)
· Ctrl+H (أو H)
· Ctrl+X (أو X)
السيطرة+C
فعل
وصف
الخروج من البرنامج مفتاح الخروج من القائمة إرسال حرف القائمة نفسه إلى جهاز التحكم عن بعد
إرسال حرف الخروج نفسه إلى جهاز التحكم عن بعد
إعادة تعيين الهدف في أداة تحميل التشغيل لإيقاف التطبيق مؤقتًا عبر خط RTS
إعادة تعيين لوحة الهدف عبر RTS
بناء المشروع وتشغيله
بناء وتحديث التطبيق فقط
إيقاف/استئناف طباعة إخراج السجل على الشاشة
إيقاف/استئناف إخراج السجل المحفوظ في file
أوقات التوقف/الاستئنافamps
الطباعة
عرض جميع اختصارات لوحة المفاتيح
اضغط عليه واتبعه بأحد المفاتيح الموضحة أدناه.
يُعيد ضبط الجهاز المستهدف إلى مُحمِّل الإقلاع عبر خط RTS (إن كان مُتصلاً)، بحيث لا تُشغِّل اللوحة أي شيء. يُفيد هذا الخيار عند انتظار بدء تشغيل جهاز آخر. يُعيد ضبط الجهاز المستهدف ويُعيد تشغيل التطبيق عبر خط RTS (إن كان مُتصلاً).
يُوقف idf_monitor مؤقتًا لتشغيل هدف فلاش المشروع، ثم يُستأنف idf_monitor. أي مصدر مُغيّر fileيتم إعادة تجميع s ثم إعادة تحميلها. يتم تشغيل هدف encrypted-flash إذا تم تشغيل idf_monitor بالوسيط -E. يُوقف idf_monitor مؤقتًا لتشغيل هدف app-flash، ثم يُستأنف idf_monitor. يشبه هدف flash، ولكن يتم بناء التطبيق الرئيسي فقط وإعادة تحميله. يتم تشغيل هدف encrypted-app-flash إذا تم تشغيل idf_monitor بالوسيط -E. يتجاهل جميع البيانات التسلسلية الواردة أثناء التنشيط. يسمح بإيقاف مؤقت سريع وفحص مخرجات السجل دون إغلاق الشاشة. يُنشئ file في دليل المشروع ويتم كتابة الإخراج إلى ذلك file حتى يتم تعطيل ذلك باستخدام اختصار لوحة المفاتيح نفسه (أو خروج IDF Monitor). يمكن لـ IDF Monitor طباعة وقتamp في بداية كل سطر. الوقتamp يمكن تغيير التنسيق بواسطة –timestamp-حجة سطر الأوامر -format.
اخرج من البرنامج
مقاطعة تشغيل التطبيق
يُوقف مؤقتًا مراقب IDF ويُشغّل مُصحِّح أخطاء مشروع GDB لتصحيح أخطاء التطبيق أثناء التشغيل. يتطلب هذا تفعيل خيار :ref:CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME.
سيتم إرسال أي مفاتيح يتم الضغط عليها، بخلاف Ctrl-] وCtrl-T، عبر المنفذ التسلسلي.
الميزات الخاصة بـ IDF
فك تشفير العناوين تلقائيًا عندما يقوم ESP-IDF بإخراج عنوان رمز سداسي عشري من النموذج 0x4_______، يستخدم IDF Monitor addr2line_ للبحث عن الموقع في كود المصدر والعثور على اسم الوظيفة.
إذا تعطل تطبيق ESP-IDF وأصيب بالذعر، يتم إنتاج تفريغ السجل والتتبع الخلفي، مثل ما يلي:
أنظمة اسبرريف
31 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
حدث خطأ من نوع StoreProhibited في Core 0. كان الاستثناء
غير معالجة.
تفريغ السجل:
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
A2
: 0x3ffb136c A3
: 0x00000005 A4
: 0x00000000 A5
:
0×00000000
A6
: 0x00000000 A7
: 0x00000080 A8
: 0x00000000 A9
:
0x3ffb7dd0
أ10
: 0x00000003 A11
: 0x00060f23 A12
: 0x00060f20 A13
:
0x3ffba6d0
أ14
: 0x00000047 A15
: 0x0000000f SAR
: 0x00000019 السبب:
0x0000001د
EXCVADDR: 0x00000000 LBEG: 0x4000c46c LEND: 0x4000c477 LCOUNT:
0×00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90
يضيف موقع IDF Monitor مزيدًا من التفاصيل إلى الملف:
حدث خطأ من نوع StoreProhibited في Core 0. كان الاستثناء
غير معالجة.
تفريغ السجل:
PC
: 0x400f360d PS
: 0x00060330 A0
: 0x800dbf56 A1
:
0x3ffb7e00
0x400f360d: do_something_to_crash في /home/gus/esp/32/idf/examples/get-started/
مرحباً بالعالم/الرئيسي/./مرحباً بالعالم_الرئيسي.c:57
(مضمن بواسطة) inner_dont_crash في /home/gus/esp/32/idf/examples/get-started/hello_
العالم/الرئيسي/./hello_world_main.c:52
A2
: 0x3ffb136c A3
: 0x00000005 A4
: 0x00000000 A5
:
0×00000000
A6
: 0x00000000 A7
: 0x00000080 A8
: 0x00000000 A9
:
0x3ffb7dd0
أ10
: 0x00000003 A11
: 0x00060f23 A12
: 0x00060f20 A13
:
0x3ffba6d0
أ14
: 0x00000047 A15
: 0x0000000f SAR
: 0x00000019 السبب:
0x0000001د
EXCVADDR: 0x00000000 LBEG: 0x4000c46c LEND: 0x4000c477 LCOUNT:
0×00000000
Backtrace: 0x400f360d:0x3ffb7e00 0x400dbf56:0x3ffb7e20 0x400dbf5e:0x3ffb7e40 0x400dbf82:0x3ffb7e60 0x400d071d:0x3ffb7e90 0x400f360d: do_something_to_crash at /home/gus/esp/32/idf/examples/get-started/ hello_world/main/./hello_world_main.c:57 (مضمن بواسطة) inner_dont_crash في /home/gus/esp/32/idf/examples/get-started/hello_world/main/./hello_world_main.c:52 0x400dbf56: still_dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_world/main/./hello_world_main.c:47 0x400dbf5e: dont_crash at /home/gus/esp/32/idf/examples/get-started/hello_world/ main/./hello_world_main.c:42 0x400dbf82: app_main في /home/gus/esp/32/idf/examples/get-started/hello_world/main/ ./hello_world_main.c:33 0x400d071d: main_task في /home/gus/esp/32/idf/components/esp32/./cpu_start.c:254
لفك تشفير كل عنوان، يقوم IDF Monitor بتشغيل الأمر التالي في الخلفية: xtensa-esp32-elf-addr2line -pfiaC -e build/PROJECT.elf ADDRESS
ملاحظة: اضبط متغير البيئة ESP_MONITOR_DECODE على 0 أو اتصل بـ idf_monitor.py باستخدام سطر أوامر محدد
أنظمة اسبرريف
32 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
الخيار: idf_monitor.py –disable-address-decoding لتعطيل فك تشفير العنوان.
إعادة ضبط الهدف عند الاتصال: افتراضيًا، يُعيد IDF Monitor ضبط الهدف عند الاتصال به. تتم إعادة ضبط شريحة الهدف باستخدام خطي DTR وRTS التسلسليين. لمنع IDF Monitor من إعادة ضبط الهدف تلقائيًا عند الاتصال، اتصل بـ IDF Monitor باستخدام خيار no-reset (مثل idf_monitor.py –no-reset).
ملاحظة: يطبق خيار –no-reset نفس السلوك حتى عند توصيل IDF Monitor بمنفذ معين (على سبيل المثال، idf.py monitor –no-reset -p [PORT]).
تشغيل GDB باستخدام GDBStub. يُعد GDBStub ميزة مفيدة لتصحيح أخطاء وقت التشغيل، حيث يعمل على الجهاز المستهدف ويتصل بالمضيف عبر المنفذ التسلسلي لتلقي أوامر التصحيح. يدعم GDBStub أوامر مثل قراءة الذاكرة والمتغيرات، وفحص إطارات مكدس النداء، وما إلى ذلك. على الرغم من أن GDBStub أقل تنوعًا من J،TAG تصحيح الأخطاء، فهو لا يتطلب أي أجهزة خاصة (مثل JTAG إلى جسر USB)، حيث يتم الاتصال بالكامل عبر المنفذ التسلسلي. يمكن تهيئة الجهاز المستهدف لتشغيل GDBStub في الخلفية عن طريق ضبط CONFIG_ESP_SYSTEM_PANIC إلى GDBStub أثناء التشغيل. سيعمل GDBStub في الخلفية حتى يتم إرسال رسالة Ctrl+C عبر المنفذ التسلسلي، مما يؤدي إلى توقف GDBStub عن العمل (أي إيقاف تنفيذه)، مما يسمح لـ GDBStub بمعالجة أوامر التصحيح. علاوة على ذلك، يمكن تهيئة معالج الذعر لتشغيل GDBStub عند حدوث عطل عن طريق ضبط CONFIG_ESP_SYSTEM_PANIC إلى GDBStub عند حدوث عطل. عند حدوث عطل، سيُخرج GDBStub نمط سلسلة نصية خاصًا عبر المنفذ التسلسلي للإشارة إلى أنه قيد التشغيل. في كلتا الحالتين (أي عند إرسال رسالة Ctrl+C أو استلام نمط السلسلة النصي الخاص)، سيُشغّل IDF Monitor GDB تلقائيًا للسماح للمستخدم بإرسال أوامر التصحيح. بعد خروج GDB، تُعاد ضبط الجهاز المستهدف عبر خط RTS التسلسلي. إذا لم يكن هذا الخط متصلاً، يمكن للمستخدمين إعادة تعيين هدفهم (بالضغط على زر إعادة الضبط في اللوحة).
ملاحظة: في الخلفية، يقوم IDF Monitor بتشغيل الأمر التالي لتشغيل GDB:
xtensa-esp32-elf-gdb -ex “set serial baud BAUD” -ex “target remote PORT” -ex interrupt build/PROJECT.elf :idf_target:`Hello NAME chip`
يمكن استدعاء مُراقب IDF لتصفية المخرجات باستخدام idf.py monitor –print-filter=”xyz”، حيث –print-filter هو مُعامل تصفية المخرجات. القيمة الافتراضية هي سلسلة نصية فارغة، مما يعني طباعة كل شيء.
يمكن تحديد القيود المفروضة على ما يجب طباعته كسلسلة منtag>: العناصر حيثtag> هو tag سلسلة و هو حرف من المجموعة {N, E, W, I, D, V, *} يشير إلى مستوى للتسجيل.
على سبيل المثالample, PRINT_FILTER=”tag"1:W" يطابق ويطبع فقط المخرجات المكتوبة باستخدام ESP_LOGW("tag1"، ...) أو على مستوى الإسهاب الأقل، أي ESP_LOGE("tag1″، …). لم يتم تحديد أو باستخدام * الافتراضي هو مستوى مفصل.
ملاحظة: استخدم التسجيل الأساسي لتعطيل المخرجات غير الضرورية من خلال مكتبة التسجيل أثناء التجميع. يُعدّ تصفية المخرجات باستخدام IDF Monitor حلاً ثانويًا يُمكن أن يكون مفيدًا لتعديل خيارات التصفية دون الحاجة إلى إعادة تجميع التطبيق.
تطبيقك tags يجب ألا يحتوي على مسافات أو علامات النجمة * أو النقاط: ليكون متوافقًا مع ميزة تصفية الإخراج.
إذا لم يُتبع السطر الأخير من مُخرجات تطبيقك بعلامة إرجاع، فقد تتشوش عملية تصفية المُخرجات، أي أن المُراقب يبدأ بطباعة السطر ثم يكتشف لاحقًا أنه لم يكن من المفترض كتابته. هذه مشكلة معروفة، ويمكن تجنبها بإضافة علامة إرجاع دائمًا (خاصةً عند عدم ظهور أي مُخرجات بعده مباشرةً).
أنظمة اسبرريف
33 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
Exampقواعد تصفية الدروس:
· * يمكن استخدامها لمطابقة أي tags. ومع ذلك، فإن السلسلة PRINT_FILTER=”*:I tag1:E” فيما يتعلق بـ tag1 يطبع الأخطاء فقط، لأن القاعدة الخاصة بـ tag1 له أولوية أعلى من القاعدة الخاصة بـ *.
· القاعدة الافتراضية (الفارغة) تعادل *:V لأن مطابقة كل tag على المستوى التفصيلي أو الأقل يعني مطابقة كل شيء.
· "*:N" لا يقمع فقط مخرجات وظائف التسجيل، بل أيضًا المطبوعات التي يتم إجراؤها بواسطة printf، وما إلى ذلك. لتجنب ذلك، استخدم *:E أو مستوى تفصيل أعلى.
· قواعد "tag1:V، "tag1:v، “tag1:"، "tag1:*، و"tag1” متكافئة. · القاعدة “tag1:ث tag1:E” يعادل “tag1:E" لأن أي حدوث لاحق لنفس الشيء tag
الاسم يحل محل الاسم السابق. · القاعدة "tag1:أنا tag2:W” مطبوعات فقط tag1 على مستوى تفصيل المعلومات أو أقل و tag2 في التحذير
مستوى الإسهاب أو أقل. · القاعدة "tag1:أنا tag2:ث tag"3:N" يعادل بشكل أساسي الرقم السابق لأنه tag3:N يحدد
الذي - التي tag3 لا ينبغي طباعتها. tag3:N في القاعدة “tag1:أنا tag2:ث tag3:N *:V” أكثر أهمية لأنه بدون tag3:ن
tagكان من الممكن طباعة 3 رسائل؛ الأخطاء الخاصة بـ tag1 و tagسيتم طباعة 2 بمستوى التفصيل المحدد (أو الأقل) وسيتم طباعة كل شيء آخر بشكل افتراضي.
مثال على تصفية أكثر تعقيدًاampتم الحصول على مقتطف السجل التالي دون أي خيارات تصفية:
تحميل: 0x40078000، طول: 13564 الإدخال 0x40078d4c E (31) esp_image: تحتوي الصورة عند 0x30000 على بايت سحري غير صالح W (31) esp_image: تحتوي الصورة عند 0x30000 على وضع SPI غير صالح 255 E (39) التمهيد: قسم تطبيق المصنع غير قابل للتمهيد I (568) cpu_start: تشغيل وحدة المعالجة المركزية الاحترافية. I (569) heap_init: جاري التهيئة. ذاكرة الوصول العشوائي (RAM) متوفرة للتخصيص الديناميكي: I (603) cpu_start: رمز مستخدم بدء تشغيل وحدة المعالجة المركزية الاحترافية D (309) light_driver: [light_init، 74]: الحالة: 1، الوضع: 2 D (318) vfs: نجح esp_vfs_register_fd_range لنطاق <54؛ 64) ومعرف VFS 1 I (328) wifi: مهمة برنامج تشغيل wifi: 3ffdbf84، prio:23، stack:4096، core=0
يتم إعطاء الناتج الملتقط لخيارات التصفية PRINT_FILTER=”wifi esp_image:E light_driver:I” أدناه:
E (31) esp_image: الصورة عند 0x30000 تحتوي على بايت سحري غير صالح I (328) wifi: مهمة برنامج تشغيل wifi: 3ffdbf84، prio:23، stack:4096، core=0
تُظهر الخيارات "PRINT_FILTER="light_driver:D esp_image:N boot:N cpu_start:N vfs:N wifi:N *:V" الناتج التالي:
التحميل: 0x40078000، الطول: 13564، الإدخال 0x40078d4c I (569) heap_init: جارٍ التهيئة. ذاكرة الوصول العشوائي (RAM) المتاحة للتخصيص الديناميكي: D (309) light_driver: [light_init, 74]: الحالة: 1، الوضع: 2
المشكلات المعروفة مع IDF Monitor
المشاكل التي تمت ملاحظتها على Windows
مفاتيح الأسهم، بالإضافة إلى بعض المفاتيح الأخرى، لا تعمل في GDB بسبب قيود وحدة تحكم Windows. أحيانًا، عند خروج oidf.pype، قد يتوقف لمدة تصل إلى 30 ثانية قبل استئناف تشغيل IDF Monitor. عند تشغيل ogdbpis، قد يتوقف لفترة قصيرة قبل أن يبدأ بالتواصل مع GDBStub.
أنظمة اسبرريف
34 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل 1. البدء في إعداد سلسلة الأدوات القياسية لنظامي Linux وmacOS
التثبيت خطوة بخطوة هذه خريطة طريق مفصلة لإرشادك خلال عملية التثبيت.
إعداد بيئة التطوير هذه هي خطوات إعداد ESP-IDF لجهاز ESP32 الخاص بك. · الخطوة 1. تثبيت المتطلبات الأساسية · الخطوة 2. الحصول على ESP-IDF · الخطوة 3. إعداد الأدوات · الخطوة 4. إعداد متغيرات البيئة · الخطوة 5. الخطوات الأولى على ESP-IDF
الخطوة ١: تثبيت المتطلبات الأساسية. لاستخدام ESP-IDF مع ESP32، ستحتاج إلى تثبيت بعض حزم البرامج المناسبة لنظام التشغيل لديك. سيساعدك دليل الإعداد هذا على تثبيت جميع البرامج على أنظمة Linux وmacOS.
لمستخدمي لينكس: لتجميع ESP-IDF باستخدام ESP-IDF، ستحتاج إلى الحصول على الحزم التالية. يعتمد الأمر المطلوب تشغيله على توزيعة لينكس التي تستخدمها:
· أوبونتو وديبيان: sudo apt-get install git wget flex bison gperf python3 python3-pip python3venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
· CentOS 7 و8: sudo yum -y update && sudo yum install git wget flex bison gperf python3 cmake ninja-build ccache dfu-util libusbx
لا يزال CentOS 7 مدعومًا، ولكن يُنصح باستخدام إصدار CentOS 8 لتجربة مستخدم أفضل. · Arch: sudo pacman -S –needed gcc git make flex bison gperf python cmake ninja ccache dfu-util libusb
ملاحظة: · يلزم استخدام إصدار CMake 3.16 أو أحدث مع ESP-IDF. شغّل otools/idf_tools.py install cmakep لتثبيت إصدار مناسب إذا لم يكن نظام التشغيل لديك يدعمه. · إذا لم تجد توزيعة لينكس الخاصة بك في القائمة أعلاه، يُرجى مراجعة وثائقها لمعرفة الأمر المناسب لتثبيت الحزمة.
بالنسبة لمستخدمي macOS، سيستخدم ESP-IDF إصدار Python المثبت افتراضيًا على macOS. · تثبيت CMake & Ninja build: إذا كان لديك HomeBrew، فيمكنك تشغيل: brew install cmake ninja dfu-util إذا كان لديك MacPorts، فيمكنك تشغيل: sudo port install cmake ninja dfu-util بخلاف ذلك، راجع الصفحات الرئيسية لـ CMake وNinja لتنزيلات تثبيت macOS.
أنظمة اسبرريف
35 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
يُنصح بشدة بتثبيت ccache أيضًا لتسريع عمليات البناء. إذا كان لديك HomeBrew، يمكنك القيام بذلك عبر brew install ccache أو sudo port install ccache على MacPorts.
ملاحظة: إذا ظهر خطأ مثل هذا أثناء أي خطوة: xcrun: error: مسار المطور النشط غير صالح (/Library/Developer/CommandLineTools)، xcrun مفقود في: /Library/Developer/CommandLineTools/usr/bin/xcrun
بعد ذلك، ستحتاج إلى تثبيت أدوات سطر أوامر XCode للمتابعة. يمكنك تثبيتها بتشغيل الأمر xcode-select –install.
مستخدمو Apple M1: إذا كنت تستخدم منصة Apple M1 وواجهت خطأً كهذا: تحذير: يوجد مجلد لأداة xtensa-esp32-elf الإصدار esp-2021r2-patch3-8.4.0، ولكن لم يتم العثور على الأداة. خطأ: لا توجد إصدارات مثبتة من أداة xtensa-esp32-elf. يُرجى تشغيل install.sh لتثبيتها.
أو: zsh: نوع وحدة المعالجة المركزية غير صالح في الملف القابل للتنفيذ: ~/.espressif/tools/xtensa-esp32-elf/esp-2021r2patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
ثم ستحتاج إلى تثبيت Apple Rosetta 2 عن طريق تشغيل /usr/sbin/softwareupdate –install-rosetta –agree-to-license
بناءً على ملاحظات إصدار macOS Catalina 10.15، لا يُنصح باستخدام Python 2.7، ولن يتم تضمين Python 2.7 افتراضيًا في الإصدارات المستقبلية من macOS. تحقق من إصدار Python لديك حاليًا: python –version
إذا كان الناتج مشابهًا لإصدار بايثون 2.7.17، فإن مُفسِّرك الافتراضي هو بايثون 2.7. إذا كان الأمر كذلك، فتحقق أيضًا مما إذا كان بايثون 3 مُثبّتًا بالفعل على جهاز الكمبيوتر الخاص بك: python3 –version
إذا أرجع الأمر أعلاه خطأً، فهذا يعني أن بايثون 3 غير مُثبّت. فيما يلي شرحview من خطوات تثبيت Python 3.
· يمكن إجراء التثبيت باستخدام HomeBrew على النحو التالي: brew install python3
· إذا كان لديك MacPorts، فيمكنك تشغيل: sudo port install python38
الخطوة ٢: الحصول على ESP-IDF لبناء تطبيقات لـ ESP32، ستحتاج إلى مكتبات البرامج التي توفرها Espressif في مستودع ESP-IDF. للحصول على ESP-IDF، انتقل إلى دليل التثبيت وانسخ المستودع باستخدام git clone، باتباع التعليمات التالية الخاصة بنظام التشغيل لديك. افتح Terminal، وشغّل الأوامر التالية:
أنظمة اسبرريف
36 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
mkdir -p ~/esp cd ~/esp git clone -b v5.0.9 –recursive https://github.com/espressif/esp-idf.git
سيتم تنزيل ESP-IDF في ~ / esp / esp-idf. راجع إصدارات ESP-IDF للحصول على معلومات حول إصدار ESP-IDF الذي يجب استخدامه في موقف معين.
الخطوة 3. إعداد الأدوات بالإضافة إلى ESP-IDF، تحتاج أيضًا إلى تثبيت الأدوات التي يستخدمها ESP-IDF، مثل المترجم، ومصحح الأخطاء، وحزم Python، وما إلى ذلك، للمشاريع التي تدعم ESP32. cd ~/esp/esp-idf ./install.sh esp32
أو مع Fish shell cd ~/esp/esp-idf ./install.fish esp32
الأوامر المذكورة أعلاه تُثبّت الأدوات لـ ESP32 فقط. إذا كنت تنوي تطوير مشاريع لأهداف شرائح أكثر، فعليك سردها جميعًا وتشغيلها على سبيل المثال.ample: cd ~/esp/esp-idf ./install.sh esp32,esp32s2
أو مع Fish shell cd ~/esp/esp-idf ./install.fish esp32,esp32s2
لتثبيت الأدوات لجميع الأهداف المدعومة، يرجى تشغيل الأمر التالي: cd ~/esp/esp-idf ./install.sh all
أو مع Fish shell cd ~/esp/esp-idf ./install.fish all
ملاحظة: بالنسبة لمستخدمي macOS، إذا ظهر خطأ مثل هذا أثناء أي خطوة:urlخطأ فتح [SSL: CERTIFICATE_VERIFY_FAILED] فشل التحقق من الشهادة: تعذر الحصول على شهادة المُصدر المحلي (_ssl.c:xxx)
يمكنك تشغيل أمر "تثبيت الشهادات" في مجلد بايثون بجهاز الكمبيوتر لتثبيت الشهادات. لمزيد من التفاصيل، راجع "خطأ التنزيل أثناء تثبيت أدوات ESP-IDF".
بديل File التنزيلات يقوم برنامج تثبيت الأدوات بتنزيل عدد من files مُرفق بإصدارات GitHub. إذا كان الوصول إلى GitHub بطيئًا، فمن الممكن ضبط مُتغير بيئة لتفضيل خادم تنزيل Espressifns لتنزيلات أصول GitHub.
ملاحظة: يتحكم هذا الإعداد فقط في الأدوات الفردية التي تم تنزيلها من إصدارات GitHub، ولا يغير URLيتم استخدامه للوصول إلى أي مستودعات Git.
لتفضيل خادم تنزيل Espressif عند تثبيت الأدوات، استخدم التسلسل التالي من الأوامر عند تشغيل install.sh:
أنظمة اسبرريف
37 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
cd ~/esp/esp-idf export IDF_GITHUB_ASSETS=”dl.espressif.com/github_assets” ./install.sh
تخصيص مسار تثبيت الأدوات: تُثبّت البرامج النصية المُقدّمة في هذه الخطوة أدوات التجميع التي يحتاجها ESP-IDF داخل دليل المستخدم الرئيسي: $HOME/.espressif على نظام Linux. إذا كنت ترغب في تثبيت الأدوات في دليل مختلف، فاضبط متغير البيئة IDF_TOOLS_PATH قبل تشغيل برامج التثبيت النصية. تأكد من أن حساب المستخدم لديك يمتلك الأذونات الكافية لقراءة هذا المسار وكتابته. في حال تغيير مسار IDF_TOOLS_PATH، تأكد من ضبطه على نفس القيمة في كل مرة يتم فيها تنفيذ نص التثبيت (install.bat أو install.ps1 أو install.sh) ونص التصدير (export.bat أو export.ps1 أو export.sh).
الخطوة 4. إعداد متغيرات البيئة. لم تُضاف الأدوات المُثبّتة بعد إلى متغير بيئة PATH. لجعل الأدوات قابلة للاستخدام من سطر الأوامر، يجب ضبط بعض متغيرات البيئة. يوفر ESP-IDF نصًا برمجيًا آخر للقيام بذلك. في الطرفية التي ستستخدم فيها ESP-IDF، شغّل:
. $ HOME / esp / esp-idf / export.sh
أو بالنسبة للأسماك (مدعوم فقط منذ إصدار الأسماك 3.0.0):
. $HOME/esp/esp-idf/export.fish
لاحظ المسافة بين النقطة الأولى والمسار! إذا كنت تخطط لاستخدام esp-idf بشكل متكرر، يمكنك إنشاء اسم مستعار لتنفيذ export.sh:
1. انسخ ولصق الأمر التالي في shellns pro الخاص بكfile (.profile، .bashrc، .zprofile، إلخ.)
alias get_idf='. $HOME/esp/esp-idf/export.sh' 2. قم بتحديث التكوين عن طريق إعادة تشغيل جلسة المحطة الطرفية أو عن طريق تشغيل source [path to profile],
على سبيل المثالample، المصدر ~/.bashrc. يمكنك الآن تشغيل get_idf لإعداد أو تحديث بيئة esp-idf في أي جلسة طرفية. من الناحية الفنية، يمكنك إضافة export.sh إلى shellns pro.file مباشرةً؛ مع ذلك، لا يُنصح بذلك. سيؤدي ذلك إلى تفعيل بيئة IDF الافتراضية في كل جلسة طرفية (بما في ذلك الجلسات التي لا تتطلب IDF)، مما يُفسد غرض البيئة الافتراضية، ويؤثر على الأرجح على برامج أخرى.
الخطوة 5. الخطوات الأولى على ESP-IDF: بعد استيفاء جميع المتطلبات، سيرشدك الموضوع التالي إلى كيفية بدء مشروعك الأول. سيساعدك هذا الدليل على الخطوات الأولى لاستخدام ESP-IDF. اتبع هذا الدليل لبدء مشروع جديد على ESP32، وبناء الجهاز وبرمجته ومراقبته.
ملاحظة: إذا لم تقم بتثبيت ESP-IDF بعد، فيرجى الانتقال إلى التثبيت واتباع التعليمات للحصول على كافة البرامج اللازمة لاستخدام هذا الدليل.
ابدأ مشروعًا، أنت الآن جاهز لإعداد تطبيقك لـ ESP32. يمكنك البدء بمشروع getstarted/hello_world من exampدليل les في ESP-IDF.
هام: لا يدعم نظام بناء ESP-IDF المسافات الموجودة في المسارات إلى ESP-IDF أو إلى المشاريع.
انسخ المشروع get-started/hello_world إلى الدليل ~/esp:
أنظمة اسبرريف
38 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
cd ~/esp cp -r $IDF_PATH/examples / get-started / hello_world.
ملحوظة: هناك مجموعة منampلو في السابقampدليل les في ESP-IDF. يمكنك نسخ أي مشروع بنفس الطريقة الموضحة أعلاه وتشغيله. ومن الممكن أيضا لبناء السابقينampقم بوضع العناصر في مكانها دون نسخها أولاً.
الآن، وصّل لوحة ESP32 بالكمبيوتر، وتحقق من المنفذ التسلسلي الذي تظهر اللوحة من خلاله. للمنافذ التسلسلية أنماط التسمية التالية:
· لينكس: يبدأ بـ /dev/tty · ماك: يبدأ بـ /dev/cu. إذا لم تكن متأكدًا من كيفية التحقق من اسم المنفذ التسلسلي، يُرجى مراجعة "إنشاء اتصال تسلسلي مع ESP32" للاطلاع على التفاصيل الكاملة.
ملاحظة: احتفظ باسم المنفذ في متناول يديك حيث ستحتاج إليه في الخطوات التالية.
قم بتكوين مشروعك انتقل إلى دليل hello_world الخاص بك، واضبط ESP32 كهدف، ثم قم بتشغيل أداة تكوين المشروع menuconfig. cd ~/esp/hello_world idf.py set-target esp32 idf.py menuconfig
بعد فتح مشروع جديد، يجب عليك أولاً تعيين الهدف باستخدام idf.py set-target esp32. يُرجى ملاحظة أنه سيتم مسح وتهيئه أي عمليات بناء أو تكوينات موجودة في المشروع، إن وجدت، في هذه العملية. يُمكنك حفظ الهدف في متغير البيئة لتخطي هذه الخطوة تمامًا. لمزيد من المعلومات، راجع "تحديد شريحة الهدف: set-target". إذا تم تنفيذ الخطوات السابقة بشكل صحيح، فستظهر القائمة التالية:
الشكل 17: تكوين المشروع - النافذة الرئيسية. أنت تستخدم هذه القائمة لإعداد متغيرات خاصة بالمشروع، مثل اسم شبكة Wi-Fi وكلمة المرور وسرعة المعالج وما إلى ذلك. يمكن تخطي إعداد المشروع باستخدام menuconfig لـohello_worldp، لأن هذا المثالampيعمل مع
أنظمة اسبرريف
39 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
التكوين الافتراضي.
انتبه: إذا كنت تستخدم لوحة ESP32-DevKitC مع وحدة ESP32-SOLO-1، أو لوحة ESP32-DevKitM-1 مع وحدة ESP32-MIN1-1(1U)، فيرجى تمكين وضع النواة الفردية (CONFIG_FREERTOS_UNICORE) في menuconfig قبل وميض exampليز.
ملاحظة: قد تختلف ألوان القائمة في جهازك. يمكنك تغيير مظهرها باستخدام الخيار –style. يُرجى تشغيل الأمر idf.py menuconfig –help لمزيد من المعلومات.
إذا كنت تستخدم إحدى لوحات التطوير المدعومة، يمكنك تسريع عملية التطوير باستخدام حزمة دعم اللوحات. راجع "نصائح إضافية" لمزيد من المعلومات.
إنشاء المشروع قم بإنشاء المشروع عن طريق تشغيل:
idf.py بناء
سيقوم هذا الأمر بتجميع التطبيق وجميع مكونات ESP-IDF ، ثم يقوم بإنشاء أداة تحميل التشغيل ، وجدول الأقسام ، وثنائيات التطبيق.
$ idf.py build تشغيل cmake في الدليل /path/to/hello_world/build تنفيذ "cmake -G Ninja –warn-uninitialized /path/to/hello_world"... تحذير بشأن القيم غير المهيئة. — تم العثور على Git: /usr/bin/git (تم العثور على الإصدار "2.17.0") — بناء مكون aws_iot فارغ بسبب التكوين — أسماء المكونات: … — مسارات المكونات: …
... (المزيد من سطور مخرجات نظام البناء)
[527/527] إنشاء hello_world.bin esptool.py v2.3.1
اكتمل بناء المشروع. للتحديث، نفّذ الأمر التالي: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash -flash_mode dio –flash_size detect –flash_freq 40m 0x10000 build/hello_world. bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/ partition-table.bin أو نفّذ الأمر 'idf.py -p PORT flash'
إذا لم تكن هناك أخطاء ، فسيتم الانتهاء من الإنشاء عن طريق إنشاء البرنامج الثابت الثنائي .bin files.
قم بتثبيت الملفات الثنائية التي قمت ببنائها للتو (bootloader.bin، وpartition-table.bin، وhello_world.bin) على لوحة ESP32 الخاصة بك عن طريق تشغيل:
idf.py -p PORT [-b BAUD] فلاش
استبدل PORT باسم المنفذ التسلسلي للوحة ESP32. يمكنك أيضًا تغيير معدل الباود للفلاش باستبدال BAUD بمعدل الباود المطلوب. معدل الباود الافتراضي هو 460800. لمزيد من المعلومات حول وسيطات idf.py، راجع idf.py.
ملاحظة: يقوم خيار flash تلقائيًا ببناء المشروع ووميضه، لذا فإن تشغيل idf.py build ليس ضروريًا.
أنظمة اسبرريف
40 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
هل واجهتَ مشاكل أثناء التثبيت؟ إذا شغّلتَ الأمر المذكور وظهرت أخطاء مثل "فشل الاتصال"، فقد يكون هناك عدة أسباب لذلك. أحدها قد يكون مشاكل في أداة esptool.py، وهي الأداة التي يستدعيها نظام البناء لإعادة ضبط الشريحة، والتفاعل مع مُحمِّل إقلاع ذاكرة القراءة فقط (ROM)، وتثبيت البرامج الثابتة. أحد الحلول البسيطة التي يُمكن تجربتها هو إعادة الضبط يدويًا الموضح أدناه، وإذا لم يُجدِ ذلك نفعًا، يُمكنك الاطلاع على مزيد من التفاصيل حول المشاكل المُحتملة في قسم استكشاف الأخطاء وإصلاحها.
يُعيد ملف esptool.py ضبط ESP32 تلقائيًا عبر تأكيد خطوط التحكم DTR وRTS لشريحة محول USB إلى تسلسلي، مثل FTDI أو CP210x (لمزيد من المعلومات، راجع "إنشاء اتصال تسلسلي مع ESP32"). تتصل خطوط التحكم DTR وRTS بدورها بدبابيس GPIO0 وCHIP_PU (EN) في ESP32، مما يؤدي إلى تغيير مستوى الصوت.tagستؤدي مستويات DTR وRTS إلى تشغيل ESP32 في وضع تنزيل البرنامج الثابت. كمثالampيرجى التحقق من الرسم التخطيطي للوحة تطوير ESP32 DevKitC.
بشكل عام، لن تواجه أي مشاكل مع لوحات تطوير esp-idf الرسمية. مع ذلك، لا يستطيع esptool.py إعادة ضبط جهازك تلقائيًا في الحالات التالية:
· لا يحتوي جهازك على خطوط DTR وRTS المتصلة بـ GPIO0 وCHIP_PU. · تم تكوين خطوط DTR وRTS بشكل مختلف. · لا توجد خطوط تحكم تسلسلية من هذا القبيل على الإطلاق.
اعتمادًا على نوع الأجهزة التي لديك، قد يكون من الممكن أيضًا وضع لوحة ESP32 يدويًا في وضع تنزيل البرامج الثابتة (إعادة التعيين).
بالنسبة للوحات التطوير التي تنتجها Espressif، يمكن العثور على هذه المعلومات في أدلة البدء أو أدلة المستخدم الخاصة بها. على سبيل المثالampلإعادة تعيين لوحة تطوير ESP-IDF يدويًا، اضغط باستمرار على زر التمهيد (GPIO0) واضغط على زر EN (CHIP_PU).
· بالنسبة للأنواع الأخرى من الأجهزة، حاول سحب GPIO0 للأسفل.
التشغيل العادي عند الوميض، ستشاهد سجل الإخراج مشابهًا لما يلي:
… esptool.py –chip esp32 -p /dev/ttyUSB0 -b 460800 –before=default_reset -after=hard_reset write_flash –flash_mode dio –flash_freq 40m –flash_size 2MB 0x8000 partition_table/partition-table.bin 0x1000 bootloader/bootloader.bin 0x10000 hello_world.bin esptool.py v3.0-dev المنفذ التسلسلي /dev/ttyUSB0 جاري الاتصال…….._ الشريحة هي ESP32D0WDQ6 (المراجعة 0) الميزات: WiFi، BT، ثنائي النواة، مخطط الترميز لا شيء Crystal هو 40 ميجا هرتز MAC: 24:0a:c4:05:b9:14 تحميل stub… تشغيل stub… تشغيل stub… تغيير معدل الباود إلى تم تغيير 460800. جارٍ ضبط حجم الفلاش... تم ضغط 3072 بايت إلى 103 بايت... الكتابة عند 0x00008000... (100%). تمت كتابة 3072 بايت (103 بايت مضغوط) عند 0x00008000 في 0.0 ثانية (بسرعة 5962.8 كيلوبت/ثانية)... تم التحقق من تجزئة البيانات. تم ضغط 26096 بايت إلى 15408 بايت... الكتابة عند 0x00001000... (100%). تمت كتابة 26096 بايت (15408 بايت مضغوط) عند 0x00001000 في 0.4 ثانية (بسرعة 546.7 كيلوبت/ثانية)... تم التحقق من تجزئة البيانات. تم ضغط 147104 بايت إلى 77364... الكتابة عند 0x00010000... (20%) الكتابة عند 0x00014000... (40%) الكتابة عند 0x00018000... (60%) الكتابة عند 0x0001c000... (80%)
(يتبع في الصفحة التالية)
أنظمة اسبرريف
41 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
(استمرار من الصفحة السابقة) الكتابة عند 0x00020000… (100%) كتابة 147104 بايت (77364 مضغوطة) عند 0x00010000 في 1.9 ثانية (فعالة 615.5 كيلوبت/ثانية)… تم التحقق من تجزئة البيانات.
جاري المغادرة… إعادة الضبط الثابت عبر دبوس RTS… تم
إذا لم تحدث أي مشاكل بنهاية عملية الفلاش، فسيتم إعادة تشغيل اللوحة وتشغيل تطبيق ohello_worldp. إذا كنت ترغب في استخدام بيئة التطوير المتكاملة Eclipse أو VS Code بدلاً من تشغيل idf.py، فراجع ملحق Eclipse Plugin، ملحق VSCode.
راقب المخرجات: للتحقق من تشغيل ohello_worldpis، اكتب idf.py -p PORT monitor (لا تنسَ استبدال PORT باسم المنفذ التسلسلي). يُشغّل هذا الأمر تطبيق IDF Monitor:
$ idf.py -p تشغيل idf_monitor في الدليل […]/esp/hello_world/build تنفيذ "python […]/esp-idf/tools/idf_monitor.py -b 115200 […]/esp/hello_ world/build/hello_world.elf"… — تشغيل idf_monitor ١١٥٢٠٠ —– إغلاق: Ctrl+] | القائمة: Ctrl+T | المساعدة: Ctrl+T متبوعًا بـ Ctrl+H –ets ٨ يونيو ٢٠١٦ ٠٠:٢٢:٥٧
rst:0x1 (POWERON_RESET)،boot:0x13 (SPI_FAST_FLASH_BOOT) ets 8 يونيو 2016 00:22:57 …
بعد أن تنتقل سجلات بدء التشغيل والتشخيص إلى الأعلى، يجب أن ترى رسالة oHello world!p مطبوعة بواسطة التطبيق.
أهلاً بالعالم! إعادة التشغيل خلال ١٠ ثوانٍ... هذه شريحة ESP32 مزودة بنواتين للمعالج، تدعم WiFi/BT/BLE، إصدار السيليكون ١، ذاكرة فلاش خارجية ٢ ميجابايت. الحد الأدنى لحجم الذاكرة المؤقتة: ٢٩٨٩٦٨ بايت. إعادة التشغيل خلال ٩ ثوانٍ... إعادة التشغيل خلال ٨ ثوانٍ... إعادة التشغيل خلال ٧ ثوانٍ...
للخروج من شاشة IDF، استخدم اختصار Ctrl+]. إذا تعطلت شاشة IDF بعد التحميل بفترة وجيزة، أو إذا رأيتَ بيانات عشوائية غير مرغوب فيها مشابهة لما هو موضح أدناه، فغالبًا ما تستخدم لوحتك ترددًا 26 ميجاهرتز. تستخدم معظم تصميمات لوحات التطوير تردد 40 ميجاهرتز، لذا يستخدم ESP-IDF هذا التردد كقيمة افتراضية.
إذا كانت لديك مثل هذه المشكلة، قم بما يلي:
1. اخرج من الشاشة. 2. ارجع إلى menuconfig. 3. انتقل إلى Component config > Hardware Settings > Main XTAL Config > Main XTAL
التردد، ثم قم بتغيير CONFIG_XTAL_FREQ_SEL إلى 26 ميجا هرتز. 4. بعد ذلك، قم ببناء التطبيق وتحديثه مرة أخرى.
أنظمة اسبرريف
42 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
في الإصدار الحالي من ESP-IDF، ترددات XTAL الرئيسية التي يدعمها ESP32 هي كما يلي:
· 26 ميجا هرتز · 40 ميجا هرتز
ملاحظة: يمكنك الجمع بين البناء والوميض والمراقبة في خطوة واحدة عن طريق تشغيل: idf.py -p PORT flash monitor
انظر أيضًا: · IDF Monitor للحصول على اختصارات مفيدة ومزيد من التفاصيل حول استخدام IDF monitor. · idf.py للحصول على مرجع كامل لأوامر وخيارات idf.py.
هذا كل ما تحتاجه للبدء مع ESP32! أنت الآن جاهز لتجربة بعض الميزات الأخرى.ampأو انتقل مباشرة إلى تطوير تطبيقاتك الخاصة.
هام: بعض من السابقينampلا تدعم هذه الأنظمة ESP32 لأن الأجهزة المطلوبة غير مضمنة في ESP32، لذا لا يمكن دعمها. في حال بناء نظام سابقampيرجى التحقق من ملف README file لجدول الأهداف المدعومة. إذا كان هذا موجودًا، بما في ذلك هدف ESP32، أو لم يكن الجدول موجودًا على الإطلاق، فسيتم حذفه.ampسوف يعمل على ESP32.
نصائح إضافية
في بعض توزيعات لينكس، قد تظهر لك رسالة الخطأ "فشل فتح المنفذ /dev/ttyUSB0" عند تثبيت ESP32. يمكن حل هذه المشكلة بإضافة المستخدم الحالي إلى مجموعة الاتصال.
توافق بايثون: يدعم ESP-IDF بايثون 3.7 أو أحدث. يُنصح بترقية نظام التشغيل لديك إلى إصدار أحدث يُلبي هذا الشرط. تشمل الخيارات الأخرى تثبيت بايثون من مصادر خارجية أو استخدام نظام إدارة إصدارات بايثون مثل pyenv.
ابدأ بحزمة دعم اللوحة. لتسريع عملية إنشاء النماذج الأولية لبعض لوحات التطوير، يمكنك استخدام حزم دعم اللوحة (BSPs)، مما يجعل تهيئة لوحة معينة سهلة للغاية، حيث لا يتطلب الأمر سوى استدعاءات قليلة للوظائف. تدعم حزمة دعم اللوحة عادةً جميع مكونات الأجهزة المتوفرة على لوحة التطوير. بالإضافة إلى تعريف توزيع الدبابيس ووظائف التهيئة، تأتي حزمة دعم اللوحة مع برامج تشغيل للمكونات الخارجية، مثل المستشعرات والشاشات وبرامج ترميز الصوت، إلخ. يتم توزيع حزم دعم اللوحة عبر مدير مكونات IDF، لذا يمكن العثور عليها في سجل مكونات IDF. إليك مثال:ampلمعرفة كيفية إضافة ESP-WROVER-KIT BSP إلى مشروعك: idf.py add-dependency esp_wrover_kit
المزيد على سبيل المثالampيمكن العثور على أمثلة لاستخدام BSP في BSP exampمجلد ليه.
نصيحة: تحديث ESP-IDF: يُنصح بتحديث ESP-IDF من وقت لآخر، حيث تُصلح الإصدارات الأحدث الأخطاء وتوفر ميزات جديدة. يُرجى العلم أن لكل إصدار رئيسي وثانوي من ESP-IDF فترة دعم خاصة به، وعندما يقترب أحد فروع الإصدار من نهاية عمره الافتراضي، يُنصح جميع المستخدمين بتحديث مشاريعهم إلى إصدارات ESP-IDF أحدث. لمعرفة المزيد عن فترات الدعم، يُرجى مراجعة إصدارات ESP-IDF.
أنظمة اسبرريف
43 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول. البدء
أبسط طريقة للتحديث هي حذف مجلد esp-idf الحالي ونسخه مرة أخرى، كما لو كنت تقوم بالتثبيت الأولي الموضح في الخطوة 2. احصل على ESP-IDF. حل آخر هو تحديث ما تم تغييره فقط. تعتمد عملية التحديث على إصدار ESP-IDF الذي تستخدمه. بعد تحديث ESP-IDF، نفّذ سكربت التثبيت مرة أخرى، في حال تطلب إصدار ESP-IDF الجديد إصدارات مختلفة من الأدوات. راجع التعليمات في الخطوة 3. إعداد الأدوات. بعد تثبيت الأدوات الجديدة، حدّث البيئة باستخدام سكربت التصدير. راجع التعليمات في الخطوة 4. إعداد متغيرات البيئة.
المستندات ذات الصلة · إنشاء اتصال تسلسلي مع ESP32 · مكون Eclipse الإضافي · ملحق VSCode · IDF Monitor
1.4 قم ببناء مشروعك الأول
إذا كان لديك بالفعل ESP-IDF مثبتًا ولا تستخدم IDE، فيمكنك إنشاء مشروعك الأول من سطر الأوامر باتباع أمر بدء مشروع على Windows أو بدء مشروع على Linux وmacOS.
1.5 إلغاء تثبيت ESP-IDF
إذا كنت تريد إزالة ESP-IDF، فيرجى اتباع إلغاء تثبيت ESP-IDF.
أنظمة اسبرريف
44 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل الأول
مرجع واجهة برمجة التطبيقات
2.1 اتفاقيات API
يصف هذا المستند الأعراف والافتراضات المشتركة لواجهات برمجة التطبيقات (APIs) في ESP-IDF. يوفر ESP-IDF عدة أنواع من واجهات البرمجة:
· وظائف C، والهياكل، والتعدادات، وتعريفات النوع، وماكرو المعالج المسبق المعلن عنها في الرأس العام fileمكونات ESPIDF. تحتوي صفحات مختلفة في قسم مرجع واجهة برمجة التطبيقات (API) من دليل البرمجة على أوصاف لهذه الوظائف والهياكل والأنواع.
بناء دوال النظام، والمتغيرات والخيارات المحددة مسبقًا. هذه موثقة في دليل بناء النظام. يمكن استخدام خيارات Kconfig في الكود وفي نظام البناء (CMakeLists.txt). fileتُعد أدوات الاستضافة ومعلمات سطر الأوامر الخاصة بها جزءًا من واجهة ESP-IDF. تتكون ESP-IDF من مكونات مصممة خصيصًا لـ ESP-IDF، بالإضافة إلى مكتبات خارجية. في بعض الحالات، يُضاف غلاف خاص بـ ESP-IDF إلى مكتبة الجهة الخارجية، مما يوفر واجهة أبسط أو أكثر تكاملاً مع بقية أدوات ESP-IDF. في حالات أخرى، تُعرض واجهة برمجة التطبيقات الأصلية لمكتبة الجهة الخارجية على مطوري التطبيقات. تشرح الأقسام التالية بعض جوانب واجهات برمجة تطبيقات ESP-IDF واستخداماتها.
2.1.1 معالجة الأخطاء
تُرجع معظم واجهات برمجة تطبيقات ESP-IDF رموز أخطاء مُعرّفة بنوع esp_err_t. راجع قسم "معالجة الأخطاء" لمزيد من المعلومات حول أساليب معالجة الأخطاء. يحتوي مرجع رموز الأخطاء على قائمة رموز الأخطاء التي تُرجعها مكونات ESP-IDF.
2.1.2 هياكل التكوين
هام: يعد التهيئة الصحيحة لهياكل التكوين جزءًا مهمًا في جعل التطبيق متوافقًا مع الإصدارات المستقبلية من ESP-IDF.
معظم وظائف التهيئة أو التكوين في ESP-IDF تأخذ مؤشرًا إلى بنية تكوين كحجة. على سبيل المثالampعلى:
45
الفصل 2. مرجع واجهة برمجة التطبيقات (API)
ثابت esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback، .arg = callback_arg، .name = “my_timer”
}; مقبض مؤقت esp_t مؤقتي؛ خطأ esp_t خطأ = esp_timer_create(&my_timer_args، &my_timer)؛
لا تقوم وظائف التهيئة بتخزين المؤشر إلى بنية التكوين مطلقًا، لذا فمن الآمن تخصيص البنية على المكدس.
يجب على التطبيق تهيئة جميع حقول البنية. ما يلي غير صحيح:
esp_timer_create_args_t my_timer_args; my_timer_args.callback = &my_timer_callback; /* خطأ! لم يتم تهيئة الحقلين .arg و.name */ esp_timer_create(&my_timer_args, &my_timer);
معظم ESP-IDF السابقينampتستخدم les مُهيئين مُعينين من C99 لتهيئة البنية، نظرًا لأنها توفر طريقة موجزة لتعيين مجموعة فرعية من الحقول، وتهيئة الحقول المتبقية إلى الصفر:
const esp_timer_create_args_t my_timer_args = { .callback = &my_timer_callback, /* صحيح، الحقول .arg و.name تم تهيئة كل منهما إلى الصفر */
};
لم تدعم لغة C++ صيغة المُهيِّئات المُعيَّنة حتى إصدار C++ ٢٠، إلا أن مُجمِّع GCC يدعمها جزئيًا كامتداد. عند استخدام واجهات برمجة تطبيقات ESP-IDF في شيفرة C++، يُمكنك استخدام النمط التالي:
esp_timer_create_args_t my_timer_args = {}; /* يتم تهيئة جميع الحقول إلى الصفر */ my_timer_args.callback = &my_timer_callback;
المُبدئات الافتراضية
بالنسبة لبعض هياكل التكوين، يوفر ESP-IDF وحدات ماكرو لتعيين القيم الافتراضية للحقول:
httpd_config_t config = HTTPD_DEFAULT_CONFIG(); /* يتم توسيع HTTPD_DEFAULT_CONFIG إلى مُهيئ مُعين.
الآن، جميع الحقول مُعَيَّنة على القيم الافتراضية. لا يزال بإمكانك تعديل أي حقل: */ config.server_port = 8081; httpd_handle_t server; esp_err_t err = httpd_start(&server, &config);
من المستحسن استخدام وحدات الماكرو التمهيدية الافتراضية عندما يتم توفيرها لهيكل تكوين معين.
2.1.3 واجهات برمجة التطبيقات الخاصة
رأس معين fileتحتوي ملفات s في ESP-IDF على واجهات برمجة تطبيقات مخصصة للاستخدام فقط في الكود المصدر لـ ESP-IDF، وليس بواسطة التطبيقات. مثل هذا العنوان fileغالبًا ما تحتوي ملفات s على private أو esp_private في أسمائها أو مساراتها. بعض المكونات، مثل hal، تحتوي فقط على واجهات برمجة تطبيقات خاصة. قد تُزال واجهات برمجة التطبيقات الخاصة أو تُعدّل بشكل غير متوافق بين الإصدارات الثانوية أو التصحيحات.
2.1.4 المكونات في المثالampلو المشاريع
ESP-IDF السابقampتحتوي الملفات على مجموعة متنوعة من المشاريع التي توضح استخدام واجهات برمجة تطبيقات ESP-IDF. لتقليل تكرار الكود في المثال السابق،ampيتم تعريف عدد قليل من المساعدين المشتركين داخل المكونات التي يستخدمها العديد من المستخدمين.ampليز.
أنظمة اسبرريف
46 إرسال ملاحظات حول المستند
الإصدار v5.0.9
الفصل 2. مرجع واجهة برمجة التطبيقات (API)
يتضمن ذلك المكونات الموجودة
المستندات / الموارد
![]() |
لوحة تطوير مجموعة أدوات تطوير Espressif Systems ESP32 [بي دي اف] دليل المستخدم لوحة تطوير ESP32 Dev Kitc، ESP32، لوحة تطوير Dev Kitc، لوحة تطوير Kitc، لوحة التطوير، اللوحة |
