Satura rādītājs:

Datuma, laika un temperatūras displejs, izmantojot XinaBox: 8 soļi
Datuma, laika un temperatūras displejs, izmantojot XinaBox: 8 soļi

Video: Datuma, laika un temperatūras displejs, izmantojot XinaBox: 8 soļi

Video: Datuma, laika un temperatūras displejs, izmantojot XinaBox: 8 soļi
Video: ☢️ TFSI это жесть? Огромный гид по слабым местам и доработкам EA888 gen2. 2024, Jūlijs
Anonim
Datuma, laika un temperatūras displejs, izmantojot XinaBox
Datuma, laika un temperatūras displejs, izmantojot XinaBox

Jauks OLED displejs, kas parāda datumu, laiku un temperatūru pēc Celsija un Fārenheita, izmantojot Xinabox xChips, pamatojoties uz ESP8266.

1. darbība. Šajā projektā izmantotās lietas

Aparatūras komponenti

  • XinaBox IP01 x 1 xChip USB programmētājs, kura pamatā ir FTDI Limited FT232R
  • XinaBox CW01 x 1 xChip Wi-Fi Core, pamatojoties uz ESP8266 Wi-Fi moduli
  • XinaBox SW01 x 1 xChip Temperatūras, mitruma un atmosfēras spiediena sensors, pamatojoties uz Bosch BME280.
  • XinaBox OD01 x 1 xChip 128x64 pikseļu OLED displejs
  • XinaBox PU01 x 1 xChip USB (A tips) barošanas avots
  • XinaBox XC10 x 1 xChip kopņu savienotāji
  • 5V USB barošanas avots x 1

Programmatūras lietotnes un tiešsaistes pakalpojumi

Arduino IDE

2. darbība: stāsts

Ievads

Es izveidoju šo projektu, lai parādītu datumu, UCT laiku un temperatūru, izmantojot XinaBox xChips, kas izmanto I2C kopnes protokolu. Laiks tika iegūts no Google NTP servera. Apkārtējās vides temperatūra tika mērīta, izmantojot SW01 xChip, un tika parādīta OD01 xChip OLED displejā pēc Celsija un Fārenheita. Zemāk redzamajā attēlā redzams OLED displejs.

Attēls
Attēls

OLED attēlo datumu, laiku un temperatūru

3. darbība: lejupielādējiet nepieciešamos failus

Šim projektam jums būs nepieciešamas šādas bibliotēkas un programmatūra.

  • Arduino IDE - attīstības programmatūra, kurā jūs kodēsit
  • xSW01 - temperatūras sensoru bibliotēka
  • xCore - XinaBox xChips galvenā bibliotēka
  • xOD01 - OLED displeja bibliotēka.
  • Laika josla - bibliotēka laika joslas izvēlei
  • Laiks - lai izmantotu laika funkcijas
  • NTPClient - ļauj iegūt laiku no servera
  • Lai instalētu dēli, jums būs jālejupielādē arī ESP8266 tāfele un jāizpilda tai pievienotie norādījumi

Pēc lejupielādes instalēsit IDE un bibliotēkas. Tas ir diezgan taisni, ja sekojat norādījumiem.

4. solis: salieciet

Jūsu galvenais xChip, kas izpildīs un apstrādās programmu, ir CW01. Tas ir balstīts uz ESP8266 WiFi moduli un izmanto I2C kopnes protokolu. Lai ieprogrammētu CW01, jums būs nepieciešama programmēšana xChip. IP01 ļauj mums programmēt CW01, izmantojot mūsu datora USB portu, vienkārši noklikšķinot kopā uz abiem xChip, izmantojot XC10 kopnes savienotājus, un ievietojot to USB portā. Nav nepieciešama elektroinstalācija un lodēšana. Viena lieta, kas jāņem vērā, ir xChip identifikācijas nosaukumu orientācija. Viņiem visiem jābūt orientētiem vienā virzienā. Tagad jums vajadzētu būt šādai iestatīšanai.

Attēls
Attēls

Noklikšķiniet kopā CW01 un IP01 un ievietojiet to datora USB portā

Ja esat iepazinies ar xChips, varat savienot katru xChip kopā, izmantojot XC10 kopnes savienotājus, kurus vēlaties izmantot savam projektam, un pēc tam ievietojiet to USB portā. Mēs izmantosim SW01 temperatūras sensoru un OD01 OLED displeju.

Attēls
Attēls

Jūs varat savienot visas mikroshēmas kopā un pēc tam ievietot to USB portā

5. solis: programma

Lejupielādējiet vai kopējiet un ielīmējiet zemāk esošo kodu savā Arduino IDE. Ja neveicat nekādas izmaiņas kodā, vienkārši ievadiet savu WiFi informāciju attiecīgajos laukos, kā parādīts zemāk. Ievadiet arī uzticamu NTP laika serveri. Šim projektam esmu izmantojis Google laika serveri.

Attēls
Attēls

WiFi informācija un NTP laika serveris

Tagad apkopojiet un augšupielādējiet. Pārliecinieties, vai Arduino IDE rīku izvēlnē esat izvēlējies pareizo COM portu un tāfeli. Kad augšupielādēts, laikam, datumam un temperatūrai ir jābūt redzamai zemāk.

Attēls
Attēls

Pēc augšupielādes jums vajadzētu redzēt sekojošo

6. darbība: padariet to pārnēsājamu

Tagad jūs varat noņemt ierīci no USB porta un atdalīt katru xChip, vienkārši atdalot to. Tā kā programmēšana ir pabeigta, IP01 vairs nav nepieciešams. Tagad jūs varat savienot savu projektu jebkurā vēlamajā veidā, ja vien identifikācijas nosaukumi ir vērsti vienā virzienā. Lai barotu savu ierīci, mēs izmantosim PU01. Tas ļauj mums to barot no parastās strāvas bankas vai jebkura 5 V USB barošanas avota. Esmu pievienojis savu, kā parādīts zemāk.

Attēls
Attēls

Galīgā montāža. xChips var savienot jebkurā vēlamajā veidā.

7. solis. Secinājums

Šī projekta pabeigšana prasīs 20 minūtes. Ja vēlaties, lai laiks būtu jūsu atrašanās vietā, apsveriet iespēju aplūkot koda paraugu Timezone bibliotēkā vai veiciet aritmētiku ar UTC laiku. Netika izmantoti vadi un nebija nepieciešama lodēšana.

8. darbība: kods

Date_Time_Temp.ino Arduino Vienkārši ievadiet savu WiFi informāciju attiecīgajos laukos un augšupielādējiet savā dēlī.

#include // iekļaut XinaBox xCHIPS galveno bibliotēku

#iekļaut // iekļaut OLED displeja bibliotēku #iekļaut // iekļaut temperatūras sensoru bibliotēku #iekļaut // iekļaut ESP8266WiFi funkcionalitāti #iekļaut // iekļaut laika bibliotēkas #iekļaut #iekļaut #iekļaut #iekļaut #iekļaut #iekļaut xSW01 SW01; // definējiet NTP rekvizītus #define ntpOffset 60 * 60 // sekundēs #define ntpInterval 60 * 1000 // milisekundēs // ievietojiet uzticamu ntp laika serveri starp pēdiņām // šeit es izmantoju google ntp laika serveri # definēt ntpAddress "time1.google.com" // iestatīt NTP UDP klientu WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // temperatūras mainīgais pludiņa tempC; // Celsija pludiņa tempF; // fahrenheit // jūsu wifi informācija const char* wifi_ssid = "XinaBox"; // jūsu wifi ssid const char* wifi_pass = "RapidIoT"; // jūsu wifi parole // datuma un laika mainīgais String date; Stīgu darbības laiks; // mainīgie, kas satur dienas un mēnešus const char * days = {"svētdiena", "pirmdiena", "otrdiena", "trešdiena", "ceturtdiena", "piektdiena", "sestdiena"}; 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; // inicializēt temperatūru līdz nullei timeClient.begin (); // palaist NTP UDP klientu // sākt seriālo komunikāciju Serial.begin (115200); // sākt i2c komunikāciju un iestatīt tapas Wire.begin (2, 14); // sākuma temperatūras sensors SW01.begin (); // sākt OLED displeju OLED.begin (); // notīrīt OLED displeju OD01.clear (); // izveidot wifi savienojumu wifi_connect (); kavēšanās (1000); } void loop () {// palaist, ja ir izveidots wifi savienojums, ja (WiFi.status () == WL_CONNECTED) {SW01.poll (); // lasīt temperatūru tempC = SW01.getTempC (); // uzglabāt temperatūru celsijā tempF = SW01.getTempF (); // uzglabāt temperatūru pēc Fārenheita datuma = ""; // notīrīt datuma mainīgo clktime = ""; // notīrīt laika mainīgo // atjaunināt ntp klientu un iegūt unix utc timestamp timeClient.update (); neparakstīts garš epochTime = timeClient.getEpochTime (); // pārvērst saņemto laika zīmogu par time_t objektu time_t utc; utc = epochTime; // utc laiks TimeChangeRule utcRule = {"UTC", Last, Sun, Mar, 1, 0}; Laika josla UTC (utcRule, utcRule); // formatēt laika mainīgos datums += dienas [nedēļas diena (utc) - 1]; datums += ","; datums += mēneši [mēnesis (utc) - 1]; datums += ""; datums += diena (utc); datums += ","; datums += gads (utc); // formatēt laiku līdz 12 stundu formātam ar AM/PM un bez sekundēm clktime += hourFormat12 (utc); clktime += ":"; ja (minūte (utc)

Ieteicams: