วันจันทร์ที่ 28 ตุลาคม พ.ศ. 2556

DS18B20 Temperature Sensing LAB2

DS18B20 Temperature Sensing LAB2

28 ตุลาคม 2013 เวลา 19:04 น.


รายการอุปกรณ์
-ชุด Raspberry pi
-SD Card 4G Class4 ขั้นต่ำ
-OS Raspbian "2013-09-25-wheezy-raspbian.zip" http://www.raspberrypi.org/downloads
-DS18B20 Temperature
-WIFI USB / LAN Wires
-Breadboard+Jumper Wires
-Mount+Keyboard

ds18b20 เป็นอุปกรณ์เซ็นเซอร์วัดอุณหภูมิโดยเอาต์พุตที่ได้จะเป็น digital การเชื่อมต่อนนั้นเราสามารถเชื่อมต่อพอร์ต GPIO ของ Raspberry pi

การเชื่อมต่อ raspberry pi  กับ ds18b20 โดยใช้ตัวต้านทานอีตัว ค่า 4.7K หรือใกล้เคียง

gpio ขา 1 (3.3v)           >>        ds18b20  ขาบนสุด  
gpio ขา 4 (gpio4 in)  >>       ds18b20  ขากลาง
gpio ขา 1 (gnd)  >>       ds18b20  ขาล่างสุด
ส่วนตัวต้านทาน คร่อมระหว่าขา ds18b20 ระหว่าขา ขาบนสุด และ ขากลาง
การต่อขาอ้างอิงจากภาพนี้เป็นหลัก

หรือ

ต่อมาเปิด terminal ขึ้นมาจากนั้นทำตามคำสั่งเหล่านี้เพื่อ

#sudo modprobe w1-gpio
 #sudo modprobe w1-therm
 #cd /sys/bus/w1/devices
 #ls
 #cd 28-xxxx (change this to match what serial number pops up)
 #cat w1_slave

ดังรูป


จากนั้นเพิ่ม python script โดยสร้างไฟล์ชื่อ thermometer.py

#sudo nano thermometer.py

จากนั้นเพิ่ม code ข้างล่างนี้ไปแล้ว save ด้วย ctrl+x กด y กด enter

import os
import glob
 import time

os.system('modprobe w1-gpio')
 os.system('modprobe w1-therm')

base_dir = '/sys/bus/w1/devices/'
 device_folder = glob.glob(base_dir + '28*')[0]
 device_file = device_folder + '/w1_slave'

def read_temp_raw():
  f = open(device_file, 'r')
  lines = f.readlines()
  f.close()
  return lines

def read_temp():
  lines = read_temp_raw()
  while lines[0].strip()[-3:] != 'YES':
  time.sleep(0.2)
  lines = read_temp_raw()
  equals_pos = lines[1].find('t=')
  if equals_pos != -1:
  temp_string = lines[1][equals_pos+2:]
  temp_c = float(temp_string) / 1000.0
  temp_f = temp_c * 9.0 / 5.0 + 32.0
  return temp_c, temp_f

while True:
  print(read_temp())
  time.sleep(1)

สุดท้ายทดสอบการทำงานของ python script ด้วย

#sudo python thermometer.py

ผลลัพธ์จะได้ดังรูป    http://learn.adafruit.com/assets/3786

**การหยุดไฟลืที่รันอยู่โดยกด ctrl+c หรือ ctrl+z**

https://www.youtube.com/channel/UCDs7h_zNn444ONo5J3Ot3iQ/videos?sort=dd&view=0&shelf_id=1

0 ความคิดเห็น:

แสดงความคิดเห็น