الإعلانات

تعد شبكة Wi-Fi جزءًا أساسيًا من الأدوات لأي مشاريع DIY الخاصة بإنترنت الأشياء (IoT) ، لكن Arduino المفضل لدينا لا يأتي مع Wi-Fi ، ويمكن أن تؤدي إضافة درع Wi-Fi إلى رفع التكلفة الإجمالية إلى حوالي 40 دولارًا. ماذا لو أخبرتك بوجود لوحة مطورة متوافقة مع Arduino مزودة بشبكة Wi-Fi مدمجة بأقل من 10 دولارات؟ حسنًا ، هناك.

تعرف على Arduino Killer: ESP8266. كانت مسألة وقت فقط قبل سرقة التاج من الرأس اللامع لمجلس تطوير Arduino العزيز. هل من الممكن أن تقع في حب لوحة الدوائر؟

وبصرف النظر عن الأسماء الجذابة ، تم تسويق ESP8266 (المعروف أيضًا باسم NodeMCU) كإضافة Wi-Fi منخفضة التكلفة بالنسبة إلى لوحات Arduino ، حتى أدرك مجتمع القراصنة أنه يمكنك قطع Arduino من المعادلة تماما.

في أقل من عام ، اكتسبت ESP8266 شعبية كبيرة ، وهي الآن مدعومة جيدًا وتم تطويرها بحيث إذا كنت تستخدم Arduino حاليًا ، فأنت بحاجة إلى الوقوف وتدوين الملاحظات. اشترِ الآن، ثم اتبع هذا الدليل لبدء برمجة ESP8266 - كل ذلك من داخل Arduino IDE المألوف.

أنت لا تقتصر على استخدام Arduino IDE بالطبع - فهي متوافقة مع Lua أيضًا (والتي تبدو مثل Python نحيلة بالنسبة لي عيون المبتدئين) ، ولكن نظرًا لأننا نتعامل مع هذا من منظور أولئك الذين تعلمنا على Arduino ، فهذا ما سنغطيه حصريًا اليوم.

instagram viewer

هناك عدد غير قليل من نماذج ESP8266 في الوقت الحالي ، لكنني سأستمر وأوصي بهذا: ESP-12E (تُعرف أيضًا باسم NodeMCU 1.0 ، أو أحدثها NodeMCU 2.0).

إنه أغلى قليلاً من الآخرين ($ 6.50 مقارنة بـ $ 4!) ، ولكنه يتضمن برنامج التشغيل التسلسلي المطلوب لبرمجة الشريحة ، ولديه منظم طاقة مدمج ، بالإضافة إلى الكثير من دبابيس IO. إنه مدعوم على نطاق واسع ولا يحتاج حقًا إلى أي شيء بخلاف اتصال USB للبرمجة أو الطاقة ، لذا فهو أسهل للعمل معه. إذا قمت بشراء أي نوع آخر من لوحات ESP8266 ، فقد تحتاج إلى منظم طاقة 3.3 فولت منفصل واتصال FTDI مناسب للبرمجة.

الخطوات الأولى مع ESP8266-12E و Arduino

أول، تثبيت برامج التشغيل التسلسلية لهذا المنتدى. قد تحتاج إلى تعطيل توقيع KEXT إذا كنت تقوم بتشغيل El Capitan بسبب أنظمة الأمان الجديدة.

بعد ذلك ، نحتاج إلى تمكين دعم ESP8266 من مدير مجلس إدارة Arduino IDE. افتح التفضيلات وأدخل عنوان URL التالي حيث يقول عناوين URL إضافية لمدير مجلس الإدارة:

مدير اردوينو

انقر فوق موافق ، ثم افتح مدير المجالس من عند أدوات -> لوحة القائمة ، ابحث عن esp8266 وقم بتثبيت النظام الأساسي. يجب أن تشاهد الآن خيار NodeMCU 1.0.

حدد لوحة

اترك وحدة المعالجة المركزية وسرعة التحميل كما هي ، وحدد المنفذ التسلسلي المثبت حديثًا. على جهاز Mac ، يظهر هذا كـ cu. SLAB_USBtoUART.

بصفتي برنامجًا أولًا ، أقترح الماسح الضوئي البسيط لشبكة Wi-Fi - اعثر عليه من ملف -> أمثلة -> ESP8266WiFi -> WifiScan. لاحظ أنه بطيء جدًا في التحميل ، ولكن في النهاية سيقول "تم التحميل" وفي هذه المرحلة (ليس قبل ذلك ، أو ستخترق عملية التحميل) ، يمكنك فتح الشاشة التسلسلية. يجب أن ترى شيئًا مشابهًا لهذا:

اختبار مسح واي فاي esp8266
نجاح! الآن ، دعنا نحاول الاتصال بواحد.

إليك رمز باربونات بسيط للغاية للاتصال بشبكة Wi-Fi. لا يفعل أي شيء سوى الاتصال ، ولكنه شيء يمكنك إضافته لاحقًا. تذكر فقط تغيير YOUR_SSID و YOUR_PASSWORD إلى تفاصيل Wi-Fi الخاصة بك. تحميل ، افتح وحدة التحكم التسلسلية ويجب أن تراها متصلة.

 #include const char * ssid = "YOUR_SSID" ؛ const char * password = "YOUR_PASSWORD" ؛ WiFiClient wifiClient ؛ إعداد باطل () {Serial.begin (115200) ؛ Serial.print ("الاتصال بـ") ؛ Serial.println (ssid) ؛ WiFi.begin (ssid ، كلمة المرور) ؛ بينما (WiFi.status ()! = WL_CONNECTED) {مهلة (500) ؛ Serial.print (".") ؛ } Serial.println ("") ؛ Serial.println ("WiFi متصلة") ؛ Serial.println ("عنوان IP:") ؛ Serial.println (WiFi.localIP ()) ؛ } حلقة فارغة() { }

أليست رائعة كيف كانت بسيطة سخيفة؟

قبل المتابعة ، إليك الرسم البياني الدقيق - قد يكون مفيدًا لاحقًا. لاحظ أن أرقام الدبوس المشار إليها في الرمز هي أرقام GPIO ، وليس D0-16 من المحتمل أن تكون مكتوبة على لوحة PCB. إذا كنت بالتأكيد لا تستطيع بشكل إيجابي معرفة سبب عدم عمل المستشعر ، فمن المحتمل أنك قد مزجت أرقام الدبوس لأعلى.

NodeMCU__v1.0_pinout

مستشعر منزلي ذكي سريع مع MQTT و DHT11

إليك مثال عملي يمكنك استخدامه مباشرة لمراقبة منزلك. سنضيف مستشعر درجة الحرارة والرطوبة DHT11 ، ثم نبلغ القيم باستخدام بروتوكول MQTT عبر شبكة Wi-Fi ، في حالتي إلى نظام أتمتة المنزل OpenHAB DIY (إذا لم يكن كذلك ، فقد ترغب في قراءة لنا دليل المبتدئين للحصول على OpenHAB وتشغيله على Raspberry Pi ابدأ مع OpenHAB Home Automation على Raspberry PiOpenHAB عبارة عن منصة أتمتة منزلية ناضجة ومفتوحة المصدر تعمل على مجموعة متنوعة من الأجهزة لا يعرف البروتوكول ، مما يعني أنه يمكن الاتصال بأي أجهزة أتمتة منزلية تقريبًا في السوق اليوم. قراءة المزيد ، والجزء 2 ، الذي يتناول على وجه التحديد تثبيت خادم MQTT دليل OpenHAB للمبتدئين الجزء 2: ZWave و MQTT والقواعد والرسوم البيانيةOpenHAB ، برنامج التشغيل الآلي للمنزل مفتوح المصدر ، يتجاوز بكثير قدرات أنظمة التشغيل الآلي للمنزل الأخرى في السوق - ولكن ليس من السهل إعداده. في الواقع ، يمكن أن يكون محبطًا تمامًا. قراءة المزيد ).

على جانب الأسلاك ، قم بتوصيل مستشعر DHT GND, 3.3 فولتو ~ D4 (أو GPIO 2). هذا كل ما نحتاجه الآن.

تحميل مكتبات MQTT و DHT هذه. حتى لو كان لديك بالفعل، قم بتنزيلها على أي حال ، نسخ احتياطي لما لديك ، واستبدالها. تستخدم أحدث مكتبة DHT11 من Adafruit خوارزمية تلقائية لتحديد السرعة تتم قراءة البيانات من المستشعر ، ولكنها غير واضحة في ESP8266 و 90٪ من الوقت ينتج عنه فشل قراءة٪ s.

مع الإصدار القديم 1.0 من المكتبة التي قمت بتضمينها في التنزيل ، يمكنك تغيير التوقيت يدويًا: يعمل 11 بشكل أفضل مع لوحات ESP2866 هذه. لقد قمت أيضًا بالاطلاع على العديد من نسخ مكتبة MQTT في محاولة للعثور على نسخة جيدة أتصل مرة أخرى وظيفة ، هبوط أخيرا على واحد المدرجة. ستحتاج إلى إعادة تشغيل Arduino IDE بعد استبدالها.

ها هي كود كامل للمشروع. في الأعلى جميع المتغيرات التي تحتاج إلى تغييرها ، بما في ذلك تفاصيل Wi-Fi وخادم MQTT (يمكن استخدام عنوان URL بدلاً من ذلك ، إذا كنت تستخدم خادمًا سحابيًا ، على الرغم من عدم وجود مصادقة) ، وقنوات لنشر البيانات عليها.

إليك كيفية عملها وبعض الملاحظات:

  • أولاً ، نتصل بشبكة Wi-Fi ، ثم بخادم MQTT ، ثم نبدأ الرئيسي عقدة().
  • في الحلقة ، نقوم باستطلاع مستشعر DHT كل 60 ثانية ونشر قراءات على قنوات MQTT ذات الصلة. مرة أخرى ، إذا وجدت معظم نتائج القراءات في رسالة فشل ، فلديك نسخة خاطئة من مكتبة DHT - الرجوع إلى الإصدار 1.0.
  • client.loop () يمرر التحكم إلى مكتبة MQTT ، مما يسمح لها بالرد على الرسائل الواردة.
  • هناك وصلت الرساله() وظيفة حيث نتعامل مع الرسائل الواردة - ما عليك سوى إجراء بيان بسيط لمقارنة الحمولة مع الرسالة التي تتوقعها. يمكنك استخدام هذا لتنشيط التتابع ، على سبيل المثال.
  • بعد تشغيلها لبضعة أيام ، وجدت أنها ستتوقف عن العمل بشكل عشوائي - أفترض أن هذا هو نوع من تسرب الذاكرة ، ولكن بالنظر إلى ليس لدي مهارة التشفير للتعامل مع ذلك وقد تكون مع المكتبات الأساسية ، لقد اخترت إعادة تعيين بسيطة بسيطة كل يوم. بعد يوم واحد بالضبط من تفعيل عقد المستشعرات ، سيتم إعادة تشغيل نفسها.
  • عند تشغيل وحدات DHT11 الرخيصة من 3.3 فولت ، تكون قيم الرطوبة أقل بكثير مما يجب أن تكون. لقد قمت بحل هذا عن طريق الضرب البسيط ، ومعايرته بمستشعر تجاري. أنصحك بالتأكد من مصدرك المعروف أيضًا ، قبل الاعتماد على القراءات. بدلاً من ذلك ، قم بتزويدها بالطاقة بجهد 5 فولت - ولكن يجب عليك وضع شيفتر مستوى منطق 5v-3.3v بين دبوس البيانات و ESP8266 ، وإلا فسوف تتلفه.

إذا سار كل شيء على ما يرام ، فيجب أن تتلقى الآن قراءات أجهزة الاستشعار في وسيط MQTT الخاص بك ، ويمكنك المضي قدمًا في ربطها بـ OpenHAB كما هو مفصل في الجزء الثاني من دليل المبتدئين دليل OpenHAB للمبتدئين الجزء 2: ZWave و MQTT والقواعد والرسوم البيانيةOpenHAB ، برنامج التشغيل الآلي للمنزل مفتوح المصدر ، يتجاوز بكثير قدرات أنظمة التشغيل الآلي للمنزل الأخرى في السوق - ولكن ليس من السهل إعداده. في الواقع ، يمكن أن يكون محبطًا تمامًا. قراءة المزيد ، حيث عرضت عليك أيضًا كيفية رسم البيانات.

الرسم البياني humdity من openhab

وداعًا أردوينو ، لقد أحببناك أيضًا. مجرد مزاح: ليس في كل مكان في منزلي يمكن حتى الحصول على شبكة Wi-Fi ، لذا سأظل بحاجة إلى شبكة متداخلة مع أجهزة استقبال Arduino و RF.

لمشروع ممتع ، تحقق من كيفية عمل زر Wi-Fi مع ESP8266 كيفية إنشاء زر متصل بشبكة Wi-Fi باستخدام ESP8266في هذا البرنامج التعليمي ، ستتعلم كيفية إنشاء زر مزود بشبكة Wi-Fi باستخدام NodeMCU و IFTTT. قراءة المزيد .

ولكن ماذا ستفعل مع ESP8266؟ أي مشاريع تستخدم ESP8266 ترغب في رؤيتها مكتوبة في MakeUseOf؟ اسمحوا لنا أن نعرف في التعليقات!

جيمس حاصل على درجة البكالوريوس في الذكاء الاصطناعي ، وهو حاصل على شهادة CompTIA A + و Network +. وهو المطور الرئيسي لـ MakeUseOf ، ويقضي وقت فراغه في لعب كرة الطلاء VR وألعاب الطاولة. لقد كان يبني أجهزة الكمبيوتر منذ أن كان طفلاً.