پروژه اندازه گیری دمای بدن با آردوینو و سنسور 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 است.
در خروجی ، از سه شیفت رجیستر 74HC595 ، که 8 بیتی است استفاده شده است تا سه نمایشگر سون سگمنت با Arduino Nano راه اندازی کند.
توضیحات پین های شیفت رجیستر 74HC595 را می توانید در جدول زیر مشاهده کنید.
QA to QH پین های خروجی داده است که به نمایشگر های سون سگمنت وصل می شود.
قطعات مورد نیاز
- برد آردوینو نانو
- سون سگمنت کاند مشترک – سه عدد
- آی سی 74HC595 – سه عدد
- مقاومت 680 اهم – 24 عدد
- برد ماژول 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
پس از اتصال قطعات مدار و بارگذاری کد، دماسنج بدن شما آماده است. میتواند انگشت خود را روی حسگر قرار دهید تا تغییر دما را مشاهده کنید.
موارد موجود در فایل : سورس کامل ، شماتیک
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود
سلام وقتتون بخیر منون از محتوی خوبی که در اختیارمون قرار دادید
دو سوال داشتم
اول اینکه لینک کتابخانه ای که قرار دادید رو چک کردم میخواستم ببینم قابلیت دانلودش فعال هست؟ چون برای من اینطور نیست.
و دوم اینکه اگر بجای سون سگمن اولد قرار بدیم، در دستورات چقدر تغییر ایجاد میشه؟
ممنون ازتون
سلام عزیز
فایل کتابخانه و سورس در یک فایل قرار گرفته است میتوانید از انتهای صفحه دانلود کنید
تغییرات زیادی ایجاد میشه اما حجم دستورات کاهش داده میشه. برای یادگیری کار با OLED و سون سگمنت میتونید دوره آموزش آردوینو را مشاهده کنید.
سلام و خسته نباشید.من سنسور max30205رو با مقاومت های پول آپ 4.7 کیلو به آردوینو uno متصل کردم اما دمایی که بمن نشون میده غلطه..0 یا 256 درجه سانتی گراد نمایش میده.مشکل کجا میتونه باشه؟
سلام جناب اقای رحیمی وقت بخیر
بنده قصد دارم به غیر از این ماژول یه ماژول دیگه که از ارتباط I2c متصل میشه را به برد اردوینو نانو متصل کنم ولی برد اردوینو یک پورت I2c دارد .ایا میشه در برنامه نویسی پورت I2c اضافه کرد ؟
سلام عزیز. به راحتی میتونید از طریق یک پورت I2C آردوینو ده ها دستگاه رو متصل کنید.
سلام
فایل کتابخانه ماژول موردنظر که گفته شده در فایل دانلودی انتهای صفحه قرار داده شده است، در فایل دانلودی انتهای صفحه قرار ندارد. ممنون میشم راهنمایی کنین.
سلام جناب، با تشکر از اطلاع رسانی شما، کتابخانه در فایل دانلودی قرار گرفت.
جناب رحیمی
ممنون از پاسختان، آیا شخص حقیقی یا حقوقی می شناسید که بتواند در اجرای این پروژه به من کمک کند؟
ممنون
جناب رحیمی
راجع به اجرای پروژه اندازه گیری دمای بدن در ابعاد کوچک مایلم با شما جلسه حضوری داشته باشم تا در مورد جزئیات صحبت کنیم. لطفا راهنمایی کنید.
ممنون
سلام جناب. فعالیت ما صرفا آموزشی هست و در زمینه مشاوره و انجام پروژه فعالیت نمیکنیم.
جناب رحیمی سلام
پروژه اندازه گیری دمای بدن را میتوان در ابعادی کوچک اجرا کرد تا بتوان به عنوان یک گجت پوشیدنی از ان استفاده کنیم.
با تشکر
صادقپور
سلام جناب. بله میتونید در ابعاد کوچک هم اجرا کنید.
با سلام و وقت بخیر
من ماژول دمایی که به نام MAX30205تونستم در اینترنت برای سفارش پیدا کنم شکل ظاهری اون با ماژولی که شما استفاده کردین فرق میکنه.میخواستم ببینم میشه ازش برای پروژه استفاده کرد؟مشکلی نداره؟
سلام. به طور قطع نمیتونم بگم اما احتمال زیاد مشکلی نخواهد بود.