En el siguiente tutorial aprenderás a cómo programar el sensor DS18B20 usando el IDE de Arduino y la placa ESP32. A demás podrás obtener las lectura a través del monitor serie, por ultimo se realizara una conexión con la siguiente plataforma:
Thing Speak IOT, que los permitirá visualizar la temperatura del sensor de manera gráfica.
Los materiales que estaremos utilizando son:
¿Cómo conectar el DS18B20 a un ESP32?
Deberás seguir las siguientes indicaciones para interconectar los dispositivos DS18B20, IDE Arduino y ESP32:
- El sensor cuenta con tres pines, el pin de tierra o GND, señal o DQ y alimentación o VCC
- Soporta el sensor DS18B20 una alimentación de hasta 3V y 5.5V
- Para conectar el DS18B20 al ESP32 debes conectar el pin de VCC a la salida de 3.3v del ESP32
- Conectar los pines de GND a GND
- El pin DQ conectarlo al pin D4 digital del ESP32
- Conecta una resistencia de 4.7k en modo Pull-Up entre el pin de datos y VCC
Te mostrare a continuación la imagen de las conexiones:
Conexión del sensor DS18B20 con el ESP32
¿Cómo programar el DS18B20 con el IDE de Arduino?
Para programar el sensor DS18B20 con el IDE de Arduino necesitaras descargar las siguientes librerías que nos proporcionan OneWire y Dallas Semiconductor.
Estas librerías son muy sencillas de utilizar, nos permitirán obtener la lectura de manera rápida y sin realizar mucho código, a demás son compatibles para las placas de Arduino, ESP8266 y ESP32.
Accede a los siguientes enlaces para 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 desplegara 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.
Para este tutorial usaremos la placa ESP32 para leer los datos de temperatura cada un segundo utilizando el monitor serie. Deberás tener las placas ESP32 instaladas en el IDE de Arduino, consulta cómo hacerlo dando clic Aquí.
Ya qué tengas instalado las placas ESP32, recuerda seleccionar la placa NodeMCU-32S, verifica el puerto COM y después copia y pega el siguiente código. No olvides copilar 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); }
Recuerda abrir el monitor serie para verificar el código, así como definir la velocidad a 115200 baudios. También deberás cambiar a NL & CR, de está manera se estarán imprimiendo los datos de temperatura cada segundo.