در این آموزش، یاد خواهیم گرفت که چگونه دما را با استفاده از ترمیستور دارای ضریب دما منفی (NTC) اندازهگیری کرده و قرائتها را روی صفحه نمایش LCD با استفاده از میکروکنترلر ESP32 نمایش دهیم. پروژه شامل اتصال یک ترمیستور NTC به ESP32 و استفاده از LCD برای نمایش قرائتهای دما به دو واحد سلسیوس و فارنهایت است. این یک راه عالی برای شروع کار با حسگرهای دما و تکنیکهای نمایش با استفاده از پلتفرم ESP32 است.
ESP32-25-NTC_ترموترLCD
ما از برد توسعه ESP32 سانفاندری استفاده خواهیم کرد که قابلیتهای ESP32 را با Wi-Fi و بلوتوث داخلی افزایش میدهد. این برد میتواند به راحتی با حسگرها و نمایشگرهای مختلف یکپارچه شود و آن را برای پروژههای IoT ایدهآل میسازد. ترمیستور NTC دما را بر اساس مقاومت خود که به طور معکوس با دما تغییر میکند، فراهم خواهد کرد. برای توضیحات بیشتر در مورد راهاندازی و شِفر (کود)، حتماً ویدئو را مشاهده کنید (در ویدئو در 00:00).
توضیحاتی درباره سختافزار
اجزای اصلی مورد استفاده در این پروژه شامل میکروکنترلر ESP32، یک ترمیستور NTC، یک مقاومت و یک نمایشگر LCD است. ESP32 به عنوان واحد پردازش مرکزی عمل میکند، دادههای مربوط به ترمیستور را پردازش کرده و نمایشگر LCD را کنترل میکند. ترمیستور NTC مقاومت خود را بر اساس دما تغییر میدهد، که این امکان را به ما میدهد تا دما را بر اساس پیکربندی تقسیم ولتاژ با یک مقاومت ثابت محاسبه کنیم.
NTC_ترمیستور
صفحه نمایش LCD دما را در هر دو مقیاس سلسیوس و فارنهایت نشان خواهد داد. ما از پروتکل I2C برای برقراری ارتباط با LCD استفاده خواهیم کرد که با کاهش تعداد پایههای مورد نیاز، کابلکشی را ساده میکند. ترمیستور NTC خصوصیتی دارد که در آن مقاومت آن با افزایش دما کاهش مییابد که برای محاسبات ما حیاتی است.
جزئیات برگه مشخصات
تولیدکننده
سانفاندر
شماره قطعه
ترمیستور NTC
مقاومت اسمی
۱۰ کیلو اهم
مقدار بتا
3950 کلوین
محدوده دما
-40 درجه سانتیگراد تا 125 درجه سانتیگراد
بسته
محوری
اطمینان حاصل کنید که ترمیستور برای دامنه دمای مورد انتظار ارزیابی شده است.
از یک مقاومت 10 کΩ برای تقسیم ولتاژ استفاده کنید؛ در غیر این صورت، خوانشها نادرست خواهند بود.
اتصالات را بررسی کنید تا از ایجاد مدارهای کوتاه جلوگیری شود.
آدرس I2C LCD را صحیح نگه دارید (معمولاً 0x27).
از سطوح منبع تغذیه مناسب برای ESP32 و دستگاههای جانبی استفاده کنید.
بررسی کنید که نرخ باود نمایشگر مسلسل با تنظیمات شِفر (کود) مطابقت دارد (۱۱۵۲۰۰).
برای اتصال قطعات، ابتدا ترمیستور NTC را به ESP32 متصل کنید. ترمیستور قطبیت ندارد، بنابراین میتوان آن را در هر دو جهت متصل کرد. یکی از سربهای ترمیستور را به پایه زمین (GND) روی ESP32 متصل کنید. سرب دیگر به یک مقاومت 10 کیلو اهم متصل میشود که سپس به پایه 3.3 ولت روی ESP32 متصل میشود. نقطه اتصال بین ترمیستور و مقاومت به پایه متصل خواهد شد.35در ESP32 که ولتاژ را برای محاسبات دما میخواند.
برای LCD، پایه زمین (معمولاً دومین پایه از بالا) را به GND روی ESP32 وصل کنید. سپس، VCC (اغلب اولین پایه) را به پایه 5V روی ESP32 وصل کنید. پایه SDA (معمولاً سومین پایه) باید به پایه وصل شود.21بر روی ESP32، و پایه SCL (اغلب چهارمین پایه) باید به پایه متصل شود.22اطمینان حاصل کنید که تمام اتصالات ایمن هستند و شمارههای پایه را دوباره بررسی کنید تا از هر گونه اشتباهی جلوگیری شود.
نمونههای شِفر (کود) و راهنمایی
شِفر (کود) با تعریف ثوابت برای ترمیستور آغاز میشود، از جمله شماره پایه، ولتاژ مرجع و مقادیر مقاومت. تابع راهاندازی ارتباط سریال را مقداردهی اولیه کرده و پایه ترمیستور را به عنوان ورودی تنظیم میکند.
const int thermistorPin = 35; // Pin connected to the thermistor
const float referenceVoltage = 3.3;
const float referenceResistor = 10000; // the 'other' resistor
حلقه اصلی مقدار آنالوگ را از پایه ترمیستور میخواند، مقدار مقاومت را محاسبه میکند و سپس دما را به هر دو درجه سانتیگراد و فارنهایت با استفاده از معادله پارامتر بتا محاسبه میکند. مقادیر محاسبه شده در مانیتور سری چاپ میشوند.
int adcValue = analogRead(thermistorPin); // Read ADC value
float voltage = (adcValue * referenceVoltage) / 4095.0; // Calculate voltage
float resistance = (voltage * referenceResistor) / (referenceVoltage - voltage); // Calculate thermistor resistance
در نهایت، دما بر روی LCD نمایش داده میشود.lcd.print()عملکرد برای نمایش مقادیر دما همراه با نماد درجه استفاده میشود.
این شِفر (کود) به طور مؤثری هر 300 میلیثانیه یک بار با جدیدترین خوانشهای دما، LCD را بهروزرسانی میکند و امکان نظارت در زمان واقعی را فراهم میکند.
نمایشگاه / چه انتظاری داشته باشیم
پس از اجرای شِفر (کود) و تکمیل سیمکشی، باید خوانشهای دما را که بر روی LCD به صورت درجه سلسیوس و فارنهایت نمایش داده میشود، مشاهده کنید. اگر ترمیستور را در دستان خود نگه دارید، باید متوجه افزایش دما شوید در حالی که مقاومت کاهش مییابد. مراقب قطبیت معکوس باشید و از ایمن بودن اتصالات اطمینان حاصل کنید، زیرا سیمکشی نادرست میتواند منجر به خوانشهای نادرست شود (در ویدیو در ساعت ۰۴:۵۰).
زمانبندی ویدیو
۰۰:۰۰ آغاز
۱:۵۰ مقدمهای بر پروژه
۵:۳۲ سیمکشی توضیح داده شده
شِفر (کود) NTC آردوینو برای ESP32 توضیح داده شد ساعت ۸:۲۰
انتخاب برد ESP32 و پورت COM در Arduino IDE 13:38
۱۵:۲۰ نمایش دما با استفاده از NTC
دمای ۱۷:۳۴ NTC بر روی LCD1602 با ESP32
شِفر (کود) آردوینو NTC 18:42 با صفحه نمایش LCD توضیح داده شده است