Indholdsfortegnelse:

Dato, tid og temperaturvisning ved hjælp af XinaBox: 8 trin
Dato, tid og temperaturvisning ved hjælp af XinaBox: 8 trin

Video: Dato, tid og temperaturvisning ved hjælp af XinaBox: 8 trin

Video: Dato, tid og temperaturvisning ved hjælp af XinaBox: 8 trin
Video: Hårværktøjer forsøgt og testet | Hvor lang tid kan disse spare dig? 2024, November
Anonim
Dato, tid og temperaturvisning ved hjælp af XinaBox
Dato, tid og temperaturvisning ved hjælp af XinaBox

Fedt OLED -display, der viser dato, tid og temperatur i Celsius og Fahrenheit ved hjælp af Xinabox xChips baseret på ESP8266.

Trin 1: Ting, der bruges i dette projekt

Hardware komponenter

  • XinaBox IP01 x 1 xChip USB Programmerer baseret på FT232R fra FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core baseret på ESP8266 Wi-Fi-modul
  • XinaBox SW01 x 1 xChip Temperatur-, luftfugtigheds- og atmosfærisk trykføler baseret på BME280 fra Bosch.
  • XinaBox OD01 x 1 xChip 128x64 Pixel OLED -skærm
  • XinaBox PU01 x 1 xChip USB (type A) strømforsyning
  • XinaBox XC10 x 1 xChip -busstik
  • 5V USB strømforsyning x 1

Software -apps og onlinetjenester

Arduino IDE

Trin 2: Historie

Introduktion

Jeg byggede dette projekt for at vise dato, UCT -tid og temperatur ved hjælp af XinaBox xChips, der bruger I2C -busprotokollen. Tiden blev hentet fra en google NTP -server. Omgivelsestemperaturen blev målt ved hjælp af SW01 xChip og blev vist på OD01 xChip OLED -displayet i Celsius og Fahrenheit. Billedet herunder viser OLED -displayet.

Billede
Billede

OLED viser dato, tid og temperatur

Trin 3: Download nødvendige filer

Du skal bruge følgende biblioteker og software til dette projekt.

  • Arduino IDE - Udviklingssoftware, hvor du vil kode
  • xSW01 - Temperatursensorbibliotek
  • xCore - Core -bibliotek til XinaBox xChips
  • xOD01 - OLED Display bibliotek.
  • Tidszone - Bibliotek for at vælge din tidszone
  • Tid - Til brug af tidsfunktioner
  • NTPClient - Gør det muligt at få tid fra en server
  • Du skal også downloade ESP8266 -kortet og følge instruktionerne, der følger med det, for at få kortet installeret

Når den er downloadet, installerer du IDE og bibliotekerne. Det er ret ligetil, hvis du følger instruktionerne.

Trin 4: Saml

Dit vigtigste xChip, der vil udføre og behandle programmet, er CW01. Det er baseret på ESP8266 WiFi -modulet og bruger I2C -busprotokollen. For at kunne programmere til CW01 skal du bruge et programmerings xChip. IP01 giver os mulighed for at programmere CW01 via USB -porten på vores computer ved blot at klikke sammen de to xChips ved hjælp af XC10 -busstik og indsætte den i USB -porten. Ingen ledninger og ingen lodning nødvendig. En ting at være opmærksom på er orienteringen af xChip -identifikationsnavnene. De skal alle orienteres i samme retning. Du skal nu have følgende opsætning.

Billede
Billede

Klik sammen CW01 og IP01, og indsæt den i USB -porten på din computer

Hvis du kender xChips, kan du forbinde hvert xChip sammen ved hjælp af XC10 -busstik, som du vil bruge til dit projekt, og derefter indsætte det i USB -porten. Vi bruger SW01 temperatursensor og OD01 OLED display.

Billede
Billede

Du kan forbinde alle dine chips sammen og derefter indsætte dem i din USB -port

Trin 5: Programmer

Download eller kopier og indsæt nedenstående kode i din Arduino IDE. Hvis du ikke foretager ændringer af koden, skal du blot indtaste dine WiFi -oplysninger i deres respektive felter som vist nedenfor. Indtast også en pålidelig NTP -tidsserver. Jeg har brugt en Google -tidsserver til dette projekt.

Billede
Billede

WiFi -detaljer og NTP -tidsserver

Nu kompilere og uploade. Sørg for, at du har valgt den korrekte COM -port og -kort under værktøjsmenuen i Arduino IDE. Når den er uploadet, skal tid, dato og temperatur vises som nedenfor.

Billede
Billede

Efter upload skal du se følgende

Trin 6: Gør det bærbart

Du kan nu fjerne enheden fra din USB -port og adskille hver xChip ved blot at trække den fra hinanden. Da programmeringen er fuldført, er IP01 ikke længere påkrævet. Du kan nu forbinde dit projekt på enhver måde, du ønsker, så længe identifikationsnavnene alle er orienteret i samme retning. For at drive vores enhed bruger vi PU01. Dette giver os mulighed for at forsyne den fra en normal powerbank eller en hvilken som helst 5V USB -strømforsyning. Jeg har tilsluttet min som vist herunder.

Billede
Billede

Sidste samling. xChips kan forbindes på enhver måde, du ønsker.

Trin 7: Konklusion

Dette projekt tager 20 minutter at fuldføre. Hvis du vil have tiden på din placering, kan du overveje at kigge på eksempelkoden i tidszone -biblioteket eller lave en regning med UTC -tiden. Der blev ikke brugt ledninger, og der var ikke behov for lodning.

Trin 8: Kode

Date_Time_Temp.ino Arduino Du skal blot indtaste dine WiFi -detaljer i deres respektive felter og uploade til dit board.

#include // inkluderer kernebibliotek til XinaBox xCHIPS

#include // inkluderer OLED -displaybibliotek #include // inkluderer temperatursensorbiblioteket #include // inkluderer ESP8266WiFi -funktionalitet #include // inkluderer tidsbiblioteker #include #include #include #include #include xSW01 SW01; // definere NTP -egenskaber #define ntpOffset 60 * 60 // i sekunder #define ntpInterval 60 * 1000 // i milisekunder // indsæt en pålidelig ntp -tidsserver mellem de dobbelte citater // her har jeg brugt en google ntp -tidsserver # definere ntpAddress "time1.google.com" // konfigurer NTP UDP -klienten WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // temperatur variabel flyde tempC; // celsius float tempF; // fahrenheit // dine wifi -detaljer const char* wifi_ssid = "XinaBox"; // din wifi ssid const char* wifi_pass = "RapidIoT"; // din wifi -adgangskode // dato og tidsvariabel String date; String clktime; // variabler, der indeholder dage 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 "," Dec "}; const char * ampm = {"AM", "PM"}; ugyldig opsætning () {tempC = tempF = 0; // initialiser temperaturen til nul timeClient.begin (); // start NTP UDP -klienten // start seriel kommunikation Serial.begin (115200); // start i2c -kommunikation og sæt pins Wire.begin (2, 14); // start temperatursensor SW01.begin (); // start OLED -skærm OLED.begin (); // slet OLED -display OD01.clear (); // etablere wifi -forbindelse wifi_connect (); forsinkelse (1000); } void loop () {// kør, hvis wifi -forbindelse er etableret, hvis (WiFi.status () == WL_CONNECTED) {SW01.poll (); // læs temperatur tempC = SW01.getTempC (); // lagre temp i celcius tempF = SW01.getTempF (); // gemme temp i fahrenheit date = ""; // clear date variable clktime = ""; // ryd tidsvariabel // opdater ntp -klienten og få unix utc tidsstempel timeClient.update (); usigneret lang epochTime = timeClient.getEpochTime (); // konverter modtaget tidsstempel til time_t objekt time_t utc; utc = epochTime; // utc time TimeChangeRule utcRule = {"UTC", Sidste, søn, mar, 1, 0}; Tidszone UTC (utcRule, utcRule); // format tidsvariabler dato += dage [hverdag (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 uden sekunder clktime += hourFormat12 (utc); clktime += ":"; hvis (minut (utc)

Anbefalede: