Taula de continguts:

Visualització de data, hora i temperatura mitjançant XinaBox: 8 passos
Visualització de data, hora i temperatura mitjançant XinaBox: 8 passos

Vídeo: Visualització de data, hora i temperatura mitjançant XinaBox: 8 passos

Vídeo: Visualització de data, hora i temperatura mitjançant XinaBox: 8 passos
Vídeo: DJI Mavic Mini Fly More Combo with Hard Shell Travel Case Black BH # DJMAVICMCK 2020 2024, De novembre
Anonim
Visualització de data, hora i temperatura mitjançant XinaBox
Visualització de data, hora i temperatura mitjançant XinaBox

Pantalla OLED fresca que mostra la data, l'hora i la temperatura en centígrads i Fahrenheit mitjançant xips Xinabox basats en ESP8266.

Pas 1: coses utilitzades en aquest projecte

Components de maquinari

  • Programador USB XinaBox IP01 x 1 xChip basat en FT232R de FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core basat en el mòdul Wi-Fi ESP8266
  • XinaBox SW01 x 1 xChip Sensor de temperatura, humitat i pressió atmosfèrica basat en el BME280 de Bosch.
  • Pantalla OLED de XinaBox OD01 x 1 xChip de 128x64 píxels
  • XinaBox PU01 x 1 xChip USB (Tipus A) Font d'alimentació
  • Connectors de bus XinaBox XC10 x 1 xChip
  • Alimentació USB de 5 V x 1

Aplicacions de programari i serveis en línia

IDE Arduino

Pas 2: història

Introducció

Vaig construir aquest projecte per mostrar la data, l’hora i la temperatura UCT mitjançant XinaBox xChips que utilitza el protocol de bus I2C. L'hora es va recuperar d'un servidor NTP de Google. La temperatura ambient es va mesurar mitjançant el SW01 xChip i es va mostrar a la pantalla OD01 xChip OLED en centígrads i Fahrenheit. La imatge següent mostra la pantalla OLED.

Imatge
Imatge

OLED que mostra data, hora i temperatura

Pas 3: baixeu els fitxers necessaris

Necessiteu les següents biblioteques i programari per a aquest projecte.

  • Arduino IDE: programari de desenvolupament en què codifiqueu
  • xSW01 - Biblioteca del sensor de temperatura
  • xCore: biblioteca bàsica per a xina XinaBox
  • xOD01 - Biblioteca de pantalla OLED.
  • Fus horari: biblioteca per triar la vostra zona horària
  • Temps: per utilitzar funcions de temps
  • NTPClient: us permet obtenir temps d'un servidor
  • També haureu de descarregar la placa ESP8266 i seguir les instruccions que l’acompanyen per tenir instal·lada la placa

Un cop descarregat, instal·larà l'IDE i les biblioteques. És bastant senzill si seguiu les instruccions.

Pas 4: Muntatge

El vostre xChip principal que executarà i processarà el programa és el CW01. Es basa en el mòdul WiFi ESP8266 i utilitza el protocol de bus I2C. Per programar al CW01, necessitareu una xChip de programació. L'IP01 ens permet programar el CW01 mitjançant el port USB del nostre ordinador simplement fent clic als dos xChips mitjançant connectors de bus XC10 i inserint-lo al port USB. No es necessita cablejat ni soldadura. Una cosa a tenir en compte és l’orientació dels noms d’identificació xChip. Tots haurien d’estar orientats en la mateixa direcció. Ara hauríeu de tenir la configuració següent.

Imatge
Imatge

Feu clic junts CW01 i IP01 i inseriu-lo al port USB de l'ordinador

Si coneixeu els xChips, podeu connectar tots els xChip junts mitjançant connectors de bus XC10 que vulgueu utilitzar per al vostre projecte i inserir-los al port USB. Utilitzarem el sensor de temperatura SW01 i la pantalla OLED OD01.

Imatge
Imatge

Podeu connectar tots els xips junts i inserir-los al port USB

Pas 5: programa

Baixeu-vos o copieu i enganxeu el codi següent al vostre IDE Arduino. Si no feu cap canvi al codi, simplement introduïu les vostres dades de WiFi als seus camps respectius, tal com es mostra a continuació. Introduïu també un servidor de temps NTP fiable. He utilitzat un servidor horari de Google per a aquest projecte.

Imatge
Imatge

Detalls de WiFi i servidor d’hora NTP

Ara compileu i pengeu. Assegureu-vos que heu seleccionat el port i la placa COM correctes al menú d'eines de l'IDE Arduino. Un cop penjat, l'hora, la data i la temperatura haurien de mostrar-se com es mostra a continuació.

Imatge
Imatge

Després de carregar-lo, hauríeu de veure el següent

Pas 6: feu que sigui portàtil

Ara podeu treure la unitat del port USB i separar cada xChip simplement separant-la. Com que la programació s'ha completat, ja no cal IP01. Ara podeu connectar el projecte de la manera que vulgueu sempre que els noms d'identificació estiguin orientats en la mateixa direcció. Per alimentar la nostra unitat utilitzarem el PU01. Això ens permet alimentar-lo des d’un banc d’alimentació normal o qualsevol font d’alimentació USB de 5V. He connectat la meva com es mostra a continuació.

Imatge
Imatge

Muntatge final. Els xhips es poden connectar de la manera que desitgeu.

Pas 7: Conclusió

Aquest projecte trigarà 20 minuts en completar-se. Si voleu l'hora a la vostra ubicació, penseu a mirar el codi d'exemple a la biblioteca de la zona horària o feu una mica de càlcul amb l'hora UTC. No es feien servir cables i no calia soldar.

Pas 8: Codi

Date_Time_Temp.ino Arduino Simplement introduïu les vostres dades de WiFi als seus respectius camps i pengeu-les al vostre tauler.

#include // include library core for XinaBox xCHIPS

#include // include biblioteca de pantalla OLED #include // include the sensor sensor library #include // include ESP8266WiFi functional #include // include biblioteques de temps #include #include #include #include #include xSW01 SW01; // defineix les propietats NTP #define ntpOffset 60 * 60 // en segons #define ntpInterval 60 * 1000 // en mil·lisegons // insereix un servidor de temps ntp fiable entre cometes dobles // aquí he utilitzat un servidor de temps de ntp de google # defineu ntpAddress "time1.google.com" // configureu el client NTP UDP WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // variable de temperatura flotant tempC; // celsius float tempF; // fahrenheit // els vostres detalls de wifi const char * wifi_ssid = "XinaBox"; // el vostre wifi ssid const char * wifi_pass = "RapidIoT"; // la vostra contrasenya wifi // variable de data i hora Data de cadena; String clktime; // variables que contenen dies i mesos const char * dies = {"diumenge", "dilluns", "dimarts", "dimecres", "dijous", "divendres", "dissabte"}; const char * months = {"Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov "," Des "}; const char * ampm = {"AM", "PM"}; configuració nul·la () {tempC = tempF = 0; // inicialitzar la temperatura a zero timeClient.begin (); // iniciar el client NTP UDP // iniciar la comunicació en sèrie Serial.begin (115200); // iniciar la comunicació i2c i configurar els pins Wire.begin (2, 14); // iniciar el sensor de temperatura SW01.begin (); // iniciar la pantalla OLED OLED.begin (); // esborra la pantalla OLED OD01.clear (); // establir connexió wifi wifi_connect (); retard (1000); } void loop () {// executa si s'estableix una connexió wifi si (WiFi.status () == WL_CONNECTED) {SW01.poll (); // temperatura de lectura tempC = SW01.getTempC (); // emmagatzemar temp a celcius tempF = SW01.getTempF (); // store temp in fahrenheit date = ""; // esborra la variable de data clktime = ""; // esborra la variable de temps // actualitza el client ntp i obté la marca de temps unix utc timeClient.update (); unsigned long epochTime = timeClient.getEpochTime (); // converteix el segell de temps rebut en objecte time_t time_t utc; utc = èpocaTemps; // utc time TimeChangeRule utcRule = {"UTC", Last, Sun, Mar, 1, 0}; Fus horari UTC (utcRule, utcRule); // formatar les variables d’hora data + = dies [dia de la setmana (utc) - 1]; data + = ","; data + = mesos [mes (utc) - 1]; data + = ""; data + = dia (utc); data + = ","; data + = any (utc); // format el temps a format de 12 hores amb AM / PM i sense segons clktime + = hourFormat12 (utc); clktime + = ":"; if (minut (utc)

Recomanat: