رزبری پای پایتون Python پروژه رزبری پای

راه اندازی سنسور دماسنج غیرتماسی MLX90614 با برد رزبری پای و پایتون

getting-started-with-mlx90614-sensor-and-raspberry-pi-with-python-script-digispark
نوشته شده توسط پریسا پوربلورچیان

روش‌ها و سنسورهای مختلفی برای سنجش دما طراحی شده است. از جمله مدل تماسی و غیر تماسی، که هر کدام کاربرد منحصر به خودش را دارد. سنسور دماسنج غیرتماسی MLX90614 مناسب برای اندازه گیری دمای محیط و دمای بدن انسان به صورت مجزا است. قابلیت منحصر به فرد سنسور MLX90614 اندازه گیری این دو پارامتر توسط تراشه ترموپیل حساس IR و سیگنال ASIC به صورت غیرتماسی است. در این آموزش به معرفی سنسور MLX90614 با برد رزبری پای و راه اندازی با پایتون میپردازیم. در ادامه این آموزش با مرجع تخصصی رزبری پای به زبان فارسی، دیجی اسپارک همراه باشید.

 


سنسور دماسنج MLX90614 مادون قرمز


سنسور MLX90614 یک سنسور دماسنج مادون قرمز غیرتماسی برای اندازه گیری دما است. ترکیت تراشه ترموپیل حساس IR و سیگنال ASIC در TO-39 can ادغام شده است. استفاده از آمپلی فایر بدون نویز ، برخورداری از ADC 17 بیتی در دقت و وضوح اندازه گیری دما تاثیر دارد. این سنسور با پروتکل خروجی SMBUS کالیبره شده و امکان اندازه گیری دمای با دقت +-۲ درجه فراهم شده است. خروجی دیجیتال با مدولاسیون پهنای باند PWM در رنج – ۲۰ تا ۱۲۰ درجه قابل تنظیم است و با خروجی روزلوشن ۰٫۱۴ درجه سانتی گراد است. دمای اندازه گیری سنسور بین  – ۴۰ تا + ۱۲۵ درجه سانتی گراد و دمای اندازه گیری آبجکت بین – ۷۰ تا  + ۳۸۰ درجه سانتی گراد است. از این سنسور برای اندازه گیری دمای غیرتماسی با دقت بالا استفاده می‌شود.  سنسور MLX90614 از پروتکل ارتباطی I2C جهت ارتباط با میکروکنترلرها بهره می‌برد و به ترتیب داراید پایه های SDA و SCL است. پایه SCL پایه سریال کلاک برای ارتباط دو سیمه استفاده شده که در این پایه از دیود زنر ۵٫۷ ولت برای تامین ولتاژ است. پایه SDA پایه ورودی و خروجی دیجیتال است که در حالت عادی دمای اندازه گیری شده توسط این پایه در مود PWM انجام می‌شود. سنسور MLX یک سنسور با ابعاد بسیار کوچک با قابلیت اندازه گیری دما در بازه – ۴۰ تا +۱۲۵ درجه سانتی گراد و اندازه گیری دمای شی ( شی مانند اجسام و انسان ) در بازه – ۷۰ تا ۳۸۰ درجه سانتی گراد است. وضوح یا به عبارتی روزلوشن ۰٫۰۲ درجه سانتی گراد است. دارای رابط دیجیتال SMBUS برای خواندن سریع دما است و انرژی را در خود ذخیره می‌کند. ولتاژ کاری سنسور ۳٫۳ تا ۵ ولت DC است.

ویژگی های سنسور MLX90614

  • ولتاژ کاری سنسور ۳٫۶ تا ۵ ولت DC است.
  • رزولوشن – کالیبره سنسور ۰٫۰۲ درجه سانتی گراد است.
  • دمای اندازه گیری محیط بین – ۴۰ تا + ۱۲۵ درجه سانتی گراد است.
  • دمای اندازه گیری شی و انسان بین  – ۷۰ تا  + ۳۸۲٫۲ درجه سانتی گراد است.
  • از ADC هفده بیتی استفاده می‌کند.
  • پروتکل ارتباطی سنسور I2C است.

سنسور دماسنج غیرتماسی MLX90614 با برد رزبری پای - دیجی اسپارک

 


راه اندازی سنسور MLX با پایتون


برای راه اندازی ماژول MLX90614 با برد رزبری پای Raspberry Pi استفاده می‌کنیم. ماژول دماسنج MLX90614 از رابط I2C بهرده برده و جهت راه اندازی با برد رزبری پای از پایه های GPIO استفاده خواهیم کرد. برد رزبری پای قابلیت نصب سیستم عامل های مختلف مانند رزبین OS ، اوبونتو UBUNTU و لینوکس است که ما از سیستم عامل رزبین OS دبیان استفاده می‌کنیم. پس از نصب سیستم عامل چند نرم افزار پایتون Python به صورت پیش فرض نصب است و با نصب پکیج هر سنسور و کتابخانه با پایتون قابل تست و راه اندازی است.

 


فعال سازی رابط I2C در برد رزبری پای


جهت ارتباط بین سنسور و رزبری پای بایستی رابط I2C را فعال کنید. برای اینکار پس از روشن شدن رزبری پای از منو Preferences بر روی Raspberry pi configuration کلیک کنید:

menu / Preferences / Raspberry pi Configuration

سپس همانند تصویر زیر رابط I2C را فعال Enable کنید.

فعال سازی I2C در رزبری پای - دیجی اسپارک

 

در مرحله بعدی بایستی پکیج کتابخانه MLX90614 را از سایت رسمی دانلود و در ترمینال رزبری پای وارد کنید. برای اینکار بر روی لینک زیر کلیک کنید و سپس در صفحه باز بر روی عبارت Pymlx90614 کلیک راست کرده و سپس بر روی Copy link Address کلیک کنید تا لینک کپی شود.

نصب کتابخانه MLX90614 با برد رزبری پای - دیجی اسپارک

 

در این مرحله از منو Terminal را باز کرده و در ابتدا عبارت Wget و سپس در ادامه لینک کپی شده را پیست Paste کنید و در نهایت اینتر Enter بزنید تا پکیج نصب شود.

Wget https://files.pythonhosted.org/packages/67/8a/443af31ff99cca1e30304dba28a60d3f07d247c8d410822411054e170c9c/PyMLX90614-0.0.3.tar.gz

نصب کتابخانه MLX90614 با برد رزبری پای Raspberry Pi - دیجی اسپارک

 

در مرحله بعد پس از نصب پکیج بایستی عبارن زیر را در ترمینال مشاهده کنید.

‘PyMLX90614-0.0.3.tar.gz’

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

tar -xf PyMLX90614-0.0.3.tar.gz

دانلود و نصب کتابخانه MLX90614 با برد رزبری پای - دیجی اسپارک

 

سپس دو پکیج زیر را برای تنظیمات نهایی نصب کنید.

sudo apt-get install python-setuptools 
sudo apt-get install -y i2c-tools

نصب پکیج sudo apt-get install python-setuptools در رزبری پای - دیجی اسپارک

در ادامه دستور زیر را وارد و Enter کنید تا نصب شود.

sudo python setup.py install

دستور sudo python setup.py install در رزبری پای - دیجی اسپارک

تا این مرحله تمامی پکیج ها نصب شده است و بایستی در ابتدا کد I2C سنسور را دریافت و در برنامه نویسی کد پایتون وارد کنیم. برای اینکار در ابتدا بایستی اتصال سنسور به برد رزبری پای را برقرار کنید.

 


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


ماژول MLX90614 دارای رابط I2C است و به همین ترتیب دارای ۴ پایه VCC, GND, SDA , SCL است که برای برقراری ارتباط I2C از دو پایه SDA , SCL استفاده می‌کنیم.

  • پایه SDA پایه Data line است
  • پایه SCL پایه Clock line است.

روش اتصال MLX90614 با برد رزبری پای - دیجی اسپارک

 

اتصالات به صورت زیر است.

اتصالات پایه سنسور MLX90614 با برد رزبری پای - دیجی اسپارک

اتصال و راه اندازی ماژول MLX90614 با برد رزبری پای - دیجی اسپارک

 


دریافت کد I2C سنسور


جهت دریافت کد I2C سنسور در ابتدا سنسور را به پایه I2C رزبری پای اتصال دهید. سپس ترمینال را باز کرده و کامند زیر را وارد کنید.

 i2cdetect -y 1

دستور i2cdetect -y 1 برای دریافت آدرس I2C در رزبری پای - دیجی اسپارک

سپس Enter بزنید تا پایه I2C شناسایی شود.

شناسایی پایه های I2C رزبری پای با دستور i2cdetect -y 1 - دیجی اسپارک

کد I2C به صورن ۵a است که کاملا صحیح است و در دیتاشیت سنسور آدرس Slave Address به صورت ۵A معرفی شده است. همانطور که اعلام شد این سنسور از پروتکل SMBUS برای برقراری ارتباط و خواندن دیتا استفاده می‌کند.

 


نوشتن اسکریپت پایتون MLX


اسکریپت پایتون مجموعه ای از دستورات در یک فایل است که شبیه به برنامه نویسی طراحی شده است. اسکریپت پایتون از اعداد، توابع و ماژول و کتابخانه های مختلفی پشتیبانی می‌کند. اما قابلیت اصلی آن اجرا از طریق کامند لاین Command line است و با پایتون اجرا می‌شود. پسوند فایل اسکریپت PY است که پس از اتتخاب نام دلخواه برای اسکریپت با .py به اتمام می‌رسد. برای شروع نوشتن برنامه به ترمینال نیاز داریم. از منو رزبری پای ترمینال را انتخاب کنید. برای نوشتن اسکریپت پایتون برای سنسور MLX90614 در ابتدا یک اسم به دلخواه انتخاب کنید. ترمینال را باز کرده و دستور زیر را وارد کنید. اسم دلخواه انتخاب شده توسط من MLX است که شما در این قسمت میتوانید نام دلخواه خود را به جای mlx جایگزین کنید.

sudo nano mlx.py

*اسم MLX دلخواه است*

نوشتن اسکریپت اختصاصی پایتون سنسور MLX90614 - دیجی اسپارک

سپس با Enter صفحه باز می‌شود و آماده نوشتن کد پایتون است. کد را کپی و انتقال دهید. در این بخش کد I2C به صورت ۵a است که در کد تعریف می‌کنیم.

from smbus2 import SMBus
from mlx90614 import MLX90614
bus = SMBus(1)
sensor = MLX90614(bus, address=0x5A)
print "Ambient Temperature :", sensor.get_ambient()
print "Object Temperature :", sensor.get_object_1()
bus.close()

تایع SMBus را فراخوانی می‌کنیم. پکیج سنسور MLX90614 است پس توسط دستور import آن را فراخوانی می‌کنیم.

from smbus2 import SMBus
from mlx90614 import MLX90614

در مرحله بعدی پروتکل SMBUS و آدرس I2C را تعریف می‌کنیم.

bus = SMBus(1)
sensor = MLX90614(bus, address=0x5A)

در نهایت این سنسور قابلیت اندازه گیری دو دما را دارد. یکی دمای محیط Ambient Temperature و دیگری دمای شی یا بدن انسان Object Temperature که به صورت زیر در برنامه نمایش داده می‌شود.

print "Ambient Temperature :", sensor.get_ambient()
print "Object Temperature :", sensor.get_object_1()
bus.close()

دریافت دما محیط و دما بدن انسان با سنسور MLX90614 - دیجی اسپارک

جهت ذخیره اسکریپت نوشته شده ابتدا CTRL + X و سپس Y را بزنید. حال از این دستور خارج شده اید.

 


اجرای کد پایتون MLX90614


برنامه ای که به صورت پیش فرض نوشته شده است، را ذخیره کنید. حال برای اجرای همان برنامه کافیست دستور زیر را وارد کنید.

python mlx.py

بالافاصله پس از وارد کردن Enter دمای اندازه گیری شده با دو پارامتر Ambient و Object نمایش داده می‌شود.

نمایش دما Ambient و Object توسط سنسور MLX90614 - دیجی اسپارک

با نزدیک کردن سنسور به بدن خود و هر بار وارد کردن دستور پایتون دمای جدید اندازه گیری شده نمایش داده می‌شود.

آموزش راه اندازی سنسور MLX90614 با برد رزبری پای - دیجی اسپارک

 


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


رزبری پای Raspberry Pi

ماژول دماسنج MLX90614

مینی برد بورد

کابل فلت

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۴ دیدگاه