عرض التاريخ والوقت ودرجة الحرارة باستخدام XinaBox: 8 خطوات
عرض التاريخ والوقت ودرجة الحرارة باستخدام XinaBox: 8 خطوات
Anonim
عرض التاريخ والوقت ودرجة الحرارة باستخدام XinaBox
عرض التاريخ والوقت ودرجة الحرارة باستخدام XinaBox

شاشة OLED رائعة تعرض التاريخ والوقت ودرجة الحرارة بالدرجة المئوية والفهرنهايت باستخدام Xinabox xChips المستندة إلى ESP8266.

الخطوة 1: الأشياء المستخدمة في هذا المشروع

مكونات الأجهزة

  • مبرمج XinaBox IP01 x 1 xChip USB على أساس FT232R من FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core على أساس وحدة ESP8266 Wi-Fi
  • XinaBox SW01 x 1 xChip مستشعر درجة الحرارة والرطوبة والضغط الجوي على أساس BME280 من بوش.
  • XinaBox OD01 x 1 xChip 128x64 Pixel OLED Display
  • XinaBox PU01 x 1 xChip USB (النوع A) مزود الطاقة
  • موصلات حافلات XinaBox XC10 x 1 xChip
  • 5V USB امدادات الطاقة x 1

تطبيقات البرمجيات والخدمات عبر الإنترنت

اردوينو IDE

الخطوة الثانية: القصة

مقدمة

لقد أنشأت هذا المشروع لعرض التاريخ ووقت UCT ودرجة الحرارة باستخدام XinaBox xChips الذي يستخدم بروتوكول ناقل I2C. تم استرداد الوقت من خادم google NTP. تم قياس درجة الحرارة المحيطة باستخدام SW01 xChip وتم عرضها على شاشة OD01 xChip OLED بالدرجات المئوية والفهرنهايت. توضح الصورة أدناه شاشة OLED.

صورة
صورة

عرض OLED التاريخ والوقت ودرجة الحرارة

الخطوة الثالثة: تنزيل الملفات الضرورية

ستحتاج إلى المكتبات والبرامج التالية لهذا المشروع.

  • Arduino IDE - برنامج تطوير ستقوم فيه بالتشفير
  • xSW01 - مكتبة مستشعر درجة الحرارة
  • xCore - مكتبة أساسية لـ XinaBox xChips
  • xOD01 - مكتبة عرض OLED.
  • المنطقة الزمنية - مكتبة لاختيار منطقتك الزمنية
  • الوقت - لاستخدام وظائف الوقت
  • NTPClient - يمكنك من الحصول على الوقت من الخادم
  • ستحتاج أيضًا إلى تنزيل لوحة ESP8266 واتباع الإرشادات المصاحبة لها من أجل تثبيت اللوحة

بمجرد التنزيل ، ستقوم بتثبيت IDE والمكتبات. إنه أمر مستقيم إلى حد ما إذا اتبعت التعليمات.

الخطوة 4: التجميع

إن xChip الرئيسي الذي سينفذ ويعالج البرنامج هو CW01. يعتمد على وحدة WiFi ESP8266 ويستخدم بروتوكول ناقل I2C. من أجل البرمجة على CW01 ، سوف تحتاج إلى برمجة xChip. يسمح لنا IP01 ببرمجة CW01 عبر منفذ USB على جهاز الكمبيوتر الخاص بنا ببساطة عن طريق النقر معًا على الشحنتين باستخدام موصلات ناقل XC10 وإدخاله في منفذ USB. لا أسلاك ولا لحام مطلوب. شيء واحد يجب ملاحظته هو اتجاه أسماء تعريف xChip. يجب أن يتم توجيههم جميعًا في نفس الاتجاه. يجب أن يكون لديك الآن الإعداد التالي.

صورة
صورة

انقر معًا على CW01 و IP01 وأدخلهما في منفذ USB على جهاز الكمبيوتر الخاص بك

إذا كنت معتادًا على xChips ، فيمكنك توصيل كل xChip معًا باستخدام موصلات ناقل XC10 التي تريد استخدامها لمشروعك ثم إدخالها في منفذ USB. سنستخدم مستشعر درجة الحرارة SW01 وشاشة OD01 OLED.

صورة
صورة

يمكنك توصيل جميع شرائحك معًا ثم إدخالها في منفذ USB

الخطوة 5: البرنامج

قم بتنزيل أو نسخ ولصق الكود أدناه في Arduino IDE الخاص بك. إذا لم تقم بإجراء أي تغييرات على الرمز ، فما عليك سوى إدخال تفاصيل WiFi في الحقول الخاصة بكل منها كما هو موضح أدناه. أدخل أيضًا خادم وقت NTP موثوق. لقد استخدمت خادم وقت Google لهذا المشروع.

صورة
صورة

تفاصيل WiFi وخادم وقت NTP

الآن تجميع وتحميل. تأكد من تحديد منفذ COM الصحيح واللوحة ضمن قائمة الأدوات في Arduino IDE. بمجرد التحميل ، يجب أن يظهر الوقت والتاريخ ودرجة الحرارة على النحو التالي.

صورة
صورة

بعد التحميل يجب أن ترى ما يلي

الخطوة 6: اجعلها محمولة

يمكنك الآن إزالة الوحدة من منفذ USB الخاص بك وفصل كل xChip ببساطة عن طريق فصلها عن بعضها. منذ اكتمال البرمجة ، لم يعد IP01 مطلوبًا. يمكنك الآن توصيل مشروعك بأي طريقة تريدها طالما أن أسماء التعريف كلها موجهة في نفس الاتجاه. لتشغيل وحدتنا سوف نستخدم PU01. يتيح لنا ذلك تشغيله من بنك طاقة عادي أو أي مصدر طاقة 5 فولت USB. لقد قمت بتوصيل خاصتي كما هو موضح أدناه.

صورة
صورة

التجميع النهائي. يمكن توصيل xChips بالطريقة التي تريدها.

الخطوة 7: الخاتمة

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

الخطوة 8: الكود

Date_Time_Temp.ino Arduino ما عليك سوى إدخال تفاصيل WiFi في الحقول الخاصة بها وتحميلها على اللوحة الخاصة بك.

# تضمين // تتضمن مكتبة أساسية لـ XinaBox xCHIPS

# تضمين // تضمين مكتبة عرض OLED # تضمين // تضمين مكتبة مستشعر درجة الحرارة # تضمين // تضمين وظيفة ESP8266WiFi # تضمين // تضمين مكتبات الوقت # تضمين # تضمين # تضمين # تضمين # تضمين xSW01 SW01 ؛ // تحديد خصائص NTP # تعريف ntpOffset 60 * 60 // بالثواني #define ntpInterval 60 * 1000 // in miliseconds // أدخل خادم وقت ntp موثوق به بين علامات الاقتباس المزدوجة // هنا لقد استخدمت خادم وقت google ntp # عرّف ntpAddress "time1.google.com" // إعداد عميل NTP UDP WiFiUDP ntpUDP ؛ NTPClient timeClient (ntpUDP ، ntpAddress ، ntpOffset ، ntpInterval) ؛ // درجة حرارة متغيرة تعويم درجة حرارة C ؛ // درجة مئوية تعويم درجة الحرارة ؛ // fahrenheit // تفاصيل wifi الخاصة بك const char * wifi_ssid = "XinaBox" ؛ // wifi ssid const char * wifi_pass = "RapidIoT" ؛ // كلمة مرور wifi الخاصة بك // تاريخ ووقت متغير تاريخ السلسلة ؛ سلسلة clktime // المتغيرات التي تحتوي على أيام وأشهر const char * days = {"Sunday"، "Monday"، "Tuesday"، "Wednesday"، "Thursday"، "Friday"، "Saturday"}؛ const char * months = {"يناير" ، "فبراير" ، "مارس" ، "أبريل" ، "مايو" ، "يونيو" ، "يوليو" ، "أغسطس" ، "سبتمبر" ، "أكتوبر" ، "نوفمبر "،" ديسمبر "} ؛ const char * ampm = {"AM"، "PM"}؛ إعداد باطل () {tempC = tempF = 0 ؛ // تهيئة درجة الحرارة إلى الصفر timeClient.begin () ؛ // بدء عميل NTP UDP // بدء الاتصال التسلسلي Serial.begin (115200) ؛ // بدء اتصال i2c وتعيين دبابيس Wire.begin (2 ، 14) ؛ // بدء مستشعر درجة الحرارة SW01.begin () ؛ // بدء عرض OLED OLED.begin () ؛ // مسح شاشة OLED OD01.clear () ؛ // إنشاء اتصال wifi wifi_connect () ؛ تأخير (1000) ؛ } void loop () {// run إذا تم إنشاء اتصال wifi إذا (WiFi.status () == WL_CONNECTED) {SW01.poll () ؛ // قراءة درجة الحرارة درجة الحرارة = SW01.getTempC () ؛ // تخزين درجة الحرارة في سيليسيوس tempF = SW01.getTempF () ؛ // store temp في تاريخ فهرنهايت = ""؛ // مسح متغير التاريخ clktime = "" ؛ // clear time variable // قم بتحديث عميل ntp واحصل على طابع زمني unix utc timeClient.update () ؛ epochTime long بدون توقيع = timeClient.getEpochTime () ، // تحويل الطابع الزمني المستلم إلى time_t object time_t utc ؛ utc = epochTime ؛ // utc time TimeChangeRule utcRule = {"UTC"، Last، Sun، Mar، 1، 0}؛ Timezone UTC (utcRule، utcRule) ؛ // متغيرات تنسيق الوقت التاريخ + = أيام [أيام الأسبوع (utc) - 1] ؛ التاريخ + = "،" ؛ التاريخ + = أشهر [شهر (UTC) - 1] ؛ التاريخ + = "" ؛ التاريخ + = اليوم (utc) ؛ التاريخ + = "،" ؛ التاريخ + = السنة (utc) ؛ // تنسيق الوقت بتنسيق 12 ساعة باستخدام AM / PM ولا توجد ثواني clktime + = hourFormat12 (utc) ؛ clktime + = ":" ؛ إذا (دقيقة (UTC)