Sisukord:

Kuupäeva, kellaaja ja temperatuuri kuvamine XinaBoxi abil: 8 sammu
Kuupäeva, kellaaja ja temperatuuri kuvamine XinaBoxi abil: 8 sammu

Video: Kuupäeva, kellaaja ja temperatuuri kuvamine XinaBoxi abil: 8 sammu

Video: Kuupäeva, kellaaja ja temperatuuri kuvamine XinaBoxi abil: 8 sammu
Video: TANTSUKINGAD - Laulupesa ja Shate tantsukooli lapsed 2024, November
Anonim
Kuupäeva, kellaaja ja temperatuuri kuvamine XinaBoxi abil
Kuupäeva, kellaaja ja temperatuuri kuvamine XinaBoxi abil

Lahe OLED -ekraan, mis näitab kuupäeva, kellaaega ja temperatuuri Celsiuse ja Fahrenheiti kraadides, kasutades Xinabox xChips, mis põhineb ESP8266 -l.

Samm: selles projektis kasutatud asjad

Riistvara komponendid

  • XinaBox IP01 x 1 xChip USB programmeerija, mille aluseks on FTDI Limited FT232R
  • XinaBox CW01 x 1 xChip Wi-Fi Core, mis põhineb ESP8266 WiFi-moodulil
  • XinaBox SW01 x 1 xChip Boschi BME280 baasil valmistatud temperatuuri, niiskuse ja õhurõhu andur.
  • XinaBox OD01 x 1 xChip 128x64 piksline OLED -ekraan
  • XinaBox PU01 x 1 xChip USB (tüüp A) toiteallikas
  • XinaBox XC10 x 1 xChip bussi pistikud
  • 5 V USB toiteallikas x 1

Tarkvararakendused ja võrguteenused

Arduino IDE

2. samm: lugu

Sissejuhatus

Ehitasin selle projekti kuupäeva, UCT aja ja temperatuuri kuvamiseks, kasutades XinaBox xChips, mis kasutab I2C siiniprotokolli. Aeg saadi Google'i NTP -serverist. Ümbritseva õhu temperatuuri mõõdeti SW01 xChip abil ja see kuvati OD01 xChip OLED -ekraanil Celsiuse ja Fahrenheiti järgi. Alloleval pildil on OLED -ekraan.

Pilt
Pilt

OLED kuvab kuupäeva, kellaaja ja temperatuuri

Samm: laadige alla vajalikud failid

Selle projekti jaoks vajate järgmisi teeke ja tarkvara.

  • Arduino IDE - arendustarkvara, milles kodeerite
  • xSW01 - temperatuuriandurite kogu
  • xCore - XinaBox xChipi põhiteek
  • xOD01 - OLED -ekraaniteek.
  • Ajavöönd - raamatukogu ajavööndi valimiseks
  • Aeg - ajafunktsioonide kasutamiseks
  • NTPClient - võimaldab teil serverist aega saada
  • Tahvli paigaldamiseks peate alla laadima ka ESP8266 plaadi ja järgima sellega kaasnevaid juhiseid

Pärast allalaadimist installite IDE ja teegid. See on üsna lihtne, kui järgite juhiseid.

4. samm: pange kokku

Teie peamine xChip, mis programmi käivitab ja töötleb, on CW01. See põhineb ESP8266 WiFi -moodulil ja kasutab I2C siiniprotokolli. CW01 -le programmeerimiseks vajate programmeerimist xChip. IP01 võimaldab meil programmeerida CW01 meie arvuti USB -pordi kaudu, klõpsates XC10 siiniliideste abil kaks xChipi kokku ja sisestades selle USB -porti. Juhtmeid ja jootmist pole vaja. Üks asi, mida tuleb arvestada, on xChipi identifitseerimisnimede suund. Kõik need peaksid olema suunatud samas suunas. Nüüd peaks teil olema järgmine seadistus.

Pilt
Pilt

Klõpsake koos CW01 ja IP01 ning sisestage see oma arvuti USB -porti

Kui olete xChipiga tuttav, võite ühendada iga xChipi, kasutades XC10 siiniliideseid, mida soovite oma projekti jaoks kasutada, ja seejärel sisestada see USB -porti. Kasutame SW01 temperatuuriandurit ja OD01 OLED -ekraani.

Pilt
Pilt

Võite ühendada kõik kiibid ja seejärel sisestada need USB -porti

Samm: programm

Laadige alla või kopeerige ja kleepige allolev kood oma Arduino IDE -sse. Kui te koodi ei muuda, sisestage lihtsalt oma WiFi andmed nende vastavatele väljadele, nagu allpool näidatud. Sisestage ka usaldusväärne NTP ajaserver. Olen selle projekti jaoks kasutanud Google'i ajaserverit.

Pilt
Pilt

WiFi üksikasjad ja NTP ajaserver

Nüüd kompileerige ja laadige üles. Veenduge, et olete Arduino IDE tööriistade menüüst valinud õige COM -pordi ja plaadi. Pärast üleslaadimist peaksid kellaaeg, kuupäev ja temperatuur olema näidatud allpool.

Pilt
Pilt

Pärast üleslaadimist peaksite nägema järgmist

Samm: muutke see kaasaskantavaks

Nüüd saate seadme USB -pordist eemaldada ja eraldada iga xChip lihtsalt lahti tõmmates. Kuna programmeerimine on lõpetatud, pole IP01 enam vajalik. Nüüd saate oma projekti ühendada mis tahes viisil, kui identifitseerimisnimed on kõik ühes suunas. Seadme toiteks kasutame PU01. See võimaldab meil toita seda tavalisest toitepangast või mis tahes 5 V USB toiteallikast. Ma ühendasin oma, nagu allpool näidatud.

Pilt
Pilt

Lõplik kokkupanek. xChips saab ühendada mis tahes viisil.

Samm 7: Järeldus

Selle projekti lõpuleviimiseks kulub 20 minutit. Kui soovite oma asukohas aega, kaaluge ajakoha raamatukogus näidiskoodi vaatamist või tehke aritmeetika UTC ajaga. Juhtmeid ei kasutatud ja jootmist polnud vaja.

8. samm: kood

Date_Time_Temp.ino Arduino Sisestage lihtsalt oma WiFi andmed nende vastavatesse väljadesse ja laadige üles oma tahvlile.

#include // sisaldab XinaBox xCHIPS -i põhiteeki

#include // include OLED display library #include // include the sensor sensor library #include // include ESP8266WiFi function #include // include time libracies #include #include #include #include #include xSW01 SW01; // defineerige NTP atribuudid #define ntpOffset 60 * 60 // sekundites #define ntpInterval 60 * 1000 // millisekundites // sisestage usaldusväärne ntp ajaserver kahekordse jutumärgi vahele // siin olen kasutanud google ntp ajaserverit # define ntpAddress "time1.google.com" // seadista NTP UDP klient WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // temperatuuri muutuja ujuk tempC; // celsius float tempF; // fahrenheit // teie wifi üksikasjad const char* wifi_ssid = "XinaBox"; // teie wifi ssid const char* wifi_pass = "RapidIoT"; // teie wifi parool // kuupäeva ja kellaaja muutuja String date; Stringide tööaeg; // muutujad, mis sisaldavad päevi ja kuid const const * days = {"pühapäev", "esmaspäev", "teisipäev", "kolmapäev", "neljapäev", "reede", "laupäev"}; const char * months = {"Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov" "," Dets "}; const char * ampm = {"AM", "PM"}; tühine seadistus () {tempC = tempF = 0; // temperatuuri lähtestamine nullini timeClient.begin (); // käivitage NTP UDP klient // käivitage jadaühendus Serial.begin (115200); // käivitage i2c side ja määrake tihvtid Wire.begin (2, 14); // starditemperatuuri andur SW01.begin (); // käivita OLED -ekraan OLED.begin (); // kustuta OLED -ekraan OD01.clear (); // luua wifi ühendus wifi_connect (); viivitus (1000); } void loop () {// käivita, kui wifi -ühendus on loodud, kui (WiFi.status () == WL_CONNECTED) {SW01.poll (); // temperatuuri lugemine tempC = SW01.getTempC (); // salvesta temp Celsiuse järgi tempF = SW01.getTempF (); // salvestamise temperatuur fahrenheiti kuupäeval = ""; // kustuta kuupäeva muutuja clktime = ""; // aja muutuja kustutamine // uuenda ntp klienti ja hangi unix utc ajatempl timeClient.update (); allkirjastamata pikk epochTime = timeClient.getEpochTime (); // teisendada vastuvõetud ajatempli kellaajaks objekti time_t utc; utc = epochTime; // tänava aeg TimeChangeRule utcRule = {"UTC", Last, Sun, Mar, 1, 0}; Ajavöönd UTC (utcRule, utcRule); // vormindage aja muutujad kuupäev += päevad [nädalapäev (utc) - 1]; kuupäev += ","; kuupäev += kuud [kuu (utc) - 1]; kuupäev += ""; kuupäev += päev (utc); kuupäev += ","; kuupäev += aasta (utc); // vormindage aeg 12-tunniseks vorminguks AM/PM ja sekunditeta clktime += hourFormat12 (utc); clktime += ":"; kui (minut (utc)

Soovitan: