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

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)

ให้เชื่อมต่อวงจรดังรูปครับ
สําหรับ DS18B20 sensor จะมีอยู่ 3 ขาดังนี้
มีจุดสังเกตุคือในการต่อใช้งาน DS18B20 sensor จะต้องมีตัวต้านทานขนาด 4.7k Ohm ต่อ Pull Up เนื่องจาก DS18B20 sensor ใช้การสื่อสารแบบ 1-wire
Download Library สองตัวนี้มาก่อนะครับ
กลับไปที่ Arduino IDE เพื่อสร้าง Arduino Project ขึ้นมาโดยเข้าไปที่เมนู File—>new
แล้ว Import Library ที่โหลดมา โดยเข้าไปที่ Sketch —> Include Library —> Add .ZIP Library

เมื่อทุกอย่างเรียบร้อยเราก็มาลงมือ 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 วินาที แบบนี้

ก็จะเป็นประมาณนี้นะครับ ติดตรงไหนสอบถามได้นะครับ สําหรับบทความนี้พอแค่นี้ก่อน แล้วเจอกันใหม่บทความหน้าครับ :)
ขอบคุณข้อมูล และรูปภาพจาก arduino.cc
messenger ของ facebook เปิดให้ใช้บนเว็บแล้ว messenger.com เมื่อเข้ามาหน้าแรกจะให้เรา login ด้วย account facebook ถ้าเรา login กับเว็บ facebook แล้วสามารถ กดปุ่ม Continue as ... ได้เลย
ในปี ค.ศ. 1972 Dennis Ritchie เป็นผู้คิดค้นภาษาซี เป็นคแรก แต่ยังไม่ได้รับความนิยม ต่อมาในปี ค.ศ. 1978 Brian Kernighan ได้ร่วมกับ Dennis Ritchie พัฒนามาตรฐานของภาษาซี ขึ้น เรียกว่า K&R 1(Kernighan &
ปัจจุบันมีเว็บไซต์ที่เปิดเผยสู่สาธารณะหรือเรียกกันว่า Surface Web เพียง 4% ซึ่งสามารถค้นหาผ่าน Search engine ทั่วไปได้เช่น google ฯลฯ แต่ที่เหลือ 96% เป็นเว็บไซต์ที่ซ่อนตัวอยู่ ไม่สามารถเข้าถึงได้ด้วยวิธีปกติ หรือเรียกกันว่า Deep web และ Dark web ความแตกต่างระหว่าง Surface Web, Deep web และ Dark web คือ