فهرست مطالب:

نمایش تاریخ ، زمان و دما با استفاده از XinaBox: 8 مرحله
نمایش تاریخ ، زمان و دما با استفاده از XinaBox: 8 مرحله

تصویری: نمایش تاریخ ، زمان و دما با استفاده از XinaBox: 8 مرحله

تصویری: نمایش تاریخ ، زمان و دما با استفاده از XinaBox: 8 مرحله
تصویری: پیشگوی معروف انگلیسی، که به پادشاه بریتانیا مشاوره می دهد، آینده عجیبی را برای خامنه ای پیشگویی کرد 2024, نوامبر
Anonim
نمایش تاریخ ، زمان و دما با استفاده از XinaBox
نمایش تاریخ ، زمان و دما با استفاده از XinaBox

صفحه نمایش خنک OLED که تاریخ ، زمان و درجه حرارت را در درجه سانتیگراد و فارنهایت نشان می دهد با استفاده از Xinabox xChips بر اساس ESP8266.

مرحله 1: موارد مورد استفاده در این پروژه

اجزای سخت افزاری

  • XinaBox IP01 x 1 xChip USB Programmer based on FT232R From FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core مبتنی بر ماژول Wi-Fi ESP8266
  • XinaBox SW01 x 1 xChip سنسور دما ، رطوبت و فشار جو بر اساس BME280 از بوش.
  • صفحه نمایش OLED XinaBox OD01 x 1 xChip 128x64 پیکسل
  • منبع تغذیه XinaBox PU01 x 1 xChip USB (نوع A)
  • اتصالات اتوبوس XinaBox XC10 x 1 xChip
  • منبع تغذیه USB 5V x 1

برنامه های نرم افزاری و خدمات آنلاین

آردوینو IDE

مرحله 2: داستان

معرفی

من این پروژه را برای نمایش تاریخ ، زمان و درجه حرارت با استفاده از XinaBox xChips که از پروتکل گذرگاه I2C استفاده می کند ، ساختم. زمان از سرور google NTP بازیابی شد. درجه حرارت محیط با استفاده از SW01 xChip اندازه گیری شد و بر روی صفحه نمایش OD01 xChip OLED در درجه سانتیگراد و فارنهایت نمایش داده شد. تصویر زیر نمایشگر OLED را نشان می دهد.

تصویر
تصویر

OLED نمایش تاریخ ، زمان و دما

مرحله 3: فایلهای لازم را بارگیری کنید

برای این پروژه به کتابخانه ها و نرم افزارهای زیر نیاز دارید.

  • Arduino IDE - نرم افزار توسعه ای که در آن کدگذاری می کنید
  • xSW01 - کتابخانه سنسور دما
  • xCore - کتابخانه اصلی XinaBox xChips
  • xOD01 - کتابخانه صفحه نمایش OLED.
  • منطقه زمانی - کتابخانه برای انتخاب منطقه زمانی شما
  • زمان - برای استفاده از توابع زمان
  • NTPClient - به شما امکان می دهد از سرور زمان بگیرید
  • شما همچنین باید برد ESP8266 را بارگیری کرده و دستورالعمل های همراه آن را جهت نصب برد نصب کنید.

پس از بارگیری ، IDE و کتابخانه ها را نصب می کنید. اگر دستورالعمل ها را دنبال کنید تقریباً مستقیم است.

مرحله 4: جمع آوری

xChip اصلی شما که برنامه را اجرا و پردازش می کند CW01 است. بر اساس ماژول WiFi ESP8266 است و از پروتکل گذرگاه I2C استفاده می کند. برای برنامه نویسی به CW01 ، به برنامه نویسی xChip نیاز دارید. IP01 به ما این امکان را می دهد که CW01 را از طریق درگاه USB در رایانه خود برنامه ریزی کنیم ، تنها با کلیک روی دو xChips با استفاده از اتصالات گذرگاه XC10 و قرار دادن آن در درگاه USB. بدون سیم کشی و لحیم کاری مورد نیاز است. نکته ای که باید به آن توجه داشت جهت گیری نام های شناسایی xChip است. همه آنها باید در یک جهت باشند. اکنون باید تنظیمات زیر را داشته باشید.

تصویر
تصویر

روی CW01 و IP01 با هم کلیک کنید و آن را در درگاه USB رایانه خود وارد کنید

اگر با xChips آشنا هستید ، می توانید هر xChip را با استفاده از کانکتورهای گذرگاه XC10 که می خواهید برای پروژه خود استفاده کنید متصل کرده و سپس آن را در درگاه USB قرار دهید. ما از سنسور دما SW01 و صفحه نمایش OLE0 OD01 استفاده خواهیم کرد.

تصویر
تصویر

شما می توانید تمام تراشه های خود را به هم متصل کرده و سپس آن را به درگاه USB خود وارد کنید

مرحله 5: برنامه

کد زیر را بارگیری یا کپی و در IDE Arduino خود جایگذاری کنید. اگر تغییری در کد ایجاد نمی کنید ، کافی است اطلاعات WiFi خود را در فیلدهای مربوطه وارد کنید ، مانند تصویر زیر. همچنین یک سرور زمان قابل اعتماد NTP وارد کنید. من برای این پروژه از سرور زمان Google استفاده کردم.

تصویر
تصویر

جزئیات WiFi و سرور زمان NTP

حالا کامپایل و بارگذاری کنید. مطمئن شوید که پورت و برد COM درست را در زیر منوی Tools در Arduino IDE انتخاب کرده اید. پس از بارگذاری ، زمان ، تاریخ و دما باید به صورت زیر نشان داده شود.

تصویر
تصویر

پس از بارگذاری باید موارد زیر را مشاهده کنید

مرحله 6: آن را قابل حمل کنید

اکنون می توانید دستگاه را از پورت USB خود خارج کرده و هر xChip را به سادگی جدا کنید. از آنجا که برنامه نویسی کامل است ، IP01 دیگر مورد نیاز نیست. اکنون می توانید پروژه خود را به هر شکلی که می خواهید متصل کنید ، مادامی که نام های شناسایی همه در یک جهت قرار داشته باشند. برای تغذیه واحد ما از PU01 استفاده می کنیم. این به ما امکان می دهد تا آن را از یک پاوربانک معمولی یا هر منبع تغذیه USB 5V تغذیه کنیم. من دستگاهم را مانند شکل زیر متصل کرده ام.

تصویر
تصویر

مونتاژ نهایی xChips را می توان به هر روشی که می خواهید متصل کرد.

مرحله 7: نتیجه گیری

تکمیل این پروژه 20 دقیقه به طول می انجامد. اگر زمان را در مکان خود می خواهید ، کد نمونه را در کتابخانه Timezone ببینید یا با زمان UTC حساب کنید. از سیم استفاده نشده و نیازی به لحیم کاری نیست.

مرحله 8: کد

Date_Time_Temp.ino Arduino به سادگی اطلاعات WiFi خود را در فیلدهای مربوطه وارد کرده و روی برد خود بارگذاری کنید.

#include // شامل کتابخانه اصلی برای XinaBox xCHIPS

#شامل // شامل کتابخانه صفحه نمایش OLED #شامل // شامل کتابخانه سنسور دما #شامل // شامل عملکرد ESP8266WiFi #شامل // شامل کتابخانه های زمان #شامل #شامل #شامل #شامل #شامل #شامل xSW01 SW01 ؛ // تعریف ویژگی های NTP #define ntpOffset 60 * 60 // در ثانیه #تعریف ntpInterval 60 * 1000 // در میلی ثانیه // یک سرور زمان قابل اعتماد ntp را بین دو نقل قول وارد کنید // در اینجا از سرور زمان Google ntp استفاده کرده ام # تعریف ntpAddress "time1.google.com" // سرویس گیرنده NTP UDP WiFiUDP ntpUDP را راه اندازی کنید ؛ NTPClient timeClient (ntpUDP ، ntpAddress ، ntpOffset ، ntpInterval) ؛ // دما متغیر float tempC؛ // celsius float tempF؛ // فارنهایت // جزئیات wifi شما const char* wifi_ssid = "XinaBox"؛ // wifi ssid const char* wifi_pass = "RapidIoT" ؛ // رمز وای فای شما // متغیر تاریخ و زمان String date؛ زمان فعال سازی رشته ای ؛ // متغیرهای حاوی روزها و ماهها const char * days = {"یکشنبه" ، "دوشنبه" ، "سه شنبه" ، "چهارشنبه" ، "پنجشنبه" ، "جمعه" ، "شنبه"} ؛ const char * months = {"Jan" ، "Feb" ، "Mar" ، "Apr" ، "May" ، "June" ، "July" ، "Aug" ، "Sep" ، "Oct" ، "Nov "،" Dec "}؛ const char * ampm = {"AM" ، "PM"}؛ void setup () {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 () {// اجرا شود اگر اتصال wifi برقرار باشد اگر (WiFi.status () == WL_CONNECTED) {SW01.poll ()؛ // خواندن درجه حرارت tempC = SW01.getTempC ()؛ // ذخیره دما در celcius tempF = SW01.getTempF ()؛ // ذخیره دما در فارنهایت date = ""؛ // متغیر روشن تاریخ clktime = ""؛ // متغیر زمان پاک // سرویس گیرنده ntp را به روز کنید و unix utc timestamp timeClient.update ()؛ unsigned long epochTime = timeClient.getEpochTime ()؛ // تبدیل زمان دریافت شده به time_t object time_t utc؛ utc = epochTime؛ // utc time TimeChangeRule utcRule = {"UTC" ، آخرین ، یکشنبه ، مارس ، 1 ، 0} ؛ منطقه زمانی UTC (utcRule ، utcRule) ؛ // فرمت متغیرهای زمان تاریخ += روز [روز هفته (utc) - 1] ؛ تاریخ += "،"؛ تاریخ += ماه [ماه (utc) - 1] ؛ تاریخ += ""؛ تاریخ += روز (utc) ؛ تاریخ += "،"؛ تاریخ += سال (utc) ؛ // زمان را به فرمت 12 ساعته با AM/PM و بدون ثانیه clktime += hourFormat12 (utc) قالب بندی کنید ؛ clktime += ":"؛ if (دقیقه (utc)

توصیه شده: