Съдържание:

Показване на дата, час и температура с помощта на XinaBox: 8 стъпки
Показване на дата, час и температура с помощта на XinaBox: 8 стъпки

Видео: Показване на дата, час и температура с помощта на XinaBox: 8 стъпки

Видео: Показване на дата, час и температура с помощта на XinaBox: 8 стъпки
Видео: Proxmox - добавление в Home Assistant датчиков температуры CPU, Chipset, SSD 2024, Ноември
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 от Bosch.
  • XinaBox OD01 x 1 xChip 128x64 пиксел OLED дисплей
  • XinaBox PU01 x 1 xChip USB (тип А) Захранване
  • XinaBox XC10 x 1 xChip Bus конектори
  • 5V USB захранване x 1

Софтуерни приложения и онлайн услуги

Arduino IDE

Стъпка 2: История

Въведение

Изградих този проект за показване на датата, времето и температурата на UCT, използвайки XinaBox xChips, който използва протокола за шина I2C. Времето е извлечено от google NTP сървър. Температурата на околната среда беше измерена с помощта на SW01 xChip и беше показана на OL01 дисплея OD01 xChip в градуси по Целзий и Фаренхайт. Изображението по -долу показва 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 и OL01 дисплея OD01.

Образ
Образ

Можете да свържете всичките си чипове заедно и след това да ги поставите във вашия USB порт

Стъпка 5: Програма

Изтеглете или копирайте и поставете кода по -долу във вашата Arduino IDE. Ако не правите никакви промени в кода, просто въведете вашите WiFi данни в съответните им полета, както е показано по -долу. Също така въведете надежден NTP сървър за време. Използвах сървър за време на Google за този проект.

Образ
Образ

Подробности за WiFi и NTP сървър за време

Сега компилирайте и качете. Уверете се, че сте избрали правилния COM порт и платка под менюто с инструменти в Arduino IDE. След като бъдат качени, часът, датата и температурата трябва да се показват, както е показано по -долу.

Образ
Образ

След качването трябва да видите следното

Стъпка 6: Направете го преносим

Вече можете да извадите устройството от вашия USB порт и да отделите всеки xChip, като просто го разглобите. Тъй като програмирането е завършено, IP01 вече не се изисква. Вече можете да свържете вашия проект по какъвто и да е начин, стига всички идентификационни имена да са ориентирани в една и съща посока. За захранване на нашето устройство ще използваме PU01. Това ни позволява да го захранваме от нормална банка за захранване или от всяко 5V USB захранване. Свързах моята, както е показано по -долу.

Образ
Образ

Окончателно сглобяване. xChips могат да бъдат свързани по всякакъв начин, който желаете.

Стъпка 7: Заключение

Този проект ще отнеме 20 минути, за да бъде завършен. Ако искате времето във вашето местоположение, помислете за разглеждане на примерния код в библиотеката на часовата зона или направете някаква аритметика с UTC времето. Не са използвани проводници и не се изисква запояване.

Стъпка 8: Код

Date_Time_Temp.ino Arduino Просто въведете данните си за WiFi в съответните им полета и качете на дъската си.

#include // включва основна библиотека за XinaBox xCHIPS

#include // включва OLED дисплейна библиотека #include // включва библиотека с температурни сензори #include // включва ESP8266WiFi функционалност #include // включва библиотеки с време #include #include #include #include #include xSW01 SW01; // дефинирам свойства на NTP #дефинирам ntpOffset 60 * 60 // за секунди #дефинирам ntpInterval 60 * 1000 // за милисекунди // вмъкна надежден сървър за време ntp между двойните кавички // тук използвах сървър за време на ntp на Google # определете ntpAddress "time1.google.com" // настройте NTP UDP клиент WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // температурна променлива поплавък tempC; // поплавък по Целзий tempF; // фаренхайт // вашите данни за wifi const char* wifi_ssid = "XinaBox"; // вашият wifi ssid const char* wifi_pass = "RapidIoT"; // вашата парола за wifi // променлива за дата и час String date; Низ clktime; // променливи, съдържащи дни и месеци const char * дни = {"неделя", "понеделник", "вторник", "сряда", "четвъртък", "петък", "събота"}; const char * months = {"Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov "," Дек "}; 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 (); // съхранявайте temp в Celcius tempF = SW01.getTempF (); // съхраняване на температура в дата по Фаренхайт = ""; // изчистване на променлива за дата clktime = ""; // изчистване на променлива на времето // актуализиране на ntp клиента и получаване на unix utc времева марка timeClient.update (); unsigned long epochTime = timeClient.getEpochTime (); // преобразуваме получената времева маркировка в time_t обект time_t utc; utc = epochTime; // utc time TimeChangeRule utcRule = {"UTC", Last, Sun, Mar, 1, 0}; Часова зона UTC (utcRule, utcRule); // форматиране на времеви променливи дата += дни [делничен ден (utc) - 1]; дата += ","; дата += месеци [месец (utc) - 1]; дата += ""; дата += ден (utc); дата += ","; дата += година (utc); // форматиране на времето до 12-часов формат с AM/PM и без секунди clktime += hourFormat12 (utc); clktime += ":"; ако (минута (utc)

Препоръчано: