Cuprins:

Afișare dată, oră și temperatură folosind XinaBox: 8 pași
Afișare dată, oră și temperatură folosind XinaBox: 8 pași

Video: Afișare dată, oră și temperatură folosind XinaBox: 8 pași

Video: Afișare dată, oră și temperatură folosind XinaBox: 8 pași
Video: Ceas de masa cu ecran LED tip oglinda curbata, afisare ora, data, temperatura - Nestemag.ro 2024, Iulie
Anonim
Afișare dată, oră și temperatură utilizând XinaBox
Afișare dată, oră și temperatură utilizând XinaBox

Ecran OLED răcoros care arată data, ora și temperatura în grade Celsius și Fahrenheit folosind Xinabox xChips bazat pe ESP8266.

Pasul 1: Lucruri utilizate în acest proiect

Componente hardware

  • Programator XinaBox IP01 x 1 xChip USB bazat pe FT232R de la FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core bazat pe modulul Wi-Fi ESP8266
  • XinaBox SW01 x 1 xChip Senzor de temperatură, umiditate și presiune atmosferică bazat pe BME280 de la Bosch.
  • Afișaj OLED XinaBox OD01 x 1 xChip 128x64 pixeli
  • Sursă de alimentare XinaBox PU01 x 1 xChip USB (tip A)
  • Conectori XinaBox XC10 x 1 xChip Bus
  • Sursă de alimentare USB 5V x 1

Aplicații software și servicii online

IDE Arduino

Pasul 2: Poveste

Introducere

Am construit acest proiect pentru a afișa data, ora UCT și temperatura folosind XinaBox xChips care utilizează protocolul de bus I2C. Ora a fost preluată de pe un server Google NTP. Temperatura ambiantă a fost măsurată folosind SW01 xChip și a fost afișată pe afișajul OD01 xChip OLED în Celsius și Fahrenheit. Imaginea de mai jos arată afișajul OLED.

Imagine
Imagine

OLED afișează data, ora și temperatura

Pasul 3: Descărcați fișierele necesare

Veți avea nevoie de următoarele biblioteci și software pentru acest proiect.

  • Arduino IDE - Software de dezvoltare în care veți codifica
  • xSW01 - Biblioteca senzorului de temperatură
  • xCore - Bibliotecă de bază pentru XinaBox xChips
  • xOD01 - OLED Display library.
  • Fus orar - Biblioteca pentru a alege fusul orar
  • Timp - Pentru a utiliza funcțiile de timp
  • NTPClient - Vă permite să obțineți timp de la un server
  • De asemenea, va trebui să descărcați placa ESP8266 și să urmați instrucțiunile care o însoțesc pentru a avea placa instalată

Odată descărcat, veți instala IDE și bibliotecile. Este destul de simplu dacă urmați instrucțiunile.

Pasul 4: Asamblați

Principalul dvs. xChip care va executa și procesa programul este CW01. Se bazează pe modulul WiFi ESP8266 și folosește protocolul de bus I2C. Pentru a programa pe CW01, veți avea nevoie de o xChip de programare. IP01 ne permite să programăm CW01 prin portul USB de pe computerul nostru, pur și simplu făcând clic pe cele două xChips folosind conectorii XC10 și introducându-l în portul USB. Nu sunt necesare cabluri și nici lipire. Un lucru de luat în considerare este orientarea numelor de identificare xChip. Toți ar trebui să fie orientați în aceeași direcție. Acum ar trebui să aveți următoarea configurare.

Imagine
Imagine

Faceți clic împreună CW01 și IP01 și introduceți-le în portul USB de pe computer

Dacă sunteți familiarizați cu xChips, puteți conecta fiecare xChip împreună utilizând conectorii de magistrală XC10 pe care doriți să îi utilizați pentru proiectul dvs. și apoi introduceți-l în portul USB. Vom folosi senzorul de temperatură SW01 și afișajul OLED OD01.

Imagine
Imagine

Puteți conecta toate cipurile împreună și apoi introduceți-le în portul USB

Pasul 5: Program

Descărcați sau copiați și lipiți codul de mai jos în ID-ul dvs. Arduino. Dacă nu efectuați modificări la cod, pur și simplu introduceți detaliile WiFi în câmpurile respective, așa cum se arată mai jos. De asemenea, introduceți un server de timp NTP de încredere. Am folosit un server Google Time pentru acest proiect.

Imagine
Imagine

Detalii WiFi și server de timp NTP

Acum compilați și încărcați. Asigurați-vă că ați selectat portul și placa COM corecte în meniul de instrumente din Arduino IDE. După încărcare, ora, data și temperatura ar trebui să apară după cum urmează.

Imagine
Imagine

După încărcare, ar trebui să vedeți următoarele

Pasul 6: Faceți-l portabil

Acum puteți să scoateți unitatea din portul USB și să separați fiecare xChip pur și simplu separându-l. Deoarece programarea este completă, IP01 nu mai este necesar. Acum puteți conecta proiectul în orice mod doriți, cu condiția ca numele de identificare să fie orientate în aceeași direcție. Pentru a alimenta unitatea noastră vom folosi PU01. Acest lucru ne permite să-l alimentăm de la o bancă de alimentare normală sau de la orice sursă de alimentare USB de 5V. Am conectat-o pe a mea așa cum se arată mai jos.

Imagine
Imagine

Asamblarea finala. xChip-urile pot fi conectate în orice mod doriți.

Pasul 7: Concluzie

Acest proiect va dura 20 de minute pentru finalizare. Dacă doriți ora în locația dvs., luați în considerare exemplul de cod din biblioteca fusului orar sau faceți ceva aritmetică cu ora UTC. Nu s-au folosit fire și nu a fost necesară lipirea.

Pasul 8: Cod

Date_Time_Temp.ino Arduino Pur și simplu introduceți detaliile WiFi în câmpurile respective și încărcați-le pe tablă.

#include // include biblioteca de bază pentru XinaBox xCHIPS

#include // include OLED display library #include // include the sensor sensor library #include // include ESP8266WiFi functional #include // include biblioteci de timp #include #include #include #include #include xSW01 SW01; // definiți proprietățile NTP #define ntpOffset 60 * 60 // în secunde #define ntpInterval 60 * 1000 // în milisecunde // introduceți un server de timp ntp de încredere între ghilimele duble // aici am folosit un server de timp google ntp # definiți ntpAddress „time1.google.com” // configurați clientul NTP UDP WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // variabilă de temperatură floC tempC; // celsius float tempF; // fahrenheit // detaliile dvs. wifi const char * wifi_ssid = "XinaBox"; // Wifi-ul tău const char * wifi_pass = "RapidIoT"; // parola wifi // variabila de dată și oră Data șirului; String clktime; // variabile care conțin zile și luni const char * days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; 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; // inițializează temperatura la zero timeClient.begin (); // pornește clientul NTP UDP // pornește comunicarea în serie Serial.begin (115200); // porniți comunicarea i2c și setați pinii Wire.begin (2, 14); // pornește senzorul de temperatură SW01.begin (); // pornește afișajul OLED OLED.begin (); // ștergeți afișajul OLED OD01.clear (); // stabilirea conexiunii wifi wifi_connect (); întârziere (1000); } void loop () {// rulați dacă conexiunea wifi este stabilită dacă (WiFi.status () == WL_CONNECTED) {SW01.poll (); // citiți temperatura tempC = SW01.getTempC (); // stocați temp în celcius tempF = SW01.getTempF (); // store temp in fahrenheit date = ""; // șterge variabila de dată clktime = ""; // ștergeți variabila de timp // actualizați clientul ntp și obțineți unix utc timestamp timeClient.update (); nesemnat epochTime lung = timeClient.getEpochTime (); // converti timbrul primit în obiectul time_t time_t utc; utc = epochTime; // utc time TimeChangeRule utcRule = {"UTC", Last, Sun, Mar, 1, 0}; Timezone UTC (utcRule, utcRule); // formatează variabilele de timp data + = zile [ziua săptămânii (utc) - 1]; data + = ","; data + = luni [luna (utc) - 1]; data + = ""; data + = zi (utc); data + = ","; data + = anul (utc); // formatați ora în format de 12 ore cu AM / PM și fără secunde clktime + = hourFormat12 (utc); clktime + = ":"; if (minut (utc)

Recomandat: