Aquí te dejo un código de ejemplo para el ESP32 que lee la dirección y la temperatura de los sensores de temperatura Dallas 18B20 y muestra los datos en el monitor serial:

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

// Definir el pin de datos
#define ONE_WIRE_BUS 18

// Instanciar el objeto OneWire
OneWire oneWire(ONE_WIRE_BUS);

// Instanciar el objeto DallasTemperature
DallasTemperature sensors(&oneWire);

void setup() {
  // Inicializar el monitor serial
  Serial.begin(9600);
  
  // Inicializar los sensores
  sensors.begin();
}

void loop() {
  // Leer la temperatura de todos los sensores
  sensors.requestTemperatures();

  // Imprimir los datos de cada sensor
  for (int i = 0; i < sensors.getDeviceCount(); i++) {
    // Obtener la dirección del sensor
    DeviceAddress address;
    sensors.getAddress(address, i);

    // Imprimir la dirección del sensor
    Serial.print("Sensor ");
    for (uint8_t j = 0; j < 8; j++) {
      if (address[j] < 16) Serial.print("0");
      Serial.print(address[j], HEX);
      if (j < 7) Serial.print(":");
    }

    // Obtener la temperatura del sensor
    float temperature = sensors.getTempC(address);

    // Imprimir la temperatura del sensor
    Serial.print(" - Temperatura: ");
    Serial.print(temperature);
    Serial.println("°C");
  }

  // Esperar un segundo antes de leer los sensores de nuevo
  delay(1000);
}

Este código utiliza la biblioteca OneWire y la biblioteca DallasTemperature para comunicarse con los sensores de temperatura. La dirección de cada sensor se muestra en formato hexadecimal y la temperatura se muestra en grados Celsius. Este código puede ser modificado para adaptarse a tu configuración de pines y número de sensores.
นี่คือโค้ดตัวอย่างสำหรับ ESP32 ที่อ่านที่อยู่และอุณหภูมิของเซ็นเซอร์อุณหภูมิ Dallas 18B20 และแสดงข้อมูลบนมอนิเตอร์แบบอนุกรม: #include <OneWire.h> #include <DallasTemperature.h> // Define the data pin # กำหนด ONE_WIRE_BUS 18 // สร้างอินสแตนซ์วัตถุ OneWire OneWire oneWire (ONE_WIRE_BUS); // สร้างอินสแตนซ์ของวัตถุ DallasTemperature เซ็นเซอร์อุณหภูมิ Dallas(&oneWire); การตั้งค่าเป็นโมฆะ () { // เริ่มต้นมอนิเตอร์อนุกรม Serial.begin (9600); // เริ่มต้นเซ็นเซอร์sensors.begin(); } void loop() { // อ่านอุณหภูมิของเซ็นเซอร์ทั้งหมด sensors.requestTemperatures(); // พิมพ์ข้อมูลของเซ็นเซอร์แต่ละตัวสำหรับ (int i = 0; i < sensors.getDeviceCount(); i++) { // รับที่อยู่เซ็นเซอร์ ที่อยู่ DeviceAddress; sensors.getAddress (ที่อยู่, i); // พิมพ์ที่อยู่เซ็นเซอร์ Serial.print("Sensor "); สำหรับ (uint8_t j = 0; j < 8; j ++) { ถ้า (ที่อยู่ [j] < 16) Serial.print ("0"); Serial.print (ที่อยู่ [j], HEX); ถ้า (j < 7) Serial.print (": "); } // รับอุณหภูมิเซ็นเซอร์อุณหภูมิลอย = sensors.getTempC(address); // พิมพ์อุณหภูมิเซ็นเซอร์ Serial.print(" - อุณหภูมิ: "); Serial.พิมพ์ (อุณหภูมิ); Serial.println("°C"); } // รอสักครู่ก่อนที่จะอ่านเซ็นเซอร์อีกครั้งล่าช้า (1,000) } รหัสนี้ใช้ไลบรารี OneWire และไลบรารี DallasTemperature เพื่อสื่อสารกับเซ็นเซอร์อุณหภูมิ ที่อยู่ของเซ็นเซอร์แต่ละตัวจะแสดงในรูปแบบเลขฐานสิบหกและอุณหภูมิจะแสดงเป็นองศาเซลเซียส รหัสนี้สามารถแก้ไขได้เพื่อให้เหมาะกับการกำหนดค่าพินและจำนวนเซ็นเซอร์ของคุณ
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence