إن إنترنت الأشياء (Internet of Things) ميدان ممتع ومشوق ويقصد بهذا المصطلح الجيل الجديد من شبكة الإنترنت الذي يسمح لجميع الأجهزة التي من حولنا بالإتصال بشبكة الإنترنت والتواصل فيما بينها، كما تسمح لنا كمستخدمين بالتحكم بهذه الأجهزة من أي مكان في العالم.
حاليا، ليس هناك الكثير من المتحكمات ولوحات التطوير القادرة على الإتصال بالإنترنت حتى وإن وجدت فإن سعرها يكون مرتفعا بعض الشيء، إلا أن هناك من يصنع إسثتناءً لهذه القاعدة، طبعا لقد عرفت من نقصد، لوحة التطوير ESP32 تتميز بإمكانياتها المذهلة وسعرها البسيط الذي يُعتبر في متناول الجميع. يُمكنك الحصول على هذه القطعة عبر شرائها من خلال هذا الرابط.
إن شريحة ESP32 هي الأخ الأصغر للـESP8266، وهي تتميز بسعرها الرخيص وقدرتها على الإتصال بالواي-فاي والبلوتوث، كما أنها قطعة سهلة البرمجة بل ويمكننا بمرمجتها بواسطة بيئة تطوير الاردوينو (Arduino IDE) كما سنرى ذلك لاحقا.
خصائص شريحة ESP32:
تتميز لوحة تطوير الـESP32 بخصائصها القوية جدا مقارنة بسعرها ولوحات التطوير الأخرى من نفس الفئة، حيث تتميز بـ:
- معالج ثنائي النواة ومعمارية 32 بت
- تردد معالج إلى غاية 240 ميغاهرتز
- واي-فاي مع سرعة في نقل البيانات قد تصل إلى غاية 150 ميغابت/ثانية
- بلوتوث 4.2
- ذاكرة وميضية (Flash memory) حجمها 4 ميغابايت
- ذاكرة عشوائية (RAM) حجمها 512 كيلوبايت
- عدد الأطراف ذات غرض عام خاصة بالمدخلات والمخرجات (GPIO) أو بتعبير أبسط عدد الأطراف التي نستطيع إستعمالها مع عناصر خارجية كالحساسات والثنائيات الباعثة للضوء (LEDs) يبلغ 34 طرف، مع العلم أن هناك بعض اللوحات الخاصة من ESP32 يكون فيها عدد الـGPIO 30
- حساس تأثر هال (Hall effect sensor) مدمج (يُستعمل هذا النوع من الحساسات في الكشف عن وجود الحقول المغناطيسية)
- عشرة حساسات لمس (touch sensors) مدمجة
- حساس حرارة مدمج (يبدو أن الإصدارات الأحدث من هذه اللوحة لم تعد تأتي مع حساس للحرارة، بصراحة لست متأكدا بصفة كلية من هذه المعلومة، إذا كان أحدكم يستطيع أن يُؤكد أو ينفي هذه المعلومة فليفعل في خانة التعليقات بالأسفل)
- محول تناظري رقمي (ADC) 12بت
- محول رقمي تناظري (DAC) 8 بت
كما لاحظنا فإن الـESP32 شريحة تأتي بخصائص قوية جدا، يُمكنك مقارنتها مع الاردوينو اونو وستكتشف الفرق بنفسك حيث لا يملك هذا الأخير سوى 14 طرف GPIO، و32 كيلوبيات من الذاكرة الوميضية، و2 كيلوبايت من الذاكرة العشوائية وتردد معالج يبلغ 16 ميغاهيرتز، دون أن ننسى كذلك أن الاردوينو اونو لا يحتوي على بلوتوث أو واي-فاي.
شرح أطراف شريحة ESP32:
توضح الصورة التالية أطراف لوحة التطوير ESP32:
كما أسلفنا الذكر فإن عدد الـGPIO الخاص بالـESP32 هو 34، لكل طرف من هذه الأطراف وظيفة واحدة على الأقل (حيث أن لأغلبها عدة وظائف) سنقوم بشرحها عبر الأسطر القادمة من هذه المقالة.
مدخلات رقمية (Digital input GPIO):
ويبلغ عدد هذه الأطراف ستة، وهي لا تُستخدم إلا كمدخلات رقمية، ويستحيل ضبطها أو برمجتها لتعمل كمخرجات رقمية (digital output)، وهذه الأطراف هي:
- الطرف: GPIO34
- الطرف: GPIO35
- الطرف: GPIO36
- الطرف: GPIO37
- الطرف: GPIO38
- الطرف: GPIO39
ملاحظة هامة جدا: إن أقصى جهد تستطيع مداخل الـESP32 تحمله هو 3.3 فولت، تطبيق جهود أخرى أكبر (مثل 5 فولت) على المداخل سيُؤدي إلى تلف الشريحة لذا يرجى الحذر.
المحولات التناظرية الرقمية (ADC):
تحتوي شريحة ESP32 على 18 محول تناظري رقمي دقة كل منها 12 بت، لذا فإن دقتها تعتبر جيدة، نستطيع إستعمال هذه الأطراف من أجل الحصول على تغيرات قراءة قيمة الحساس أو أي عنصر آخر يكون خرجه في صورة تماثلية.
نستطيع حساب قيمة أصغر تغير في الجهد يستطيع الـESP32 قراءته باستعمال العملية الحسابية التالية:
3.3 / (2^12 - 1) = 3.3 / 4095 = 81 ميلي فولت
وهذا يعني أن أصغر تغير في قيمة الجهد تستطيع المحولات التناظرية الرقمية الخاصة بهذه اللوحة تحسسه هو 81 ميلي فولت. إن الأطراف الخاصة بالـADC هي:
- الطرف: ADC1_CH0 – GPIO36
- الطرف: ADC1_CH1 – GPIO37
- الطرف: ADC1_CH2 – GPIO38
- الطرف: ADC1_CH3 – GPIO39
- الطرف: ADC1_CH4 – GPIO32
- الطرف: ADC1_CH5- GPIO33
- الطرف: ADC1_CH6 – GPIO34
- الطرف: ADC1_CH7 – GPIO35
- الطرف: ADC2_CH0 – GPIO4
- الطرف: ADC2_CH1 – GPIO0
- الطرف: ADC2_CH2 – GPIO2
- الطرف: ADC2_CH3 – GPIO15
- الطرف: ADC2_CH4 – GPIO13
- الطرف: ADC2_CH5 – GPIO12
- الطرف: ADC2_CH6 – GPIO14
- الطرف: ADC2_CH7 – GPIO27
- الطرف: ADC2_CH8 – GPIO25
- الطرف: ADC2_CH9 – GPIO26
المحولات الرقمية التناظرية (DAC):
تحتوي شريحة الـESP32 على محولين رقميين تناظريين دقة كل واحد منهما 8 بت، تُستخدم هذه الأطراف من أجل عدة تطبيقات مثل تقنية عرض النبضة (PWM)، وأرقام هذه الأطراف على لوحة التطوير هي:
- الطرف: DAC_1 – GPIO25
- الطرف: DAC_2 – GPIO26
حساسات اللمس (touch sensors):
- تحتوي هذه الشريحة أيضا على 10 حساسات لمس يمكننا إستعمالها بدل أزرار الضغط (push buttons) حيث أنها تتحسس وجود تغيرات على أي شيء يحتوي على شحنة كهربائية مثل جلد الإنسان حيث أن لمس أحد هذه الأطراف بالإصبع مثلا يكون مشابها لضغطة زر، وأرقامها على الـESP32 هي:
- الطرف: TOUCH0 – GPIO4
- الطرف: TOUCH1 – GPIO0
- الطرف: TOUCH2 – GPIO2
- الطرف: TOUCH3 – GPIO15
- الطرف: TOUCH4 – GPIO13
- الطرف: TOUCH5 – GPIO12
- الطرف: TOUCH6 – GPIO14
- الطرف: TOUCH7 – GPIO27
- الطرف: TOUCH8 – GPIO33
- الطرف: TOUCH9 – GPIO32
أطراف خاصة ببطاقة ذاكرة خارجية:
تدعم شريحة الـESP32 إضافة بطاقة ذاكرة خارجية (memory card) وهذا عبر الأطراف التالية:
- الطرف: HS2_CLK – MTMS
- الطرف: HS2_CMD – MTDO
- الطرف: HS2_DATA0 – GPIO2
- الطرف: HS2_DATA1 – GPIO4
- الطرف: HS2_DATA2 – MTDI
- الطرف: HS2_DATA3 – MTCK
أطراف RTC:
تُستعمل هذه الأطراف من أجل إيقاظ الـESP32 من وضع الإستعداد (sleep mode)، وهي:
- الطرف: RTC_GPIO0 – GPIO36
- الطرف: RTC_GPIO3 -GPIO39
- الطرف: RTC_GPIO4 – GPIO34
- الطرف: RTC_GPIO5 – GPIO35
- الطرف: RTC_GPIO6 – GPIO25
- الطرف: RTC_GPIO7 -GPIO26
- الطرف: RTC_GPIO8 – GPIO33
- الطرف: RTC_GPIO9 – GPIO32
- الطرف: RTC_GPIO10 -GPIO4
- الطرف: RTC_GPIO11 – GPIO0
- الطرف: RTC_GPIO12 – GPIO2
- الطرف: RTC_GPIO13 – GPIO15
- الطرف: RTC_GPIO14 – GPIO13
- الطرف: RTC_GPIO15 – GPIO12
- الطرف: RTC_GPIO16 – GPIO14
- الطرف: RTC_GPIO17 – GPIO27
أطراف خاصة بعرض النبضة (PWM):
جميع أطراف الـGPIO يُمكن أن تُستخدم من أجل توليد PWM ما عدا GPIO من 34 إلى 39، يبلغ أقصى تردد عرض نبضة ممكن أن تُولده هذه الشريحة 80 ميغاهيرتز.
أطراف آي سكويرد سي (I2C):
تُستعمل هذه الأطراف من أجل عملية الإتصال آي سكويرد سي وهي تقنية تسمح بتشغيل وتبادل المعلومات مع الأجهزة باستعمال اشارتين كهربائيتين فقط، أرقام الأطراف على اللوحة هي:
- الطرف: GPIO21 (SDA)
- الطرف: GPIO22 (SCL)
وبهذا نصل إلى نهاية درسنا الأول من هذه الدورة حيث تعرفنا على شريحة الـESP32 وخصائصها العديدة وقمنا بمقارنتها مع لوحة الاردوينو اونو، وقمنا باستعراض جميع أطراف GPIO الخاصة بهذه اللوحة وقمنا بشرح وظيفة كل منها.
وسنقوم في درسنا القادم إن شاء الله بشرح كيفية برمجة الـESP32 بواسطة بيئة تطوير الاردوينو (Arduino IDE) وسنقوم كذلك بكتابة برنامجنا الأول، إذا كانت لديك أية اقتراحات أخرى أو أفكار جديدة ترغب بأن نقوم بإضافتها لهذه الدورة فلا تتردد في إخبارنا بها عبر خانة التعليقات، وكن على يقين بأننا سنأخذها بالحسبان.
إرسال تعليق