Arduino ตอน7 ใช้ DS18B20 (Digital Temperature Sensor) กับ Arduino

30 Jun 2019,
Share: 
Cover image

สวัสดีครับ ในบทความนี้จะมีเนื้อหาเกี่ยวกับวิธีการใช้งาน DS18B20 (Digital Temperature Sensor) กับ Arduino กันนะครับ เพื่อเรียนรู้การใช้งาน Arduino กับ Digital Temperature Sensor ผ่าน 1-Wire Protocol

Step1: ข้อมูลเกี่ยวกับ DS18B20 (Digital Temperature Sensor)

Image

DS18B20 คือ 1-wire digital temperature sensor ที่ผลิดโดย Maxim IC สามารถใช้วัดอุณหภูมิในหน่วยองศาเซลเซียสตั้งแต่ -55 to 125 (+/-0.5) (ความละเอียด 9 ถึง 12-bit) Sensor แต่ละตัวจะมี Serial number (unique 64-Bit Serial number) ที่ไม่ซํ้ากันอยู่เพื่อใช้ระบุ Address แต่ละตัวในกรณีที่เชื่อมต่อ Sensor หลายตัวในสาย Data เส้นเดียว (1-wire)

Features:

  • Unique 1-Wire® interface requires only one port pin for communication
  • Each device has a unique 64-bit serial code stored in an onboard ROM
  • Multidrop capability simplifies distributed temperature sensing applications
  • Requires no external components
  • Can be powered from data line.
  • Power supply range is 3.0V to 5.5V
  • Measures temperatures from –55°C to +125°C (–67°F to +257°F)±0.5°C accuracy from –10°C to +85°C
  • Thermometer resolution is user-selectable from 9 to 12 bits
  • Converts temperature to 12-bit digital word in 750ms (max.)
  • User-definable nonvolatile (NV) alarm settings
  • Alarm search command identifies and addresses devices whose temperature is outside of programmed limits (temperature alarm condition)
  • Applications include thermostatic controls, industrial systems, consumer products, thermometers, or any thermally sensitive system

Step2: สิ่งที่ต้องมีสําหรับ Project นี้

  • Arduino board (UNO, DUE, Micro, อื่นๆ..).
  • DS18B20 sensor
  • ตัวต้านทาน 4.7k

Step3: เชื่อมต่อวงจร DS18B20 sensor กับ Arduino

Image

ให้เชื่อมต่อวงจรดังรูปครับ

สําหรับ DS18B20 sensor จะมีอยู่ 3 ขาดังนี้

  • GND
  • Data
  • VCC (+5V หรือ +3.3V)

มีจุดสังเกตุคือในการต่อใช้งาน DS18B20 sensor จะต้องมีตัวต้านทานขนาด 4.7k Ohm ต่อ Pull Up เนื่องจาก DS18B20 sensor ใช้การสื่อสารแบบ 1-wire

Step5: Coding

Download Library สองตัวนี้มาก่อนะครับ

กลับไปที่ Arduino IDE เพื่อสร้าง Arduino Project ขึ้นมาโดยเข้าไปที่เมนู File—>new

แล้ว Import Library ที่โหลดมา โดยเข้าไปที่ Sketch —> Include Library —> Add .ZIP Library

Image

เมื่อทุกอย่างเรียบร้อยเราก็มาลงมือ Coding กันครับ

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

// กําหนด Pin 2 สําหรับ รับ-ส่ง ข้อมูล
#define ONE_WIRE_BUS 2

// สร้าง Instance ของ OneWire
OneWire oneWire(ONE_WIRE_BUS);

// สร้าง Instance ของ DallasTemperature
DallasTemperature sensors(&oneWire);

void setup(void)
{
  // start serial port
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");

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

void loop(void)
{
  // Send the command to get temperatures
  sensors.requestTemperatures();

  Serial.print("Temperature is: ");

  // อ่านข้อมูลจาก DS18B20 พร้อมทั้งส่งข้อมูลไปแสดงผลที่ Computer ผ่าน Serial port
  Serial.println(sensors.getTempCByIndex(0));

  delay(1000);
}

จากตัวอย่าง Code ด้านบนมีการเรียกใช้ Library 2 ตัวคือ OneWire.h และ DallasTemperature.h ซึ่ง 2 ตัวนี้จะทํางานร่วมกันดังนี้ OneWire.h จะทําหน้าที่ส่ง และรับข้อมูลในรูปแบบ 1-wire และ DallasTemperature.h จะทําหน้าที่ควบคุมการอ่านและเขียนข้อมูลสําหรับ DS18B20 Sensor

การทํางานของโปรแกรมด้านบนคือ โปรแกรมจะอ่านข้อมูลจาก DS18B20 Sensor ทุกๆ 1 วินาที แล้วส่งข้อมูลที่อ่านได้ไปแสดงผลบนคอมพิวเตอร์ผ่าน Serial port

เมื่อลอง Compile และ Upload code ลงบน Arduino board แล้วดูผลลัพธ์ทาง Serial monitor ก็จะแสดงข้อมูลของอุณหภูมิทุกๆ 1 วินาที แบบนี้

Image

ก็จะเป็นประมาณนี้นะครับ ติดตรงไหนสอบถามได้นะครับ สําหรับบทความนี้พอแค่นี้ก่อน แล้วเจอกันใหม่บทความหน้าครับ :)

ขอบคุณข้อมูล และรูปภาพจาก arduino.cc

Suggestion blogs

Go EP.10 Defer ในภาษา Go

สวัสดีครับ ในบทความนี้ก็เป็น EP.10 แล้วนะครับ โดยเนื้อหาจะเป็นเรื่องเกี่ยวกับ Defer คืออะไร ใช้ทําอะไรสําหรับท่านใดที่ยังไม่ได้อ่าน EP.9 ท่านสามารถกลับไปอ่านก่อนได้นะครับที่นี่ Go EP.9 Go Contextมาเริ่มเรียนรู้ไปด้วยกันตามหัวข้อด้านล่างเลยครับ

ตรวจสอบเครดิตบูโรได้ที่ไหน

ทุกวันนี้ ไม่มีใครที่ไม่เคยเป็นหนี้ เมื่อเราไปกู้เพื่อมาทำอะไรก็แล้วแต่ ทางสถาบันการเงินจะตรวจสอบว่าคุณมีเครดิตดีแค่ไหน ประวัติการผ่อนชำระเป็นอย่าไร เคยชำระล่าช้าหรือป่าว หรือที่นิยมเรียกกันว่าเครดิตบูโร การที่จะอนุมัติให้กู้นั้นส่วนหนึ่งก็มาจากข้อมูลตรงนี้ แล้วถ้าเราจะตรวจสอบละว่าข้อมูลเครดิตบูโรของเราเองละ ก็สามารถทำได้ โดยไปขอตรวจสอบเครดิตบูโรได้ที่ ศูนย์ตรวจเครดิตบูโร 4 แห่ง ดังนี้

เปลี่ยนแบตเตอรี่รีโมทรถยนต์มิตซูบิชิ มิราจ (KOS)

สวัสดีครับ วันนี้ผมได้มีโอกาสเปลี่ยนแบตเตอรี่ของรีโมทของรถยนต์มิตซูบิชิ มิราจ ก็เลยนําวิธีการเปลี่ยนมาแบ่งปันกันครับ อุปกรณ์ที่ต้องใช้คือ


Copyright © 2019 - 2025 thiti.dev |  v1.51.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Nostr   Youtube channel   Telegram   Email contact   วงแหวนเว็บ