Shfaqja e datës, kohës dhe temperaturës duke përdorur XinaBox: 8 hapa
Shfaqja e datës, kohës dhe temperaturës duke përdorur XinaBox: 8 hapa
Anonim
Shfaqja e datës, kohës dhe temperaturës duke përdorur XinaBox
Shfaqja e datës, kohës dhe temperaturës duke përdorur XinaBox

Ekran i ftohtë OLED që tregon datën, kohën dhe temperaturën në Celsius dhe Fahrenheit duke përdorur Xinabox xChips bazuar në ESP8266.

Hapi 1: Gjërat e përdorura në këtë projekt

Komponentët e harduerit

  • Programues XinaBox IP01 x 1 xChip USB bazuar në FT232R Nga FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core bazuar në ESP8266 Wi-Fi Modul
  • XinaBox SW01 x 1 xChip Sensori i temperaturës, lagështisë dhe presionit atmosferik bazuar në BME280 nga Bosch.
  • Ekran OLED XinaBox OD01 x 1 xChip 128x64 Pixel
  • Furnizimi me energji XinaBox PU01 x 1 xChip USB (Lloji A)
  • Lidhës të autobusëve XinaBox XC10 x 1 xChip
  • Furnizimi me energji USB 5V x 1

Aplikacionet softuerike dhe shërbimet online

Arduino IDE

Hapi 2: Histori

Prezantimi

Unë e ndërtova këtë projekt për të shfaqur datën, kohën dhe temperaturën UCT duke përdorur XinaBox xChips që përdor protokollin e autobusit I2C. Koha u mor nga një server Google NTP. Temperatura e ambientit u mat duke përdorur SW01 xChip dhe u shfaq në ekranin OLED të OD01 xChip në Celsius dhe Fahrenheit. Imazhi më poshtë tregon ekranin OLED.

Imazhi
Imazhi

OLED që shfaq datën, kohën dhe temperaturën

Hapi 3: Shkarkoni skedarët e nevojshëm

Për këtë projekt do të keni nevojë për bibliotekat dhe softuerin e mëposhtëm.

  • Arduino IDE - Softuer zhvillimi në të cilin do të kodoni
  • xSW01 - Biblioteka e sensorit të temperaturës
  • xCore - Biblioteka kryesore për XinaBox xChips
  • xOD01 - Biblioteka e ekranit OLED.
  • Zona kohore - Biblioteka për të zgjedhur zonën tuaj kohore
  • Koha - Për të përdorur funksionet e kohës
  • NTPClient - Ju mundëson të merrni kohë nga një server
  • Ju gjithashtu do të duhet të shkarkoni bordin ESP8266 dhe të ndiqni udhëzimet që e shoqërojnë atë në mënyrë që të instaloni tabelën

Pasi të keni shkarkuar, do të instaloni IDE dhe bibliotekat. Isshtë mjaft e drejtë nëse ndiqni udhëzimet.

Hapi 4: Mblidhni

XChip juaj kryesor që do të ekzekutojë dhe përpunojë programin është CW01. Bazohet në Modulin WiFi ESP8266 dhe përdor protokollin e autobusit I2C. Për të programuar në CW01, do t'ju duhet një programim xChip. IP01 na lejon të programojmë CW01 përmes portës USB në kompjuterin tonë thjesht duke klikuar së bashku dy xChips duke përdorur lidhësit e autobusit XC10 dhe duke e futur atë në portën USB. Asnjë instalime elektrike dhe asnjë saldim nuk kërkohet. Një gjë që duhet marrë parasysh është orientimi i emrave identifikues të xChip. Të gjithë ata duhet të orientohen në të njëjtin drejtim. Tani duhet të keni konfigurimin e mëposhtëm.

Imazhi
Imazhi

Klikoni së bashku CW01 dhe IP01 dhe futeni në portën USB të kompjuterit tuaj

Nëse jeni të njohur me xChips ju mund të lidhni çdo xChip së bashku duke përdorur lidhësit e autobusit XC10 që dëshironi të përdorni për projektin tuaj dhe pastaj futeni atë në portën USB. Ne do të përdorim sensorin e temperaturës SW01 dhe ekranin OLED OD01.

Imazhi
Imazhi

Ju mund t'i lidhni të gjitha patate të skuqura së bashku dhe pastaj t'i futni në portën tuaj USB

Hapi 5: Programi

Shkarkoni ose kopjoni dhe ngjisni kodin më poshtë në Arduino IDE tuaj. Nëse nuk po bëni ndonjë ndryshim në kod thjesht shkruani detajet tuaja WiFi në fushat e tyre përkatëse siç tregohet më poshtë. Gjithashtu futni një server të besueshëm të kohës NTP. Unë kam përdorur një server të kohës Google për këtë projekt.

Imazhi
Imazhi

Detajet WiFi dhe serveri i kohës NTP

Tani përpiloni dhe ngarkoni. Sigurohuni që keni zgjedhur portën dhe bordin e duhur COM nën menunë e mjeteve në Arduino IDE. Pasi të jetë ngarkuar, koha, data dhe temperatura duhet të shfaqen si më poshtë.

Imazhi
Imazhi

Pas ngarkimit, duhet të shihni sa vijon

Hapi 6: Bëni atë të lëvizshëm

Tani mund ta hiqni njësinë nga porta juaj USB dhe ta ndani secilën xChip thjesht duke e ndarë atë. Meqenëse programimi është i plotë, IP01 nuk kërkohet më. Tani mund ta lidhni projektin tuaj në çfarëdo mënyre që dëshironi për sa kohë që emrat e identifikimit janë të orientuar të gjithë në të njëjtin drejtim. Për të fuqizuar njësinë tonë ne do të përdorim PU01. Kjo na lejon ta furnizojmë atë nga një bankë normale e energjisë ose ndonjë furnizim me energji USB 5V. Unë e kam lidhur timen siç tregohet më poshtë.

Imazhi
Imazhi

Asambleja përfundimtare. xChips mund të lidhen në çdo mënyrë që dëshironi.

Hapi 7: Përfundimi

Ky projekt do të marrë 20 minuta për të përfunduar. Nëse doni kohën në vendndodhjen tuaj, merrni parasysh shikimin e kodit shembull në bibliotekën Timezone ose bëni ndonjë aritmetikë me kohën UTC. Nuk janë përdorur tela dhe nuk është kërkuar bashkim.

Hapi 8: Kodi

Date_Time_Temp.ino Arduino Thjesht futni të dhënat tuaja WiFi në fushat e tyre përkatëse dhe ngarkoni në tabelën tuaj.

#include // përfshijë bibliotekën bazë për XinaBox xCHIPS

#përfshi // përfshi bibliotekën e ekranit OLED #përfshi // përfshi bibliotekën e sensorit të temperaturës #përfshi // përfshi funksionimin ESP8266WiFi #përfshi // përfshi bibliotekat e kohës #përfshi #përfshi #përfshi #përfshi #përfshi #xSW01 SW01; // përcaktoni vetitë NTP #përcaktoni ntpOffset 60 * 60 // në sekonda #përcaktoni ntpInterval 60 * 1000 // në milisekonda // futni një server të besueshëm të kohës ntp midis thonjëzave të dyfishta // këtu kam përdorur një server të kohës Google ntp # përcakto ntpAddress "time1.google.com" // konfiguro klientin NTP UDP WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // temperatura e ndryshueshme e notimit tempC; // celsius noton tempF; // fahrenheit // detajet tuaja wifi const char* wifi_ssid = "XinaBox"; // wifi juaj ssid const char* wifi_pass = "RapidIoT"; // fjalëkalimi yt wifi // data dhe ora e ndryshueshme Data e vargut; Koha e vargut; // variablat që përmbajnë ditë dhe muaj konstat * ditë = {"e diel", "e hënë", "e martë", "e mërkurë", "e enjte", "e premte", "e shtunë"}; const char * muaj = {"Jan", "Shkurt", "Mar", "Prill", "Maj", "Qershor", "Korrik", "Gusht", "Shtator", "Tetor", "Nentor "," Dhjetor "}; const char * ampm = {"AM", "PM"}; void setup () {tempC = tempF = 0; // inicio temperaturën në zero timeClient.begin (); // filloni klientin NDP UDP // filloni komunikimin serik Serial.begin (115200); // filloni komunikimin i2c dhe vendosni kunjat Wire.begin (2, 14); // filloni sensorin e temperaturës SW01.filloni (); // filloni shfaqjen OLED OLED.filloni (); // pastroni ekranin OLED OD01.qartë (); // krijoni lidhje wifi wifi_connect (); vonesa (1000); } void loop () {// ekzekuto nëse krijohet lidhje wifi nëse (WiFi.status () == WL_CONNECTED) {SW01.poll (); // lexo temperaturën tempC = SW01.getTempC (); // ruaj temp në celcius tempF = SW01.getTempF (); // ruani temp në datën fahrenheit = ""; // ndrysho datën e ndryshueshme clktime = ""; // ndrysho kohën e ndryshueshme // përditëso klientin ntp dhe merr unix utc timestamp timeClient.update (); epochTime e gjatë e panënshkruar = timeClient.getEpochTime (); // shndërro vulën e marrë të kohës në time_t objekt time_t utc; utc = epochTime; // koha utc TimeChangeRule utcRule = {"UTC", E fundit, Diell, Mars, 1, 0}; Zona kohore UTC (utcRule, utcRule); // formatoni ndryshoret e kohës data += ditë [ditë jave (utc) - 1]; data += ","; data += muaj [muaj (utc) - 1]; data += ""; data += dita (utc); data += ","; data += viti (utc); // formatoni kohën në formatin 12-orësh me AM/PM dhe pa sekonda clktime += hourFormat12 (utc); clktime += ":"; nëse (minutë (utc)