Sisällysluettelo:

Päivämäärän, ajan ja lämpötilan näyttö XinaBoxin avulla: 8 vaihetta
Päivämäärän, ajan ja lämpötilan näyttö XinaBoxin avulla: 8 vaihetta

Video: Päivämäärän, ajan ja lämpötilan näyttö XinaBoxin avulla: 8 vaihetta

Video: Päivämäärän, ajan ja lämpötilan näyttö XinaBoxin avulla: 8 vaihetta
Video: Kiusallinen alapääongelma || BLOKESS 2024, Heinäkuu
Anonim
Päivämäärän, ajan ja lämpötilan näyttö XinaBoxin avulla
Päivämäärän, ajan ja lämpötilan näyttö XinaBoxin avulla

Viileä OLED -näyttö, joka näyttää päivämäärän, kellonajan ja lämpötilan celsius- ja fahrenheit -asteina käyttäen ESP8266 -pohjaista Xinabox xChips -tekniikkaa.

Vaihe 1: Tässä projektissa käytetyt asiat

Laitteiston osat

  • XinaBox IP01 x 1 xChip USB -ohjelmoija, joka perustuu FTDI Limitedin FT232R -järjestelmään
  • XinaBox CW01 x 1 xChip Wi-Fi Core, joka perustuu ESP8266-Wi-Fi-moduuliin
  • XinaBox SW01 x 1 xChip Boschin BME280 -pohjainen lämpötila-, kosteus- ja ilmanpaineanturi.
  • XinaBox OD01 x 1 xChip 128x64 pikselin OLED -näyttö
  • XinaBox PU01 x 1 xChip USB (tyyppi A) -virtalähde
  • XinaBox XC10 x 1 xChip -väyläliittimet
  • 5V USB -virtalähde x 1

Ohjelmistosovellukset ja verkkopalvelut

Arduino IDE

Vaihe 2: Tarina

Johdanto

Rakensin tämän projektin näyttämään päivämäärän, UCT -ajan ja lämpötilan käyttämällä XinaBox xChips, joka käyttää I2C -väyläprotokollaa. Aika haettiin Googlen NTP -palvelimelta. Ympäristön lämpötila mitattiin SW01 xChip -laitteella ja se näytettiin OD01 xChip OLED -näytöllä Celsius- ja Fahrenheit -asteina. Alla olevassa kuvassa näkyy OLED -näyttö.

Kuva
Kuva

OLED näyttää päivämäärän, kellonajan ja lämpötilan

Vaihe 3: Lataa tarvittavat tiedostot

Tätä projektia varten tarvitset seuraavat kirjastot ja ohjelmistot.

  • Arduino IDE - Kehitysohjelmisto, jossa koodataan
  • xSW01 - Lämpötila -anturikirjasto
  • xCore - Ydinkirjasto XinaBox xChipsille
  • xOD01 - OLED -näyttökirjasto.
  • Aikavyöhyke - kirjasto aikavyöhykkeen valitsemiseksi
  • Aika - Voit käyttää aikatoimintoja
  • NTPClient - Voit saada aikaa palvelimelta
  • Sinun on myös ladattava ESP8266 -kortti ja seurattava sen mukana toimitettuja ohjeita, jotta kortti voidaan asentaa

Kun olet ladannut, asennat IDE: n ja kirjastot. Se on melko suoraviivaista, jos noudatat ohjeita.

Vaihe 4: Kokoa

Tärkein xChip, joka suorittaa ja käsittelee ohjelman, on CW01. Se perustuu ESP8266 WiFi -moduuliin ja käyttää I2C -väyläprotokollaa. Ohjelmoidaksesi CW01: lle tarvitset xChip -ohjelmoinnin. IP01 antaa meille mahdollisuuden ohjelmoida CW01 tietokoneemme USB -portin kautta yksinkertaisesti napsauttamalla kaksi xChipiä yhteen XC10 -väyläliittimien avulla ja asettamalla se USB -porttiin. Johdotusta ja juottamista ei tarvita. Yksi asia, joka on otettava huomioon, on xChip -tunnistenimien suunta. Ne kaikki on suunnattava samaan suuntaan. Sinulla pitäisi nyt olla seuraava asetus.

Kuva
Kuva

Napsauta CW01 ja IP01 yhteen ja liitä ne tietokoneen USB -porttiin

Jos tunnet xChipit, voit liittää kaikki xChipit yhteen käyttämällä XC10 -väyläliittimiä, jota haluat käyttää projektissasi, ja liittää sen sitten USB -porttiin. Käytämme SW01 -lämpötila -anturia ja OD01 OLED -näyttöä.

Kuva
Kuva

Voit liittää kaikki sirut yhteen ja liittää sen sitten USB -porttiin

Vaihe 5: Ohjelmoi

Lataa tai kopioi ja liitä alla oleva koodi Arduino IDE -laitteeseesi. Jos et tee muutoksia koodiin, kirjoita WiFi -tiedot vastaaviin kenttiin alla kuvatulla tavalla. Anna myös luotettava NTP -aikapalvelin. Olen käyttänyt Googlen aikapalvelinta tähän projektiin.

Kuva
Kuva

WiFi -tiedot ja NTP -aikapalvelin

Kokoa ja lataa nyt. Varmista, että olet valinnut oikean COM -portin ja -levyn Arduino IDE: n työkaluvalikosta. Lataamisen jälkeen kellonajan, päivämäärän ja lämpötilan tulee näkyä alla.

Kuva
Kuva

Lataamisen jälkeen sinun pitäisi nähdä seuraava

Vaihe 6: Tee siitä kannettava

Voit nyt poistaa laitteen USB -portistasi ja erottaa jokainen xChip yksinkertaisesti vetämällä sen erilleen. Koska ohjelmointi on valmis, IP01 ei ole enää tarpeen. Voit nyt yhdistää projektisi haluamallasi tavalla, kunhan kaikki tunnistenimet on suunnattu samaan suuntaan. Käytämme yksikköämme virransyöttöön PU01: llä. Näin voimme käyttää sitä normaalista virtapankista tai mistä tahansa 5 V: n USB -virtalähteestä. Olen liittänyt omani alla olevan kuvan mukaisesti.

Kuva
Kuva

Lopullinen kokoonpano. xChips voidaan yhdistää haluamallasi tavalla.

Vaihe 7: Johtopäätös

Tämä projekti kestää 20 minuuttia. Jos haluat ajan sijainnissasi, katso esimerkkikoodia aikavyöhykekirjastosta tai suorita aritmeettinen UTC -aika. Johtoja ei käytetty eikä juotoksia tarvittu.

Vaihe 8: Koodi

Date_Time_Temp.ino Arduino Kirjoita vain WiFi -tiedot vastaaviin kenttiin ja lataa taulullesi.

#include // sisältää XinaBox xCHIPSin ydinkirjaston

#sisällytä // sisällytä OLED -näyttökirjasto #sisällytä // sisällytä lämpötila -anturikirjasto #sisällytä // sisällytä ESP8266WiFi -toiminto #sisällytä // sisällytä aikakirjastot #sisällytä #sisällytä #sisällytä #sisällytä #sisällytä xSW01 SW01; // määrittele NTP -ominaisuudet #define ntpOffset 60 * 60 // sekunneissa #define ntpInterval 60 * 1000 // millisekunneissa // lisää luotettava ntp -aikapalvelin lainausmerkkien väliin // tässä olen käyttänyt Googlen ntp -aikapalvelinta # define ntpAddress "time1.google.com" // määritä NTP UDP -asiakas WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // lämpötilan muuttuja float tempC; // celsius float tempF; // fahrenheit // wifi -tietosi const char* wifi_ssid = "XinaBox"; // wifi ssid const char* wifi_pass = "RapidIoT"; // wifi -salasanasi // päivämäärä- ja aikamuuttuja Merkkijonopäivä; String clktime; // muuttujat, jotka sisältävät päiviä ja kuukausia const char * päivää = {"sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"}; const char * months = {"tammi", "helmikuu", "maalis", "huhti", "toukokuu", "kesäkuu", "heinäkuu", "elokuu", "syyskuu", "lokakuu", "marraskuu" "," Joulu "}; const char * ampm = {"AM", "PM"}; tyhjä asennus () {tempC = tempF = 0; // alustetaan lämpötila nollaan timeClient.begin (); // Käynnistä NTP UDP -asiakas // käynnistä sarjayhteys Serial.begin (115200); // Käynnistä i2c -tiedonsiirto ja aseta nastat Wire.begin (2, 14); // käynnistyslämpötila -anturi SW01.begin (); // käynnistä OLED -näyttö OLED.begin (); // tyhjennä OLED -näyttö OD01.clear (); // muodosta wifi -yhteys wifi_connect (); viive (1000); } void loop () {// suoritetaan, jos wifi -yhteys muodostetaan, jos (WiFi.status () == WL_CONNECTED) {SW01.poll (); // luku lämpötila tempC = SW01.getTempC (); // tallenna lämpötila celsius -asteina tempF = SW01.getTempF (); // tallenna lämpötila fahrenheit -päivämääränä = ""; // tyhjennä päivämäärän muuttuja clktime = ""; // tyhjennä aikamuuttuja // päivitä ntp -asiakas ja hanki unix -utc -aikaleima timeClient.update (); unsigned long epochTime = timeClient.getEpochTime (); // muuntaa vastaanotetun aikaleiman muotoon time_t object time_t utc; utc = epochTime; // utc aika TimeChangeRule utcRule = {"UTC", viime, su, maalis, 1, 0}; Aikavyöhyke UTC (utcRule, utcRule); // muotoa aikamuuttujat päivämäärä += päivät [viikonpäivä (utc) - 1]; päivämäärä += ","; päivämäärä += kuukaudet [kuukausi (utc) - 1]; päivämäärä += ""; päivämäärä += päivä (utc); päivämäärä += ","; päivämäärä += vuosi (utc); // muotoile aika 12 tunnin muotoon AM/PM ja ilman sekuntia clktime += hourFormat12 (utc); clktime += ":"; jos (minuutti (utc)

Suositeltava: