Cover image

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

30 Jun 2019

Share to:

สวัสดีครับ ในบทความนี้จะมีเนื้อหาเกี่ยวกับวิธีการใช้งาน 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

Install docker on raspberry pi

ในบทความนี้ผมจะพูดถึงวิธีการ install docker ใน raspberry pi (สําหรับใครที่ยังไม่รู้ว่า Docker คืออะไรให้อ่านบทความนี้ก่อน Docker คืออะไร ครับ) เริ่มต้นด้วยการเตรียมอุกปรณ์ดังนี้raspberry pi (ในบทความนี้ผมใช้ raspberry pi 2)SD Card ที่ติดตั้ง RASPBIAN เรียบร้อยวิธีติดตั้งสามารถทําได้สองวิธีคือ

จริงหรือ? ที่สามารถกดเงินจาก ATM ด้วยรหัส ATM มากกว่า 1 ชุด

สวัสดีครับ บทความนี้ก็เป็นเรื่องสั้นๆ ที่เกี่ยวข้องกับการใช้งานตู้ ATM ซึ่งก็ตามหัวข้อนะครับ เราสามารถกดเงินจากตู้ ATM ได้ด้วยรหัส ATM อื่นๆ นอกเหนือจากที่เราตั้งไว้ในตอนแรกที่เราทําบัตร ATM

วิธีการโฮสต์ไฟล์ IPFS ให้ออนไลน์ตลอดไป

สวัสดีครับ โดยปกติเมื่อ Add File เข้า IPFS แล้ว IPFS จะทําการ Pin File ให้โดยอัตโนมัติ หมายความว่า File นั้นจะยัง Online อยู่ ใน IPFS Network แต่เมื่อใดเราปิดเครื่อง หรือปิด IPFS Daemon แล้ว File นั้นจะถูกลบออกจาก IPFS Network ในเวลาต่อมา (ประมาณ 24 ชั่วโมง) ดังนั้นถ้าต้องการจะให้ File คงอยู่ตในลอดไป จะต้องให้เครื่องคอมพิวเตอร์ หรือ Node อื่นๆ Pin File ของเราไว้ในระบบด้วย ยิ่งมี Node ที่ Pin File ของเราเยอะ File ของเรานั้นก็จะอยู่ในระบบ ไม่หายไปไหน ถึงแม้ว่าเราปิดเครื่องของเราแล้วก็ตาม


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

Build with ❤️ and Astro.

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