تم استعارة الفكرة من المشروع. عرض الطقس ESP8266.
قررت أن أذكرها.
تم تعيين المهام التالية:
- تحديث التعليمات البرمجية المتعلقة بالاستخدام نسخة جديدة مكتبات ArduinoJson.h.
- أعد كتابة الكود باستخدام دالة millis () بدلاً من وظيفة delay (). من الواضح أنه باستخدام التأخير لتحديد فترة توقف بين تغيير المعلومات على الشاشة ، من المستحيل تنفيذ عناصر التحكم في الأزرار ؛
- اصنع تنزيل الرسومات عبر واي فاي;
- الابتعاد عن Wemos D1 R2 الضخم على Wemos D1 mini ؛
- كلما أمكن ذلك عرض الترويس;
- استخدام حالة جاهزة مع فتحات زر للأجهزة القائمة على LCD1602 ؛
- استخدم أزرار قياسية بحجم 6 × 6 ملحومة على لوحة التوصيل. أضف أزرار التحكم في الإضاءة الخلفية وزرًا دائريًا لتغيير البيانات المعروضة وزرًا للتحديث الإجباري للبيانات من الخادم.
تم استخدام المكونات التالية:
- العلبة مصنوعة من بلاستيك ABS مع مجموعة من الأغطية للأزرار ؛
- دعامات نايلون 6 + 5 مم ذكر M3 أسود ، 4 قطع ؛
- M3 صواميل نايلون أسود ، 4 قطع ؛
- نايلون المشاركات 6 + 5 مم M2 أبيض ، 3 قطع ؛
- حامل نايلون 6 مم أبيض أم ، 1 قطعة ؛
- حامل نايلون 8 مم أبيض أم ، 1 قطعة ؛
- رفوف نايلون 10 مم أم بيضاء ، 2 قطعة ؛
- LCD 1602 (I2C) ، أصفر ؛
- Wemos d1 mini ؛
- Wemos d1 DC-Power shield ؛
- لوحة اللوح 3x7 ؛
- أزرار 6 × 6 ، ارتفاع 7 مم ، 3 قطع ؛
- أسلاك دوبونت 10 سم أمهات ، 4 قطع ؛
- 24 أسلاك AWG باللون الأسود والأحمر ؛
- أسلاك سيليكون 20 AWG الأزرق والأبيض ؛
- المقاومات 5 كيلو أوم - 2 قطعة ، 10 كيلو أوم - 1 جهاز كمبيوتر (الذي جاء في متناول اليد) ؛
- محول الطاقة 9V 1A ؛
- لاصقة إيبوكسي مكونة من عنصرين.
تتميز الحالة المستخدمة بالعديد من المزايا. أولاً ، بالإضافة إلى الشاشة ، فإن لوحة الفصل القياسية 3 × 7 ومكوناتها المثبتة على كلا الجانبين في وضع مثالي في الارتفاع. ثانيًا ، يوجد في نهايتيه فتحات مستطيلة للتبريد. اتضح أن القفزات بين هذه الثقوب مقطوعة تمامًا بواسطة ملفات صغيرة 3 و 4 مم. إذا قمت بقص زوجين من وصلات العبور وقصت فتحة صغيرة مستطيلة في العلبة ، فإن موصل الطاقة DC-005 يذهب بشكل مثالي إلى الفتحة المشكلة للهندسة المعقدة. أيضًا ، يحتوي الجزء الخلفي من هذه العلبة على فتحة مربعة كبيرة ، كان من المفترض ، على ما يبدو ، تثبيت البطاريات.من خلاله ، من السهل توصيل شيء بالداخل دون تفكيك العلبة. بعد ذلك ، يمكن إغلاقه ببساطة بالزجاج أو البلاستيك.
تقدم البناء:
أولاً ، تم عمل نموذج أولي على لوح توصيل.
ثم يتم الانتهاء من القضية مع ملف.
بعد ذلك ، يتم لحام المكونات الرئيسية ويتم تنفيذ التركيبات. تم ثني الأرجل بشكل خاص بحيث تتناسب المفاصل القابلة للفصل مع الارتفاع. كان لا بد من وضع عدة رفوف من النايلون بحيث تكون جميع الأزرار في نفس الارتفاع.
ونتيجة لذلك ، يكون الجانب الأمامي من اللوحة بأزرار ومقاومات وأسلاك على النحو التالي:
ونتيجة لذلك ، تبدو الأجزاء الداخلية للجهاز كما يلي:
عند التجميع ، يبدو الجهاز كما يلي:
التغلب على الصعوبات:
- لفترة طويلة ، لم أتمكن من فهم سبب عدم عمل الأزرار ، على الرغم من أن جهاز القياس المتعدد أظهر بوضوح 0 عند الضغط على الأزرار و 4.6 - 5.0 فولت عند الضغط عليه (وفقًا لمصدر الطاقة). اتضح أنه في أجهزة Wemos / Lolin من الضروري الإشارة إلى أرقام GPIO كأرقام دبوس في الرسم. على سبيل المثال ، D5 هو GPIO14. إذن هذا هو الدبوس الرابع عشر.
const int buttonPin = 14 ؛
- لإظهار الطقس ، الشرط ضروري:
currentMillis - previousMillis == weatherTime
المراسلات الصارمة ، لأنه يجب أن يتم مرة واحدة.
لتقديم طلب إلى الخادم ، الشرط ضروري:currentMillis - previousMillis> = getDataTime
توافق فضفاض ، لأنه يتم تنفيذه حتى يتم تعيين علامة "البيانات المستلمة".
في الواقع ، هذا ليس واضحًا ، ولفهم ذلك ، استغرق الأمر وقتًا طويلاً. - كان علي أيضًا أن أعذب نفسي باستجابة الخادم:
سلسلة الطقس = الجذر ["weather"] [0] ["main"] ؛ وصف السلسلة = root ["weather"] [0] ["description"]؛
كان الصفر غير واضح تمامًا. اتضح أن هناك محطتان للطقس في موسكو ، والثانية لا تعمل دائمًا (لتلقي البيانات منها ، يجب عليك تحديد [1] إذا كانت نشطة).
يقع المستودع مع الكود والمكتبات هنا.