فهرست مطالب:
- مرحله 1: چیزهایی که شما نیاز دارید
- مرحله 2: مدار و ساخت و ساز الکتریکی
- مرحله 3: بررسی ضرایب
- مرحله 4: سیستم عامل
- مرحله 5: برنامه تلفن هوشمند
- مرحله 6: محوطه سازی
- مرحله 7: تنظیمات رایانه و پیکربندی بلوتوث
- مرحله 8: نتیجه گیری
تصویری: دماسنج بلوتوث: 8 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
این دستورالعمل ساخت یک دماسنج ساده 2 کاناله با استفاده از کاوشگرهای ترمیستور 100K ، یک ماژول بلوتوث و تلفن هوشمند را توضیح می دهد. ماژول بلوتوث LightBlue Bean است که برای ساده سازی توسعه برنامه Bluetooth Low Energy با استفاده از محیط آشنا Arduino برای برنامه نویسی ماژول طراحی شده است.
پس از مدتی سرگردان بودن در تلاش برای فهمیدن نحوه دریافت داده های دما از ماژول بلوتوث به iPhone ، برنامه ای به نام EvoThings پیدا کردم که جنبه توسعه برنامه را به میزان قابل توجهی ساده می کرد. من مک ندارم (می دانم تکان دهنده است!) که توانایی من در توسعه برنامه iPhone را محدود می کند ، و من وقت ندارم ابزارهای جدید مایکروسافت را که ظاهراً از توسعه پلتفرم های مختلف برای iOS و Android پشتیبانی می کنند رمزگشایی کنم. من چندین برنامه به سبک HTML5 انجام داده ام ، اما تنها راه دستیابی به داده های بلوتوث ، افزونه هایی برای Cordova است که بیشتر از زمانی که برای آن وقت داشتم ، یک چالش به نظر می رسید. EvoThings مجموعه ای بسیار آسان برای استفاده از ابزارهایی را فراهم می کند که چالش Bluetooth-to-iPhone را به راهرو کیک تبدیل کرده است. و من کیک دوست دارم!
به طور کلی ، من ترکیب Lightblue Bean و EvoThings را با سرمایه گذاری کم زمان یک راه حل بسیار کاربردی می دانم.
مرحله 1: چیزهایی که شما نیاز دارید
من از یک پروب ترمیستور تجاری موجود برای یک کانال استفاده کردم زیرا می خواستم ترمیستور برای غوطه ور شدن در مایعات بسته شود. برای کانال دوم ، یک پروب اولیه از ترمیستور ، سیم 26 گیج و فیش هدفون 3.5 میلی متری ساختم. شما آزاد هستید که از هر ترمیستور مورد نظر خود استفاده کنید و می توانید پروب های خود را از اپوکسی رسانای حرارتی و نی یا پلاستیک/همزن قهوه برای مثال بسازید. آنچه در زیر می آید چیزی است که من از آن استفاده کردم - منظور این نیست که یک لیست تجویزی باشد!
سخت افزار
- 1 پروب ترمیستور 100K مدل Extech TP890. اینها معمولاً در ebay و amazon موجود هستند.
- 2 جک 2.5 میلی متری استریو که با پلاگین 2.5 میلی متری در پروب های Extech مطابقت دارد. من جک های 3.5 میلی متری را از یک رایانه قدیمی پاک کردم ، بنابراین دوشاخه پروب Extech را جدا کردم و دوشاخه های 3.5 میلی متری را جایگزین آن کردم. شما باید از این کار فقط با استفاده از جک های 2.5 میلی متری اجتناب کنید ، یا از دوشاخه آداپتور استریو 2.5 تا 3.5 میلی متری خارج از قفسه استفاده کنید.
- اگر می خواهید پروب خود را بسازید ، مهره ترمیستور 100K به علاوه سیم سنج 26 گیگ به علاوه 3.5 میلی متری استریو. اگر نه ، یک کاوشگر Extech دوم بخرید!
- 1 x Lightblue Bean توسط Punch Through Designs. این ماژول بلوتوث به عنوان یک برد توسعه Arduino قابل برنامه ریزی است. این ماژول بسیار گران است ، اما پیچیدگی های زیادی را از بین می برد. آنها کمپین Kickstarter را برای دستگاه نسل بعدی اجرا می کنند که ممکن است ارزش توجه داشته باشد.
- 2 مقاومت 1 1 1/4W 100K که برای تقسیم ولتاژ مرجع ترمیستورها استفاده می شود. من از مقاومتهای 5 used استفاده کردم اما مقاومتهای با تحمل بیشتر عموماً به دما کمتر حساس هستند و عملکرد بهتری را ارائه می دهند. 1 value برای این مقدار تحمل خوبی است.
- لحیم کاری و لحیم کاری
- برش های سیم و برخی طول های کوچک سیم اتصال 26 یا 28 سنج.
نرم افزار و سیستم عامل
- برای برنامه نویسی Bean ، به برنامه Bean Loader نیاز دارید. من از ویندوز استفاده کردم بنابراین همه پیوندها مختص ویندوز خواهد بود. همه چیزهایی که برای شروع کار با Bean از جمله مشخصات آردوینو نیاز دارید از سایت LightBlueBean موجود است
- میز کار EvoThings برای برنامه تلفن های هوشمند در اینجا موجود است. همه مستندات "شروع کار" در آنجا نیز موجود است. بسیار مستند است.
مرحله 2: مدار و ساخت و ساز الکتریکی
ترمیستور یک مقاومت وابسته به دما است. کاوشگر Extech دارای ضریب دمای منفی است به این معنی که با افزایش دما ، مقاومت کاهش می یابد. مقدار مقاومت با یک مدار ساده اندازه گیری می شود که با یک ترمیستور در یک پا تقسیم کننده ولتاژ و در پای دیگر یک مقاومت 100K ثابت ایجاد می کند. ولتاژ تقسیم شده وارد یک کانال ورودی آنالوگ روی لوبیا شده و در سیستم عامل نمونه گیری می شود.
برای ساختن مدار ، جک های صوتی 3.5 میلی متری را از یک کامپیوتر خراب قدیمی حذف کردم. برای تعیین دو نقطه روی PCB که با نوک و اولین نوار کاوشگر مطابقت دارد ، از مولتی متر استفاده شد. همانطور که در تصاویر نشان داده شده است سیم ها به جک های صوتی و Bean لحیم شده اند. جک های صوتی با استفاده از نوار دو طرفه به منطقه نمونه اولیه Bean چسبیده بودند. نوار مورد استفاده من نوار درجه یک اتومبیل است که پیوند بسیار قوی بین قطعات یدک کش ایجاد می کند.
مرحله 3: بررسی ضرایب
همانطور که کاوش Extech رایج است ، ضرایب Steinhart-Hart در جایی منتشر نشده است که بتوانم پیدا کنم. خوشبختانه یک ماشین حساب آنلاین وجود دارد که ضرایب را از 3 اندازه گیری دما که ارائه می دهید تعیین می کند.
روش اولیه ای که برای رسیدن به ضرایب استفاده می کنم چیست. هیچ امتیازی از نظر سبک کسب نمی کنم اما به اندازه کافی خوب است که بتوانید +/- 1 درجه دقیق را بگویید (در کل از طرف من انگشت شمار است)…. البته بسته به دقت دماسنج مرجع و مولتی متر شما! مولتی متر من یک واحد تجاری ارزان قیمت بدون نام است که سالها پیش وقتی پول کم بود خریدم. پول هنوز تنگ است و هنوز هم کار می کند!
برای کالیبراسیون ، ما نیاز به سه قرائت مقاومت از 3 درجه حرارت داریم.
- نزدیک یخ زدن با افزودن یخ به یک لیوان آب و هم زدن تا زمانی که دما تثبیت شود. پس از تثبیت ، از مولتی متر برای ثبت مقاومت پروب و دماسنج مرجع برای ثبت دما استفاده کنید.
- حالا کاوشگر را در یک لیوان آب در دمای اتاق قرار دهید ، اجازه دهید پروب با دمای آب برابر شود و دما را در دماسنج مرجع خود و مقدار مقاومت را در چند متر خود ثبت کنید.
-
کاوشگر را در یک لیوان آب گرم قرار دهید و مقاومت را ثبت کنید.
درجه حرارت مقاومت 5.6 218K 21.0 97.1 هزار 38.6 43.2
کل این فرایند کمی شبیه وضعیت مرغ و تخم مرغ است زیرا شما برای ثبت دما به یک دماسنج کالیبره شده و برای ثبت مقاومت نیاز به چند متر کالیبره شده دارید. اشتباهات در اینجا منجر به عدم دقت در اندازه گیری دمای شما می شود اما برای اهداف من ، +/- 1 درجه بیشتر از چیزی است که من نیاز دارم.
اتصال این مقادیر ثبت شده به ماشین حساب وب نتایج زیر را به همراه دارد:
ضرایب (A ، B و C) به معادله استنهارت-هارت متصل می شوند تا دما را از مقدار مقاومت نمونه گیری شده ، خنثی کنند. معادله به این صورت تعریف شده است (منبع: wikipedia.com)
جایی که T = دما در کلوین
A ، B و C ضرایب معادله Steinhart-Hart هستند که ما سعی در تعیین آن داریم R مقاومت در دمای T است
سیستم عامل این محاسبه را انجام می دهد.
مرحله 4: سیستم عامل
ولتاژ ترمیستور نمونه برداری می شود ، به دما تبدیل می شود و از طریق بلوتوث به برنامه EvoThings در تلفن هوشمند ارسال می شود.
برای تبدیل ولتاژ به مقدار مقاومت درون Bean ، از یک معادله خطی ساده استفاده می شود. اشتقاق معادله به صورت تصویر ارائه شده است. به جای تبدیل مقدار نمونه به ولتاژ ، از آنجا که هر دو ADC و ولتاژ ورودی به یک ولتاژ باتری اشاره دارند ، می توانیم از مقدار ADC به جای ولتاژ استفاده کنیم. برای 10bit Bean ADC ، ولتاژ کامل باتری منجر به مقدار ADC 1023 می شود ، بنابراین ما از این مقدار به عنوان Vbat استفاده می کنیم. مقدار واقعی مقاومت تقسیم کننده یک نکته مهم است. مقدار واقعی مقاومت تقسیم کننده 100K را اندازه گیری کرده و از مقدار اندازه گیری شده در معادله برای جلوگیری از خطای غیر ضروری ناشی از تحمل مقاومت استفاده کنید.
پس از محاسبه مقدار مقاومت ، مقدار مقاومت با استفاده از معادله اشتاین هارت به دما تبدیل می شود. این معادله در ویکی پدیا به تفصیل شرح داده شده است.
از آنجا که ما 2 پروب داریم ، منطقی است که عملکرد پروب را در یک کلاس C ++ قرار دهیم.
این کلاس ضرایب معادله اشتاینارت-هارت ، مقدار مقاومت تقسیم کننده اسمی و پورت آنالوگ که ترمیستور به آن متصل شده است را در بر می گیرد. یک روش واحد ، دما () ، مقدار ADC را به مقدار مقاومت تبدیل می کند و سپس از معادله اشتاینارت-هارت برای تعیین دما در کلوین استفاده می کند. مقدار بازگشتی صفر مطلق (273.15K) را از دمای محاسبه شده کم می کند تا مقدار را در سانتی گراد ارائه دهد.
قدرت Lightblue Bean در این واقعیت مشهود است که همه عملکردهای بلوتوث اساساً در 1 خط کد اجرا می شود که مقادیر دما را در یک منطقه داده خراش در حافظه بلوتوث می نویسد.
Bean.setScratchData (TEMPERATURE_SCRATCH_IDX ، (uint8_t*) و دما [0] ، 12) ؛
هر مقدار دمای نمونه با یک شناور نشان داده می شود که 4 بایت را اشغال می کند. منطقه داده خراش می تواند 20 بایت را در خود جای دهد. ما فقط از 12 مورد استفاده می کنیم. 5 ناحیه داده خراش وجود دارد بنابراین می توانید با استفاده از داده های خراش تا 100 بایت داده را منتقل کنید.
جریان اصلی رویدادها به شرح زیر است:
- بررسی کنید که آیا اتصال بلوتوث داریم یا خیر
- اگر چنین است ، دما را نمونه بگیرید و آنها را در منطقه داده خط خطی بنویسید
- 200 میلی متر بخوابید و چرخه را تکرار کنید.
در صورت عدم اتصال ، سیستم عامل تراشه ATMEGA328P را برای مدت طولانی در حالت خواب قرار می دهد. چرخه خواب برای حفظ قدرت مهم است. تراشه ATMEGA328P به حالت کم مصرف می رود و تا زمانی که توسط ماژول بلوتوث LBM313 قطع نشود ، در آنجا باقی می ماند. LBM313 یک وقفه ایجاد می کند تا ATMEGA328P را در پایان دوره خواب درخواست شده یا هر زمان که اتصال بلوتوث به Bean ایجاد می شود ، بیدار کند. عملکرد WakeOnConnect با صراحت فراخوانی Bean.enableWakeOnConnect (درست) در حین راه اندازی () فعال می شود.
لازم به ذکر است که سیستم عامل با هر برنامه سرویس گیرنده BLE کار می کند. تنها کاری که مشتری باید انجام دهد این است که بایت های دما را از بانک داده خراش جدا کرده و مجدداً آنها را برای نمایش یا پردازش در شماره های شناور جمع آوری کند. ساده ترین برنامه مشتری برای من استفاده از EvoThings بود.
مرحله 5: برنامه تلفن هوشمند
برنامه نمونه Evo Things بسیار نزدیک به چیزی است که من فقط با تلاش اندکی برای افزودن عناصر صفحه اضافی برای تکمیل دستگاه اندازه گیری درجه حرارت 3 کانال نیاز دارم.
نصب و راه اندازی اصلی پلت فرم EvoThings در وب سایت Evo Things به خوبی ثبت شده است ، بنابراین تکرار آن در اینجا هیچ ارزشی ندارد. تنها چیزی که در اینجا به آن اشاره می کنم تغییرات خاصی است که در کد نمونه آنها ایجاد کردم تا 3 کانال اطلاعات دما نمایش داده شود ، که از منطقه داده خراش بلوتوث استخراج شده است.
پس از نصب EvoThings Workbench ، مثال Lightblue Bean را در اینجا (در رایانه های 64 بیتی ویندوز) پیدا خواهید کرد:
ThisPC / Documents / EvothingsStudio_Win64_1. XX / Examples / Lightblue-bean-basic / app
می توانید فایلهای index.html و app.js را با فایلهای پیوست شده به این مرحله جایگزین کنید. تغییرات ایجاد شده در فایل jacascript ، 3 مقدار دمای نقطه شناور را از ناحیه داده های خراش و HTML داخلی عناصر جدید ایجاد شده در فایل HTML استخراج می کند.
تابع onDataReadSuccess (داده) {
var temperatureData = new Float32Array (داده)؛
var bytes = جدید Uint8Array (داده) ؛
var temperature = temperatureData [0]؛
console.log ('دما خوانده شده:' + دما + 'C')؛
document.getElementById ('temperatureAmbient'). innerHTML = temperatureData [0]. تا ثابت (2) + "C °" ؛
document.getElementById ('temperature1'). innerHTML = temperatureData [1]. تا ثابت (2) + "C °" ؛
document.getElementById ('temperature2'). innerHTML = temperatureData [2]. تا ثابت (2) + "C °" ؛
}
مرحله 6: محوطه سازی
محفظه یک جعبه ساده چاپ سه بعدی است. من از Cubify Design برای ایجاد طرح استفاده کردم اما هر برنامه مدل سازی سه بعدی کافی است. فایل STL به شما ضمیمه شده است تا فایل خود را چاپ کنید. اگر مجبور باشم این کار را دوباره انجام دهم ، دیوارها را کمی ضخیم تر از حال حاضر می کنم و طرح گیره ای را که تخته را در جای خود نگه می دارد ، تغییر می دهم. گیره ها به راحتی از بین می روند زیرا تنش در لایه smae به عنوان لایه های چاپ سه بعدی است ، که ضعیف ترین جهت جهت قطعات چاپ سه بعدی است. دیوارها بسیار نازک هستند بنابراین مکانیزم ضربه محکم و ناگهانی کمی در قسمت ضعیف است. من از نوار شفاف برای بسته نگه داشتن جعبه استفاده کردم زیرا دیوارها بسیار شل و ول بودند - زیبا نیستند اما کار می کنند!
مرحله 7: تنظیمات رایانه و پیکربندی بلوتوث
چرخه ساخت و بارگذاری سیستم عامل برای Bean همه از طریق بلوتوث انجام می شود. فقط یک اتصال بلوتوث فعال در یک زمان وجود دارد. Bean Loader از Windows App Store در دسترس است
چرخه اولیه ای که برای جفت و اتصال (و تعمیر و اتصال مجدد در صورت خرابی) استفاده می شود به شرح زیر است: از کنترل پنل ؛/تنظیمات بلوتوث ، باید صفحه زیر را مشاهده کنید:
در نهایت پنجره ها گزارش می دهند "آماده برای جفت شدن". در این مرحله می توانید روی نماد Bean کلیک کنید و پس از چند ثانیه ، ویندوز از شما می خواهد که یک رمز عبور وارد کنید. رمز عبور پیش فرض لوبیا 00000 است
اگر رمز عبور به درستی وارد شده باشد ، ویندوز نشان می دهد که دستگاه به درستی وصل شده است. شما باید در این حالت باشید تا بتوانید Bean را برنامه ریزی کنید.
پس از اتصال و اتصال ، از Bean Loader برای بارگذاری سیستم عامل روی لوبیا استفاده کنید. من دریافتم که این مشکل بیشتر از موعد دیگر شکست می خورد و به نظر می رسد به نزدیکی به کامپیوتر من مربوط می شود. حبوبات را جابجا کنید تا جایی را پیدا کنید که برای شما مناسب باشد. مواقعی وجود دارد که هیچ چیز کار نمی کند و Bean Loader پیشنهاد می کند دوباره دستگاه را جفت کنید. به طور معمول انجام مجدد روند جفت شدن ، اتصال را بازیابی می کند. قبل از جفت شدن مجدد ، باید "دستگاه را حذف کنید".
عملیات Bean Loader بسیار ساده است و به خوبی در سایت آنها ثبت شده است. با بازکردن Bean Loader ، مورد منوی "Program" را انتخاب کنید تا محاوره ای برای مرور فایل Hex ارائه شده در مرحله سیستم عامل این دستورالعمل باز شود.
پس از بارگیری سیستم عامل ، Bean Loader را ببندید تا ارتباط بین Bean Loader و سخت افزار Bean قطع شود. فقط می توانید یک اتصال همزمان داشته باشید. اکنون میز کار EvoThings را باز کرده و سرویس گیرنده EvoThings را در تلفن هوشمند یا رایانه لوحی خود راه اندازی کنید.
وقتی روی دکمه "اجرا" کلیک می کنید ، سرویس گیرنده EvoThings به طور خودکار صفحه html دماسنج را بارگیری می کند. برای اتصال به Bean روی دکمه Connect کلیک کنید و باید دمای نمایش داده شده را مشاهده کنید. موفقیت!
مرحله 8: نتیجه گیری
اگر همه چیز به درستی ساخته شده و پیکربندی شده است ، باید یک سیستم کار داشته باشید که به شما امکان می دهد دما را با 2 پروب کنترل کنید و همچنین دمای سنسور BMA250 را در برد توسعه Bean نظارت کنید. کارهای بیشتری می توان با EvoThings انجام داد - من به تازگی سطح را خراشیده ام ، بنابراین این آزمایش را برای شما می گذارم! ممنون که خواندید! اگر اوضاع خراب شد ، فقط کامنت بگذارید و من تا جایی که بتوانم کمک می کنم.
توصیه شده:
بلوتوث قابل حمل بلوتوث 2.1: 16 مرحله (همراه با تصاویر)
بلوتوث قابل حمل بلوتوث 2.1: سلام به همه! در این بیلد تصمیم گرفتم یک بوم باکس بلوتوث قابل حمل تهیه کنم که دارای باتری قابل شارژ و عملکرد عالی باشد. این بلندگو بر اساس بلندگوی Isetta پل کارمودی ساخته شده است که من کمی برای بازسازی آن را بازسازی کرده ام
استفاده از تلفن هوشمند به عنوان دماسنج غیر تماسی / دماسنج قابل حمل: 8 مرحله (همراه با تصاویر)
از اسمارت فون به عنوان دماسنج غیر تماسی / دماسنج قابل حمل استفاده کنید: اندازه گیری دمای بدن بدون تماس / بدون تماس مانند تفنگ حرارتی. من این پروژه را ایجاد کردم زیرا Thermo Gun در حال حاضر بسیار گران است ، بنابراین من باید جایگزینی برای تهیه DIY داشته باشم. و هدف این است که با نسخه کم بودجه تهیه شود
دماسنج مادون قرمز غیر تماسی مبتنی بر آردوینو - دماسنج مبتنی بر IR با استفاده از آردوینو: 4 مرحله
دماسنج مادون قرمز بدون تماس مبتنی بر آردوینو | دماسنج مبتنی بر IR با استفاده از آردوینو: سلام بچه ها در این دستورالعمل ما با استفاده از آردوینو یک دماسنج غیر تماسی ایجاد می کنیم. از آنجا که گاهی اوقات دمای مایع/جامد بسیار زیاد یا بسیار پایین است و سپس تماس با آن و خواندن آن سخت است. دما در آن حالت
RuuviTag و PiZero W و Blinkt! دماسنج مبتنی بر چراغ بلوتوث: 3 مرحله (همراه با تصاویر)
RuuviTag و PiZero W و Blinkt! دماسنج مبتنی بر چراغ بلوتوث: این دستورالعمل روشی را برای خواندن داده های دما و رطوبت از RuuviTag با استفاده از بلوتوث با Raspberry Pi Zero W و نمایش مقادیر به صورت دوتایی در یک چشمک زدن Pimoroni توصیف می کند! PHAT. یا به طور خلاصه: چگونه می توان یک دولت ایجاد کرد
ESP32 NTP دماسنج پخت دماسنج با تصحیح اشتاین هارت-هارت و هشدار دما: 7 مرحله (همراه با تصاویر)
ESP32 NTP دماسنج پخت دماسنج با تصحیح اشتاین هارت و هشدار دما: هنوز در سفر برای تکمیل یک & quot؛ پروژه آینده & quot ؛، & quot ؛، & quot؛ دماسنج پخت و پز دما ETP32 NTP با اصلاح Steinhart-Hart و هشدار دما & quot؛ یک دستورالعمل است که نشان می دهد چگونه یک پروب دما NTP ، پیزو ب