MicroPython DS18S20 Temperature Sensor

Sittipong Jansorn
Jul 21, 2017 · 2 min read
WeMos — DS18S20

ใน MicroPython จะมี buildin sensor driver มาให้เราพร้อมใช้งานแล้วอยู่สองอย่างคือ DS18x20 กับ DHTxxxx ซึ่งทั้งสองอันนี้เราสามารถเรียกใช้งานได้เลยโดยที่ไม่ต้องทำอะไรเพิ่มเติม สำหรับ DS18x20 นั้นจะมี package ที่เข้ามาเกี่ยวข้องอยู่ 2 อันคือ

onewire
ds18x20

ก่อนที่เราจะใช้งาน ds18x20 ต้องทำการ import package เข้ามาก่อน

import onewire
import ds18x20

กำหนด Pin ที่จะใช้งาน ต้อง import Pin ก่อนที่อยู่ใน package machine

from machine import Pin

ds18x20

สร้าง object Pin โดยกำหนดชื่อตัวแปรเป็น dsPin

dsPin = Pin(5)

สร้าง onewire object โดยใช้ Pin ที่กำหนดไว้ข้างต้น และเราใช้ใช้ DS18x20 ต่อกับ GPIO5

ow = onewire.OneWire(dsPin)

สร้าง object ds18x20 โดยใช้บัสการสื่อสาร onewire ที่สร้างไว้ข้างต้น

ds = ds18x20.DS18X20(ow)

ds18x20

ทำการแสกน device ที่อยู่บน onewire bus

roms = ds.scan()

ถ้ามี sensor ต่ออยู่บน onewire bus จะ return ค่ามาเป็น object array แต่ถ้าไม่มีจะ return มาเป็น array ว่าง ๆ

แสกนเจอ sensor
แสกนไม่เจอ sensor

เราสามารถตรวจสอบได้ว่าแสกนเจอ sensor กี่ตัว

len(roms)

ก่อนที่จะทำการอ่านค่า Temperature จะต้องเรียก function convert_temp() เพื่ออ่านค่าจาก bus และจะต้องทำ delay 750ms ก่อนที่จะอ่านค่า Temperature อีกที ในการสร้าง delay จะต้องทำการ import package time เข้ามาก่อน

import time

โดยเรียก function

time.sleep_ms(750)

ในการกำหนดค่า delay นี้ถ้าเป็นการทำงานแบบ interactive mode ก็ไม่จำเป็นต้องกำหนดเพราะกว่าเราจะเขียน code บรรทัดต่อไปก็กินเวลามากกว่า 750ms แน่นอน

จากนั้นเราก็สามารถ อ่านค่า Temperature

ds.read_temp(roms[0])

ทดสอบรัน code แบบ loop

code loop

อธิบายเพิ่มเติม

ds.read_temp(roms[0])

roms[0] หมายความว่าเรากำลังอ้างอิง sensor ตัวที่ 1 ในระบบ onewire bus ก่อนใช้งานเราต้องทำการตรวจสอบ object ที่อยู่ใน array ของ roms ก่อนว่ามีมาชิกอยู่หรือไม่เพราะถ้าไม่มีสมาชิกของ object array อยู่จะทำให้เกิด error ได้

)
Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade