كورس:أنظمة المنازل الذكية المعتمدة على ESP8266 (الدرس الأول)

Greeting


منذ مدة طويلة لم اقم بكتابة اي مقال جديد على المدونة وذلك يعود لأسباب خارجة عن ارادتي . 
و اعود لكم اليوم بعد هذا الغياب لاقدم لكم سلسلة من الدروس لكيفية التحكم بالاجهزة عن طريق الانترنت باستخدام المديول ESP8266 .
و سأحاول ان اضع كل اسبوع درس جديد حتى نغطي اهم تطبيقاته بإذن الله .



مقدمة :

لا شك في أن وحدة واي فاي ESP8266 هي واحدة من المكونات التي انتشرت بشكل كبير في اوساط ال IoT، وفي بدايتي مع هذه الشريحة شاهدت الكثير من الدروس وكانت تعتمد على ربطها مع Arduino او اي متحكم اخر عن طريق المنفذ التسلسلي UART و الإعتماد على أوامر AT Commands في تهيئتها و كان التعامل معها يحتاج لكتابة الكثير من الاسطر البرمجية إلى أن تم طرح تحديثات جديدة حولت هذه الشريحة إلى Arduino و اصبح بالامكان الاعتماد على المتحكم الداخلي لها في تنفيذ المطلوب منها بدون ربطها مع اي متحكم اخر , وكل ما تحتاجه لبرمجته هو 1.6.6 Arduino IDE و USB to TTL Converter فقط .

شريحة ESP8266 :

أول شيء اريد قوله و بدون مبالغة هو أن هذه الشريحة هي "الأعجوبة التكنولوجية الصغيرة" . وهي مصممة لتكون الحل المثالي لجميع الذين يحتاجون إلى "الكل في واحد" من الهواة و المحترفين للـ IoT أو لأي منتج تجاري بدون إضافات اخرى . والأهم من ذلك  انها اصبحت متوفرة  بكثرة باسعار تبداء من 2$ حتى 4$ على حسب رقم الإصدار .
وهي تحتوي كل ما نحتاجه للإتصال بالواي فاي بالإضافة إلى معالج داخلي يمكن برمجته باستخدام Arduino IDE .

مواصفات المتحكم الداخلي :

  • وحدة المعالجة Espressif بعرض 32 بت و سرعة 80MHz و يمكن رفعها إلى 160MHz .
  •  64KB ذاكرة محمل الإقلاع . 
  • 64KB ذاكرة رام سريعة مخصصة للمتحكم .
  • 96KB ذاكرة وصول عشوائي .
  • SDIO, GPIO(16), UART(2), I2C, ADC(1)10bit, SPI, PWM(10bit)any Pin

 الميزات :

  •  802.11 b/g/n protocol
  •  Wi-Fi Direct (P2P), soft-AP
  •  Integrated TCP/IP protocol stack
  •  Integrated TR switch, balun, LNA, power amplifier and matching network
  •  Integrated PLL, regulators, and power management units
  •  +19.5dBm output power in 802.11b mode
  •  Integrated temperature sensor
  •  Supports antenna diversity
  •  Power down leakage current of < 10uA
  •  Wake up and transmit packets in < 2ms
  •  Standby power consumption of < 1.0mW


تأتي وحدة ESP8266 بعدة إصدارات , تختلف في عدد الأقطاب و نوع التغليف و تشترك بـ :
  • جهد التغذية 3.3V .
  • استجرار التيار أثناء الإرسال 215mA  و الإستقبال 60mA تقريباً .
  • تحتوي على منفذ UART .
الجدول التالي يوضح أهم الفروقات بين جميع الإصدارات :

جدول المواصفات الأساسية :

Modules Picture Pinout Antenna GPIO Flash size
ESP-01 ESP-01 photo ESP-01 pinout PCB Antenna GPIO0/2 512K Byte
ESP-02 ESP-02 photo ESP-02 pinout U-FL connector GPIO0/2/15 512K Byte
ESP-03 ESP-03 photo ESP-03 pinout Ceramic Antenna GPIO0/2/12/13/ 14/15/16 512K Byte
ESP-04 ESP-04 photo ESP-04 pinout NONE GPIO0/2/12/13/ 14/15/16 512K Byte
ESP-05 ESP-05 photo ESP-05 pinout U-FL connector NONE 512K Byte
ESP-06 ESP-06 photo ESP-06 pinout NONE GPIO0/2/12/13/ 14/15/16 512K Byte
ESP-07 ESP-07 photo ESP-07 pinout Ceramic Antenna & U-FL connector ADC + GPIO0/2/4/5/12/13/ 14/15/16 512K Byte
ESP-08 ESP-08 photo ESP-08 pinout NONE GPIO0/2/12/13/ 14/15/16 512K Byte
ESP-09 ESP-09 photo ESP-09 pinout NONE GPIO0/2/12/13/ 14/15 1M Byte
ESP-10 ESP-09 photo ESP-09 pinout NONE NONE 512K Byte
ESP-11 ESP-11 photo ESP-11 pinout Ceramic Antenna GPIO0/1 512K Byte
ESP-12 ESP-12 photo ESP-12 pinout PCB Antenna ADC + GPIO0/2/4/5/12/13/ 14/15/16 4M Byte
ESP-12E
ESP-12E photo ESP-12E pinout PCB Antenna ADC + GPIO0/2/4 /5/12/13/14/ 15/16 4M Byte
ESP-201 ESP-201 photo ESP-201 pinout PCB Antenna & U-FL connector ADC + GPIO0/2/4 /5/6/7/8/9/10/ 11/12/13/14/ 15/16 512K Byte


أهم بوردات التطوير

بعد إضافة دعم Arduino  لوحدة ESP8266 بدء سباق الشركات في صناعة بوردات التطوير ESP8266 development board و الجدول التالي يحتوي على اهم هذه البوردات .

Dev Board Picture Pinout Features Specification Document
NodeMCU 0.9 nodeMCU 0.9 photo nodeMCU 0.9 pinout
  • Open-source
  • Interactive
  • Programmable
  • Low cost
  • Simple
  • Smart
  • USB-TTL
  • Push button
  • Voltage Regulator 3.3V
  • 10 GPIO, every GPIO can be PWM, I2C, 1-wire, ADC
Schematic&PCB, Source Code, API Documents
NodeMCU 1.0 nodeMCU V1.0 photo nodeMCU V1.0 pinout
  • Open-source
  • Interactive
  • Programmable
  • Low cost
  • Simple
  • Smart
  • USB-TTL
  • Push button
  • Voltage Regulator 3.3V
  • 10 GPIO, every GPIO can be PWM, I2C, 1-wire, ADC
Schematic&PCB, Source Code, API Documents
WeMos D1 R2 WeMos D1 photo WeMos D1 pinout
  • ESP8266-EX with 4MB flash
  • 11 GPIO
  • 1x Analog Input pin
  • micro USB using CH340G USB-TTL serial chip
  • Power Supply 9-24VDC via DC jack, 5V via micro USB port
  • USB-TTL
  • Reset Push button
  • Voltage Regulator 3.3V
  • 10 GPIO, every GPIO can be PWM, I2C, 1-wire, ADC
Schematic, Technical specs, API Documents
WeMos D1 mini WeMos D1 photo WeMos D1 mini pinout
  • ESP8266-EX with 4MB flash
  • 11 GPIO
  • 1x Analog Input pin
  • micro USB using CH340G USB-TTL serial chip
  • USB-TTL
  • Reset Push button
  • Voltage Regulator 3.3V
  • 10 GPIO, every GPIO can be PWM, I2C, 1-wire, ADC
Schematic, Technical specs, API DocumentsFritzing Part

اعداد Arduino IDE لدعم الـ ESP8266

أولا و قبل كل شيء يجب تحميل Arduino 1.6.8  و بعد فك الضغط تقوم بتشغيله و تتابع الشرح


انسخ الرابط التالي : http://arduino.esp8266.com/stable/package_esp8266com_index.json


نتجه بعدها إلى قائمة Tools


ستظهر لنا النافذة التالية :


بعد الانتهاء من تحميل المكتبة ستلاحظ إضافة بوردات جديدة للـ Arduino IDE :


قم بإختيار البورد التي تتناسب مع المديول الموجود لديك و من ثم انتقل إلى Examples و اختر مثال Blink الخاص بالمديول :


قم باختبار ترجمة الملف لتتحقق من عمل الاضافة



الفيديو التالي يوضح الخطوات بالترتيب


ملحق كيفية برمجة المديول ESP8266 :

اغلب المديولات الموجودة بالاسواق العربية لا تأتي مع بورد تطوير و لهذا اوردت لكم هنا طريقتين لكيفية برمجة المديول
بدون الاعتماد على بوردات التطوير الخاصة بالمديول :


باستخدام بورد Arduino UNO :

قم بنزع المتحكم ATmega328 من بورد الاردوينو و قم بتوصيل المديول كما هو موضح في المخطط التالي :

باستخدام وحدة تحويل FTDI USB to TTL  :


وفي كلتا الطريقتين بعد الانتهاء من رفع البرنامج على المديول يجب فصل السلك الواصل بين GPIO0 و ال GND وإلا فإن المديول سيبقى بوضعية محمل الإقلاع .
share

16 التعليقات

إضغط هنا لـ التعليقات
Hassan Badawy
المدير
1 أغسطس 2016 11:28 ص ×

رااااااااااائع
جزاك الله عنا خيرا
ياريت يبقي فيه درس عن الواي فاي

رد
avatar
Horizon 4 electronics
المدير
1 أغسطس 2016 11:55 ص ×

هذا كان الدرس الأول والفكرة منه اعداد المديول و الـ Arduino IDE و كتابة برنامج بسيط له و الدروس القادمة ستكون عن الواي فاي و بإذن الله

رد
avatar
mos mo
المدير
21 سبتمبر 2016 1:09 م ×

موضوع اكثر من رائع سلمت يداك بس ياريت لو يكون درس عن عمل اتصال بين اكثر من موديل معأ:):):):):):):):):):):)

رد
avatar
Horizon 4 electronics
المدير
22 سبتمبر 2016 12:50 م ×

ان شاء الله في الدروس القادمة سيتم التطرق لربط اكثر من مديول معا و تكوين شبكة بينهم

رد
avatar
abdul Ghni
المدير
27 سبتمبر 2016 1:55 م ×

موضوع رائع جزاك الله خيرا وننتظر منك المزيد من الدروس بارك الله فيك

رد
avatar
comicdotcom
المدير
4 أكتوبر 2016 3:46 م ×

جزاك الله خيرا ........... فى انتظار الدرس القادم

رد
avatar
Alaa Radwan
المدير
4 أكتوبر 2016 6:24 م ×

جميل ، بارك الله فيك

رد
avatar
masry
المدير
11 أكتوبر 2016 10:06 م ×

مدونة أكثر من رئعه فى المجمل ومجهود أعجز عن أيفائكم حق الشكر علية .
جعلة الله فى ميزان حسناتكم .

رد
avatar
hamedenho
المدير
8 فبراير 2017 2:17 م ×

بارك الله فيك

رد
avatar
Abdelrahman Hossam
المدير
1 أبريل 2017 8:29 م ×

هو فين باقى الدروس

رد
avatar
برادة وعدد
المدير
10 يونيو 2017 9:15 م ×

الف شكر لك الشرح اكثر من رائع

رد
avatar
Ysuf Ka
المدير
6 أغسطس 2017 11:55 م ×

جزاكم الله كل خير
ولكن ياحبذا لو قمتم بشرح عن دارات RFM
وجزاكم الله خيرا

رد
avatar
27 سبتمبر 2017 6:02 م ×

هو ينفع استخدم بن رقم 2 adc A0 في الموديول ESP-07 كدجتال بورد الرجاء افادتنا ولو ينفع اسمها هيكون ايه في الكود

رد
avatar
Horizon 4 electronics
المدير
5 أكتوبر 2017 11:54 م ×

واياك اخي الكريم
ان شاء الله
لكن أظن أن هذا النوع من المديولات يتسبب بالكثير من المتاعب والمسائلة القانونية لمن يستخدمه في الدول العربية طبعا,
انا اتكلم عن المديول RFM22B !! فإذا كنت تقصد غيره فأرجو ارفاق رقمه بالتعليقات

رد
avatar
Horizon 4 electronics
المدير
5 أكتوبر 2017 11:58 م ×

اهلا بك اخي محمد
للأسف لا يمكن استخدامه كمدخل او مخرج ديجيتال

رد
avatar
شكرا لك ولمرورك