XinaBox көмегімен күнді, уақытты және температураны көрсету: 8 қадам
XinaBox көмегімен күнді, уақытты және температураны көрсету: 8 қадам
Anonim
XinaBox көмегімен күнді, уақытты және температураны көрсету
XinaBox көмегімен күнді, уақытты және температураны көрсету

ESP8266 негізделген Xinabox xChips көмегімен Цельсий мен Фаренгейтте күнді, уақытты және температураны көрсететін салқын OLED дисплейі.

1 -қадам: Бұл жобада қолданылатын заттар

Аппараттық компоненттер

  • XinaBox IP01 x 1 xChip USB бағдарламашысы FTDI Limited компаниясының FT232R негізіндегі
  • ESP8266 Wi-Fi модуліне негізделген XinaBox CW01 x 1 xChip Wi-Fi Core
  • XinaBox SW01 x 1 xChip Bosch BME280 негізінде температура, ылғалдылық және атмосфералық қысым сенсоры.
  • XinaBox OD01 x 1 xChip 128x64 пикселдік OLED дисплейі
  • XinaBox PU01 x 1 xChip USB (А түрі) қуат көзі
  • XinaBox XC10 x 1 xChip шиналық қосқыштары
  • 5В USB қуат көзі x 1

Бағдарламалық жасақтама және онлайн қызметтері

Arduino IDE

2 -қадам: Әңгіме

Кіріспе

Мен бұл жобаны I2C шина протоколын қолданатын XinaBox xChips көмегімен күнді, UCT уақытын және температураны көрсету үшін жасадым. Уақыт Google NTP серверінен алынды. Қоршаған орта температурасы SW01 xChip көмегімен өлшенді және Цельсий мен Фаренгейттегі OD01 xChip OLED дисплейінде көрсетілді. Төмендегі суретте OLED дисплейі көрсетілген.

Кескін
Кескін

Күнді, уақытты және температураны көрсететін OLED

3 -қадам: Қажетті файлдарды жүктеңіз

Бұл жоба үшін сізге келесі кітапханалар мен бағдарламалық қамтамасыз ету қажет болады.

  • Arduino IDE - Бағдарламалық жасақтама, онда сіз код кодыңыз
  • xSW01 - Температура сенсорының кітапханасы
  • xCore - XinaBox xChips үшін негізгі кітапхана
  • xOD01 - OLED дисплей кітапханасы.
  • Уақыт белдеуі - уақыт белдеуін таңдауға арналған кітапхана
  • Уақыт - Уақыт функцияларын пайдалану үшін
  • NTPClient - Серверден уақыт алуға мүмкіндік береді
  • Сондай -ақ, тақтаны орнату үшін сізге ESP8266 тақтасын жүктеп алып, онымен бірге келетін нұсқауларды орындау қажет.

Жүктелгеннен кейін сіз IDE мен кітапханаларды орнатасыз. Егер сіз нұсқауларды орындасаңыз, бұл өте қарапайым.

4 -қадам: жинау

Бағдарламаны орындайтын және өңдейтін сіздің негізгі xChip - CW01. Ол ESP8266 WiFi модуліне негізделген және I2C шиналық протоколын қолданады. CW01 -ге бағдарламалау үшін сізге xChip бағдарламалау қажет болады. IP01 бізге CW01 бағдарламасын компьютердегі USB порты арқылы бағдарламалауға мүмкіндік береді, тек XC10 шиналық коннекторларының көмегімен екі xChip -ті бірге басу арқылы және оны USB портына енгізу арқылы. Ешқандай сымдар мен дәнекерлеу қажет емес. Назар аударатын бір нәрсе - xChip сәйкестендіру атауларының бағыты. Олардың барлығы бір бағытта бағытталуы керек. Енді сізде келесі параметрлер болуы керек.

Кескін
Кескін

CW01 және IP01 бірге басыңыз және оны компьютердің USB портына салыңыз

Егер сіз xChips -пен таныс болсаңыз, сіз әрбір xChip -ті жобаңыз үшін пайдаланғыңыз келетін XC10 шиналық коннекторларының көмегімен қосуға болады, содан кейін оны USB портына енгізе аласыз. Біз SW01 температура сенсоры мен OD01 OLED дисплейін қолданамыз.

Кескін
Кескін

Сіз барлық чиптерді біріктіріп, USB портына енгізе аласыз

5 -қадам: Бағдарлама

Төмендегі кодты жүктеңіз немесе көшіріңіз және Arduino IDE -ге қойыңыз. Егер сіз кодқа ешқандай өзгеріс енгізбесеңіз, төменде көрсетілгендей өрістерге WiFi мәліметтерін енгізіңіз. Сондай -ақ сенімді NTP уақыт серверін енгізіңіз. Мен бұл жоба үшін Google уақыт серверін қолдандым.

Кескін
Кескін

WiFi мәліметтері мен NTP уақыт сервері

Енді құрастырыңыз және жүктеңіз. Arduino IDE құралдар мәзірінде дұрыс COM порты мен тақтаны таңдағаныңызға көз жеткізіңіз. Жүктелгеннен кейін уақыт, күн және температура төменде көрсетілгендей болуы керек.

Кескін
Кескін

Жүктелгеннен кейін сіз келесі ақпаратты көресіз

6 -қадам: оны портативті етіп жасаңыз

Енді сіз құрылғыны USB портынан алып тастай аласыз және әрбір xChip -ті жай ғана ажырату арқылы бөле аласыз. Бағдарламалау аяқталғандықтан, IP01 енді қажет емес. Сәйкестендіру атаулары бір бағытта болса, енді сіз өзіңіздің жобаңызды кез келген тәсілмен байланыстыра аласыз. Құрылғыны қуаттандыру үшін біз PU01 қолданамыз. Бұл оны қалыпты қуат банкінен немесе кез келген 5В USB қуат көзінен қуаттандыруға мүмкіндік береді. Мен өзімді төменде көрсетілгендей жалғадым.

Кескін
Кескін

Қорытынды жинау. xChips қалағаныңызша қосыла алады.

7 -қадам: Қорытынды

Бұл жобаны аяқтауға 20 минут уақыт кетеді. Егер сіз өзіңіздің орналасқан жеріңізде уақытты қаласаңыз, Timezone кітапханасындағы мысал кодын қараңыз немесе 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 қасиеттерін анықтаңыз #define ntpOffset 60 * 60 // секундтарда #define ntpInterval 60 * 1000 // милисекундтарда // қос тырнақшаның арасына сенімді ntp уақыт серверін енгізіңіз // мұнда мен Google ntp уақыт серверін қолдандым # ntpAddress «time1.google.com» анықтаңыз // NTP UDP клиентін WiFiUDP ntpUDP орнатыңыз; NTPClient timeClient (ntPUDP, ntpAddress, ntpOffset, ntpInterval); // температураның өзгермелі өзгермелі қалқыма tempC; // celsius float tempF; // fahrenheit // сіздің WiFi мәліметтері const char* wifi_ssid = «XinaBox»; // сіздің wifi ssid const char* wifi_pass = «RapidIoT»; // сіздің WiFi құпия сөзіңіз // күн мен уақыт айнымалысы String күні; Жолдың жұмыс уақыты; // күндері мен айлары бар айнымалылар const char * days = {«Жексенбі», «Дүйсенбі», «Сейсенбі», «Сәрсенбі», «Бейсенбі», «Жұма», «Сенбі»}; const char * months = {«қаңтар», «ақпан», «наурыз», «сәуір», «мамыр», «маусым», «шілде», «тамыз», «қыркүйек», «қазан», «қараша» «,» Желтоқсан «}; 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 (); // сақтау температурасы фаренгейт күнінде = «»; // clear date айнымалысы clktime = «»; // уақыт айнымалысын тазарту // ntp клиентін жаңарту және unix utc уақыт белгісін алу timeClient.update (); белгісіз ұзақ epochTime = timeClient.getEpochTime (); // алынған уақыт белгісін time_t нысанына түрлендіру time_t utc; utc = epochTime; // utc уақыты TimeChangeRule utcRule = {«UTC», Соңғы, Күн, Наурыз, 1, 0}; Уақыт белдеуінің UTC (utcRule, utcRule); // форматты уақыт айнымалылары дата += күндер [weekday (utc) - 1]; күн += «,»; күн += айлар [ай (utc) - 1]; күні += «»; күн += күн (utc); күн += «,»; күн += жыл (utc); // уақытты AM/PM көмегімен 12 сағаттық форматқа пішімдеңіз және секунд жоқ clktime += hourFormat12 (utc); clktime += «:»; егер (минут (utc)

Ұсынылған: