جدول المحتويات:

بوابة UDP / IP التسلسلية لـ Arduino استنادًا إلى ESP8266 Shield: 8 خطوات
بوابة UDP / IP التسلسلية لـ Arduino استنادًا إلى ESP8266 Shield: 8 خطوات

فيديو: بوابة UDP / IP التسلسلية لـ Arduino استنادًا إلى ESP8266 Shield: 8 خطوات

فيديو: بوابة UDP / IP التسلسلية لـ Arduino استنادًا إلى ESP8266 Shield: 8 خطوات
فيديو: PLC-Blaster: червь, живущий исключительно в ПЛК 2024, يوليو
Anonim
بوابة UDP / IP التسلسلية لـ Arduino استنادًا إلى ESP8266 Shield
بوابة UDP / IP التسلسلية لـ Arduino استنادًا إلى ESP8266 Shield

لقد نشرت بالفعل في عام 2016 هذه التعليمات "كيفية إنشاء بوابة Wifi الخاصة بك لتوصيل Arduino بشبكة IP". منذ أن أجريت بعض التحسينات على الكود وما زلت أستخدم هذا الحل.

ومع ذلك ، هناك الآن بعض الدروع ESP8266 التي تسمح لك بالقيام بنفس الشيء تمامًا دون لحام طالما أنك لا تستخدم لوحات Micro أو Nano.

سيشرح هذا التوجيه كيفية استخدام دروع ESP82 هذه كبوابة UDP / IP تسلسلية.

هذا جزء من البنية التحتية العالمية للتشغيل الآلي للمنزل ، يمكنك إلقاء نظرة هنا

مزيد من المعلومات حول الدرع باستخدام هذا الدليل

اللوازم

1 Arduino Mega (الأفضل هو أن يكون لديك على الأقل 1 ميجا للتطوير و 1 Uno لمرحلة التشغيل)

جهاز Rokoo ESP8266 ESP-12E UART WIFI

1 FTDI 3.3v

2 أسلاك اللوح

الخطوة 1: كيف يعمل؟

كيف يعمل ؟
كيف يعمل ؟

تعتمد البوابة على وحدة ESP8266

هذه الوحدة متصلة من جانب واحد بالرابط التسلسلي من الجانب الآخر إلى شبكة IP مع Wifi.

إنه بمثابة صندوق أسود. يتم إرسال حزم البيانات الواردة من الارتباط التسلسلي إلى منفذ IP / Udp والعكس بالعكس.

عليك فقط ضبط التكوين الخاص بك (IP ، WIFI …) بمجرد تشغيل البوابة لأول مرة.

يمكنه نقل إما ASCII الخام والبيانات الثنائية (بدون HTTP ، JSON …)

إنه مصمم لربط الكائنات ببرامج الخادم المنزلية التي تحتاج إلى عمليات نقل سريعة ومتكررة لحزمة قصيرة من البيانات.

الخطوة الثانية: ما هي الوظائف الرئيسية؟

في الغالب هو صندوق أسود يقوم بتحويل البيانات التسلسلية إلى حزمة UDP في كلا الاتجاهين.

ولكن يمكن للبوابة أيضًا أن تعمل من تلقاء نفسها عن طريق إرسال معلومات داخلية إلى الخادم وتلقي بعض الأوامر من الخادم.

يمكن لـ Arduino إرسال واستقبال الرسائل من / إلى خادم متصل عبر الإنترنت فقط عن طريق طباعة / قراءة ارتباط تسلسلي. ليست هناك حاجة لمطور Arduino لأن يزعج بروتوكول IP.

علاوة على ذلك ، فإنه يوفر GPIO الذي يمكن أن يستخدمه Arduino للتحقق من أن البوابة متصلة بشكل صحيح بشبكة WIFI ويمكن للبوابة أن تعمل تلقائيًا مع SSID مختلفين في حالة الفشل

تحتوي البوابة على وضعين مختلفين للتشغيل يتم تحديدهما عن طريق تعيين GPIO

ضبط GPIO على الأرض وتدخل البوابة في وضع التكوين.

إعداد GPIO مجانًا والدخول في وضع تشغيل البوابة.

علاوة على ذلك ، يمكن تعديل تكوين Gateway UDP / IP عن بُعد

الخطوة 3: بناء المواد

بناء المواد
بناء المواد

القليل من الأشياء المطلوبة

1 ESP8266 Shield - لقد وجدت UNO R3 ESP8266 Serial WiFi Shield Extend Board Module بأقل من 9 €

1 UNO هذا هو هدف Arduino

1 ميجا هي أداة تطوير اردوينو (يمكنك الاستغناء عنها ولكن من الصعب جدًا تصحيحها)

1 FTDI 3.3 / 5v من أجل التنمية

بعض الأسلاك

الخطوة 4: قم بتنزيل Gateway Code

قم بتنزيل Gateway Code
قم بتنزيل Gateway Code

خلال هذه الخطوة ، يتم استخدام Arduino فقط لتشغيل (مع USB أو مصدر طاقة آخر) على درع ESP8266

قم بتوصيل ESP8266 GPIO4 بالأرض (للدخول في وضع التكوين)

احرص على ضبط FTDI على 3.3v كما هو مطلوب بواسطة الدرع

قم بتوصيل FTDI بالدرع (RX إلى TX)

اضبط مفتاح الدرع المضبوط على 1: إيقاف 2: إيقاف 3: تشغيل 4: تشغيل

قم بتوصيل جانب USB من FTDI بجهاز الكمبيوتر الخاص بك

أعد ضبط الدرع باستخدام زر الضغط ESP-RST

قم بتنزيل كود البوابة هناك على GitHub

افتح Arduino IDE

  • حدد منفذ مراقبة FTDI
  • افتح IDE Serial Monitor - اضبط السرعة على 38400
  • حدد لوحة وحدة عامة ES8266
  • قم بترقية البرنامج الثابت للدرع باستخدام كود البوابة

ضبط التبديل 3: إيقاف 4: إيقاف

افتح IDE Serial Monitor

أعد ضبط الدرع باستخدام زر الضغط ESP-RST

يجب أن ترى رسائل على الشاشة تبدأ بـ "تهيئة EEPROM" "اكتملت التهيئة"….

حان الوقت للقيام بالتكوين

الخطوة 5: لنقم بتكوين البوابة

عند تنزيل رمز البوابة لأول مرة ، سيتم تهيئة ESP8266 Eeprom بالقيم الافتراضية. سترى هذا النوع من الرسائل "ضبط المعلمة: x الحجم: yy"

يمكنك العثور على هذه القيم داخل تعريف التعليمات البرمجية لـ paramValue. بالطبع يمكنك تغيير هذه القيم الافتراضية قبل تنزيل الكود ولكن يمكنك أيضًا ضبط التكوين الخاص بك عن طريق الأمر لاحقًا. يعد هذا أفضل إذا كنت تخطط للحصول على بوابة متعددة الوسائط تحتفظ بإصدار واحد فقط من التعليمات البرمجية.

استخدم المنفذ التسلسلي للشاشة لإرسال الأمر (اضبط على NL و CR).

نظرًا لأن SSID غير محدد حاليًا ، انتظر "تعذر الاتصال بإعادة المحاولة الثانية الخاصة بك: 5"

ثم سيبدأ مسح WIFI تلقائيًا

حان الوقت لتعيين معرفات SSID الخاصة بك بالأوامر التالية:

  • SSID1 = اختيارك 1
  • PSW1 = yourpsw1
  • SSID2 = اختيارك 2
  • PSW2 = yourpsw2
  • SSID = 1 (لاختيار SSID الذي تبدأ به)
  • إعادة تشغيل WiFi

بعد بضع ثوانٍ ، يمكنك التحقق من الاتصال باستخدام الأمر "ShowWifi". يجب أن ترى عنوان IP الذي حصلت عليه البوابة من خادم DNS الخاص بك. إذا كان الأمر كذلك ، فقد حان الوقت للمضي قدمًا

حان الوقت لتحديد عنوان خادم IP الخاص بك عن طريق إدخال العناوين الفرعية الأربعة (الخادم الذي سيقوم بتشغيل كود اختبار Java). على سبيل المثال:

  • "IP1 = 192"
  • "IP2 = 168"
  • "IP3 = 1"
  • "IP4 = 10"

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

قم بإزالة سلك التكوين

الدرع يعمل الآن كبوابة

الخطوة 6: قم بتنزيل مثال كود Arduino

قم بتنزيل مثال كود Arduino
قم بتنزيل مثال كود Arduino

قم أولاً بتنزيل كود Arduino الرئيسي هناك على GitHub

ثم قم بتنزيل كود Arduino بتعريف هذه الأوامر وكود الارتباط التسلسلي هذا في مكتباتك

ثم افتح الكود الرئيسي باستخدام Arduino IDE جديد

اضبط مفتاح الدرع 1 و 2 على إيقاف لتحرير ارتباط Arduino التسلسلي 0 لاتصال USB

أعد ضبط الدرع

قم بتوصيل أسلاك FTDI بـ Mega Serial 2 (TX FTDI بـ RX Mega وما إلى ذلك)

ابدأ Arduino IDE جديدًا (أو أداة TTY) ، وقم بتوصيل FTDI Usb وابدأ في مراقبة الارتباط التسلسلي

قم بتحميل كود Arduino داخل Mega

اضبط مفتاح الدرع 1 و 2 لتوصيل رابط Arduino التسلسلي 0

أعد ضبط الدرع

يجب أن ترى هذه الرسالة "ابدأ طباعة USB" على الشاشة

الخطوة 7: لنفعل جانب الخادم

مثال الخادم هو برنامج Java يمكنك تنزيله هنا على GitHub

ما عليك سوى تشغيله وإلقاء نظرة على وحدة تحكم Java وإلقاء نظرة على شاشة FTDI

سترى تبادل البيانات بين الخادم و Arduino

الخطوة 8: المضي قدمًا

المضي قدما
المضي قدما
المضي قدما
المضي قدما

يعتمد مثال كود Arduino هذا على إطار جزء من البنية التحتية للتشغيل الآلي للمنزل.

إذا كنت مهتمًا بهذه البنية التحتية ، فأعلمني بذلك. سأقوم بنشر المصادر.

إذا كنت تريد فقط استخدام البوابة ، فيمكنك تبسيط كود Arduino.

بعد تطوير واختبار الكود الخاص بك على Arduino Mega ، يمكنك بسهولة استبداله بـ Uno!

علاوة على ذلك ، يمكنك توصيل سلك بين Arduino GPIO 7 و ESP8266 GPIO 5 إذا كنت تريد أن يتحقق Arduino من اتصال Wifi

موصى به: