إنترنت الأشياء مقابل بنس واحد: دليل عملي. الجزء 2 ، البرمجيات

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


يوضح كاتب المقال ما سيتم مناقشته اليوم.

المقالات الأولى من السلسلة:
إنترنت الأشياء مقابل بنس واحد ، أو ما يمكن أن يفعله DeviceHive.
إنترنت الأشياء مقابل بنس واحد: دليل عملي. الجزء 1 ، الأجهزة.

قم بإنشاء خادم

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



تهانينا! الآن لديك ملعب خاص بك على DeviceHive. للاتصال بمجموعة اللعب من الخارج ، استخدم رابط Url API. هذا هو العنوان الذي نستخدمه للوصول إلى الخادم من ESP8266 وتطبيق العميل. للوصول إلى لوحة المشرف (على عنوان Url الخاص بالمشرف) ، استخدم تسجيل الدخول المحدد (تسجيل الدخول الأولي) وكلمة المرور (كلمة المرور الأولية).

انحراف صغير: يمكن نشر الخادم محليًا أو على خدمة سحابية. ابحث عن تعليمات التثبيت هنا . يمكنك تسهيل الأمر - ابدأ الخادم باستخدام Docker في سطر واحد: انظر هنا للحصول على وصف كامل . DeviceHive هو مشروع مفتوح المصدر بالكامل. هذا يعني أنه يمكن نشر الخادم في المنزل وفي الخدمة السحابية ، على سبيل المثال ، Azure

docker run -d --name=devicehive -p 8080:80 -p 9001:9001 devicehive/devicehive-standalone



.

البرامج الثابتة

حان الوقت للقيام بالبرامج الثابتة. للقيام بذلك ، نحتاج إلى توصيل ESP8266 بالكمبيوتر ، ثم توصيل محول USB-> UART ، ومصدر الطاقة ، ووحدة ESP8266.

قم بتثبيت برنامج التشغيل الخاص بالمحول. مستخدمي Linux أسهل هنا ، لأن النواة تتضمن بالفعل معظم برامج التشغيل هذه. ولكن سيتعين على مستخدمي Windows و OS X تثبيت برنامج تشغيل المحول بأنفسهم.

روابط لصفحات التنزيل الرسمية للرقائق الأكثر شيوعًا:

CP210x: www.silabs.com/products/mcu/pages/usbtouartbridgevcpdrivers.aspx
PL230x: www.prolific.com.tw/US/ShowProduct.aspx؟pcid=41
FTDI: www. ftdichip.com/Drivers/VCP.htm
CH341: www.wch.cn/index.php؟s=/page-search_content-keyword-CH341SER.html

قم بتوصيل المحول وتأكد من أن برنامج التشغيل يعمل بشكل صحيح. في نظام التشغيل Linux ، يجب أن يظهر الجهاز على نظام الملفات / dev / ttyUSB * ، وعلى OS X /dev/tty.* وعلى نظام التشغيل Windows ، يجب أن يظهر منفذ COM إضافي على مدير الجهاز. إذا كان كل شيء على ما يرام ، افصل المحول عن الكمبيوتر.

بعد ذلك ، قم بتوصيل خرج مصدر الطاقة (3.3 فولت) بـ ESP8266 بسلكين. لكي يتم تشغيل الوحدة ، عند تشغيلها ، يجب السماح لها بالعمل من خلال توفير مستوى عالٍ من إخراج CH_PD. من الضروري إبلاغ الوحدة بأننا سنستخدم الذاكرة الداخلية ، لذا عند تشغيل GPIO15 يجب أن تكون منخفضة. ولإدخال وضع البرمجة ، نحتاج إلى تطبيق مستوى منخفض على GPIO0. نحن بحاجة إلى هذا الأخير فقط خلال البرامج الثابتة. يبدو زاحفًا ، ولكن في الواقع نحن بحاجة فقط إلى توصيل الأسلاك الثلاثة لـ CH_PD مع زائد من مصدر الطاقة ، وتوصيل GPIO0 و GPIO15 بالأرض (ناقص) مصدر الطاقة. أخيرًا ، نقوم بتوصيل محول USB-> UART باستخدام ثلاثة أسلاك أخرى: نقوم بتوصيل المحطات ناقص المصدر (GND) بأرض المحول ،يتم توصيل خرج محول RX بإخراج وحدة TX الخاصة بـ ESP8266 وإخراج محول TX بإخراج وحدة RX. نحصل على مخطط الاتصال النهائي لثلاث وحدات قياسية مختلفة. إذا كان بعض الإخراج مفقودًا ، فمن المرجح أنه تم توصيله بالفعل داخل الوحدة النمطية ، فإن السلك الأرجواني هو الاتصال الأكثر مؤقتة للدخول إلى وضع البرمجة.







مثال على تنفيذ مثل هذا الاتصال:


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

بعد ذلك ، قم بتشغيل مصدر الطاقة ، وقم بتوصيل المحول بالكمبيوتر ، وقم بتنزيل البرنامج الثابت لـ DeviceHive المعاد تجميعه لـ ESP8266. في وقت النشر ، يتوفر الإصدار الأول والأحدث هنا .

يمكن دائمًا العثور على إصدارات مسبقة جديدة على GitHub . يمكنك أيضًا أخذ المستودع بالكامل هنا ، وتجميع البرامج الثابتة بنفسك وتعديلها كما يحلو لك. جميع التعليمات البرمجية في المستودع مرخصة بموجب MIT.
قم بفك ضغط الأرشيف الذي تم تنزيله من الرابط أعلاه إلى دليل منفصل ، قم بتشغيل esp-flasher- <your OS name> من وحدة التحكم (يمكن لمستخدمي Windows ببساطة النقر نقرًا مزدوجًا فوق esp-flasher-win.exe). ونتيجة لذلك ، يجب أن يكون لديك شيء مثل هذا:



بالإضافة إلى الأداة المساعدة المضمنة للبرامج الثابتة ESP8266 ، يمكنك استخدام أي أداة أخرى ، على سبيل المثال ، esptool .

تهانينا - تم تثبيت البرنامج الثابت ويعمل بالفعل! الآن افصل الأرض عن دبوس GPIO0 (لن تكون هناك حاجة إليه بعد ذلك) حتى لا تدخل الوحدة في وضع البرمجة مرة أخرى. للاتصال بمحطة ESP8266 ، قم بتشغيل esp-terminal- <your OS name> أو أي طرف منفذ تسلسلي آخر يدعم أحرف الهروب ، على سبيل المثال ، PuTTY أو أداة الشاشة GNU. معلمات المنفذ: السرعة 115200 ، 8N1.

كل من الأدوات المساعدة المضمنة قادرة على الكشف تلقائيًا عن المنفذ الذي يتصل به ESP8266 ، أي لا توجد معلمات مطلوبة عند بدء التشغيل.
بدء تشغيل المحطة ، سنرى الدعوة:



في الواقع ، هذه محطة تشبه unix منتظمة تدعم الإكمال التلقائي (مفتاح Tab) والتاريخ (مفاتيح لأعلى ولأسفل). ولكن في الواقع ، لا توجد ملفات أو أنظمة تشغيل هناك. قائمة الأوامر المتاحة متاحة في "مساعدة":



نحن مهتمون بالأمر "تكوين". قم بتشغيله لتكوين الجهاز.

سوف تطرح الأداة خمسة أسئلة بسيطة:
  1. اسم شبكة Wi-Fi الخاصة بك.
  2. كلمة مرور شبكة Wi-Fi الخاصة بك.
  3. عنوان API لخادمك.
  4. معرف الجهاز الخاص بجهازك.
  5. مفتاح الجهاز.


في "عنوان URL لخادم DeviceHive" أدخل "عنوان URL لواجهة برمجة التطبيقات" من الخادم. في "DeviceID" - بعض معرفات الجهاز الفريدة للخادم ، بهذا الاسم سنميز الأجهزة الموجودة على الخادم. قد يكون "DeviceID" نصًا عاديًا. على وجه الخصوص ، يمكنك إنشاء نص GUID بالنقر فوق Tab. وفي آخر طلب لـ DeviceKey ، أدخل كلمة المرور المحددة. يمكن إنشاؤها بالضغط على مفتاح Tab.

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

هذا ما يبدو عليه الإعداد:



إذا فعلنا كل شيء بشكل صحيح ، فيمكننا النظر في إخراج التصحيح والتأكد من اتصال الجهاز بالخادم بنجاح. فيما يلي إخراج التصحيح لجهاز متصل بنجاح:



يمكن الآن تعطيل USB-> محول UART. يمكنك تركها إذا كنت تريد أن تتمكن من إلقاء نظرة على إخراج التصحيح أو حالة الشبكة.

الآن في علامة التبويب "الأجهزة" في لوحة المشرف ، سيظهر الجهاز الأول.

لنحاول إرسال الأمر الأول إلى الجهاز . للقيام بذلك ، انتقل إلى لوحة المشرف بالطريقة التالية: "الأجهزة" -> "ESP" -> "تفاصيل" -> "أوامر" -> "أدخل أمرًا جديدًا". في حقل "الاسم" ، حدد "gpio / read" واضغط على "push". تم إرسال الفريق!

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



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

{"0":"1","1":"0","2":"1","3":"0","4":"1","5":"1","12":"0","13":"0","14":"0","15":"0"}




بتقليد جيد ، سنقوم بإضاءة LED على اللوحة. في معظم وحدات ESP8266 ، يكون مؤشر LED على مخرج من نوع TX ، وسوف نتعامل معه. يضيء عندما يظهر مستوى منخفض على إخراج الرقاقة. في المستند ، سنرى أن GPIO1 ليس سوى إخراج TX نفسه ، لذا دعنا نضع صفرًا منطقيًا عليه. في هذه الحالة ، يضيء LED دون أي مشاكل. بعد ذلك ، ستتوقف الوحدة الطرفية في الوحدة النمطية عن العمل حتى إعادة التشغيل.

الآن قمنا بتعيين الأمر المشار إليه أيضًا في المستند. في حقل "الاسم" قمنا بتعيينه وفي حقل "المعلمات" - . بعد تنفيذ الأمر ، يجب أن يضيء مؤشر LED الموجود على اللوحة ، كما في الصورة أدناه."gpio/write"
"gpio/write"
{"1":"0"}




LED أزرق تحت الكوارتز ، بجانبه أحمر لا يزال يتوهج ، مما يشير إلى أن اللوحة لديها طاقة.

كما ترى من الصورة ، يتم توصيل سلكين فقط مع الطاقة واثنين من وصلات العبور للوحدة لتشغيل الوحدة في الوضع الصحيح. لإيقاف التشغيل ، أرسل أمرًا بمعلمة . تنسيق معلمات الأمر هو JSON عادي. الحقول التي يمكن ملؤها ، وكذلك قيمها المحتملة ، موصوفة في ملف PDF. اكتشفنا اليوم كيفية إرسال أبسط الأوامر من لوحة المشرف إلى الجهاز. في المقالة التالية ، سنخبرك بكيفية كتابة تطبيق عميل بسيط للخادم يتيح لك الوصول إلى الجهاز ، وتنفيذ جهاز أكثر خطورة قليلاً (هل تتذكر الليزر من المقالة الأولى؟). ترقبوا ، سيكون من المثير للاهتمام!{"1":"1"}






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

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


All Articles