ESP32 - Sensor ultrasónico - OLED

Este tutorial le explica cómo usar el ESP32 para leer la distancia de un sensor ultrasónico y mostrarla en una pantalla OLED.

Sensor ultrasónico ESP32 OLED

Acerca de OLED y el sensor ultrasónico

Tenemos tutoriales específicos sobre OLED y sensor ultrasónico. Cada tutorial contiene información detallada e instrucciones paso a paso sobre el pinout de hardware, el principio de funcionamiento, la conexión de cableado al ESP32 y el código para ESP32... Obtenga más información sobre ellos en los siguientes enlaces:

Diagrama de Cableado

  • El diagrama de cableado con una fuente de alimentación procedente de un cable USB
Diagrama de cableado del sensor ultrasónico OLED para ESP32

This image is created using Fritzing. Click to enlarge image

Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.

  • El diagrama de cableado con fuente de alimentación desde un adaptador de 5 V
Diagrama de cableado de alimentación de 5 V para ESP32 con sensor ultrasónico y OLED

This image is created using Fritzing. Click to enlarge image

Código ESP32 - Sensor ultrasónico - OLED

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-ultrasonic-sensor-oled */ #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define TRIG_PIN 14 // ESP32 pin GPIO14 connected to Ultrasonic Sensor's TRIG pin #define ECHO_PIN 27 // ESP32 pin GPIO27 connected to Ultrasonic Sensor's ECHO pin Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); // create SSD1306 display object connected to I2C String tempString; 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 tempString.reserve(10); // to avoid fragmenting memory when using String } void loop() { // generate 10-microsecond pulse to TRIG pin digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10); digitalWrite(TRIG_PIN, LOW); // measure duration of pulse from ECHO pin long duration_us = pulseIn(ECHO_PIN, HIGH); // calculate the distance float distance_cm = 0.017 * duration_us; // print the value to Serial Monitor Serial.print("distance: "); Serial.print(distance_cm); Serial.println(" cm"); tempString = String(distance_cm, 2); // two decimal places tempString += " cm"; Serial.println(tempString); // print the temperature in Celsius to Serial Monitor oledDisplayCenter(tempString); // display temperature on OLED } void oledDisplayCenter(String text) { int16_t x1; int16_t y1; uint16_t width; uint16_t height; oled.getTextBounds(text, 0, 0, &x1, &y1, &width, &height); // display on horizontal and vertical center oled.clearDisplay(); // clear display oled.setCursor((SCREEN_WIDTH - width) / 2, (SCREEN_HEIGHT - height) / 2); oled.println(text); // text to display oled.display(); }

Pasos R\u00e1pidos

  • Abre el IDE de Arduino.
  • Haz clic en el icono de Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busca “SSD1306”, luego encuentra la biblioteca SSD1306 de Adafruit
  • Haz clic en el botón Instalar para instalar la biblioteca.
Biblioteca OLED para ESP32
  • Se le pedirá que instale algunas dependencias de otras bibliotecas.
  • Haga clic en el botón Instalar todo para instalar todas las dependencias de la biblioteca.
Biblioteca de sensores Adafruit GFX para ESP32
  • Copia el código anterior y pégalo en el IDE de Arduino
  • Compila y sube el código a la placa ESP32 haciendo clic en el botón Subir en el IDE de Arduino
  • Coloca tu mano frente al sensor
  • Mira el resultado en el OLED y en el Monitor Serial

※ Nota:

El código anterior alinea automáticamente el texto en el centro horizontal y vertical de la pantalla OLED. Consulte Cómo centrar vertical y horizontalmente en OLED para más detalles.

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!