تكوين لاسلكي ESP8266 في البرامج الثابتة DeviceHive v 0.3



اخبارسعيدة يا جماعة! تم إصدار إصدار جديد من البرامج الثابتة لـ DeviceHive لـ ESP8266. لقد قمنا بتطبيق دعم الواجهات الأكثر شيوعًا لتوصيل الأجهزة: GPIO و ADC و PWM و UART و I2C و SPI و 1-wire. يمكنك الآن توصيل الأجهزة بهذه الواجهات بسهولة بخدمة السحابة لدينا. والأهم من ذلك - ظهرت القدرة على تكوين البرامج الثابتة لاسلكيًا (انظر لقطة الشاشة أدناه). سنتحدث عن هذا اليوم.



إعادة تعيين الثلاثي ، أو "هيا بنا!"


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

الآن كل شيء بسيط للغاية لتكوينه:
• إعادة تشغيل الجهاز ثلاث مرات (بفاصل زمني لا يزيد عن 3 ثوان) ، وبعد ذلك يتحول إلى نقطة وصول Wi-Fi ؛
• يمكنك الاتصال بهذه النقطة ومن خلال المتصفح أدخل جميع الإعدادات اللازمة ؛
• بعد تطبيق الإعدادات ، يقوم الجهاز بإعادة التشغيل تلقائيًا باستخدام الإعدادات الجديدة.

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

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

في الفيديو أدناه يمكنك أن ترى كيف يعمل كل شيء مع البرامج الثابتة الجديدة وجهاز Android.



افعلها بنفسك


دعونا نرى كيف يعمل نظام الإعداد هذا بشكل أساسي ، لأنه يمكن تنفيذه لأي جهاز لاسلكي آخر مزود بشبكة Wi-Fi.

للبدء ، نرفع شبكة Wi-Fi المعتادة. ننشئ فيه خادم DHCP الذي سيوزع عناوين IP على الأجهزة المتصلة. ولكن كخادم DNS ، فإنه يمر عنوان IP لـ DNS "الماكرة". الحيلة هي أن عنوان IP نفسه لخادم HTTP الذي يمكننا من خلاله تكوين الجهاز سيتم دائمًا إرجاعه إلى أي سجلات استعلام DNS "A". في حالة ESP8266 ، يعمل خادم DHCP و DNS وخادم HTTP مباشرة على الشريحة. في إصدار أساسي للغاية ، هذا يكفي - فتح أي صفحة في المتصفح ، سنرى صفحة تحتوي على الإعدادات. ولكن ، لكي تكون جميلًا ، يمكنك إجبار الأجهزة التي تدعم مصادقة البوابة الإلكترونية على عرض إشعار حول الحاجة إلى إدخال البيانات.

تُستخدم مصادقة البوابة عادةً لإدخال البيانات و / أو عرض اتفاقية استخدام في الفندق والفندق ونقاط اتصال Wi-Fi الأخرى. نستخدم هذه التقنية لعرض صفحتنا.

سيحاول Android عند الاتصال بشبكة Wi-Fi الانتقال إلى customers3.google.com/generate_204 .
تحاول أجهزة Apple الاتصال بـ captive.apple.com .

بعد إرسال طلب إلى هناك ، ستتلقى ردًا من النموذج:

$ curl http://clients3.google.com/generate_204 -i
HTTP/1.1 204 No Content
Content-Length: 0
Date: Mon, 07 Sep 2015 14:58:21 GMT
Server: GFE/2.0


$ curl http://captive.apple.com -i
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 68
Date: Mon, 07 Sep 2015 15:00:32 GMT
Connection: keep-alive

<HTML><HEAD><TITLE>Success</TITLE></HEAD><BODY>Success</BODY></HTML>


أي أنه استجابة لطلب HTTP ، فإنهم يعيدون استجابة بالحالة 2xx. بفضل هذه الطلبات ، تحدد الأجهزة ما إذا كانت متصلة بالإنترنت. لتنفيذ مصادقة البوابة الإلكترونية ، من الضروري إرسال استجابة برمز 302 تم نقله مؤقتًا استجابةً لهذه الطلبات (أو فقط لجميع الطلبات التي تهمنا) والإشارة إلى حقل الموقع بعنواننا في العنوان ، أي يجب أن تكون الإجابة تقريبية مثل هذا:

HTTP/1.1 302 Moved Temporarily
Content-Length: 0
Location: http://example.com


بعد تلقي هذه الإجابة ، ستدرك الأجهزة أنه من الضروري عرض صفحة الإعدادات على العنوان المحدد - ستفتح أجهزة Apple هذه الصفحة على الشاشة نفسها ، وسيعرض Android إشعارًا. في أنظمة التشغيل بدون دعم مصادقة البوابة الإلكترونية ، يكفي أن تكتب في شريط عنوان المتصفح أي عنوان يبدأ بـ "http: //" - سيفتح المتصفح صفحة الإعدادات. في الوقت نفسه ، لن تضلل المستخدم ، لأن عنوان الصفحة مع الإعدادات سيتم عرضه في شريط العنوان. في البرنامج الثابت لـ ESP8266 ، نستخدم العنوان devicehive.config .

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

نشرها نيكولاي خاباروف ، كبير مطوري البرامج

Source: https://habr.com/ru/post/ar383881/


All Articles