Tabla de contenido:

Visualización de fecha, hora y temperatura con XinaBox: 8 pasos
Visualización de fecha, hora y temperatura con XinaBox: 8 pasos

Video: Visualización de fecha, hora y temperatura con XinaBox: 8 pasos

Video: Visualización de fecha, hora y temperatura con XinaBox: 8 pasos
Video: 🔥Crea una Tabla de tiempo y hora en Power BI🔥 para la análisis del tiempo 2024, Mes de julio
Anonim
Visualización de fecha, hora y temperatura con XinaBox
Visualización de fecha, hora y temperatura con XinaBox

Pantalla OLED fresca que muestra la fecha, la hora y la temperatura en grados Celsius y Fahrenheit usando Xinabox xChips basado en ESP8266.

Paso 1: Cosas utilizadas en este proyecto

Componentes de hardware

  • Programador USB XinaBox IP01 x 1 xChip basado en FT232R de FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core basado en el módulo Wi-Fi ESP8266
  • XinaBox SW01 x 1 xChip Sensor de temperatura, humedad y presión atmosférica basado en el BME280 de Bosch.
  • XinaBox OD01 x 1 xChip Pantalla OLED de 128x64 píxeles
  • XinaBox PU01 x 1 xChip USB (Tipo A) Fuente de alimentación
  • Conectores de bus XinaBox XC10 x 1 xChip
  • Fuente de alimentación USB de 5 V x 1

Aplicaciones de software y servicios en línea

IDE de Arduino

Paso 2: historia

Introducción

Construí este proyecto para mostrar la fecha, la hora UCT y la temperatura usando XinaBox xChips que usa el protocolo de bus I2C. La hora se recuperó de un servidor NTP de Google. La temperatura ambiente se midió con el SW01 xChip y se mostró en la pantalla OLED OD01 xChip en grados Celsius y Fahrenheit. La siguiente imagen muestra la pantalla OLED.

Imagen
Imagen

OLED que muestra la fecha, la hora y la temperatura

Paso 3: descargue los archivos necesarios

Necesitará las siguientes bibliotecas y software para este proyecto.

  • Arduino IDE - Software de desarrollo en el que codificará
  • xSW01 - Biblioteca de sensores de temperatura
  • xCore - Biblioteca principal para XinaBox xChips
  • xOD01: biblioteca de pantallas OLED.
  • Zona horaria: biblioteca para elegir su zona horaria
  • Hora: para utilizar las funciones de hora
  • NTPClient: le permite obtener tiempo de un servidor
  • También deberá descargar la placa ESP8266 y seguir las instrucciones que la acompañan para instalar la placa.

Una vez descargado, instalará el IDE y las bibliotecas. Es bastante sencillo si sigue las instrucciones.

Paso 4: ensamblar

Su xChip principal que ejecutará y procesará el programa es el CW01. Se basa en el módulo WiFi ESP8266 y utiliza el protocolo de bus I2C. Para programar en el CW01, necesitará un xChip de programación. El IP01 nos permite programar el CW01 a través del puerto USB de nuestra computadora simplemente haciendo clic juntos en los dos xChips usando conectores de bus XC10 e insertándolo en el puerto USB. No requiere cableado ni soldadura. Una cosa a tener en cuenta es la orientación de los nombres de identificación de xChip. Todos deben estar orientados en la misma dirección. Ahora debería tener la siguiente configuración.

Imagen
Imagen

Haga clic juntos en CW01 e IP01 e insértelo en el puerto USB de su computadora

Si está familiarizado con las xChips, puede conectar todas las xChip mediante los conectores de bus XC10 que desee utilizar para su proyecto y luego insertarlo en el puerto USB. Usaremos el sensor de temperatura SW01 y la pantalla OLED OD01.

Imagen
Imagen

Puede conectar todos sus chips juntos y luego insertarlos en su puerto USB

Paso 5: Programa

Descargue o copie y pegue el código a continuación en su IDE de Arduino. Si no está realizando ningún cambio en el código, simplemente ingrese los detalles de su WiFi en sus respectivos campos como se muestra a continuación. También ingrese un servidor de hora NTP confiable. He utilizado un servidor de hora de Google para este proyecto.

Imagen
Imagen

Detalles de WiFi y servidor de tiempo NTP

Ahora compile y cargue. Asegúrese de haber seleccionado el puerto COM y la placa correctos en el menú de herramientas en el IDE de Arduino. Una vez cargado, la hora, la fecha y la temperatura deben mostrarse como se muestra a continuación.

Imagen
Imagen

Después de cargar, debería ver lo siguiente

Paso 6: hazlo portátil

Ahora puede quitar la unidad de su puerto USB y separar cada xChip simplemente separándolo. Dado que la programación está completa, ya no se requiere IP01. Ahora puede conectar su proyecto de la manera que desee siempre que los nombres de identificación estén todos orientados en la misma dirección. Para alimentar nuestra unidad usaremos el PU01. Esto nos permite alimentarlo desde un banco de energía normal o cualquier fuente de alimentación USB de 5V. He conectado el mío como se muestra a continuación.

Imagen
Imagen

Montaje final. Los xChips se pueden conectar de la forma que desee.

Paso 7: Conclusión

Este proyecto tardará 20 minutos en completarse. Si desea la hora en su ubicación, considere mirar el código de ejemplo en la biblioteca Timezone o haga algunos cálculos aritméticos con la hora UTC. No se utilizaron cables y no se requirió soldadura.

Paso 8: Código

Date_Time_Temp.ino Arduino Simplemente ingrese los detalles de su WiFi en sus respectivos campos y cárguelo en su tablero.

#include // incluye la biblioteca principal para XinaBox xCHIPS

#include // incluye la biblioteca de pantallas OLED #include // incluye la biblioteca del sensor de temperatura #include // incluye la funcionalidad ESP8266WiFi #include // incluye las bibliotecas de tiempo #include #include #include #include #include xSW01 SW01; // definir propiedades NTP #define ntpOffset 60 * 60 // en segundos #define ntpInterval 60 * 1000 // en milisegundos // inserte un servidor de tiempo ntp confiable entre las comillas dobles // aquí he usado un servidor de tiempo ntp de google # define ntpAddress "time1.google.com" // configura el cliente NTP UDP WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // temperatura variable float tempC; // Celsius float tempF; // fahrenheit // detalles de su wifi const char * wifi_ssid = "XinaBox"; // su wifi ssid const char * wifi_pass = "RapidIoT"; // su contraseña de wifi // variable de fecha y hora String date; String clktime; // variables que contienen días y meses const char * days = {"domingo", "lunes", "martes", "miércoles", "jueves", "viernes", "sábado"}; const char * months = {"Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov ", "Dic"}; const char * ampm = {"AM", "PM"}; configuración vacía () {tempC = tempF = 0; // inicializar la temperatura a cero timeClient.begin (); // iniciar el cliente NTP UDP // iniciar la comunicación en serie Serial.begin (115200); // inicia la comunicación i2c y establece los pines Wire.begin (2, 14); // iniciar el sensor de temperatura SW01.begin (); // iniciar la pantalla OLED OLED.begin (); // borrar la pantalla OLED OD01.clear (); // establecer conexión wifi wifi_connect (); retraso (1000); } void loop () {// ejecutar si se establece la conexión wifi if (WiFi.status () == WL_CONNECTED) {SW01.poll (); // leer temperatura tempC = SW01.getTempC (); // almacena la temperatura en celcius tempF = SW01.getTempF (); // almacena la temperatura en fahrenheit date = ""; // borrar la variable de fecha clktime = ""; // borrar la variable de tiempo // actualizar el cliente ntp y obtener la marca de tiempo de utc unix timeClient.update (); largo sin firmar epochTime = timeClient.getEpochTime (); // convierte la marca de tiempo recibida en objeto time_t time_t utc; utc = epochTime; // hora utc TimeChangeRule utcRule = {"UTC", Último, Dom, Mar, 1, 0}; Zona horaria UTC (utcRule, utcRule); // formatear variables de tiempo fecha + = días [día de la semana (utc) - 1]; fecha + = ","; fecha + = meses [mes (utc) - 1]; fecha + = ""; fecha + = día (utc); fecha + = ","; fecha + = año (utc); // formatea la hora en formato de 12 horas con AM / PM y sin segundos clktime + = hourFormat12 (utc); clktime + = ":"; si (minuto (utc)

Recomendado: