روشها و سنسورهای مختلفی برای سنجش دما طراحی شده است. از جمله مدل تماسی و غیر تماسی، که هر کدام کاربرد منحصر به خودش را دارد. سنسور دماسنج غیرتماسی 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 است.
راه اندازی سنسور MLX با پایتون
برای راه اندازی ماژول MLX90614 با برد رزبری پای Raspberry Pi استفاده میکنیم. ماژول دماسنج MLX90614 از رابط I2C بهرده برده و جهت راه اندازی با برد رزبری پای از پایه های GPIO استفاده خواهیم کرد. برد رزبری پای قابلیت نصب سیستم عامل های مختلف مانند رزبین OS ، اوبونتو UBUNTU و لینوکس است که ما از سیستم عامل رزبین OS دبیان استفاده میکنیم. پس از نصب سیستم عامل چند نرم افزار پایتون Python به صورت پیش فرض نصب است و با نصب پکیج هر سنسور و کتابخانه با پایتون قابل تست و راه اندازی است.
فعال سازی رابط I2C در برد رزبری پای
جهت ارتباط بین سنسور و رزبری پای بایستی رابط I2C را فعال کنید. برای اینکار پس از روشن شدن رزبری پای از منو Preferences بر روی Raspberry pi configuration کلیک کنید:
menu / Preferences / Raspberry pi Configuration
سپس همانند تصویر زیر رابط I2C را فعال Enable کنید.
در مرحله بعدی بایستی پکیج کتابخانه MLX90614 را از سایت رسمی دانلود و در ترمینال رزبری پای وارد کنید. برای اینکار بر روی لینک زیر کلیک کنید و سپس در صفحه باز بر روی عبارت Pymlx90614 کلیک راست کرده و سپس بر روی Copy link Address کلیک کنید تا لینک کپی شود.
در این مرحله از منو Terminal را باز کرده و در ابتدا عبارت Wget و سپس در ادامه لینک کپی شده را پیست Paste کنید و در نهایت اینتر Enter بزنید تا پکیج نصب شود.
Wget https://files.pythonhosted.org/packages/67/8a/443af31ff99cca1e30304dba28a60d3f07d247c8d410822411054e170c9c/PyMLX90614-0.0.3.tar.gz
در مرحله بعد پس از نصب پکیج بایستی عبارن زیر را در ترمینال مشاهده کنید.
‘PyMLX90614-0.0.3.tar.gz’
در مرحله بعدی کامند زیر را وارد کنید:
tar -xf PyMLX90614-0.0.3.tar.gz
سپس دو پکیج زیر را برای تنظیمات نهایی نصب کنید.
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
در ادامه دستور زیر را وارد و Enter کنید تا نصب شود.
sudo python setup.py install
تا این مرحله تمامی پکیج ها نصب شده است و بایستی در ابتدا کد I2C سنسور را دریافت و در برنامه نویسی کد پایتون وارد کنیم. برای اینکار در ابتدا بایستی اتصال سنسور به برد رزبری پای را برقرار کنید.
اتصال سنسور MLX90614 به رزبری پای
ماژول MLX90614 دارای رابط I2C است و به همین ترتیب دارای ۴ پایه VCC, GND, SDA , SCL است که برای برقراری ارتباط I2C از دو پایه SDA , SCL استفاده میکنیم.
- پایه SDA پایه Data line است
- پایه SCL پایه Clock line است.
اتصالات به صورت زیر است.
دریافت کد I2C سنسور
جهت دریافت کد I2C سنسور در ابتدا سنسور را به پایه I2C رزبری پای اتصال دهید. سپس ترمینال را باز کرده و کامند زیر را وارد کنید.
i2cdetect -y 1
سپس Enter بزنید تا پایه I2C شناسایی شود.
کد I2C به صورن ۵a است که کاملا صحیح است و در دیتاشیت سنسور آدرس Slave Address به صورت ۵A معرفی شده است. همانطور که اعلام شد این سنسور از پروتکل SMBUS برای برقراری ارتباط و خواندن دیتا استفاده میکند.
نوشتن اسکریپت پایتون MLX
اسکریپت پایتون مجموعه ای از دستورات در یک فایل است که شبیه به برنامه نویسی طراحی شده است. اسکریپت پایتون از اعداد، توابع و ماژول و کتابخانه های مختلفی پشتیبانی میکند. اما قابلیت اصلی آن اجرا از طریق کامند لاین Command line است و با پایتون اجرا میشود. پسوند فایل اسکریپت PY است که پس از اتتخاب نام دلخواه برای اسکریپت با .py به اتمام میرسد. برای شروع نوشتن برنامه به ترمینال نیاز داریم. از منو رزبری پای ترمینال را انتخاب کنید. برای نوشتن اسکریپت پایتون برای سنسور MLX90614 در ابتدا یک اسم به دلخواه انتخاب کنید. ترمینال را باز کرده و دستور زیر را وارد کنید. اسم دلخواه انتخاب شده توسط من MLX است که شما در این قسمت میتوانید نام دلخواه خود را به جای mlx جایگزین کنید.
sudo nano mlx.py *اسم MLX دلخواه است*
سپس با 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()
جهت ذخیره اسکریپت نوشته شده ابتدا CTRL + X و سپس Y را بزنید. حال از این دستور خارج شده اید.
اجرای کد پایتون MLX90614
برنامه ای که به صورت پیش فرض نوشته شده است، را ذخیره کنید. حال برای اجرای همان برنامه کافیست دستور زیر را وارد کنید.
python mlx.py
بالافاصله پس از وارد کردن Enter دمای اندازه گیری شده با دو پارامتر Ambient و Object نمایش داده میشود.
با نزدیک کردن سنسور به بدن خود و هر بار وارد کردن دستور پایتون دمای جدید اندازه گیری شده نمایش داده میشود.
وسایل مورد نیاز
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
درود فراوان منظور از Ambient و object در کد پایتون نمایش داده چیست؟
با سلام
Ambient مربوط به دمای محیط و Object مربوط به دمای شی و دمای بدن انسان است.
سلام برای پروژه تب سنج با سنسور ds18b20 برنامشو از کجا میتونم گیر بیارم ، برای شمام که یه سنسور دیگس 🙁
با سلام
کاربر گرامی از آموزش زیر استفاده کنید.
تب سنج با ds18b20