ماژول سنسور دما KY001 چیست ؟

تصویر ماژول سنسور دما KY001

یکی از پرکاربردترین ماژول‌های الکترونیکی، ماژول سنسور دما KY-001 است که از Dallas Onewire DS18B20 به عنوان سنسور دما استفاده گردیده است. درگذشته خروجی سنسور دما آنالوگ بوده که باید از یک مبدل آنالوگ به دیجیتال (A/D) و مبدل دیجیتال به آنالوگ (D/A) نیز در مدار استفاده می‌کردیم که این امر در Arduino امکان‌پذیر نیست چون تعداد زیادی رابط خارجی ندارد بنابراین ماژول سنسور دما DS18B20 یک راه‌حل مناسب برای این امر است. درضمن تراشه DS18B20 شامل یک سریال منحصر به فرد است که می‌توان آن را در نقاط مختلف قرارداد و درجه حرارت محیط‌های مختلف از جمله: اتاق، ماشین و … را اندازه‌گیری نمود. کاربردهایی که می توانند از این ماژول بهره مند شوند عبارتند از:

  • کنترل های محیطی HVAC
  • سیستم های نظارت بر دما در ساختمان ها، کارخانه ها یا ماشین آلات 
  • سیستم های نظارت و کنترل فرآیند
  • و …

مشخصات فنی ماژول سنسور دما DS18B20

از نظر ظاهری ماژول ky-001 شامل یک تراشه DS18B20، یک LED و یک مقاومت است. این قطعه با سیستم عامل های الکترونیکی همانند آردوینو،  Raspberry Pi و Esp8266 سازگار می باشد. مشخصات این ماژول در جدول زیر آمده است:

جدول مشخصات فنی ماژول سنسور دما

نکات مهم

۱- سنسور DS18B20 و ترانزیستور ها شبیه به هم به نظر می رسند، بنابراین مراقب باشید که آن را به عنوان یک ترانزیستور در نظر نگیرید تا از خسارت جلوگیری شود.

۲- برای جلوگیری از آسیب دیدگی DS18B20، اطمینان حاصل کنید که پایه های VCC و Ground جا به جا نباشند.

۳- طول باس دیتا محدودیت دارد، که هنگام افزایش طول سیم دیتا باید به آن توجه کرد خروجی دچار خطا نشود، مقدار مقاومت مدار با افزایش سیم دیتا متغیر خواهد بود .

پایه های سنسور دما KY-001

پایه های ماژول سنسور دما

مدار اتصالات سنسور دما ky001 (DS18B20)

اتصال پایه ها در برد Arduino  و  Raspberry PI در جدول زیر آمده است:

اتصال پایه ها در برد Arduino  و  Raspberry PI

پایه های مختلف ماژول را مطابق جدول بالا و به صورت آنچه در تصویر زیر مشاهده می‌شود به برد آردوینو (به کمک نرم افزار fritzing) متصل کنید.

اتصالت پایه ها در محیط نرم افزار fritzing

نحوه راه‌اندازی ماژول سنسور دما با آردوینو

ما قصد داریم تا در این پروژه شما را با ماژول سنسور دما (KY-001) که توسط Arduino uno راه‌اندازی می‌شود، آشنا کنیم.

کدهای آردوینو مربوط به ماژول KY-001

در کد زیر از 2 کتابخانه OneWire و Dallas Temperature Control استفاده شده است تا به صورت سریال با ماژول KY-001 ارتباط برقرار کند، و می تواند دما را در خروجی نمایش دهد.

#include 
#include 
 
// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2
 
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature. 
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(); // IC Default 9 bit. If you have troubles consider upping it 12. Ups the delay giving the IC more time to process the temperature measurement
}
 
void loop(void)
{ 
  // call sensors.requestTemperatures() to issue a global temperature 
  // request to all devices on the bus
  Serial.print("Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperatures
  Serial.println("DONE");
 
  Serial.print("Temperature for Device 1 is: ");
  Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"? You can have more than one IC on the same bus. 0 refers to the first IC on the wire
}

کدهای رزبری پای ماژول سنسور دما ky001

# coding=utf-8
# needed modules will be imported and initialised
import glob
import time
from time import sleep
import RPi.GPIO as GPIO
# here you can modify the break between the measurements
sleeptime = 1
# the one-wire input pin will be declared and the integrated pullup-resistor will be enabled
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_UP)
# After the enabling of the resistor you have to wait till the communication has started
print 'wait for initialisation...'
base_dir = '/sys/bus/w1/devices/'
while True:
try:
device_folder = glob.glob(base_dir + '28*')[0]
break
except IndexError:
sleep(0.5)
continue
device_file = device_folder + '/w1_slave'
# The function to read currently measurement at the sensor will be defined.
def TemperaturMessung():
f = open(device_file, 'r')
lines = f.readlines()
f.close()
return lines
# To initialise, the sensor will be read "blind"
TemperaturMessung()
# Analysis of temperature: At the Raspberry Pi
# noticed one-wire slaves at the directory /sys/bus/w1/devices/
# will be assigned to a own subfolder.
# In this folder is the file in which the data from the one-wire bus will be saved
def TemperaturAuswertung():
lines = TemperaturMessung()
while lines[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lines = TemperaturMessung()
equals_pos = lines[1].find('t=')
if equals_pos != -1:
temp_string = lines[1][equals_pos+2:]
temp_c = float(temp_string) / 1000.0
return temp_c
# main program loop
# The measured temperature will be displayed via console, between the measurements is a break.
# The break time can be configured by the variable "sleeptime"
try:
while True:
print '---------------------------------------'
print "Temperature:", TemperaturAuswertung(), "°C"
time.sleep(sleeptime)
except KeyboardInterrupt:
GPIO.cleanup()

نحوه ارتباطات مدار و راه اندازی ماژول دما KY-001

ما در این ویدیو به شما نحوه ارتباط پایه های ماژول دما (KY-001) با دیسکاوری بورد Arduino UNO را نمایش می دهیم

هم چنین جهت دانلود و مشاهده توضیحات کامل چگونگی راه اندازی ماژول بسنسور دما با دیسکاوری بورد Arduino UNO به آدرس اینترنتی https://bit.ly/2V4Nzao  مراجعه نمایید.

بخش دانلود