آموزش آردوینوپروژه های آردوینو

پروژه اندازه گیری دمای بدن با آردوینو و سنسور MAX30205

سلام. پروژه اندازه گیری دمای بدن با آردوینو و سنسور MAX30205 را آماده کردیم.

ساخت دماسنج و تب سنج بدن با آردوینو

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

فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.

ما از آردوینو نانو به عنوان مغز اصلی این پروژه استفاده کرده ایم و همچنین از سون سگمنت برای نمایش دما بر حسب فارنهایت استفاده میکنیم. شما به راحتی میتوانید دما را از فارنهایت به سانتی گراد یا کلوین تبدیل کنید.

برای یادگیری آردوینو (برنامه نویسی، ساخت ربات، ارتباط با اندروید) روی دوره آموزش آردوینو کلیک کنید.
برای یادگیری کامل الکترونیک روی دوره آموزش الکترونیک کلیک کنید.

شماتیک مدار تب سنج بدن با آردوینو

شماتیک مدار برای اتصال آردوینو به سنسور دمای بدن MAX30205 در زیر نشان داده شده است. مدار بسیار ساده است ، اما از آنجا که از نمایشگر های سون سگمنت استفاده کردیم ، کمی پیچیده به نظر می رسد. استفاده از 7 سگمنت برای نمایش مقادیر دما بسیار جالب بنظر میرسد اما در صورت تمایل میتوانید مقادیر را روی ال سی دی کاراکتری نمایش دهید.

شماتیک مدار تب سنج بدن با آردوینو

آردوینو نانو به سه عدد 74HC595 متصل است. سه 74HC595 باعث میشوند پین های مصرفی از آردوینو نانو کمتر شود. ماژول MAX30205 با پروتکل I2C ارتباط برقرار میکند.

ارتباط آردوینو با سنسور دمای بدن MAX30205

سنسوری که از اینجا استفاده می شود ، MAX30205 از maxim integrated است. سنسور دما MAX30205، دما را با دقت 0.1 درجه سانتیگراد (37°C تا 39°C) اندازه گیری می کند. این سنسور با پروتکل I2C کار می کند. این برد میتواند با 5 ولت یا 3.3 ولت کار کند اما ولتاژ پیشنهادی 5 است.

ارتباط آردوینو با سنسور دمای بدن MAX30205

در خروجی ، از سه شیفت رجیستر 74HC595 ، که 8 بیتی است استفاده شده است تا سه نمایشگر سون سگمنت با Arduino Nano راه اندازی کند.

توضیحات پین های شیفت رجیستر 74HC595 را می توانید در جدول زیر مشاهده کنید.

توضیحات پین های شیفت رجیستر 74HC595

QA to QH پین های خروجی داده است که به نمایشگر های سون سگمنت وصل می شود.

قطعات مورد نیاز

  1. برد آردوینو نانو
  2. سون سگمنت کاند مشترک – سه عدد
  3. آی سی 74HC595 – سه عدد
  4. مقاومت 680 اهم – 24 عدد
  5. برد ماژول MAX30205
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

برنامه نویسی MAX30205 با آردوینو

کد کامل این پروژه در انتهای صفحه در فایل دانلودی قرار داده شده است. در اینجا بعضی از قسمت های کد را بررسی میکنیم. مثل همیشه ابتدا کتابخانه های مورد نیاز را درج میکنیم. در ابتدا کتابخانه برای ارتباط I2C را وارد میکنیم.

#include <Wire.h>

برای این پروژه نیاز به کتابخانه سنسور MAX30205 نیز داریم. کتابخانه مورد نظر در فایل دانلودی انتهای صفحه قرار داده شده است.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید
#include "Protocentral_MAX30205.h" 
MAX30205 tempSensor;

دو خط بعدی برای تنظیم پارامترها مهم هستند. در صورتی که خط زیر True باشد مقدار فارنهایت نمایش داده میشود و در صورتی که False باشد دما بر حسب سانتی گراد نمایش داده میشود.

const bool fahrenheittemp = true;

در صورتی که از نمایشگر سون سگمنت کاتد مشترک استفاده میکنید در خط زیر باید True استفاده کنید. در صورتی که از سون سگمنت های آند مشترک استفاده میکنید باید مقدار آن را False قرار دهید.

const bool commonCathode = true;
const byte digit_pattern[17] =
{
  // 74HC595 Outpin Connection with 7segment display.
  // Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7
  // a  b  c  d  e  f  g  DP
  0b11111100,  // 0
  0b01100000,  // 1
  0b11011010,  // 2
  0b11110010,  // 3
  0b01100110,  // 4
  0b10110110,  // 5
  0b10111110,  // 6
  0b11100000,  // 7
  0b11111110,  // 8
  0b11110110,  // 9
  0b11101110,  // A
  0b00111110,  // b
  0b00011010,  // C
  0b01111010,  // d
  0b10011110,  // E
  0b10001110,  // F
  0b00000001   // .
};

آرایه فوق برای ذخیره الگوی رقم ها برای نمایشگرهای 7 Segment استفاده می شود.

در Void Setup ، پس از تنظیم حالت های پین 74HC595 و پروتکل I2C، خواندن دما از سنسور آغاز می شود.

void setup() {
  Serial.begin(9600);
  delay(1000);
  // تنظیم پین های کنترل 74HC595  به عنوان خروجی
  pinMode(latchPin, OUTPUT);    //ST_CP 74HC595
  pinMode(clkPin, OUTPUT);      //SH_CP 74HC595
  pinMode(dtPin, OUTPUT);       //DS 74HC595
  Wire.begin();
  tempSensor.begin();  
}

در Loop، دما توسط تابع tempSensor.getTemperature () خوانده می شود و در یک متغیر به نام temp ذخیره می شود. پس از آن ، اگر حالت دمای فارنهایت انتخاب شود ، داده ها از سلسیوس به فارنهایت تبدیل می شوند. سپس ، سه رقم از داده های دماسنج به سه رقم جداگانه تبدیل میشوند.

 // جداسازی رقم های دما
  int dispDigit1=(int)temp/10;      // رقم 1
  int dispDigit2=(int)temp%10;      // رقم 2
  int dispDigit3=(temp*10)-((int)temp*10);  // رقم 3

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

موارد موجود در فایل : سورس کامل ، شماتیک

دانلود فایل های پروژه

دانلود کتابخانه

برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید.

برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام آیرنکس عضو شوید.

تصویر از محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید) سعی میکنم تمام نظرات را پاسخ دهم.

12 نظر

  1. سلام و خسته نباشید.من سنسور max30205رو با مقاومت های پول آپ 4.7 کیلو به آردوینو uno متصل کردم اما دمایی که بمن نشون میده غلطه..0 یا 256 درجه سانتی گراد نمایش میده.مشکل کجا میتونه باشه؟

  2. سلام جناب اقای رحیمی وقت بخیر
    بنده قصد دارم به غیر از این ماژول یه ماژول دیگه که از ارتباط I2c متصل میشه را به برد اردوینو نانو متصل کنم ولی برد اردوینو یک پورت I2c دارد .ایا میشه در برنامه نویسی پورت I2c اضافه کرد ؟

    1. سلام عزیز. به راحتی میتونید از طریق یک پورت I2C آردوینو ده ها دستگاه رو متصل کنید.

  3. سلام
    فایل کتابخانه ماژول موردنظر که گفته شده در فایل دانلودی انتهای صفحه قرار داده شده است، در فایل دانلودی انتهای صفحه قرار ندارد. ممنون میشم راهنمایی کنین.

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

  4. جناب رحیمی
    ممنون از پاسختان، آیا شخص حقیقی یا حقوقی می شناسید که بتواند در اجرای این پروژه به من کمک کند؟
    ممنون

  5. جناب رحیمی
    راجع به اجرای پروژه اندازه گیری دمای بدن در ابعاد کوچک مایلم با شما جلسه حضوری داشته باشم تا در مورد جزئیات صحبت کنیم. لطفا راهنمایی کنید.
    ممنون

    1. سلام جناب. فعالیت ما صرفا آموزشی هست و در زمینه مشاوره و انجام پروژه فعالیت نمیکنیم.

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

    1. سلام جناب. بله میتونید در ابعاد کوچک هم اجرا کنید.

  7. با سلام و وقت بخیر
    من ماژول دمایی که به نام MAX30205تونستم در اینترنت برای سفارش پیدا کنم شکل ظاهری اون با ماژولی که شما استفاده کردین فرق میکنه.میخواستم ببینم میشه ازش برای پروژه استفاده کرد؟مشکلی نداره؟

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

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *