نمایش دما از یک HTU21D بر روی LCD

نمایش دما از یک HTU21D بر روی LCD

در این آموزش، ما یاد خواهیم گرفت که چگونه دماهای اندازه‌گیری شده از حساس(حس کننده) دما و رطوبت HTU21D را بر روی یک LCD نمایش دهیم. نتیجه یک راه‌اندازی کاربردی خواهد بود که در آن دما را می‌توان به درجه سلسیوس، فارنهایت و کلوین مشاهده کرد، همراه با رطوبت نسبی که در همان صفحه نمایش داده می‌شود. این پروژه به شما تجربه عملی در ارتباط I2C و مدیریت داده‌های حساس(حس کننده) پایه خواهد داد. برای یک راهنمای بصری دقیق، حتماً ویدیو را تماشا کنید (در ویدیو در 00:00).

HTU21D module

سخت‌افزار توضیح داده شده است

اجزای اصلی این پروژه شامل حساس(حس کننده) HTU21D و نمایشگر LCD است. HTU21D یک حساس(حس کننده) دیجیتال رطوبت و دما است که از طریق پروتکل I2C ارتباط برقرار می‌کند. این حساس(حس کننده) اندازه‌گیری‌های دقیقی از دما به درجه سلسیوس یا فارنهایت و رطوبت نسبی به صورت درصد ارائه می‌دهد. حساس(حس کننده) معمولاً با ولتاژ 3.3V کار می‌کند اما می‌تواند با سیستم‌های 5V نیز کار کند. نمایشگر LCD که ما استفاده خواهیم کرد یک LCD 16x2 با رابط I2C است. این نوع نمایشگر به فقط دو سیم برای ارتباط داده نیاز دارد که اتصال آن را به میکروکنترلرهایی مانند آردوینو آسان‌تر می‌کند. رابط I2C اجازه می‌دهد تا چندین دستگاه در یک باس متصل شوند و این امر باعث ساده‌تر شدن سیم‌کشی و کاهش تعداد پایه‌های استفاده شده می‌شود.

جزئیات برگه اطلاعات

تولیدکنندهادافروت
شماره قطعهHTU21D-F
ولتاژ منطق/ورودی-خروجی۳.۳ ولت (معمولی)
ولتاژ تغذیه۱.۵ ولت تا ۳.۶ ولت
جریان خروجی۰.۵ میلی آمپر (معمولی)
جریان اوج۱.۵ میلی آمپر (حداکثر)
دامنه دما-۴۰ تا ۱۲۵ درجه سانتی‌گراد
دامنه رطوبت۰ تا ۱۰۰ %RH
بستهDFN-6
یادداشت‌ها / واریانت‌هاNone

  • سطح ولتاژ صحیح را فراهم کنید تا از آسیب به حساس(حس کننده) جلوگیری شود.
  • در صورت نیاز از مقاومت‌های Pull-up بر روی خطوط SDA و SCL استفاده کنید.
  • آدرس I2C را با یک اسکنر بررسی کنید تا از پیکربندی صحیح اطمینان حاصل کنید.
  • خروجی حساس(حس کننده) را با احتیاط مدیریت کنید تا از بروز خطا در قرائت جلوگیری شود.
  • حساس(حس کننده) را هنگام انجام اندازه‌گیری‌ها از منابع حرارتی دور نگه دارید.

دستورالعمل‌های سیم‌کشی

Arduino wiring for HTU21DF light intesity sensor with LCD
Arduino wiring for HTU21DF light intesity sensor with LCD

برای اتصال حساس(حس کننده) HTU21D به آردوینو، پایه VCC حساس(حس کننده) را به خروجی ۳.۳ ولت آردوینو متصل کنید. سپس، پایه GND حساس(حس کننده) را به زمین آردوینو وصل کنید. پایه SDA که برای انتقال داده استفاده می‌شود، باید به پایه A4 آردوینو متصل شود. به همین ترتیب، پایه SCL که برای سیگنال ساعت استفاده می‌شود، به پایه A5 آردوینو متصل کنید. اطمینان حاصل کنید که LCD شما به درستی متصل شده باشد؛ آدرس I2C برای LCD در این تنظیم معمولاً ۰x3F است. اگر از نوع دیگری از LCD یا آدرس I2C متفاوتی استفاده می‌کنید، مطمئن شوید که شِفر (کود) را به طور متناسب تنظیم کنید. پس از سیم‌کشی، حتماً بررسی کنید که اتصالات شل نباشند قبل از روشن کردن آردوینو.

نمونه‌های شِفر (کود) و راهنمایی

در شِفر (کود)، با وارد کردن کتابخانه‌های ضروری برای حساس(حس کننده) HTU21D و LCD شروع می‌کنیم:

#include 
#include "Adafruit_HTU21DF.h"
#include 

این محیط را برای استفاده از حساس(حس کننده) و نمایشگر فراهم می‌کند. کتابخانه `Adafruit_HTU21DF` عملکرد حساس(حس کننده) را مدیریت می‌کند، در حالی که کتابخانه `LiquidCrystal_I2C` نمایشگر LCD را کنترل می‌کند. در مرحله بعد، ما یک نمونه برای هر دو حساس(حس کننده) و LCD ایجاد می‌کنیم:

Adafruit_HTU21DF htu = Adafruit_HTU21DF();
LiquidCrystal_I2C lcd(0x3F, 16, 2);

اینجا،htuشیء مربوط به حساس(حس کننده) HTU21D است وlcdشیء برای نمایشگر LCD است. آدرس I2C برای LCD به 0x3F تنظیم شده است که ممکن است نیاز به تأیید آن بر اساس پیکربندی شما داشته باشید.setup()تابع، ما LCD را راه‌اندازی کرده و بررسی می‌کنیم که آیا حساس(حس کننده) عملیاتی است:

void setup() {
  lcd.begin();  
  lcd.backlight();
  if (!htu.begin()) {
      lcd.print("Sensor missing"); 
      while (1);
  }
  lcd.print("HTU21D Ready");
}

این شِفر (کود) LCD را راه‌اندازی می‌کند و وجود حساس(حس کننده) را بررسی می‌کند. اگر حساس(حس کننده) شناسایی نشود، عبارت "حساس(حس کننده) یافت نشد" نمایش داده شده و برنامه متوقف می‌شود.loop()در این تابع، به طور مداوم مقادیر دما و رطوبت را می‌خوانیم و آن‌ها را نمایش می‌دهیم:

void loop() {
   lcd.clear();
   lcdDisplay(0, 0, "Celsius: ", 10, 0, getHTU('C'), 'd');  
   lcdDisplay(0, 1, "Humidity: ", 10, 1, getHTU('H'), '%');  
   delay(5000);
}

در این بخش، ما ال‌سی‌دی را پاک می‌کنیم، سپس فراخوانی می‌کنیمlcdDisplay()عملکردی برای نمایش دما به درجه سلسیوس و رطوبت.getHTU()تابعی دما یا رطوبت را بر اساس خصیصه وارد شده برمی‌گرداند.

نمایش / چه انتظاری باید داشته باشید

هنگامی که تنظیمات کامل شد و شِفر (کود) به آردوینو بارگذاری شد، LCD باید دمای جاری را به درجه سانتی‌گراد و رطوبت نسبی نمایش دهد. اگر همه‌چیز به درستی متصل شده باشد، مقادیر هر چند ثانیه یک‌بار به‌روز می‌شوند. مراقب مشکلات رایج باشید، مانند اتصالات معکوس یا آدرس‌های نادرست I2C، که می‌تواند به نقص‌های ارتباطی حساس(حس کننده) منجر شود (در ویدیو در 05:00).

برچسب‌های زمانی ویدئو

  • ۰۰:۰۰- مقدمه
  • ۰۱:۳۰- دستورالعمل‌های سیم‌کشی
  • ۰۳:۱۵- توضیح شِفر (کود)
  • ۰۴:۵۰- نمایش
  • ۰۵:۴۰- نتیجه گیری

تصاویر

LCD1602 یا LCD2004 با حساس(حس کننده) رطوبت و دما HTU21DF با آردوینو
LCD1602 یا LCD2004 با حساس(حس کننده) رطوبت و دما HTU21DF با آردوینو
Arduino wiring for HTU21DF light intesity sensor with LCD
Arduino wiring for HTU21DF light intesity sensor with LCD
HTU21D module
HTU21D module
HTU21D module-back
HTU21D module-back
213-Display Temperature from HTU21DF on LCD1602-I2C or LCD2004
زبان: C++
کپی شد!

مواردی که ممکن است به آن‌ها نیاز داشته باشید

منابع و مراجع

فایل‌ها📁

برگه مشخصات (pdf)