<s>[INST] Escribe un codigo para ESP32 que indique por el monitor serial la direccion de los sensores de temperatura dallas 18b20 junto con su temperatura. [/INST] Aquí te proporciono un código de ejemplo para ESP32 que busca todos los dispositivos de temperatura Dallas 18B20 en el bus OneWire y muestra su dirección y temperatura en el monitor serial.

scss

#include <OneWire.h>
#include <DallasTemperature.h>

// Define el pin al que está conectado el bus OneWire
#define ONE_WIRE_BUS 5

// Instancia OneWire
OneWire oneWire(ONE_WIRE_BUS);

// Instancia DallasTemperature
DallasTemperature sensors(&oneWire);

void setup() {
  // Inicializa el monitor serial
  Serial.begin(9600);

  // Inicializa el bus OneWire
  sensors.begin();
}

void loop() {
  // Busca todos los dispositivos conectados al bus OneWire
  sensors.requestTemperatures();

  // Recorre todos los dispositivos encontrados y muestra su dirección y temperatura
  for (uint8_t i = 0; i < sensors.getDeviceCount(); i++) {
    // Obtiene la dirección del dispositivo
    DeviceAddress address;
    sensors.getAddress(address, i);

    // Muestra la dirección del dispositivo
    Serial.print("Dispositivo ");
    for (uint8_t j = 0; j < 8; j++) {
      Serial.print(address[j], HEX);
      Serial.print(" ");
    }

    // Obtiene la temperatura del dispositivo
    float tempC = sensors.getTempC(address);

    // Muestra la temperatura del dispositivo
    Serial.print(" Temperatura: ");
    Serial.print(tempC);
    Serial.println("°C");
  }

  delay(1000);
}

Este código utiliza la librería OneWire para comunicarse con los dispositivos Dallas 18B20 conectados al bus OneWire. También utiliza la librería DallasTemperature para leer las temperaturas de los dispositivos. En la función setup() se inicializa el monitor serial y se inicia el bus OneWire. En la función loop(), se buscan todos los dispositivos conectados al bus OneWire y se muestra su dirección y temperatura en el monitor serial. El código se repite cada segundo utilizando la función delay(). </s>