با شیوع اپیدمی کرونا یکی از مهم ترین شاخه های درگیری با این بیماری همه گیر دمای بدن است که در صورتیکه دما بیش از ۳۷ درجه باشد ممکن است نیاز به بررسی و مراقبت های ویژه باشد. سنسورهای مادون قرمز دماسنج با ویژگی غیرتماسی بودن بسیار کاربردی است. در ادامه به معرفی سنسور دماسنج مادون قرمز غیرتماسی MLX90614 میپردازیم. با مرجع تخصصی آردوینو به زبان فارسی همراه باشید.
سنسور دماسنج MLX90614 مادون قرمز
سنسور MLX90614 یک سنسور دماسنج مادون قرمز غیرتماسی برای اندازه گیری دما است. ترکیت تراشه ترموپیل حساس IR و سیگنال ASIC در TO-39 can ادغام شده است. استفاده از آمپلی فایر بدون نویز ، برخورداری از ADC 17 بیتی در دقت و وضوح اندازه گیری دما تاثیر دارد. این سنسور با پروتکل خروجی SMBUS کالیبره شده و امکان اندازه گیری دمای با دقت +-۲ درجه فراهم شده است. خروجی دیجیتال با مدولاسیون پهنای باند PWM در رنج – ۲۰ تا ۱۲۰ درجه قابل تنظیم است و با خروجی روزلوشن ۰٫۱۴ درجه سانتی گراد است. دمای اندازه گیری سنسور بین – ۴۰ تا + ۱۲۵ درجه سانتی گراد و دمای اندازه گیری آبجکت بین – ۷۰ تا + ۳۸۰ درجه سانتی گراد است. از این سنسور برای اندازه گیری دمای غیرتماسی با دقت بالا استفاده میشود. در سیستم ها کنترل تهویه، عنصر سنجش دما برای واحدهای مسکونی، تجاری و اداری و لوازم خانگی و بهداشت درمان عمده مصارف سنسور به شمار میآید.
سنسور MLX90614 از پروتکل ارتباطی I2C جهت ارتباط با میکروکنترلرها بهره میبرد و به ترتیب داراید پایه های SDA و SCL است. پایه SCL پایه سریال کلاک برای ارتباط دو سیمه استفاده شده که در این پایه از دیود زنر ۵٫۷ ولت برای تامین ولتاژ است. پایه SDA پایه ورودی و خروجی دیجیتال است که در حالت عادی دمای اندازه گیری شده توسط این پایه در مود PWM انجام میشود.
سنجش دمای بدن با سنسور MLX90614
در این آموزش توسط نرم افزار آردوینو و هر یک از سری بردهای آردوینو دمای محیط و دمای شی مورد نظر را اندازه گیری کرده و بر روی نمایشگر OLED نشان میدهیم. نوع برد آردوینو مورد استفاده مهم نیست تنها بایستی در نرم افزار تغییرات لازم را انجام دهید. نمایشگر OLED با توجه به کوچک بودن صفحه نمایش و کیفیت بسیار بالا جهت ساخت تب سنج بسیار کاربردی است و در نهایت میتوانید این پروژه را با کوچکترین بردهای آردوینو مانند آردوینو نانو، آردوینو Pro mini و یا Pro micro در کمترین فضای ممکن اجرا و پیاده سازی کنید.
اتصالات سنسور MLX90614
این پروژه با تمامی بردهای میکروکنترلر پر کاربرد مانند خانواده آردوینو، خانواده سری ESP8266 و میکرو AVR قابل تست و راه اندازی است. در جدول زیر اتصالات چند برد مصرفی نوشته شده است.
با توجه به اینکه پروتکل ارتباطی سنسور MLX90614 و نمایشگر OLED به صورت I2C است و فقط دو پایه I2C در برد داریم. کافیست اتصال مشترک بگیرید.
- پایه SDA سنسور MLX90614 را به پایه SDA نمایشگر OLED اتصال دهید.
- پایه SCL سنسور MLX90614 را به پایه SCL نمایشگر OLED اتصال دهید.
- سپس با توجه به برد مورد استفاده و جدول بالا دو سیم به پایه SDA و SCL اتصال دهید.
- پایه VCC و GND به همین صورت است و در صورت استفاده از شیلد پروتوتایپ میتوانید در سیم کشی صرفه جویی کنید:)
راه اندازی OLED
محبوب ترین ماژول OLED که در حال حاضر در صنعت الکترونیک و بردهای توسعه میکروکنترلر استفاده میشود، نمایشگر OLED با درایور قدرتمند SSD1306 است که در ظاهرهای مختلف به بازار ارائه شده است. چیپ SSD1306 یک کنترل کننده درایور قدرتمند CMOS است. این درایور از پروتکل های ارتباطی I2C و SPI پشتیبانی میکند و با توجه به اینکه در پروتکل I2C تنها با دو پایه برای اتصال نیاز دارد، برای اتصال OLED به میکروکنترلرها از این پروتکل بیشتر استفاده خواهیم کرد. ولتاژ کاری نمایشگر ۳٫۳ و ۵ ولت است و از هر دو پایه های تعذیه میکروکنترلر میتوانید استفاده کنید. زاویه دید نمایشگر ۱۶۰ درجه است و ابعاد آن ۰٫۹۶ اینچ است. آموزش کامل کار با نمایشگر OLED در لینک زیر قرار گرفته شده است. قبل از شروع لینک زیر را بررسی و یک پروژه ساده با نمایشگر اجرا کنید. در نظر داشته باشید نمایشگر OLED از کتابخانه Adafruit SSD1306 استفاده میکند و بایستی دو کتابخانه اصلی برای راه اندازی در نرم افزار آردوینو نصب شود.
آموزش راه اندازی ماژول OLED با بردهای آردوینو درایور SSD1306 و رفع مشکلات
نصب کتابخانه تب سنج غیرتماسی
برای اجرای این پروژه به نرم افزار آردوینو نیاز داریم. زبان برنامه نویسی C پلاس است و به راحتی بدون نوشتن کدنویسی پیچیده ( البته به جز بخش نمایش تصویر دماسنج ) آن را اجرا خواهیم کرد. در مرحله اول بایستی کتابخانه های مورد نیاز را نصب و سپس کد را کپی و به نرم افزار آردوینو انتقال دهید.
کتابخانه OLED و MLX90614
جهت نصب کتابخانه از منو Tools/ Manage Libraries دو کتابخانه زیر را پیدا و نصب کنید.
در این پروژه به کتابخانه های Wire, SPI نیاز داریم که به صورت پیش فرض در نرم افزار آردوینو نصب است و نیاز به نصب ندارد. ورژن های مختلفی برای هر کتابخانه در هر بازه زمانی معرفی میشود که در حالت کلی پیشنهاد میکنم آخرین ورژن از کتابخانه های استفاده شده را نصب کنید.
کد آردوینو تب سنج غیرتماسی
قبل از آپلود کد راه انداز ماژول OLED Full Color ، بایستی کتابخانههای مورد نیاز ماژول OLED را در نرم افزار آردوینو نصب کنید. چنانچه روش نصب کتابخانه را نمیدانید به پست آموزش نصب کتابخانه در آردوینو مراجعه کنید.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
تحلیل کد تب سنج آردوینو
سنسور MLX90614 قابلیت همزمان دریافت و نمایش دو دما را دارد. یک دمای محیط و دیگری دمای شی و یا انسان که جهت تشخیص تب استفاده میشود. در این کد هر دو دما تعریف شده است اما از خط ۸۱ تا ۹۳ اندازه گیری دمای محیط به صورت کامنت نوشته شده است تا در صورت نیاز بتوانید از آن هم استفاده کنید.
فراخوانی کتابخانه ها و به همراه دستورات راه اندازی هر سنسور
#include <Wire.h> #include <Adafruit_MLX90614.h> Adafruit_MLX90614 mlx = Adafruit_MLX90614();
#include <SPI.h> #include <Adafruit_GFX.h> // فراخوانی کتابخانه #include <Adafruit_SSD1306.h> // فراخوانی کتابخانه Adafruit_SSD1306 display(-1); // تعریف پایه ریست در صورتیکه با آردوینو مشترک گرفته شده است
کد نمایش لوگوی دماسنج برای OLED به صورت جداگانه در یک تابع تعریف شده است.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
در صورتیکه بخواهید دما را به صورت جداگانه بر روی سریال مانیتور مشاهده کنید، کافیست دستور زیر را تعریف کنید.
Serial.print("*C\tObject = "); Serial.print(mlx.readObjectTempC()); Serial.println("*C"); Serial.println();
جمع بندی لیدی پای
سنسور دماسنج غیرتماسی MLX90614 فوق دقیق است و استفاده از آن به دلیل پشتیبانی از پروتکل I2C بسیار ساده شده است. ارتباط دو سیمه است و با تمامی میکروکنترلر ها قابلیت راه اندازی دارد. از جمله تمامی بردهای آردوینو، برد رزبری پای Raspberry Pi و بردهای سری ESP8266 مانند Nodemcu و Wemos D1 mini. سنسور مصرف پزشکی هم دارد و برای ساخت دستگاه های سیار تب سنج در این روزهای کرونایی بسیار کاربردی است. کافیست کوچک ترین بردهای میکرو را انتخاب کرده و یک تب سنج غیرتماسی مادون قرمز بسازید. این سنسور دمای محیط و دمای شی را در لحظه اندازه گیری کرده و قابلیت نمایش دیتا بر روی نمایشگرها، وب سرویس ها و … دارد.
وسایل مورد نیاز
سنسور دماسنج غیرتماسی MLX90614
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
با سلام وقت بخیر من اشتراک ویژه ۱ ماهه خریدم برای استفاده از این آموزش
ولی وقتی میخواهم کد ها رو ببینم
ایمیلی برای تائید حساب شما ارسال شده است .
پیام رو میده در حالی که ایمیل ارسال شده و من فعال سازی کردم و تو پروفایل هست
با سلام
کاربر گرامی جهت بررسی تیم فنی از طریق پرتال پشتیبانی فروشگاه تیکت در بخش اسپاکرها ارسال کنید تا بررسی شود.
با سلام
من ۱ سئوال دارم تو بخش راه اندازی oled ارسال دیتا از پایه های A4,A5 هست در حالی که سنسور هم برای خواندن از دمای محیط از این پایه ها استفاده میکنه اینا رو چطوری متصل کنیم که بهم تداخل پیدا نکن؟
بعدم ممکن هست فایل فریت زینک رو جهت مشاهده دقیق نوع اتصالات بفرستید یاد بگیریم نحوه صحیح اتصالات رو ممنون
با سلام
کاربر گرامی تمامی موارد در متن آموزش توضیح داده شده است. مطالعه کنید.
با سلام
از شما به خاطر مطالب آموزنده تان بسیار ممنونم.
بنده به تازگی علاقه مند به این حوزه شده ام و هیچ سابقه ای هم در این زمینه ندارم. مطالب آموزشی شما بسیار در درک قابلیت های این صنعت بنده را روشن نمود.
مانا باشید
با سلام
کاربر گرامی از توجه شما ممنونم.
امیدوارم مفید واقع شده باشد.
سلام از اطلاعاتی که در اختیارمان میگذارید سپاسگزارم
با سلام
کاربر گرامی از توجه شما ممنونم.
امیدوارم مفید واقع شده باشد.
سلام و درود فراوان
دقت سنسور برای اندازه گیری تب چقدر است؟
با سلام
امکان اندازه گیری دمای با دقت +-۲ درجه فراهم شده است.
پس عملا نمیشه از این سنسور استفاده کرد برای تب سنجی
با سلام
قابل استفاده است و بایستی کالیبره کنید.
سلام
ببخشید دو سوال داشتم
۱- از رابط i2c برای برقراری ارتباط با oled استفاده می شود، پس چرا کتابخانه spiدر برنامه اضافه شده است؟
۲- اگر درست متوجه شده باشم در خط display.begin(SSD1306_SWITCHCAPVCC, 0x3C); از مقادیر داخل پرانتز برای ادرس دهی به تابع برای استفاده از پروتکل i2c استفاده شده است. این مقادیر چه چیز هایی را مشخص می کنند؟ حالا اگر من بخواهم به جای oled از یک ماژول سنسور دیگر که ان هم با پروتکل i2c کار می کند، استفاده کنم ، این مقادیر داخل پرانتز رو برای ان ماژول مورد نظرم از کجا پیدا کنم؟
ممنون از پاسخ گویی تون
با سلام
هر دو کتابخانه را پشتیبانی میکند. در خصوص سوال دوم کد I2C مشخص شده است. در خصوص سوال سوم این کد فقط با توابع OLED است که از کتابخانه SSD1306 استفاده شده است و در صورت استفاده از مدل دیگری تمامی توابع برنامه نویسی تغییر خواهد کرد.
به نظر خودتون دقت +-۲ برای دمای بدن فاجعه نیست؟
با سلام
این سنسور دقت بالایی دارید و شرایط استفاه و حتی نوع کابل مورد استفاده تاثیر گذار خواهد بود.
با سلام
شما در مورد سنسور تماسی هم اطلاعاتی دارید که با استفاده از بلوتوث به موبایل اطلاعات را بتواند بفرستد ..
ممنون
با سلام
برای ارسال دیتا از طریق بلوتوث کافیست از ماژول های بلوتوث استفاده کنید.