Cảm biến nhiệt độ chống nước DS18B20

 

Cảm biến sử dung DS18B20, đầu ra Digital, được tích hợp trong ống thép không rỉ, độ nhạy cao cho phép bạn đo chính xác nhiệt độ trong môi trường ẩm ướt, với giao thức đơn giản 1-Wire. DS18B20 cung cấp 9-12 bit cấu hình đọc nhiệt độ trên giao thức 1-Wire, do đó bạn chỉ cần 1 dây để kết nối với một vi xử lý.

Thông số kỹ thuật

  • Điện áp hoạt động: 3.3V và 5VDC
  • Không thấm nước, không rỉ
  • Khoảng Nhiệt độ đo: -55 ° C đến +125 ° C
  • Độ chính xác từ ± 0.5 ° C trong khoảng -10 ° C đến +85 ° C
  • Giao diện: 1 Dây (One-Wire)
  • Đầu ra : VCC (Red), DATA (Blue), GND (Black)
  • Tương thích với chuẩn cắm plug& play 4 pin Blocky Piece

Tìm hiểu thêm thông tin về chuẩn cắm và hệ sinh thái module Blocky Piece ở đây.

Hướng Dẫn Sử Dụng Với Arduino

Phần cứng

  • Bước 1. Chuẩn bị các phần cứng sau:
    • Blocky UNO hoặc Base shield cho UNO
    • Module cảm biến nhiệt độ chống nước ds18b20
  • Bước 2. Dùng dây nối module servo vào cổng cắm D2 của Blocky Uno.
  • Bước 3. Nối Blocky UNO với máy tính thông qua cáp USB.

 

Code mẫu

Bạn cần install thư viện cho ds18b20 (tên là DallasTemperature) cho Arduino thông qua Library Manager

Sau đó bạn upload đoạn code sau. Bạn có thể tham khảo thêm nhiều ví dụ khác trong File > Example > DallasTemperature

// Include the libraries we need
#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2

// 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);

/*
 * The setup function. We only start the sensors here
 */
void setup(void)
{
  // start serial port
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");

  // Start up the library
  sensors.begin();
}

/*
 * Main function, get and show the temperature
 */
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");
  // After we got the temperatures, we can print them here.
  // We use the function ByIndex, and as an example get the temperature from the first sensor only.
  Serial.print("Temperature for the device 1 (index 0) is: ");
  Serial.println(sensors.getTempCByIndex(0));  
}

Bạn nhớ thay đổi pin cho đúng với cổng cắm D2 ở dòng này:

// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2