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

0

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

هدف از این آموزش راه اندازی I2C BUS  رسپبری پای به زبان پایتون میباشد    ( شما می توانید سنسور های مشابه که خروجی I2C دارند را به این روش راه اندازی نمایید )

راه اندازی سنسور فشارBMP18

لوازم مورد نیاز

  1. رزبری پای (رزبری پای مورد استفاده در این اموزش Raspberry Pi3 model B می باشد.)
  2. سنسور BMP180
  3. برد بورد
  4. سیم برد بورد

سنسور BMP180

 

BMP180 يك سنسور فشار بارومتريك با دقت بالا و جريان مصرفي پايين بوده که ميتواند فشار بين 300 تا 1100 هكتوپاسكال را با دقت مطلق 0.03 هكتوپاسكال اندازه گيري نمايد(هر هكتوپاسكال معادل 100 پاسكال است.) سنسور BMP180 بر اساس تكنولوژي مقاومت پيزوالكتريك يا Piezo-resistive طراحي و توليد شده است.
ولتاژ تغذيه سنسور بين 1.8 تا 3.6 ولت بوده و خروجي سنسور بصورت ديجيتال و با رابط I2C است و شما به راحتی می توانید تنها با دو سیم با برد رزبری پایارتباط برقرار کنید.

تعریف پایه های سنسورBMP180

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

ماژول سنسور فشارBMP180

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

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

  1. اتصال پین مثبت سنسور به پین 3.3ولت برد رزبری پای (سیم قرمز)
  2. اتصال پین منفی سنسور به پین GND برد رزبری پای (سیم مشکی)
  3. اتصال پین دیتا سنسور به پین SDA رزبری پای(سیم ابی)
  4. اتصال پین کلاک سنسور به پین SCL رزبری پای(سیم نارنجی)
سنسور فشارBMP180

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

قبل از اسکریپت نویسی پایتون برای سنسور BMP180 ابتدا باید از اپدیت بودن رزبری پای مورد استفاده مطمین شویم.بدین منظور پنجره CommandLine را باز کرده و دستورات زیر را جهت اپدیت سیستم عامل و نصب آن وارد می کنیم:

[python]
sudo apt-get update
sudo apt-get upgrade
[/python]در ادامه بعد از به روز رسانی و نصب ان باید python و (پکیج های کتابخانه استاندارد پایتون)pip را بر روی رزبری پای خود نصب کنیم.بدین منظور دستور زیر را در CommandLine وارد می کنیم:

[python]
sudo apt-get install python-dev python-pip
[/python]حال قبل از دانلود کتابخانه BMP180 با وارد کردن دستور زیر در CommandLine از نصب بودم اخرین نسخه پکیج های  setuptools, wheel و pip مطمئن میشویم:

[python]
sudo python -m pip install –upgrade pip setuptools wheel
[/python]اکنون با استقاده از دستور زیر برسی کرده که ایا برد رزبری پای سنسور BMP180 را می شناسد یا خیر:

[python]
sudo i2cdetect -y 1
[/python]در صورت مواجهه با Error دستور زیر را وارد کنید:

[python]
sudo i2cdetect -y 0
[/python]که بعد از شناسایی ماژول پاسخ زیر را در پنجره CLW مشاهده می کنید:

Capture

حال با استفاده از دستور زیر پکیج I2C  را برای رزبری دانلود کرده:

[python]
sudo apt-get install git build-essential python-dev python-smbus
[/python]در پایان کتابخانه پایتون BMP180 را دانلود می کنیم:

[python]
git clone https://github.com/adafruit/Adafruit_Python_BMP.git
[/python]و سپس نصب کتابخانه:

[python]
cd Adafruit_Python_BMP
sudo python setup.py install
[/python]

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

ابتدا با وارد کردن دستور زیر یک اسکریپت پایتون برای کدنویسی ایجاد می کنیم:

[python]
nano ~/BMP180.py
[/python]سپس بعد از وارد شدن به اسکریپت پایتون ، ابتدا کتابخانه مربوط به سنسور را با دستور زیر اضافه می کنیم :

[python]
import Adafruit_BMP.BMP085 as BMP085
[/python]با استفاده از این کتابخانه به راحتی می توانیم با سنسور ارتباط برقرار کرده و به راحتی فشار را دریافت می کنیم با کد زیر یک ثابت (Constant) را برای بهره گیری از کتابخانه سنسور مربوطه تعریف میکنیم:

[python]
sensor = BMP085.BMP085()
[/python]

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

[python]
print ‘Temp = {0:0.2f} *C’.format(sensor.read_temperature()) # Temperature in Celcius
print ‘Pressure = {0:0.2f} Pa’.format(sensor.read_pressure()) # The local pressure
lcd.message(“Temp={0:0.1f}*C Pressure ={1:0.1f} %".format(sensor.read_temperature(), sensor.read_pressure()))
[/python]برنامه کامل پایتون :

[python]
import time
import Adafruit_CharLCD as LCD
import Adafruit_BMP.BMP085 as BMP085
# Raspberry Pi pin setup
sensor = BMP085.BMP085()
lcd_rs = 25
lcd_en = 24
lcd_d4 = 23
lcd_d5 = 17
lcd_d6 = 18
lcd_d7 = 22
lcd_backlight = 2

# Define LCD column and row size for 16×2 LCD.
lcd_columns = 16
lcd_rows = 2
while True:
print ‘Temp = {0:0.2f} *C’.format(sensor.read_temperature()) # Temperature in Celcius
print ‘Pressure = {0:0.2f} Pa’.format(sensor.read_pressure()) # The local pressure
lcd.message(“Temp={0:0.1f}*C Pressure ={1:0.1f} %".format(sensor.read_temperature(), sensor.read_pressure()))
[/python]در پایان با اتمام نوشتن کد بالا و فشار دادن کلید های CTRL + X و سپس Y (در انتها زدن کلید Enter) اقدام به ذخیره اسکریپت نوشته شده کرده و با وارد کردن دستور زیر در پتجره CommandLine ان را اجرا می کنیم:

python ~/BMP180.py

 

 

Choose your Reaction!
دیدگاه خود را بنویسید

آدرس ایمیل شما منتشر نخواهد شد.

redronic.com