آردوینو آردوینو Arduino Uno آموزش آردوینو نمایشگر OLED پروژه های آردوینو

آموزش ساخت تب سنج غیرتماسی کرونا با سنسور دماسنج مادون قرمز MLX90614

create-fever-meter-with-arduino-and-mlx90614-ir-sensor-digispark
نوشته شده توسط پریسا پوربلورچیان

با شیوع اپیدمی کرونا یکی از مهم ترین شاخه های درگیری با این بیماری همه گیر دمای بدن است که در صورتیکه دما بیش از ۳۷ درجه باشد ممکن است نیاز به بررسی و مراقبت های ویژه باشد. سنسورهای مادون قرمز دماسنج با ویژگی غیرتماسی بودن بسیار کاربردی است. در ادامه به معرفی سنسور دماسنج مادون قرمز غیرتماسی MLX90614 میپردازیم. با مرجع تخصصی آردوینو به زبان فارسی همراه باشید.

 


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


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

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

 

سنسور دماسنج MLX90614 مادون قرمز - دیجی اسپارک

سنسور MLX90614 از پروتکل ارتباطی I2C جهت ارتباط با میکروکنترلرها بهره می‌برد و به ترتیب داراید پایه های SDA و SCL است. پایه SCL پایه سریال کلاک برای ارتباط دو سیمه استفاده شده که در این پایه از دیود زنر ۵٫۷ ولت برای تامین ولتاژ است. پایه SDA پایه ورودی و خروجی دیجیتال است که در حالت عادی دمای اندازه گیری شده توسط این پایه در مود PWM انجام می‌شود.

 

وضعیت پایه‌های سنسور دماسنج MLX90614 مادون قرمز - دیجی اسپارک

 


سنجش دمای بدن با سنسور MLX90614


در این آموزش توسط نرم افزار آردوینو و هر یک از سری بردهای آردوینو دمای محیط و دمای شی مورد نظر را اندازه گیری کرده و بر روی نمایشگر OLED نشان میدهیم. نوع برد آردوینو مورد استفاده مهم نیست تنها بایستی در نرم افزار تغییرات لازم را انجام دهید. نمایشگر OLED با توجه به کوچک بودن صفحه نمایش و کیفیت بسیار بالا جهت ساخت تب سنج بسیار کاربردی است و در نهایت میتوانید این پروژه را با کوچکترین بردهای آردوینو مانند آردوینو نانو، آردوینو Pro mini و یا Pro micro در کمترین فضای ممکن اجرا و پیاده سازی کنید.

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

 


اتصالات سنسور MLX90614


این پروژه با تمامی بردهای میکروکنترلر پر کاربرد مانند خانواده آردوینو، خانواده سری ESP8266 و میکرو AVR قابل تست و راه اندازی است. در جدول زیر اتصالات چند برد مصرفی نوشته شده است.

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

با توجه به اینکه پروتکل ارتباطی سنسور 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 و رفع مشکلات

اتصالات و راه اندازی نمایشگر Oled با آردوینو - دیجی اسپارک

 


نصب کتابخانه تب سنج غیرتماسی


برای اجرای این پروژه به نرم افزار آردوینو نیاز داریم. زبان برنامه نویسی C پلاس است و به راحتی بدون نوشتن کدنویسی پیچیده ( البته به جز بخش نمایش تصویر دماسنج ) آن را اجرا خواهیم کرد. در مرحله اول بایستی کتابخانه های مورد نیاز را نصب و سپس کد را کپی و به نرم افزار آردوینو انتقال دهید.

کتابخانه OLED و MLX90614

جهت نصب کتابخانه از منو Tools/ Manage Libraries دو کتابخانه زیر را پیدا و نصب کنید.

نصب کتابخانه OLED در نرم افزار آردوینو - دیجی اسپارک

نصب کتابخانه OLED در نرم افزار آردوینو - دیجی اسپارک

نصب کتابخانه OLED در نرم افزار آردوینو - دیجی اسپارک

در این پروژه به کتابخانه های 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. سنسور مصرف پزشکی هم دارد و برای ساخت دستگاه های سیار تب سنج در این روزهای کرونایی بسیار کاربردی است. کافیست کوچک ترین بردهای میکرو را انتخاب کرده و یک تب سنج غیرتماسی مادون قرمز بسازید. این سنسور دمای محیط و دمای شی را در لحظه اندازه گیری کرده و قابلیت نمایش دیتا بر روی نمایشگرها، وب سرویس ها و … دارد.

 


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


برد آردوینو

برد ویموس

برد Nodemcu

سنسور دماسنج غیرتماسی MLX90614

نمایشگر OLED

کابل فلت 

برد بورد در صورت نیاز

 

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

 

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

 

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

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

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

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

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

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

۱۸ دیدگاه

  • با سلام وقت بخیر من اشتراک ویژه ۱ ماهه خریدم برای استفاده از این آموزش
    ولی وقتی میخواهم کد ها رو ببینم
    ایمیلی برای تائید حساب شما ارسال شده است .
    پیام رو میده در حالی که ایمیل ارسال شده و من فعال سازی کردم و تو پروفایل هست

    • با سلام
      کاربر گرامی جهت بررسی تیم فنی از طریق پرتال پشتیبانی فروشگاه تیکت در بخش اسپاکرها ارسال کنید تا بررسی شود.

  • با سلام
    من ۱ سئوال دارم تو بخش راه اندازی oled ارسال دیتا از پایه های A4,A5 هست در حالی که سنسور هم برای خواندن از دمای محیط از این پایه ها استفاده میکنه اینا رو چطوری متصل کنیم که بهم تداخل پیدا نکن؟
    بعدم ممکن هست فایل فریت زینک رو جهت مشاهده دقیق نوع اتصالات بفرستید یاد بگیریم نحوه صحیح اتصالات رو ممنون

    • با سلام
      کاربر گرامی تمامی موارد در متن آموزش توضیح داده شده است. مطالعه کنید.

  • با سلام
    از شما به خاطر مطالب آموزنده تان بسیار ممنونم.
    بنده به تازگی علاقه مند به این حوزه شده ام و هیچ سابقه ای هم در این زمینه ندارم. مطالب آموزشی شما بسیار در درک قابلیت های این صنعت بنده را روشن نمود.
    مانا باشید

  • سلام
    ببخشید دو سوال داشتم
    ۱- از رابط i2c برای برقراری ارتباط با oled استفاده می شود، پس چرا کتابخانه spiدر برنامه اضافه شده است؟
    ۲- اگر درست متوجه شده باشم در خط display.begin(SSD1306_SWITCHCAPVCC, 0x3C); از مقادیر داخل پرانتز برای ادرس دهی به تابع برای استفاده از پروتکل i2c استفاده شده است. این مقادیر چه چیز هایی را مشخص می کنند؟ حالا اگر من بخواهم به جای oled از یک ماژول سنسور دیگر که ان هم با پروتکل i2c کار می کند، استفاده کنم ، این مقادیر داخل پرانتز رو برای ان ماژول مورد نظرم از کجا پیدا کنم؟
    ممنون از پاسخ گویی تون

    • با سلام
      هر دو کتابخانه را پشتیبانی می‌کند. در خصوص سوال دوم کد I2C مشخص شده است. در خصوص سوال سوم این کد فقط با توابع OLED است که از کتابخانه SSD1306 استفاده شده است و در صورت استفاده از مدل دیگری تمامی توابع برنامه نویسی تغییر خواهد کرد.

    • با سلام
      این سنسور دقت بالایی دارید و شرایط استفاه و حتی نوع کابل مورد استفاده تاثیر گذار خواهد بود.

  • با سلام

    شما در مورد سنسور تماسی هم اطلاعاتی دارید که با استفاده از بلوتوث به موبایل اطلاعات را بتواند بفرستد ..
    ممنون