Arduino UNO R4 - Sensor de temperatura - OLED

En esta guía, aprenderemos a programar un Arduino UNO R4 para leer la temperatura de un sensor DS18B20 y mostrarla en una pantalla OLED.

Arduino UNO R4 sensor de temperatura DS18B20 OLED

Hardware Requerido

1×Arduino UNO R4 WiFi or Arduino UNO R4 Minima
1×Alternatively, DIYables STEM V4 IoT, Compatible with Arduino Uno R4 WiFi
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Pantalla OLED I2C SSD1306 128x64
1×Pantalla OLED I2C SSD1306 128x32
1×Sensor de Temperatura DS18B20 (con Adaptador)
1×Sensor de Temperatura DS18B20 (sin Adaptador)
1×Protoboard
1×Cables Puente
1×(Recomendado) Shield de Bloque de Terminales de Tornillo para Arduino Uno R4
1×(Recomendado) Shield de Protoboard para Arduino Uno R4
1×(Recomendado) Carcasa para Arduino Uno R4
1×(Recomendado) Divisor de Alimentación para Arduino Uno R4
1×(Recomendado) Placa Base de Prototipado y Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V4 IoT Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Buy Note: Many DS18B20 sensors available in the market are unreliable. We strongly recommend buying the sensor from the DIYables brand using the link provided above. We tested it, and it worked reliably.

Acerca de OLED y del sensor de temperatura DS18B20

Aprende sobre OLED y el sensor de temperatura DS18B20 (incluyendo el diagrama de pines, su funcionamiento y la programación) en estos tutoriales:

Diagrama de Cableado

Diagrama de cableado OLED para Arduino UNO R4 y sensor de temperatura DS18B20

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Uno R4 y otros componentes.

Recomendamos comprar un sensor DS18B20 con un adaptador de cableado para una configuración sencilla. El adaptador incluye una resistencia, por lo que no necesitas una resistencia adicional para el cableado.

Código para Arduino UNO R4 - Temperatura del sensor DS18B20 y mostrarla en una pantalla OLED

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-temperature-sensor-oled */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <OneWire.h> #include <DallasTemperature.h> #define OLED_WIDTH 128 // OLED display width, in pixels #define OLED_HEIGHT 64 // OLED display height, in pixels #define SENSOR_PIN 8 // The Arduino UNO R4 pin connected to DS18B20 sensor Adafruit_SSD1306 oled(OLED_WIDTH, OLED_HEIGHT, &Wire, -1); // create SSD1306 display object connected to I2C OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library String temperature_str; void setup() { Serial.begin(9600); // initialize OLED display with address 0x3C for 128x64 if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); while (true); } delay(2000); // wait for initializing oled.clearDisplay(); // clear display oled.setTextSize(2); // text size oled.setTextColor(WHITE); // text color oled.setCursor(0, 10); // position to display DS18B20.begin(); // initialize the sensor temperature_str.reserve(10); // to avoid fragmenting memory when using String } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures float temperature_C = DS18B20.getTempCByIndex(0); // read temperature in Celsius temperature_str = String(temperature_C, 2); // two decimal places temperature_str += char(247) + String("C"); Serial.println(temperature_str); // print the temperature in Celsius to Serial Monitor oled_display_center(temperature_str); } void oled_display_center(String text) { int16_t x1; int16_t y1; uint16_t width; uint16_t height; oled.getTextBounds(text, 0, 0, &x1, &y1, &width, &height); // center the display both horizontally and vertically oled.clearDisplay(); // clear display oled.setCursor((OLED_WIDTH - width) / 2, (OLED_HEIGHT - height) / 2); oled.println(text); // text to display oled.display(); }

Pasos R\u00e1pidos

Siga estas instrucciones paso a paso:

  • Si es la primera vez que usas el Arduino Uno R4 WiFi/Minima, consulta el tutorial sobre la configuración del entorno para Arduino Uno R4 WiFi/Minima en el IDE de Arduino (BASE_URL/tutorials/arduino-uno-r4/arduino-uno-r4-software-installation).
  • Conecta el OLED y el sensor de temperatura a la placa Arduino Uno R4 según el diagrama proporcionado.
  • Conecta la placa Arduino Uno R4 a tu computadora usando un cable USB.
  • Inicia el IDE de Arduino en tu computadora.
  • Selecciona la placa Arduino Uno R4 adecuada (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
  • Haz clic en el icono Librerías en el lado izquierdo del IDE de Arduino.
  • Escribe “SSD1306” en la caja de búsqueda, luego busca la librería SSD1306 de Adafruit.
  • Pulsa el botón “Instalar” para añadir la librería.
Biblioteca OLED para Arduino UNO R4
  • Necesitarás instalar algunas bibliotecas adicionales.
  • Haz clic en el botón Instalar Todo para instalar todas las bibliotecas necesarias.
Librería de sensores Adafruit GFX para Arduino UNO R4
  • Escribe "DallasTemperature" en la caja de búsqueda y busca la biblioteca DallasTemperature de Miles Burton.
  • Pulsa el botón Instalar para instalar la biblioteca DallasTemperature.
Biblioteca Dallas Temperature para Arduino UNO R4
  • Necesita instalar la dependencia de la biblioteca.
  • Haga clic en el botón Instalar todo para instalar la biblioteca OneWire.
Librería OneWire para Arduino UNO R4
  • Copia el código anterior y ábrelo en el IDE de Arduino
  • Pulsa el botón Subir en el IDE de Arduino para transferir el código a Arduino UNO R4
  • Coloca el sensor en agua caliente o fría, o sostenlo en tu mano
  • Verifica la pantalla OLED para obtener resultados

※ Nota:

El código centra automáticamente el texto horizontal y verticalmente en la pantalla OLED.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!