En el siguiente tutorial aprenderás a programar el DS18B20 con Arduino IDE y la placa ESP32, para obtener lecturas en el monitor serie.
Lista de materiales:- ESP32 DEVKITV1
- Sensor DS18B20
- Mini Protoboard 170 Pts
¿Cómo conectar el DS18B20 a un ESP32?
El sensor DS18B20 sumergible tiene 3 pines, el pin de tierra o GND, señal o datos(DQ) y alimentación VCC que va desde 3V hasta 5.5V.
Para conectarlo a la placa ESP32 solo debes conectar el pin de VCC a la salida de 3.3v del ESP32 de igual manera conectar los pines de GND a GND y el pin datos “DQ” conectar a un pin digital del ESP32, para este caso lo conectaremos al pin D4 y conectar una resistencia de 4.7k en modo Pull-up, entre el pin de Datos y VCC.
En la siguiente imagen podrás ver como hacer la conexión.
¿Cómo programar el DS18B20 con el IDE de Arduino?
Para programar el sensor DS18B20 sumergible con el IDE de Arduino necesitarás descargar las siguientes librerías que nos proporciona OneWire y Dallas Semiconductor.
Estas librerías son muy sencillas de utilizar, nos permitirán obtener la lectura de temperatura de manera rápida y sin realizar mucho código, estas librerías funcionan para las placas de Arduino, ESP8266 y ESP32. En los siguientes link´s podrás descargar las librerías.
Ya que descargaste las librerías, abre el IDE de Arduino dirigirte a la pestaña programa y da un clic en “Incluir Librería” y se desplegará una ventana, selecciona la opción de “Añadir biblioteca .ZIP”.
Después selecciona la librería OneWire, y listo has incluido la librería al IDE de Arduino, para la segunda librería tendrás que hacer el mismo proceso.
Programación de la placa ESP32 mediante Arduino IDE
En este tutorial usaremos la placa ESP32 para leer los datos de temperatura cada un 1 segundo, utilizando el monitor serie.
Antes debes de tener las placas ESP32 instaladas en el IDE de Arduino, puedes consultar como hacerlo dando clic Aquí.
Ya que instalaste las placas de ESP32, recuerda seleccionar la placa NodeMCU-32S, verificar el puerto COM y después copiar y pegar el siguiente código, por último debes de compilar y cargar el código a tu ESP32.
/*El siguiente código permite obtener la lectura del sensor cada un 1 segundo en el monitor serie de Arduino*/ #include <OneWire.h> #include <DallasTemperature.h> OneWire ourWire(4); //Se establece el pin 4 del ESP32 para la lectura del sensor DallasTemperature DS18B20(&ourWire); //Se declara una variable u objeto para el sensor void setup() { Serial.begin(115200); //Se inicia el monitor serie a 115200 baudios DS18B20.begin(); //Se inicia el sensor } void loop() { DS18B20.requestTemperatures(); //Se envía el comando para leer la temperatura float tem= DS18B20.getTempCByIndex(0); //Se obtiene la temperatura en ºC Serial.print("Temperatura= "); Serial.print(tem); Serial.println(" °C"); delay(1000); }
Verificar el funcionamiento
Para verificar que funciona el código debes abrir el monitor serie, definir la velocidad de baudios a “115200” y cambiar a “Ambos NL & CR”, de esta manera se esteran imprimido los datos de temperatura cada segundo.