온도 센서 DS18B20을 ESP32로 움직이는 메모

소개



아마존에서 샀던 그리워하지 않았던 온도 센서 DS18B20이 구르고 있었기 때문에 사용해 보았습니다.
원래 방수 처리가 실시되었습니다.
이 센서는 1-wire 인터페이스라고 하며 하나의 배선으로 데이터를 제공하는 편리한 인터페이스인 것 같습니다.
결국, 여기 에 사용법이 잘 정리되어 있었습니다.



사용한 것



부품


  • ESP32
  • 저항 4.7kΩ
  • 온도 센서 DS10B20

  • 도서관



    여기를 사용하는 것 같습니다.
    - PaulStoffregen/OneWire
    - milesburton/Arduino-Temperature-Control-Library

    배선



    데이터시트 에 있는 정규 풀업 저항을 사용한 회로로 온도 취득을 시도했습니다.

    이번에 사용한 센서는 검정색이 GND, 빨간색이 5V, 노란색이 데이터 전송용 핀입니다.





    프로그램



    아래 샘플 코드를 시도했습니다.
    
    #include <OneWire.h>
    #include <DallasTemperature.h>
    
    // Data wire is plugged into port 2 on the Arduino
    #define ONE_WIRE_BUS 33
    
    // Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
    OneWire oneWire(ONE_WIRE_BUS);
    
    // Pass our oneWire reference to Dallas Temperature. 
    DallasTemperature sensors(&oneWire);
    
    void setup(void)
    {
      // start serial port
      Serial.begin(115200);
      Serial.println("Dallas Temperature IC Control Library Demo");
    
      // Start up the library
      sensors.begin();
    }
    
    void loop(void)
    { 
      // call sensors.requestTemperatures() to issue a global temperature 
      // request to all devices on the bus
      Serial.print("Requesting temperatures...");
      sensors.requestTemperatures(); // Send the command to get temperatures
      Serial.println("DONE");
    
      Serial.print("Temperature for the device 1 (index 0) is: ");
      Serial.println(sensors.getTempCByIndex(0));
    
      delay(500);
    }
    
    



    결론



    사용하지 않았던 센서를 사용할 수 있어 만족합니다.
    DS18B20을 여러 개 붙이기 위한 방법도 있어, 깊이 파고 가면 즐거울 것 같습니다.

    좋은 웹페이지 즐겨찾기