ครั้งที่แล้วเราใช้ Raspberry Pi เชื่อมต่อกับ Sensor วัดอุณหภูมิ DHT22 ครั้งนี้ลองมาใช้ 1 Wire Temperature Sensor อย่าง DS1820 บ้าง Sensor ตัวนี้มี 3 ขาหน้าตาคล้ายกับ TM/LM35 จ่ายไฟ 3.0 – 5.5V อ่านข้อมูลจากขาที่ 2 คล้ายกัน แต่ข้อมูลจะส่งออกมาเป็น digital สามารถต่อพ่วงใช้งานร่วมกันหลายตัวแบบ parallel ได้ ใครสนใจในรายละเอียดของ DS1820 ก็สามารถ ใน Raspberry Pi เราสามารถใช้ Kernel Module ชื่อ w1-gpio และ w1-therm ในการเชื่อมต่อกับ DS1820 ได้โดยตรงก่อนอื่นมาต่อวงจรกันก่อน

จากนั้น load module ทั้ง 2 ตัวได้เลยด้วยคำสั่ง

sudo modprobe w1-gpio

sudo modprobe w1-therm

จากนั้นให้คุณดูไดเรคทอรีไปที่ /sys/bus/w1/devices คุณจะพบว่ามีไดเรคทอรีที่ขึ้นต้นต้วย 28- อยู่ ไดเรคทอรีนี้คือ id ของ DS1820 นั่นเอง ของผมเป็น 28-001415d35eff ให้ลอง cat ไฟล์ w1_slave ที่อยู่ในไดเรคทอรีนี้เราจะได้ค่าของอุณหภูมิมาดังนี้

จากภาพ ค่าที่ได้คือ t=31187 คืือ 31.187 C อยากได้ค่าของหน่วยอื่นก็แปลงค่าเอาครับ :) ทีนี้เราจะเขียนโปรแกรมอ่านค่ามาได้ยังไง วิธีง่ายๆ ก็เขียน python อ่านค่าจากไฟล์ w1_slave แต่ให้ดูมีการเขียนโปรแกรมสักหน่อย มี python module ชื่อ ds18b20 ให้เรียกใช้ได้ ติดตั้ง module นี้ผ่าน pip กัน

sudo pip install ds18b20

จากนั้นเขียนโค้ดด้งนี้

ทดลอง run ดูจะได้ผลลัพท์ดังนี้

Comments are closed.