ESP32 projects for beginners, in the order to try them
مبتدئ
أو تصفّح كل الدروس.
- 503قطعة على المنضدة
- 44لوحة تعمل الآن
- 1.00xزمن حقيقي، على كل لوحة
ESP32 لوحة أولى جيدة: تكلّف تقريبًا ما تكلّفه نسخة Arduino، وفيها WiFi، وتشغّل كود Arduino نفسه. تسرد هذه الصفحة مشاريع للمبتدئين بالترتيب الذي يعلّم أكثر، وكل مشروع منها مبني وشغّال بالفعل في Mokxi، فتجربه في متصفحك قبل أن تشتري أي قطعة.
الدائرة أعلاه هي المشروع الثالث، مقاومة متغيرة تخفّض إضاءة LED على ESP32 DevKit الكلاسيكية. اضغط «تشغيل» وأدر المقبض: تطبع الشاشة التسلسلية القراءة الخام ودورة PWM. في المنتصف تقرأ 1892 وليس 2048، وتصل إلى 4095 قبل أن يصل المقبض إلى نهايته بقليل. سبب ذلك هو أنفع ما يتعلمه مبتدئ عن ADC في ESP32، وهو مشروح أدناه.
قبل أن تبدأ: ثلاثة فروق في ESP32
تعمل عند 3.3 V. يُخرج طرف GPIO 3.3 V ويجب ألا يرى 5 V أبدًا. الحساسات المصنوعة لـUno تعمل غالبًا عند 3.3 V، لكن تحقق، وضع مقسّم جهد أو محوّل مستوى على أي إشارة 5 V قادمة.
يقرأ ADC فيها من 0 إلى 4095، اثنا عشر بتًا، لا من 0 إلى 1023. وعند التوهين الافتراضي لا تكون القراءة خطًا مستقيمًا: تشبع عند نحو 3.1 V، فيصل مقبض على 3.3 V إلى 4095 مبكرًا ويقرأ نحو 1890 في المنتصف. وهذا بالضبط ما تطبعه الدائرة أعلاه.
أرقام الأطراف هي أرقام GPIO، وبعض الأطراف خاصة. في ESP32 الكلاسيكية، الأطراف GPIO 34 إلى 39 مداخل فقط، وبعض الأطراف تحدد كيفية إقلاع الشريحة. تسرد صفحة كل لوحة في Mokxi أطرافها.
المشاريع 1 إلى 4: الأطراف وPWM وADC
1. وميض LED. أول كود على أي لوحة: pinMode وdigitalWrite وdelay. في ESP32-C3 يكون الـLED على GPIO 8.
2. زر وLED. زر ضغط من طرف إلى الأرضي مع INPUT_PULLUP، يضيء الـLED أثناء الضغط عليه. يعلّمك مقاومات الرفع دون مقاومة.
3. مقبض يخفّض إضاءة LED. الدائرة أعلاه: analogRead على GPIO 32 وanalogWrite على GPIO 4. يعلّمك ADC بدقة 12 بت وPWM.
4. مسح بالسيرفو. SG90 على قناة PWM بتردد 50 Hz، يمسح من طرف إلى طرف. عرض النبضة هو الزاوية، وعتاد LEDC في ESP32 يواصل إرسال النبضات بينما تنجز النواة عملًا آخر.
المشاريع 5 إلى 7: الحساسات والشاشات
5. قوس قزح NeoPixel. ستة عشر WS2812B على طرف بيانات واحد من ESP32-C3، وعجلة ألوان تجري على امتدادها. على لوحة حقيقية تتولى مكتبة Adafruit NeoPixel التوقيت عنك.
6. مراقب حرارة ورطوبة. DHT22 على طرف واحد، يُقرأ كل بضع ثوانٍ ويُطبع على الشاشة التسلسلية. أضف شاشة SSD1306 OLED على I2C لعرضه دون حاسوب.
7. حساس غرفة. DHT22 وحساس الضوء BH1750 وحساس الحركة PIR على ESP32-C3 واحدة، وهو المشروع الذي يبدأ به كثير من مستخدمي Home Assistant. تُطبع كل قراءة على هيئة رسالة MQTT التي كانت سترسلها.
المشاريع 8 إلى 10: WiFi
8. الاتصال بـWiFi. WiFi.begin()، وانتظار الاتصال، وطباعة عنوان IP. في Mokxi تُحاكى الشبكة داخل المتصفح، ولا يخرج شيء من حاسوبك إلا إذا سجّلت الدخول وفعّلت الإنترنت الحقيقي. غيّر كلمة المرور عمدًا فيفشل الاتصال بعد خمس ثوانٍ، كما يحدث على لوحة حقيقية.
9. صفحة ويب تشغّل مصباحًا. يقدّم WebServer على ESP32 صفحة بزرين؛ اضغط أحدهما في لوحة الويب فيتبعه الـLED. هذا هو المشروع الذي يجعل ESP32 مفهومة لمعظم الناس.
10. جلب بيانات عبر HTTP. يطلب HTTPClient من خادم بيانات JSON، ويحلل الكود الأرقام. في Mokxi يتحدث مع خادم تجريبي تستطيع تعديل إجاباته، ويُرفض الطلب إلى موقع حقيقي برسالة واضحة، إلا إذا سجّلت الدخول وفعّلت الإنترنت الحقيقي.
أي لوحة ESP32 تشتري
للوحة أولى: ESP32 DevKit V1 (ESP32 الكلاسيكية) أو ESP32-C3 SuperMini. تملك DevKit أكبر عدد من الأطراف وأكبر عدد من الشروح. وSuperMini صغيرة ورخيصة وفيها USB أصلي. وESP32-S3 هي الاختيار للكاميرات والشاشات وذاكرة أكبر. وكلها الثلاث، ولوحات أخرى كثيرة، تعمل في Mokxi، فتستطيع تجربة مشروعك على كل منها قبل أن تختار.
إذا كان لديك Arduino Uno بالفعل، فابدأ المشروعين الأولين عليها؛ لا يحتاجان إلى تغيير غير أرقام الأطراف. وتتعمق صفحة المقارنة بين Uno وESP32 وPico أكثر.
أخطاء شائعة لدى المبتدئين
توصيل 5 V إلى GPIO. ESP32 شريحة 3.3 V، و5 V على طرف قد تتلفها.
توقّع أن تكون analogRead خطًا مستقيمًا من 0 إلى 3.3 V. عند التوهين الافتراضي تقرأ نحو 1890 في منتصف المقبض و4095 من نحو 3.1 V، كما تُظهر الدائرة أعلاه؛ استخدم analogReadMilliVolts() للحصول على الفولت.
استخدام أطراف ADC2 مع تشغيل WiFi. في ESP32 الكلاسيكية لا يمكن قراءة أطراف ADC2 أثناء عمل WiFi. استخدم أطراف ADC1 مثل GPIO 32 إلى 39 لأي شيء تناظري في مشروع WiFi.
اختيار طرف يؤثر في الإقلاع. إذا لم تبدأ اللوحة وفيها دائرتك موصولة، فانقل القطعة بعيدًا عن أطراف strapping المذكورة في صفحة اللوحة.
الأسئلة
ما مشروع ESP32 الأول الجيد؟
وميض LED، ثم زر، ثم مقبض يخفّض إضاءة LED. هذه الثلاثة تعلّمك المخرج الرقمي، والمدخل بمقاومة رفع، وADC بدقة 12 بت، وPWM. وبعدها، تُريك صفحة ويب تشغّل مصباحًا ما فائدة WiFi.
هل أستطيع تجربة مشاريع ESP32 دون اللوحة؟
نعم. كل مشروع في هذه الصفحة يعمل في Mokxi في متصفحك، مع كود Arduino مترجم ويعمل على ESP32 محاكاة. لا حاجة إلى حساب لفتحها وتشغيلها.
هل تستخدم مشاريع ESP32 بيئة Arduino IDE؟
معظم شروح المبتدئين تستخدمها، مع تثبيت حزمة لوحة ESP32. والكود في هذه الصفحة كود Arduino ويُرفع من Arduino IDE دون تغيير.
لماذا تصل analogRead في ESP32 إلى 4095 قبل 3.3 V؟
عند التوهين الافتراضي 11 dB، تشبع القراءة الخام في ESP32 حقيقية عند نحو 3.1 V وتنحني في الطريق إلى ذلك، لذلك تقرأ منتصف مقبض 3.3 V نحو 1890 بدل 2048. استخدم analogReadMilliVolts() للحصول على قراءة بالملي فولت.
واصل
ابنِ هذا على أرض الواقع
افتح المحرر وغيّر قيمة وشاهد الرقم يتحرك معها. لا شيء لتثبّته ولا حاجة إلى حساب.