پروژه های رزبری پای, پروژه‌ها

پروژه راه اندازی سنسور دما DS18B20 با استفاده از Raspberry Pi به زبان پایتون

DS18B20-پروزه-راه-اندازی-با-رزبری-پای

فهرست مطالب

هدف از این آموزش راه‌اندازی  پروتکل 1-WIRE به زبان پایتون می‌باشد. ( شما می‌توانید سنسور های مشابه که خروجی 1-WIRE دارند را به این روش راه اندازی نمایید. )

قطعات مورد نیاز

  1. رزبری پای ( رزبری پای مورد استفاده در این اموزش Raspberry Pi3 model B می باشد.)
  2. LCD‌16X2
  3. ماژول PCF8574
  4. DS18B20
  5. برد بورد
  6. سیم برد بورد

سنسور DS18B20

 DS18B20 یک سنسور دما بوده که به طور گسترده در مکان‌هایی با محیط‌های کار سخت مانند صنایع شیمیایی ، کارخانجات معدن و غیره درگیر هستند استفاده می‌شود .

تعریف پایه‌های سنسور DS18B20

سنسور DS18B20 توسط پروتکل یک سیمه امکان اتصال به میکروکنترلر را دارد. پایه شماره 1 زمین – پایه شماره 2 به رزبری – پایه شماره 3 به مثبت منبع وصل می‌شود .

1. سنسور DS18B20​

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

همانند تصویر زیر برای اتصال DS18B20 و رزبری پای مراحل زیر را دنبال می‌کنیم:

  1. اتصال پین مثبت ماژول DS18B20 به تغذیه 5 ولت برد رزبری پای ( سیم قرمز
  2. اتصال پین منفی سنسور به پین GND برد رزبری پای ( سیم مشکی )
2. اتصال رزبری پای به سنسور DS18B20
3. اتصال PCF8574 به رزبری پای
4. پایه های رزبری پای

کدنویسی

آماده سازی نرم افزاری Raspberry Pi

قبل از اسکریپت نویسی پایتون برای خواندن دیتا از سنسور باید 1-WIRE را در رزبری فعال کنیم:

				
					sudo nano /boot/config.txt

				
			
5. فعال کردن 1-WIRE

در ادامه عبارت dtoverlay=w1–gpio را در ابتدای فایل وارد کرده و بعد از ذخیره کردن ان با دستور زیر رزبری را راه انداری مجدد می کنیم :

				
					sudo reboot
				
			

حال دستورات زیر را به ترتیب وارد می کنیم:

				
					sudo modprobe w1–gpio
sudo modprobe w1-therm.
cd /sys/bus/w1/devices
ls

				
			

که با وارد کردن دستور LS ای دی سنسور خود را رویت خواهیم کرد:

اکنون با رفتن به ادرس با ای دی دریافتی و وارد کردن دستور زیر مقدار دما را در CLW مشاهده می کنیم:

				
					cd 28-XXXXXXXXXXXX [use the name of your directory or use Tab key for auto complete)
cat w1_slave

				
			
دما ds18b20

نوشتن کد پایتون برای نمایش دما بر روی LCD با I2C

حال در این بخش با اضافه کردن کتابخانه I2C_LCD_DRIVER و مشخص کردن محل و خط ذخیره شدن دما در حافظه رزبری ، دما را بر روی ال سی دی نمایش می دهیم:

				
					import time #import time for creating delay
#import Adafruit_CharLCD as LCD #Import LCD library
import I2C_LCD_driver
import os #Import for file handling
import glob #Import for global
mylcd = I2C_LCD_driver.lcd()
#lcd_rs = 7 #RS of LCD is connected to GPIO 7 on PI
#lcd_en = 8 #EN of LCD is connected to GPIO 8 on PI
#lcd_d4 = 25 #D4 of LCD is connected to GPIO 25 on PI
#lcd_d5 = 24 #D5 of LCD is connected to GPIO 24 on PI
#lcd_d6 = 23 #D6 of LCD is connected to GPIO 23 on PI
#lcd_d7 = 18 #D7 of LCD is connected to GPIO 18 on PI
#lcd_backlight = 0 #LED is not connected so we assign to 0
#lcd_columns = 16 #for 16*2 LCD
#lcd_rows = 2 #for 16*2 LCD
#lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7,
# lcd_columns, lcd_rows, lcd_backlight) #Send all the pin details to libra
mylcd.lcd_display_string(" Redronic",1) #Give a intro message
time.sleep(2) #wait for 2 secs
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 get_temp(): #Fundtion to read the value of Temperature
file = open(device_file, 'r') #opent the file
lines = file.readlines() #read the lines in the file
file.close() #close the file
trimmed_data = lines[1].find('t=') #find the "t=" in the line
if trimmed_data != -1:
temp_string = lines[1][trimmed_data+2:] #trim the strig only to the temoerature value
temp_c = float(temp_string) / 1000.0 #divide the value of 1000 to get actual value
return temp_c #return the value to prnt on LCD
while 1: #Infinite Loop
# lcd.clear() #Clear the LCD screen
mylcd.lcd_clear()
#lcd.message ('Temp = %.1f C' % get_temp()) # Display the value of temperature
mylcd.lcd_display_string("DS18B20 with Pi",1) #Give a intro message
mylcd.lcd_display_string("Temp = %.1f C" % get_temp(), 2)
time.sleep(4) #Wait for 1 sec then update the values

				
			

در پایان با اتمام نوشتن کد بالا و فشار دادن کلید‌های CTRL+X و سپس Y ( در انتها زدن کلید Enter ) اقدام به ذخیره اسکریپت نوشته شده می‌کنیم.

خروجی برنامه

نظرتان را درباره این مقاله بگویید 0 نظر

پروژه راه اندازی سنسور دما DS18B20 با استفاده از Raspberry Pi به زبان پایتون

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

یک + نه =