أغسطس 2019.
هل تريد أيضًا إنشاء مشاريع مبتكرة لإنترنت الأشياء التي تستخدم رقاقة ESP32 ، أو الوحدات النمطية المستندة إلى ESP32 ، لشركة Espressif الشهيرة؟ حسنا ، فعلت وما زلت أفعل. وآمل أن تفعل ذلك أيضًا.
الهدف من مجموعة المبتدئين الموثقة جيدًا هذه هو تسريع تطوير مشاريع إنترنت الأشياء الخاصة بأجهزة ESP32 باستخدام إطار ESP-IDF من Espressif والحصول على نوع من التطبيقات التي يمكنك إنشاءها لـ ESP32 باستخدام وحدات الأجهزة المختلفة.
هل أنت مستعد لاكتشاف كيف يمكنك البدء بسرعة؟
mkdir ~/esp
cd ~/esp
git clone -b v3.2.2 --recursive https://github.com/espressif/esp-idf.git esp-idf
يحتوي هذا الجزء على معلومات أساسية حول بعض لوحات تطوير ESP32 التي استخدمتها في البداية:
لا يمكن برمجة لوحة تطوير ESP32 إلا من خلال هذا المحول.
يوثق هذا الجزء بعض المنتجات وكيفية تكوينها.
غالبًا ما تستخدم البطاريات القابلة لإعادة الشحن في مشاريع إنترنت الأشياء.
هذا الجزء ، شاحن بطارية شهير ، تصريف بطارية مصنوع ذاتيًا ، وتفاصيل حول البطاريات الشائعة مثل بطاريات Lion وبطاريات LifePo4. كما أنه يحتوي على بعض المواصفات حول Lisoci2 Lithium-Thionyl-Chloride غير القابلة للتشغيل لاستخدامها في الظروف القاسية.
بعض الوثائق حول MOSFETs للقناة N التي يتم استخدامها غالبًا مع لوحة تطوير ESP32.
وثائق حول وحدة TP4056.
بعض الوثائق حول منظمات الجهد LDO والتي تشكل جزءًا من مجلس تطوير ESP32.
تتضمن مجموعة المبتدئين العديد من المشاريع العاملة التي يمكنك تشغيلها على الفور - مقابل المقتطفات التي يتعين عليك لصقها بنفسك ، وهو أمر ليس من السهل على المبتدئين.
هذه المشاريع:
أعط رؤى حول كيفية استخدام إطار عمل ESP-IDF الرسمي بكفاءة.
قم بتضمين طن من أفضل ممارسات الترميز وممارسات التكوين.
توضيح كيفية استخدام مكونات ESP-IDF الجديدة لمجموعة المبتدئين هذه ، مثل شرائط LED RGB وأجهزة استشعار الأرصاد الجوية.
المشروع الخاص esp32_mjd_components :
دعونا نسلط الضوء على بعض المشاريع التي توضح كيفية استخدام إطار ESP-IDF الأساسي.
esp32_button_basics كيفية التواصل مع الأزرار (المفاتيح).esp32_deep_sleep_wakeup_basics كيفية استخدام مفتاح أو مستشعر الباب/نافذة مغناطيسي لإيقاظ ESP32 من النوم العميق.esp32_http_client أساسيات استخدام مكون ESP-IDF القياسي "ESP32_HTTP_CLIENT".esp32_gpio_basics كيفية التفاعل مع دبابيس GPIO من مجلس التطوير.esp32_gpio_scanner كيفية فحص جميع دبابيس GPIO واكتشاف وظيفة I/O الخاصة بهم.esp32_i2c_scanner كيفية فحص جميع أجهزة العبيد على دبابيس I2C ، وتحديد عنوان الرقيق I2C الخاص بهم. هذا مفيد عند العمل مع أجهزة الرقيق I2C الجديدة.esp32_ledc_pwm_basics كيفية استخدام برنامج تشغيل ESP-IDF LEDC القياسي (برنامج تشغيل وحدة تحكم LED باستخدام PWM).esp32_nvs_basics كيفية استخدام برنامج تشغيل ESP-IDF NVS القياسي (التخزين غير المتطابق) مع قسم NVS مخصص.esp32_rmt_basics كيفية استخدام برنامج تشغيل esp-idf rmt القياسي.esp32_spiffs_basics كيفية استخدام برنامج تشغيل نظام ملفات ESP-IDF SPIFFS القياسي.esp32_sw180_tilt_sensor كيفية التفاعل مع مستشعر الإمالة هذا (لا يلزم مكونات إضافية).esp32_timer_basics كيفية استخدام برنامج تشغيل مؤقت ESP-IDF القياسي.esp32_uart_basics كيفية استخدام برنامج تشغيل ESP-IDF UART القياسي.esp32_uart_do_output كيفية استخدام برنامج تشغيل ESP-IDF UART القياسي.esp32_udp_client أساسيات تنفيذ عميل UDP باستخدام إطار ESP-IDF.دعونا نسلط الضوء على بعض المشاريع التي توضح كيفية استخدام المكونات الإضافية لمجموعة ESP32 MJD Starter Kit.
esp32_ads1115_adc_using_lib يوضح أساسيات استخدام مكون MJD ESP-IDF "MJD_ADS1115" بالنسبة إلى ESP32 ولوحات الاختراق الشائعة لـ TI ADS1115 Ultra-small ، منخفضة الطاقة ، I2C المتوافقة ، 860-SPS ، حافلة.esp32_am2320_temperature_sensor_using_lib كيفية قراءة البيانات من مستشعر meteo aosong AM2320.esp32_bh1750fvi_lightsensor_using_lib كيفية قراءة البيانات من مستشعر شدة الضوء BH1750.esp32_bme280_sensor_using_lib كيفية قراءة البيانات من مستشعر BOSCH BME280 METEO.esp32_bmp280_sensor_using_lib كيفية قراءة البيانات من مستشعر BOSCH BMP280 Meteo.esp32_dht11_temperature_sensor_using_lib كيفية قراءة البيانات من مستشعر درجة حرارة AOSONG DHT11.esp32_dht22_temperature_sensor_using_lib كيفية قراءة البيانات من مستشعر درجة حرارة AOSONG DHT22/AM2302.esp32_door_sensor_reed_switch كيفية استخدام مستشعر الباب/نافذة مغناطيسي يعتمد على مفتاح القصب.esp32_ds3231_clock_using_lib كيفية الحصول على/تعيين البيانات من لوحة ساعة RTC Realtime DS3231 ZS042 RTC.esp32_hcsr501_pir_sensor_using_lib كيفية قراءة البيانات من مستشعر الأشعة تحت الحمراء HC-SR501 PIR.esp32_huzzah32_battery_voltage_using_lib كيفية استخدام ميزات محددة من لوحة تطوير Adafruit Huzzah32. مثال: قراءة مستوى الجهد البطارية.esp32_jsnsr04t_using_lib يوضح هذا المشروع جميع ميزات وحدة مستشعر الموجات فوق الصوتية JSN-SR04T-2.0 مع لوحة تطوير ESP32. يتفريغ القياسات في سجل التصحيح.esp32_jsnsr04t_oled_mosfet_using_lib يوضح هذا المشروع جميع ميزات JSN-SR04T-2.0 للموجات فوق الصوتية المقاومة للماء في وحدة الاستشعار المتجانسة مع CONFUSTION مع CONFUSTION مع CLEAM ESP32 ، ووحدة عرض OLED ، و MOSFET القدرة على تشغيل وإيقاف تشغيل الطاقة (لحفظها أثناء التنسيق أثناء التنمية العميقة.esp32_ky032_obstacle_sensor_using_lib كيفية قراءة البيانات من مستشعر تجنب العقبات KY-032.esp32_ledrgb_using_lib كيفية التحكم في شرائط LED RGB (مثل ADAFRUIT NEOPIXELS ومنتجات BTF-Lightning).esp32_linked_list_basics كيفية استخدام مكون القائمة المرتبط.esp32_lorabee_using_lib كيفية التفاعل مع لوحة Breakout SODAQ LORABEE (Microchip RN2843 Lora Transceiver). يوضح هذا المشروع الأوامر الأساسية لتكوين الجهاز وقراءة/كتابة NVM.esp32_lorabee_rx_using_lib كيفية التفاعل مع لوحة Breakout SODAQ LORABEE (MICROCHIP RN2843 LORA Transceiver). يوضح هذا المشروع وظائف تلقي Lora RX. ملاحظة: يستخدم Lora P2P وليس Lorawan.esp32_lorabee_tx_using_lib كيفية التفاعل مع لوحة Breakout SODAQ LORABEE (Microchip RN2843 LORA TRANSCEIVER). يوضح هذا المشروع وظائف الإرسال Lora TX. ملاحظة: يستخدم Lora P2P وليس Lorawan.esp32_lorabee_using_pc_usbuart يوضح هذا المشروع كيفية إصدار الأوامر الأساسية إلى وحدة LORABEE باستخدام جهاز كمبيوتر يعمل بنظام Windows ولوحة USB-Uart (مثل FTDI). هذه طريقة سهلة للتعرف على ميزات لوحة Lorabee / MicroChip RN2843A.esp32_mlx90393_using_lib كيفية الحصول على بيانات الحقل المغناطيسي باستخدام مستشعر الحقل المغناطيسي MLX90393.esp32_neom8n_gps_using_lib كيفية الحصول على بيانات GPS من وحدة GPS UBLOX NEO-M8N.esp32_scd30_sensor_settings_using_lib هذا المشروع من أجل SENSIRION SCD30 CO2 و RH/T يتم استخدام وحدة مستشعر RH/T للتحقق من أن المستشعر يعمل بشكل صحيح ، لإظهار جميع الإعدادات ** من المستشعر وتشغيل أوضاع المعايرة المختلفة.esp32_scd30_sensor_readings_using_lib هذا المشروع لـ SENSIRION SCD30 CO2 و RH/T MODULE يقرأ قياس CO2 بشكل مستمر والقياسات ذات الصلة والمشتقة ومؤشر جودة الهواء.esp32_sht3x_sensor_using_lib يوضح هذا المشروع المكونات MJD_SHT3X. يتم استخدام مكون MJD_SHT3X لـ Sensirion SHT3X الرطوبة الرقمية ومستشعر درجة الحرارة لتكوين الجهاز وجمع مقاييس الإخراج الخاصة به (درجة حرارة CF ، الرطوبة النسبية ٪ و ALOS نقطة الندى C F.esp32_ssd1306_oled_using_lib هذا المشروع لشاشات الشهيرة 128x32 و 128x64 OLED بناءً على SSD1306 OLED DRIVER IC يوضح المكون MJD_SSD1306 لإظهار النص على شاشة OLED.esp32_tmp36_sensor_ads1115_adc_using_lib يوضح هذا المشروع المكونات MJD_ADS1115 و MJD_TMP36. يتم استخدام مكون MJD_ADS1115 لـ TI ADS1115 التناظرية إلى الرقمية لقراءة ناتج الجهد لمستشعر درجة الحرارة التناظرية. يتم استخدام مكون MJD_TMP36 لمستشعر TMP36 لتحويل قراءة الجهد الخام لـ ADC إلى درجة الحرارة المحيطة بالدرجات الشفافية.esp32_wifi_device_scanner كيفية مسح جميع قنوات WiFi واكتشاف الأجهزة.esp32_wifi_ssid_cloner كيفية استنساخ نقاط الوصول الحالية.esp32_wifi_ssid_scanner كيفية فحص جميع قنوات WiFi واكتشاف نقاط الوصول.esp32_wifi_ssid_spammer كيفية إنشاء نقاط وصول إضافية في المنطقة.esp32_wifi_stress_test يقوم هذا التطبيق بإجراء اختبار إجهاد للوحة DEV ESP32 في الدور كمحطة wifi. والغرض من ذلك هو التحقق من استقرار برنامج تشغيل برنامج WIFI ESP32 لإصدار معين من إطار ESP-IDF ؛ للتحقق من تشغيلها الصحيحة مع منتجات نقطة الوصول إلى WiFi لمختلف البائعين.لقد لاحظت أن العديد من أنماط الترميز عادت مرارًا وتكرارًا في المشاريع الأولى التي طورتها لـ ESP32.
لذلك بعد فترة من الوقت بدأت في وضع أنماط الترميز هذه في مكتبات منفصلة. يعد ESP-IDF إطارًا قابلًا للتمديد ، لذا يتم تنفيذ هذه المكتبات كمكونات جديدة ESP-IDF يمكن حقنها بسهولة في أي مشروع يعتمد على ESP-IDF.
جميع مكونات ESP-IDF MJD مركزية في مشروع esp32_mjd_components .
يمكن تقسيم المكونات تقريبًا إلى 3 مجموعات:
تتعلق بالبرمجة بلغة C (التي لديها المراوغات الخاصة بها مثل جميع لغات البرمجة الأخرى). مثال: القوائم المرتبطة.
تتعلق ببيئة ESP32 وتفاصيل الأنظمة المدمجة. أمثلة: مكون WiFi سهل. أنها تجعل هذه ميزات ESP-IDF أسهل في الاستخدام.
تتعلق بالشبكات. بعض الأمثلة: التواصل مع خادم MQTT وبعض وظائف DNS. يمتلك المكون التعقيد ، ويجعل الاستخدام أسهل.
تتعلق بالأجهزة الطرفية التي تقوم بها بتوصيل وحدة ESP32 أو ESP32. بعض الأمثلة: لوحة Lora ، RGB LED ، مستشعرات درجة الحرارة ، لوحات GPS ، ساعات RTC ، أجهزة استشعار PIR وأجهزة استشعار العقبات. المكون يشرف تعقيد الطرفية.
هذه هي قائمة المكونات الجديدة:
mjd المكون الأساسي الذي يحتوي على وظائف للأغراض العامة.mjd_ads1115 لـ TI ADS1115 التناظرية إلى الرقمية 16 بت.mjd_am2320 لمستشعر AOSONG AM2320 Meteo.mjd_bh1750fvi لمستشعر شدة الضوء BH1750.mjd_bme280 لمستشعر BOSCH BME280 Meteo.mjd_bmp280 لمستشعر BOSCH BMP280 Meteo.mjd_dht11 لمستشعر درجة حرارة AOSONG DHT11.mjd_dht22 لمستشعر درجة حرارة AOSONG DHT11/AM2302.mjd_ds3231 للوحة ساعة في الوقت الفعلي DS3231 ZS042.mjd_hcsr501 لمستشعر الأشعة تحت الحمراء HC-SR501 PIR.mjd_huzzah32 للوحة تطوير ADAFRUIT HUZZAH32 (اقرأ مستوى الجهد البطارية).mjd_jsnsr04t مكون لوحدة مستشعر الموجات فوق الصوتية JSN-SR04T-2.0.mjd_ky032 لمستشعر تجنب العقبات KY-032.mjd_ledrgb للتحكم في شرائح LED المختلفة (WorldSemi WS28XX Chips مثل خط منتج Adafruit Neopixels).mjd_list الذي ينفذ القوائم المرتبطة كما هو مستخدم في kernel Linux.mjd_log لتسهيل تسجيل الدخول في التطبيق.mjd_lorabee للتفاعل مع لوحة SODAQ LORABEE Microchip RN2483A (يحتوي على رقاقة Microcrop RN2843 868MHz Lora Chip).mjd_mlx90393 لمستشعر المجال المغناطيسي MLX90393 (محور XYZ ومقاييس درجة الحرارة).mjd_mqtt للتفاعل مع خادم MQTT (كعميل MQTT).mjd_nanopb للعمل مع مخازن بروتوكول Google. ويشمل ملفات C الشائعة من مكتبة Nanopb V0.3.9.2. كما تعلن توجيهات تجميع NANOPB على مستوى المشروع (-D) في Makefile.ProjBuildmjd_net لتسهيل ميزات الشبكات المختلفة (الحصول على عنوان IP ، أسماء المضيف DNS ، إلخ).mjd_neom8n لوحدة GPS U-BLOX NEO-M8N.mjd_scd30 لوحدة استشعار CO2 CO2 و RH/T RH/T.mjd_sht3x لـ Sensirion SHT3X الرطوبة الرقمية ومستشعر درجة الحرارة.mjd_ssd1306 لشاشات OLED 128x32 الشهيرة و 128 × 64 والتي تستند إلى SSD1306 OLED DRIVER IC.mjd_tmp36 لمستشعر درجة الحرارة التناظرية TMP36 من الأجهزة التناظرية. لاستخدام مع ADC.mjd_wifi لتسهيل ، كمحطة WiFi ، اتصالًا بنقطة وصول WiFi.دعونا نصنف هذه المكونات بمزيد من التفصيل:
يدعم هذا المكون عدة حزم LED RGB. إنه يأتي مع الوثائق الأساسية مثل أوراق البيانات والمخططات والتعليمات حول كيفية توصيلها إلى لوحة التطوير الخاصة بك وفي النهاية مصدر طاقة إضافي.
تأتي هذه المكونات مع الوثائق الأساسية مثل أوراق البيانات والخطط والتعليمات حول كيفية توصيلها إلى لوحة التطوير الخاصة بك.
إجراء:
git clone https://github.com/pantaluna/esp32-mjd-starter-kit.gitcd في دليل المشروع الذي تريد استكشافه تحت ./projects .make menuconfig لتعديل إعدادات المشروع التي تريد تشغيلها (على سبيل المثال GPIO PIN#، بيانات اعتماد wifi ، ...).make flash monitor لإنشاء وتحميل المثال على لوحة DEV الخاصة بك ومراقبة التنفيذ عبر المحطة التسلسلية. إطار ESP-IDF (وتوثيقه) قوي للغاية وشامل.
لقد وجدت صعوبة في البدء بسرعة. أنا مجرد مطور مكدس كامل محنك (الواجهة الخلفية/الواجهة الأمامية) دون خبرة كبيرة في تطوير حلول إنترنت الأشياء باستخدام الأنظمة المدمجة.
وبشكل أكثر تحديداً ، يمكنني أن أفهم جميع ميزات إطار ESP-IDF ، لكنني واجهت صعوبة في تلبية كل شيء معًا ، وسرعان ما أقوم بتطوير مشاريع حقيقية للحلول الحقيقية باستخدام الأجهزة الطرفية المحددة مثل أجهزة الاستشعار ولوحات LORA ولوحات GPS وشرائط LED. على سبيل المثال ، أردت أن أبدأ بمشاريع تتحكم في أجهزة استشعار مختلفة في الشبكة وتحليل البيانات على الخادم المركزي ، ثم الانتقال إلى مشاريع أكثر تعقيدًا.
ثانياً ، كان من الصعب العثور على وثائق جيدة (أوراق بيانات ، مخططات ، صور للأسلاك) للأجهزة الطرفية المختلفة مثل مستشعرات Meteo ، لوحات GPS ، RGB LED ، وما إلى ذلك وكيفية استخدام هذه الأجهزة مع لوحة تطوير قائمة على ESP32.
لذلك قمت بمرور الوقت على هذه المكونات الإضافية ، والوثائق الجيدة ، والعديد من المشاريع العاملة التي تستهدف مجموعة كاملة من الأجهزة الطرفية التي تستخدم عادة في مشاريع إنترنت الأشياء.
الآن هو الوقت المناسب لإعادة شيء إلى مجتمع ESP32 وإطلاق كل ما تعلمته بقدر ما هو مفتوح المصدر ، حتى يتمكن الجميع من الاستفادة من هذا العمل.
لديك خياران للبدء في التطوير لشريحة ESP32:
من المهم أن نعلم أن كلا من الأطر مستقرة وقابلة للاستخدام ، لكنهما لا يزالان تحت تطور كبير من قِبل Espressif ، وتصدر الإصدارات الجديدة الرئيسية على أساس منتظم ؛ أتوقع أن يستمر هذا على الأقل حتى 2018Q4.
بعد تجربة كلا الإطارين ، قررت الذهاب مع إطار ESP-IDF ، وبشكل أكثر تحديداً V3.1 وأعلى. أحاول دائمًا إطلاق المكتبات المتوافقة مع آخر إصدار مستقر.
طقم esp32 Starter يجعلك تبدأ بسرعة. إذا كنت بحاجة إلى ميزات إضافية لمكون موجود ، أو كنت ترغب في اقتراح مكون جديد ، فيرجى تقديم مشكلة.
جميع مكونات MJD مركزية في المشروع mjd_components .
المجموعة غير مصممة لتنفيذ جميع الميزات التي يمكن تصورها لأي مشروع ESP32. إذا كانت ميزة جديدة محددة للغاية لمشروعك ، فإن أفضل طريقة هي جعل حزمة مكونات ESP-IDF الخاصة بك مع الوظائف التي تريدها. يمكنك استخدام هذه المكونات كأساس ؛ من فضلك لا تنسى أن أذكر أنك حصلت على المكونات من مجموعة المبتدئين هذه.
ماذا تمثل "MJD"؟ إنها لعبة Codeword التي لا معنى لها ويستخدم في لغة C لجعل المعرفات فريدة من نوعها. يضمن هذا النهج أنه يمكنك استخدام مكونات ESP-IDF الجديدة في أي مشروع C آخر.
لماذا يتم تخزين جميع المشاريع والمكونات في مستودع GitHub واحد (من عكس الحصول على ريبو جيثب لكل مشروع وكل مكون)؟ أعتقد أن هذا يجعل طقم المبتدئين أسهل في استخدامه للمبتدئين. في المستقبل ، قد يتم إعداد المجموعة باستخدام الجهاز الفرعي GIT.
تحقق من جيثب.
حرر مكونات إضافية لأجهزة استشعار الغاز ، وأجهزة استشعار جسيمات الغبار ، ومكون حلقة تيار 4-20MA ، وشاشات TFT ومصفوفات LED RGB.
حرر مشاريع إضافية لإظهار تحديثات OTA (ترقية البرامج الثابتة عن بُعد).
لإصدار منصة إنترنت الأشياء للجمهور حتى تتمكن من إدارة الأجهزة في الحقل وتحليل البيانات الواردة.
لإنشاء موقع ويب جديد للوثائق الفنية لهذه المجموعة.