INHOUDSOPGAWE:

Datum, tyd en temperatuur vertoon met behulp van XinaBox: 8 stappe
Datum, tyd en temperatuur vertoon met behulp van XinaBox: 8 stappe

Video: Datum, tyd en temperatuur vertoon met behulp van XinaBox: 8 stappe

Video: Datum, tyd en temperatuur vertoon met behulp van XinaBox: 8 stappe
Video: Die Antwoord - Baita Jou Sabela feat. Slagysta (Official Video) 2024, Desember
Anonim
Datum, tyd en temperatuur vertoon met behulp van XinaBox
Datum, tyd en temperatuur vertoon met behulp van XinaBox

Cool OLED -skerm wat die datum, tyd en temperatuur in Celsius en Fahrenheit toon met behulp van Xinabox xChips gebaseer op ESP8266.

Stap 1: Dinge wat in hierdie projek gebruik word

Hardeware komponente

  • XinaBox IP01 x 1 xChip USB -programmeerder gebaseer op FT232R van FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core gebaseer op ESP8266 Wi-Fi-module
  • XinaBox SW01 x 1 xChip Temperatuur-, humiditeits- en atmosferiese druksensor gebaseer op die BME280 van Bosch.
  • XinaBox OD01 x 1 xChip 128x64 Pixel OLED -skerm
  • XinaBox PU01 x 1 xChip USB (tipe A) kragbron
  • XinaBox XC10 x 1 xChip -busverbindings
  • 5V USB -kragbron x 1

Sagteware -programme en aanlyndienste

Arduino IDE

Stap 2: Verhaal

Inleiding

Ek het hierdie projek gebou om die datum, UCT tyd en temperatuur te vertoon met behulp van XinaBox xChips wat die I2C -busprotokol gebruik. Die tyd is opgehaal van 'n Google NTP -bediener. Die omgewingstemperatuur is gemeet met behulp van die SW01 xChip en is op die OD01 xChip OLED -skerm in Celsius en Fahrenheit vertoon. Die onderstaande prent toon die OLED -skerm.

Beeld
Beeld

OLED wat datum, tyd en temperatuur vertoon

Stap 3: Laai nodige lêers af

U benodig die volgende biblioteke en sagteware vir hierdie projek.

  • Arduino IDE - Ontwikkelingsagteware waarin u sal kodeer
  • xSW01 - Biblioteek vir temperatuursensors
  • xCore - Kernbiblioteek vir XinaBox xChips
  • xOD01 - OLED -vertoonbiblioteek.
  • Tydsone - biblioteek om u tydsone te kies
  • Tyd - om tydfunksies te gebruik
  • NTPClient - stel u in staat om tyd van 'n bediener af te kry
  • U moet ook die ESP8266 -bord aflaai en die instruksies wat daarmee saamhang, volg om die bord te laat installeer

Sodra dit afgelaai is, installeer u die IDE en die biblioteke. Dit is redelik eenvoudig as u die instruksies volg.

Stap 4: Monteer

Jou belangrikste xChip wat die program sal uitvoer en verwerk, is die CW01. Dit is gebaseer op die ESP8266 WiFi -module en gebruik die I2C -busprotokol. Om te kan programmeer na die CW01, benodig u 'n programmering xChip. Met die IP01 kan ons die CW01 via die USB -poort op ons rekenaar programmeer deur eenvoudig op die twee xChips te klik met behulp van XC10 -busverbindings en dit in die USB -poort te plaas. Geen bedrading en geen soldeer benodig nie. Een ding om van kennis te neem, is die oriëntasie van die xChip -identifikasiename. Hulle moet almal in dieselfde rigting wees. U behoort nou die volgende opstelling te hê.

Beeld
Beeld

Klik CW01 en IP01 saam en steek dit in die USB -poort van u rekenaar

As u vertroud is met xChips, kan u elke xChip verbind met behulp van XC10 -busverbindings wat u vir u projek wil gebruik en dit dan in die USB -poort plaas. Ons sal die SW01 -temperatuursensor en die OD01 OLED -skerm gebruik.

Beeld
Beeld

U kan al u skyfies aan mekaar koppel en dit dan in u USB -poort plaas

Stap 5: Programmeer

Laai die kode hieronder af of plak dit in u Arduino IDE. As u nie die kode verander nie, voer u WiFi -besonderhede in hul onderskeie velde in soos hieronder getoon. Voer ook 'n betroubare NTP -tydbediener in. Ek het 'n Google -tydbediener vir hierdie projek gebruik.

Beeld
Beeld

WiFi -besonderhede en NTP -tydbediener

Stel nou op en laai op. Maak seker dat u die korrekte COM -poort en -bord onder die gereedskapskieslys in die Arduino IDE gekies het. Sodra dit opgelaai is, moet die tyd, datum en temperatuur soos volg verskyn.

Beeld
Beeld

Na die oplaai moet u die volgende sien

Stap 6: Maak dit draagbaar

U kan die eenheid nou van u USB -poort verwyder en elke xChip skei deur dit eenvoudig uitmekaar te trek. Aangesien die programmering voltooi is, is IP01 nie meer nodig nie. U kan u projek nou verbind op enige manier wat u wil, solank die identiteitsname almal in dieselfde rigting gerig is. Om ons eenheid aan te dryf, gebruik ons die PU01. Dit stel ons in staat om dit van 'n normale kragbank of 'n 5V USB -kragbron te voorsien. Ek het myne verbind soos hieronder getoon.

Beeld
Beeld

Finale vergadering. xChips kan verbind word op enige manier wat u wil.

Stap 7: Gevolgtrekking

Hierdie projek sal 20 minute neem om te voltooi. As u die tyd op u plek wil hê, oorweeg dit om na die voorbeeldkode in die tydsone -biblioteek te kyk of rekenkunde te doen met die UTC -tyd. Geen drade is gebruik nie en geen soldeer is nodig nie.

Stap 8: Kode

Date_Time_Temp.ino Arduino Voer eenvoudig u WiFi -besonderhede in hul onderskeie velde in en laai dit na u bord.

#include // sluit kernbiblioteek in vir XinaBox xCHIPS

#include // sluit OLED -vertoningsbiblioteek in #include // sluit die temperatuursensorbiblioteek in #include // sluit ESP8266WiFi -funksie in #include // sluit tydbiblioteke in #include #include #include #include #include xSW01 SW01; // definieer NTP -eienskappe #definieer ntpOffset 60 * 60 // in sekondes #definieer ntpInterval 60 * 1000 // in milisekondes // voeg 'n betroubare ntp -tydbediener tussen die dubbele aanhalingstekens // hier het ek 'n google ntp -tydbediener gebruik # definieer ntpAddress "time1.google.com" // stel die NTP UDP -kliënt WiFiUDP ntpUDP op; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // temperatuur veranderlike vlot tempC; // celsius vlot tempF; // fahrenheit // u wifi -besonderhede const char* wifi_ssid = "XinaBox"; // u wifi ssid const char* wifi_pass = "RapidIoT"; // jou wifi wagwoord // datum en tyd veranderlike String datum; String tydstyd; // veranderlikes wat dae en maande bevat const char * days = {"Sondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrydag", "Saterdag"}; const char * months = {"Jan", "Feb", "Mar", "Apr", "Mei", "Junie", "Julie", "Aug", "Sep", "Okt", "Nov "," Des "}; const char * ampm = {"AM", "PM"}; ongeldige opstelling () {tempC = tempF = 0; // begin temperatuur na nul timeClient.begin (); // begin die NTP UDP -kliënt // begin seriële kommunikasie Serial.begin (115200); // begin i2c -kommunikasie en stel penne Wire.begin (2, 14); // begin temperatuursensor SW01.begin (); // begin OLED -skerm OLED.begin (); // duidelike OLED -skerm OD01.clear (); // vestig wifi -verbinding wifi_connect (); vertraging (1000); } leemte -lus () {// hardloop as wifi -verbinding tot stand gebring is as (WiFi.status () == WL_CONNECTED) {SW01.poll (); // lees temperatuur tempC = SW01.getTempC (); // stoor temp in celcius tempF = SW01.getTempF (); // stoor temp in fahrenheit date = ""; // duidelik datum veranderlike clktime = ""; // tydveranderlike skoonmaak // werk die ntp -kliënt op en kry die unix utc -tydstempel timeClient.update (); ongetekende lang epochTime = timeClient.getEpochTime (); // skakel die tydstempel om na time_t object time_t utc; utc = epochTime; // utc time TimeChangeRule utcRule = {"UTC", Laaste, Sun, Mar, 1, 0}; Tydsone UTC (utcRule, utcRule); // formaat tyd veranderlikes datum += dae [weekdag (utc) - 1]; datum += ","; datum += maande [maand (utc) - 1]; datum += ""; datum += dag (utc); datum += ","; datum += jaar (utc); // formateer die tyd tot 12-uur-formaat met AM/PM en sonder sekondes clktime += hourFormat12 (utc); clktime += ":"; as (minuut (utc)

Aanbeveel: