Innholdsfortegnelse:

Dato, tid og temperaturvisning ved hjelp av XinaBox: 8 trinn
Dato, tid og temperaturvisning ved hjelp av XinaBox: 8 trinn

Video: Dato, tid og temperaturvisning ved hjelp av XinaBox: 8 trinn

Video: Dato, tid og temperaturvisning ved hjelp av XinaBox: 8 trinn
Video: Инструменты для волос пробовали и тестировали | Сколько времени это может спасти вас? 2024, November
Anonim
Dato, tid og temperaturvisning ved hjelp av XinaBox
Dato, tid og temperaturvisning ved hjelp av XinaBox

Kult OLED -display som viser dato, klokkeslett og temperatur i Celsius og Fahrenheit ved bruk av Xinabox xChips basert på ESP8266.

Trinn 1: Ting som brukes i dette prosjektet

Maskinvarekomponenter

  • XinaBox IP01 x 1 xChip USB -programmerer basert på FT232R fra FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core basert på ESP8266 Wi-Fi-modul
  • XinaBox SW01 x 1 xChip Temperatur-, fuktighets- og atmosfærisk trykksensor basert på BME280 fra Bosch.
  • XinaBox OD01 x 1 xChip 128x64 piksel OLED -skjerm
  • XinaBox PU01 x 1 xChip USB (Type A) strømforsyning
  • XinaBox XC10 x 1 xChip -busskontakter
  • 5V USB strømforsyning x 1

Programvare -apper og online -tjenester

Arduino IDE

Trinn 2: Historie

Introduksjon

Jeg bygde dette prosjektet for å vise dato, UCT -tid og temperatur ved hjelp av XinaBox xChips som bruker I2C -bussprotokollen. Tiden ble hentet fra en Google NTP -server. Omgivelsestemperaturen ble målt ved bruk av SW01 xChip og ble vist på OD01 xChip OLED -skjermen i Celsius og Fahrenheit. Bildet nedenfor viser OLED -skjermen.

Bilde
Bilde

OLED viser dato, klokkeslett og temperatur

Trinn 3: Last ned nødvendige filer

Du trenger følgende biblioteker og programvare for dette prosjektet.

  • Arduino IDE - Utviklingsprogramvare der du vil kode
  • xSW01 - Temperatursensorbibliotek
  • xCore - Kjernebibliotek for XinaBox xChips
  • xOD01 - OLED Display -bibliotek.
  • Tidssone - Bibliotek for å velge tidssone
  • Tid - For å bruke tidsfunksjoner
  • NTPClient - Lar deg få tid fra en server
  • Du må også laste ned ESP8266 -kortet og følge instruksjonene som følger med det for å få kortet installert

Når den er lastet ned, installerer du IDE og bibliotekene. Det er ganske rett frem hvis du følger instruksjonene.

Trinn 4: Monter

Din viktigste xChip som vil utføre og behandle programmet er CW01. Den er basert på ESP8266 WiFi -modulen og bruker I2C -bussprotokollen. For å programmere til CW01 trenger du en programmering xChip. IP01 lar oss programmere CW01 via USB -porten på datamaskinen vår ved å klikke sammen de to xChipene ved hjelp av XC10 -busskontakter og sette den inn i USB -porten. Ingen ledninger og ingen lodding nødvendig. En ting å merke seg er orienteringen til xChip -identifikasjonsnavnene. De bør alle være orientert i samme retning. Du bør nå ha følgende oppsett.

Bilde
Bilde

Klikk sammen CW01 og IP01 og sett den inn i USB -porten på datamaskinen

Hvis du er kjent med xChips, kan du koble hvert xChip sammen ved hjelp av XC10 -busskontakter som du vil bruke til prosjektet ditt og deretter sette det inn i USB -porten. Vi bruker SW01 temperatursensor og OD01 OLED -skjermen.

Bilde
Bilde

Du kan koble alle sjetongene dine sammen og deretter sette dem inn i USB -porten

Trinn 5: Program

Last ned eller kopier og lim inn koden nedenfor i Arduino IDE. Hvis du ikke gjør noen endringer i koden, bare skriv inn WiFi -detaljene i de respektive feltene som vist nedenfor. Skriv også inn en pålitelig NTP -tidsserver. Jeg har brukt en Google -tidsserver til dette prosjektet.

Bilde
Bilde

WiFi -detaljer og NTP -tidsserver

Nå kompiler og last opp. Sørg for at du har valgt riktig COM -port og -kort under verktøymemenyen i Arduino IDE. Når den er lastet opp, skal tid, dato og temperatur vises som nedenfor.

Bilde
Bilde

Etter opplasting bør du se følgende

Trinn 6: Gjør det bærbart

Du kan nå fjerne enheten fra USB -porten og skille hver xChip ved å trekke den fra hverandre. Siden programmeringen er fullført, er det ikke lenger nødvendig med IP01. Du kan nå koble prosjektet ditt på hvilken som helst måte du ønsker så lenge identifikasjonsnavnene alle er orientert i samme retning. For å drive enheten vår bruker vi PU01. Dette gjør at vi kan koble den fra en vanlig strømbank eller hvilken som helst 5V USB -strømforsyning. Jeg har koblet min som vist nedenfor.

Bilde
Bilde

Sluttmontering. xChips kan kobles til på hvilken som helst måte du ønsker.

Trinn 7: Konklusjon

Dette prosjektet vil ta 20 minutter å fullføre. Hvis du vil ha tiden der du befinner deg, kan du vurdere å se på eksempelkoden i tidssonebiblioteket eller regne med UTC -tiden. Ingen ledninger ble brukt og det var ikke nødvendig med lodding.

Trinn 8: Kode

Date_Time_Temp.ino Arduino Bare skriv inn WiFi -detaljene i de respektive feltene og last opp til brettet ditt.

#include // inkluderer kjernebibliotek for XinaBox xCHIPS

#include // inkluderer OLED -visningsbibliotek #include // inkluderer temperatursensorbiblioteket #include // inkluderer ESP8266WiFi -funksjonalitet #include // inkluderer tidsbiblioteker #include #include #include #include #include xSW01 SW01; // definere NTP -egenskaper #definere ntpOffset 60 * 60 // i sekunder #define ntpInterval 60 * 1000 // i milisekunder // sett inn en pålitelig ntp -tidsserver mellom doble anførselstegn // her har jeg brukt en google ntp -tidsserver # definere ntpAddress "time1.google.com" // konfigurere NTP UDP -klienten WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // temperaturvariabel flyte tempC; // celsius flyte tempF; // fahrenheit // dine wifi -detaljer const char* wifi_ssid = "XinaBox"; // din wifi ssid const char* wifi_pass = "RapidIoT"; // wifi -passordet ditt // dato- og tidsvariabel String date; String klokkeslett; // variabler som inneholder dager og måneder const char * days = {"søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"}; const char * months = {"Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov "," Des "}; const char * ampm = {"AM", "PM"}; ugyldig oppsett () {tempC = tempF = 0; // initialiser temperaturen til null timeClient.begin (); // start NTP UDP -klienten // start seriell kommunikasjon Serial.begin (115200); // start i2c kommunikasjon og sett pins Wire.begin (2, 14); // start temperatursensor SW01.begin (); // start OLED -skjerm OLED.begin (); // klar OLED -skjerm OD01.clear (); // opprette wifi -tilkobling wifi_connect (); forsinkelse (1000); } void loop () {// kjør hvis wifi -tilkobling er opprettet hvis (WiFi.status () == WL_CONNECTED) {SW01.poll (); // lese temperatur tempC = SW01.getTempC (); // lagre temp i celcius tempF = SW01.getTempF (); // lagre temp i fahrenheit date = ""; // clear date variable clktime = ""; // slett tidsvariabel // oppdater ntp -klienten og få unix utc tidsstempel timeClient.update (); usignert lang epochTime = timeClient.getEpochTime (); // konvertere mottatt tidsstempel til time_t objekt time_t utc; utc = epochTime; // utc time TimeChangeRule utcRule = {"UTC", Siste, søn, mar, 1, 0}; Tidssone UTC (utcRule, utcRule); // format tidsvariabler dato += dager [ukedag (utc) - 1]; dato += ","; dato += måneder [måned (utc) - 1]; dato += ""; dato += dag (utc); dato += ","; dato += år (utc); // formater tiden til 12-timers format med AM/PM og ingen sekunder clktime += hourFormat12 (utc); clktime += ":"; hvis (minutt (utc)

Anbefalt: