جستجو برای:
سبد خرید 0
  • خانه
  • فروشگاه
    • دوره های آموزشی
    • پروژه
    • بسته های آموزشی
      • رباتیک
      • آردوینو
  • هوافضا
    • آموزش هوافضا
      • فیلم های آموزش هوافضا
      • PDF های آموزش هوافضا
    • محصولات هوافضایی
    • نرم افزار های هوافضا
    • تازه های هوافضا
  • رباتیک
    • آموزش رباتیک
      • فیلم های آموزش رباتیک
        • PDF های آموزش رباتیک
    • دیتاشیت فارسی
    • نرم افزار های رباتیک
    • تازه های رباتیک
    • تاریخ مسابقات
  • پروژه
    • پروژه های رایگان
    • پروژه های آماده
    • پروژه های آردوینو
    • پروژه های رزبری پای
    • پروژه های بدون میکروکنترلر
    • پردازش تصویر
    • سفارش پروژه
  • دوره های آموزشی
    • کلاس های آموزشی
    • فیلم های آموزشی
    • جلسه های آموزشی
      • آموزش آردوینو
      • آموزش رسپبری پای
      • آموزش STM32
      • ربات پرنده
      • رباتیک مقدماتی
  • تماس با ما
  • درباره ما
  • مقالات
شروع ثبت نام دوره تابستانی آوات روبو
فرصت تکرار نشدنی ثبت نام در دوره های حضوری با 20% تخفیف!
ساعت
دقیقه
ثانیه
مشاهده دوره های آموزشی
رباتیک و هوافضا
ورود
با ایمیل با شماره موبایل
گذرواژه خود را فراموش کرده اید؟
عضویت
با ایمیل با شماره موبایل
  • 09152556924
  • sup@avatrobo.ir
رباتیک و هوافضا
  • خانه
  • فروشگاه
    • دوره های آموزشی
    • پروژه
    • بسته های آموزشی
      • رباتیک
      • آردوینو
  • هوافضا
    • آموزش هوافضا
      • فیلم های آموزش هوافضا
      • PDF های آموزش هوافضا
    • محصولات هوافضایی
    • نرم افزار های هوافضا
    • تازه های هوافضا
  • رباتیک
    • آموزش رباتیک
      • فیلم های آموزش رباتیک
        • PDF های آموزش رباتیک
    • دیتاشیت فارسی
    • نرم افزار های رباتیک
    • تازه های رباتیک
    • تاریخ مسابقات
  • پروژه
    • پروژه های رایگان
    • پروژه های آماده
    • پروژه های آردوینو
    • پروژه های رزبری پای
    • پروژه های بدون میکروکنترلر
    • پردازش تصویر
    • سفارش پروژه
  • دوره های آموزشی
    • کلاس های آموزشی
    • فیلم های آموزشی
    • جلسه های آموزشی
      • آموزش آردوینو
      • آموزش رسپبری پای
      • آموزش STM32
      • ربات پرنده
      • رباتیک مقدماتی
  • تماس با ما
  • درباره ما
  • مقالات
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0

وبلاگ

رباتیک و هوافضا > مقالات > پروژه > اندازه گیری دما با استفاده از سنسور DS18B20 و رزبری پای

اندازه گیری دما با استفاده از سنسور DS18B20 و رزبری پای

مهر 27, 1397
ارسال شده توسط mjavad
پروژه، پروژه های رایگان، پروژه های رزبری پای

به نام خدا

اندازه گیری دما با استفاده از سنسور DS18B20 و رزبری پای

در این پروژه قصد داریم تا با استفاده از سنسور دمای DS18B20 و رزبری پای دما را اندازه گیری کنیم. این سنسور انتخاب مناسبی برای ایستگاه های هوا شناسی و سیستم خودکار خانه می باشد. تعداد کمی سنسور از این دسته وجود دارند که به راحتی با رزبری پای راه اندازی می شوند. این دسته از سنسور ها اندازه ی ترانزیستور هستند و معمولا سه پایه دارند. برای اتصال این سنسور ها به رزبری پای تنها به یک مقاومت 4.7 و یا 10 کیلو اهمی نیاز است.

 

اطلاعات تخصصی سنسور DS18B20

 

بازه ی زمانی -55 تا 125 درجه سانتی گرد

ولتاژ کاری 3 تا 5 ولت

نمونه برداری در هر بازه ی 750 میلی ثانیه ای

دقت اندازه گیری 0.5°C (9 bit); 0.25°C (10 bit); 0.125°C (11 bit); 0.0625°C (12 bit)

64 بیت آدرس دهی

پروتکل اتصال تک سیمی

 

اتصال سنسور DS18B20 به رزبری پای

 

پین های این سنسور را در زیر مشاهده می کنید.

 

 

 

 

 

سیم بندی برای خروجی ssh

 

 

 

R1:  4.7K Ohm 10K Ohm

 

سیم بندی اتصالات ال سی دی

 

 

 

R1: 4.7K Ohm or 10K Ohm resistor

 

فعال سازی ارتباط تک سیمی

قبل از اینکه رزبری پای داده از سنسور داده ای دریافت کند باید این ارتباط را فعال کنیم. هنگامی که سنسور را متصل کردید و تغذیه ی رزبری پای را وصل کردید ، به آن وارد شوید و مراحل زیر را طی کنید :

  1. در پنجره ی فرمان زیر را وارد کنید sudo nano /boot/config.txt  سپس dtoverlay=w1–gpio در انتهای فایل اضافه کنید.
  2. از برنامه خارج شوید و رزبری پای را با فرمان sudo reboot ریبوت کنید.
  3. بار دیگر وارد رزبری پای شوید و فرمان sudo modprobe w1–gpio را وارد کنید.
  4. سپس فرمان sudo modprobe w1-therm را وارد کنید.
  5. آدرس را با استفاده فرمان cd /sys/bus/w1/devices تغییر دهید.
  6.  حال Is را در لیست دستگاه وارد کنید :

 

 

 

همانطور که مشاهده می کنید w1_bus_master1 برای سیستم من 28-000006637696 نمایش داده شده است.

7. حال آدرس را همانند cd 28-XXXXXXXXXXXX وارد کنید. ( آدرس سیستم خود را وارد کنید )

برای مثال برای من به شکل cd 28-000006637696 می باشد.

8.  w1_slave را وارد کنید که خروجی خوانده شده از سنسور را می خواند.

 

 

در اینجا دمای خوانده شده 28625 می باشد که به معنی 28.625 درجه ی سانتی گراد است.

9. cd را وارد کنید تا به قسمت روت وارد شوید.

این تمام کار های لازم برای ایجاد ارتباط یک طرفه بود. حال می توانید یکی از کد های زیر را برای این پروژه استفاده کنید.

 

 

خروجی دما در پایانه ی ssh

کد زیر خروجی دما را در پایانه ی ssh در واحد فارنهایت و سلسیوس نمایان می کند.

 

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)

 

 

 

نمایش دما بر روی ال سی دی

برای استفاده از ال سی دی باید کتابخانه ی آن بر روی رزبری پای شما نصب شده باشد. برای اینکار ابتدا دستور زیر را وارد کنید

sudo apt-get install python-pip

بعد از نصب آن کتابخانه ی RPLCD را با وارد کردن دستور زیر نصب کنید

sudo pip install RPLCD

بعد از انجام مراحل بالا با اجرای کد زیر بر روی رزبری پای دما بر روی ال سی دی نمایان خواهد شد :

 

import os
import glob
import time
from RPLCD import CharLCD

lcd = CharLCD(cols=16, rows=2, pin_rs=37, pin_e=35, pins_data=[33, 31, 29, 23])

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

#CELSIUS CALCULATION
def read_temp_c():
    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 = int(temp_string) / 1000.0 # TEMP_STRING IS THE SENSOR OUTPUT, MAKE SURE IT'S AN INTEGER TO DO THE MATH
        temp_c = str(round(temp_c, 1)) # ROUND THE RESULT TO 1 PLACE AFTER THE DECIMAL, THEN CONVERT IT TO A STRING
        return temp_c

#FAHRENHEIT CALCULATION
def read_temp_f():
    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_f = (int(temp_string) / 1000.0) * 9.0 / 5.0 + 32.0 # TEMP_STRING IS THE SENSOR OUTPUT, MAKE SURE IT'S AN INTEGER TO DO THE MATH
        temp_f = str(round(temp_f, 1)) # ROUND THE RESULT TO 1 PLACE AFTER THE DECIMAL, THEN CONVERT IT TO A STRING
        return temp_f

while True:

    lcd.cursor_pos = (0, 0)
    lcd.write_string("Temp: " + read_temp_c() + unichr(223) + "C")
    lcd.cursor_pos = (1, 0)
    lcd.write_string("Temp: " + read_temp_f() + unichr(223) + "F")

 

 

 

برچسب ها: اندازه گیری دما با استفاده از سنسور DS18B20 و رزبری پایرزبری پای Bسنسورکد رزبری پای
قبلی تشخیص رزبری پای زیرو بعنوان گجت USB یا اترنت توسط کامپیوتر
بعدی کنترل مکعب ال ای دی سه در سه با استفاده از رزبری پای

پست های مرتبط

اردیبهشت 9, 1398

برنامه نویسی به زبان پایتون برای رزبری پای

mjavad
ادامه مطلب

اسفند 5, 1397

تشخیص رنگ با استفاده از رزبری پای

mjavad
ادامه مطلب

بهمن 10, 1397

راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت دوم

mjavad
ادامه مطلب

بهمن 10, 1397

راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت اول

mjavad
ادامه مطلب

بهمن 2, 1397

ساخت اسپیدکنترلر موتور براشلس 3 ( با سنسور )

Author Avatar
Admin
ادامه مطلب

دیدگاهتان را بنویسید لغو پاسخ

دسته های محصولات
آخرین دیدگاه‌ها
  • Admin در پروژه ی ساخت یک ریموت کنترل 2.4 گیگا هرتز برای 10 کانال
  • Admin در درباره ما
  • Admin در پروژه ی ساخت یک ریموت کنترل 2.4 گیگا هرتز برای 10 کانال
  • Admin در رادیوکنترل 4 کاناله با قابلیت افزایش تا 10 کانال
  • امیر در رادیوکنترل 4 کاناله با قابلیت افزایش تا 10 کانال
ژوئن 2026
ش ی د س چ پ ج
 12345
6789101112
13141516171819
20212223242526
27282930  
« آوریل    
فهرست 1
  • عضویت
  • ویرایش حساب کاربری
  • ورود
  • خانه
فهرست 2
  • حمایت مالی
  • تبلیغات
  • فروشنده
  • داشبورد فروشندگان
  • سفارش پروژه
  • تماس با ما
  • درباره ما
فهرست 3
  • ویرایش حساب کاربری
  • فراموشی رمز عبور
  • ثبت نام
  • ویرایش حساب کاربری
محل کد نماد...
جستجو برای:
محصولات
  • دوره کوادکوپتر سرعتی FPV دوره آموزش ساخت کوادکوپتر مسابقاتی FPV
    نمره 4.00 از 5

    4,830,000 
  • دوره هواپیما مقدماتی تا پیشرفته دوره آموزش ساخت پهپاد بال ثابت ( هواپیما ) - مقدماتی تا پیشرفته
    10,480,000 
  • دوره کوادکوپتر مقدماتی دوره آموزش مقدماتی ساخت مولتی کوپتر (کوادکوپتر، هگزاکوپتر و ...)
    2,490,000 
  • دوره کوادکوپتر فیلم بردار دوره آموزش ساخت پهپاد فیلم بردار ( مولتی کوپتر )
    8,970,000 
  • دوره هواپیمای مدل موتور کشی دوره آموزش ساخت هواپیمای موتور کشی
    2,030,000 
نوشته‌های تازه
  • برنامه نویسی به زبان پایتون برای رزبری پای
  • تشخیص رنگ با استفاده از رزبری پای
  • راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت دوم
  • راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت اول
  • کنترل PID با آردوینو و دو موتور براشلس

درباره آوات روبو

 

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

دسترسی سریع

  • دوره های آموزشی
  • کیت
  • کلاس های حضوری
  • پروژه

کاوش

  • درباره ما
  • تماس با ما
  • مقالات

شبکه های اجتماعی

  • اینیستاگرام
  • یوتیوب
  • تلگرام

استفاده از مطالب سایت برای مقاصد غیر تجاری و با ذکر منبع بلامانع است. تمامی حقوق برای آوات روبو محفوظ است.