การเขียนโปรแกรมอ่านค่าอุณหภูมิจาก DS18B20
ไลบรารี่สำหรับ DS18B20 เนื่องจากโปรแกรม Arduino IDE ไม่ได้มีการติดตั้งมาให้ตั้งแต่เริ่มต้นจึงจำเป็นต้องมีการติดตั้งเพิ่มเติ่มเข้าไปในโปรแกรมซึ่งต้องใช้ไลบรารี่ 2 ตัวและอยู่คนละเวปไซต์ ขั้นตอนดังนี้
1. ดาวน์โหลดไฟล์ zip
-OneWire.h จากเวปไซด์https://github.com/PaulStoffregen/OneWire
-DallasTemperature.h จากเวปไซด์ https://github.com/milesburton/Arduino-Temperature-Control-Library
2. ทำการเพิ่มไลบรารี่ลงในโปรแกรม Arduino IDE โดยการเพิ่มจากไฟล์ zip แล้วทำการหาไฟล์ zip ที่ได้จากการดาวน์โหลดในข้อ 1
โจทย์โปรแกรม
-เขียนโปรแกรมอ่านค่าอุณหภูมิจาก DS18B20 แสดงผลที่อุปกรณ์ต่าง ๆ
-โปรแกรมรายละเอียดพิเศษรายกลุ่ม (แจ้งให้ทราบเมื่อถึงชั่วโมงเรียน)
วงจรที่ใช้ทดลอง
กรณีใช้บอร์ดรุ่น NodeMCU
กรณีใช้บอร์ดรุ่น WeMos D1 mini
ตัวอย่างโปรแกรม
ผลการรันจากโปรแกรมตัวอย่าง
ไลบรารี่สำหรับ DS18B20 เนื่องจากโปรแกรม Arduino IDE ไม่ได้มีการติดตั้งมาให้ตั้งแต่เริ่มต้นจึงจำเป็นต้องมีการติดตั้งเพิ่มเติ่มเข้าไปในโปรแกรมซึ่งต้องใช้ไลบรารี่ 2 ตัวและอยู่คนละเวปไซต์ ขั้นตอนดังนี้
1. ดาวน์โหลดไฟล์ zip
-OneWire.h จากเวปไซด์https://github.com/PaulStoffregen/OneWire
-DallasTemperature.h จากเวปไซด์ https://github.com/milesburton/Arduino-Temperature-Control-Library
2. ทำการเพิ่มไลบรารี่ลงในโปรแกรม Arduino IDE โดยการเพิ่มจากไฟล์ zip แล้วทำการหาไฟล์ zip ที่ได้จากการดาวน์โหลดในข้อ 1
โจทย์โปรแกรม
-เขียนโปรแกรมอ่านค่าอุณหภูมิจาก DS18B20 แสดงผลที่อุปกรณ์ต่าง ๆ
-โปรแกรมรายละเอียดพิเศษรายกลุ่ม (แจ้งให้ทราบเมื่อถึงชั่วโมงเรียน)
วงจรที่ใช้ทดลอง
กรณีใช้บอร์ดรุ่น NodeMCU
กรณีใช้บอร์ดรุ่น WeMos D1 mini
ตัวอย่างโปรแกรม
โค๊ด: [Select]
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire oneWire(D2); //Connect to D2
DallasTemperature sensors(&oneWire);
void setup(void)
{
Serial.begin(115200);
Serial.println("Dallas Temperature IC DS18B20");
sensors.begin();
}
void loop(void)
{
Serial.print(" Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.println("DONE");
Serial.print("Temperature is: ");
Serial.print(sensors.getTempCByIndex(0));
Serial.println(" Degrees C");
Serial.print("Temperature is: ");
Serial.print(sensors.getTempFByIndex(0));
Serial.println(" Degrees F");
}
ผลการรันจากโปรแกรมตัวอย่าง
ความคิดเห็น
แสดงความคิดเห็น