شِفر (کود) آردوینو و ویدئو برای حساس(حس کننده) دیجیتال دما و رطوبت Aosong AM2320 با LCD1602 و ماجیول I2C
در این آموزش، نحوهٔ استفاده از حساس(حس کننده) دیجیتال دما و رطوبت Aosong AM2320 در کنار نمایشگر LCD1602 که از ماجیول I2C استفاده میکند را بررسی خواهیم کرد. هدف نمایش مقادیر دما به هر دو واحد فارنهایت و سانتیگراد و همچنین رطوبت نسبی است. این پیکربندی برای پایش شرایط محیطی در پروژههای مختلف ایدهآل است و آن را به افزونهای چندمنظوره برای مجموعه ابزار آردوینو شما تبدیل میکند.

ما از حساس(حس کننده) AM2320 برای جمعآوری دادههای دما و رطوبت استفاده خواهیم کرد که سپس روی LCD1602 نمایش داده میشوند. ماجیول I2C سیمکشی را ساده میکند و تنها به چهار اتصال نیاز دارد: VCC، GND، SDA و SCL. برای درک بهتر سیمکشی و برنامهنویسی، پیشنهاد میکنم ویدیوی مرتبط را مشاهده کنید (در ویدیو در 00:00).
توضیح سختافزار
اجزای کلیدی در این پروژه شامل حساس(حس کننده) AM2320، نمایشگر LCD1602 و ماجیول I2C هستند. AM2320 یک حساس(حس کننده) دیجیتال است که از طریق رابط I2C خوانشهای دقیقی از دما و رطوبت فراهم میکند. این حساس(حس کننده) با ولتاژ 3.3V تا 5.5V کار میکند و بازه اندازهگیری آن برای دما از -40°C تا +80°C و برای رطوبت از 0% تا 100% است.
نمایشگر LCD1602 امکان نمایش خوانشهای حساس(حس کننده) را فراهم میکند. این یک نمایشگر کاراکتری 16x2 است که از طریق پروتکل I2C ارتباط برقرار میکند و تعداد اتصالات مورد نیاز را به تنها چهار عدد کاهش میدهد. ماجیول I2C دادههای موازی LCD را به فرمت سریالی تبدیل میکند و اتصال به آردوینو را آسانتر مینماید.
جزئیات مشخصات فنی
| تولیدکننده | آوسونگ |
|---|---|
| شماره قطعه | AM2320 |
| ولتاژ منطق/ورودی-خروجی | 3.3 V - 5.5 V |
| ولتاژ تغذیه | 3.3 ولت - 5.5 ولت |
| جریان خروجی | ≤ 1.5 mA |
| دامنه اندازهگیری (دما) | -40°C تا +80°C |
| محدوده اندازهگیری (رطوبت) | 0% تا 100% |
| زمان پاسخ | ≤ 2 ثانیه |
| بسته | DIP-4 |
| یادداشتها / انواع | استفاده از مقاومتهای pull-up برای اتصالات I2C توصیه میشود. |
- اطمینان حاصل کنید که منبع تغذیه مناسب در محدوده ولتاژ مشخص شده باشد.
- برای خطوط SDA و SCL از مقاومتهای پولآپ استفاده کنید (4.7kΩ توصیه میشود).
- آدرس I2C صحیح را بررسی کنید (پیشفرض برای اکثر السیدیها 0x27 است).
- خطاهای احتمالی را با بررسی شِفر (کود) خطای حساس(حس کننده) مدیریت کنید.
- قبل از نمایش قرائتهای جدید، نمایشگر LCD را پاک کنید تا از همپوشانی جلوگیری شود.
دستورالعمل سیمکشی

برای سیمکشی حساس(حس کننده) AM2320، پایهٔ سمت چپ (VCC) را به 5V روی آردوینو وصل کنید. پایهٔ دوم (SDA) به پایهٔ A4 روی آردوینو Uno میرود (یا به پایه 20 روی آردوینو Mega). پایهٔ سوم (GND) باید به زمین متصل شود، و پایهٔ چهارم (SCL) به پایهٔ A5 روی آردوینو Uno (یا پایه 21 روی آردوینو Mega) متصل میشود. علاوه بر این، یک مقاومت 4.7kΩ بین پایه SDA و 5V و یک مقاومت 4.7kΩ دیگر بین پایه SCL و 5V وصل کنید تا سطوح سیگنال مناسب تضمین شود.
برای نمایشگر LCD1602 با رابط I2C، پایه VCC را به 5V و پایه GND را به زمین متصل کنید. پایه SDA از LCD را به همان پایه SDA (A4) که برای حساس(حس کننده) استفاده میشود متصل کنید. بهطور مشابه، پایه SCL از LCD را به همان پایه SCL (A5) که برای حساس(حس کننده) استفاده میشود متصل کنید. این سیمکشی مشترک اجازه میدهد هر دو دستگاه از طریق همان باس I2C با هم ارتباط برقرار کنند.
نمونههای شِفر (کود) و راهنمای گامبهگام
شِفر (کود) زیر حساس(حس کننده) AM2320 و نمایشگر LCD1602 را مقداردهی اولیه میکند. این شِفر (کود) با وارد کردن کتابخانههای مورد نیاز و ایجاد یک نمونه از حساس(حس کننده) آغاز میشود.
#include
AM2320 sensor;
#include
LiquidCrystal_I2C lcd(0x27, 16, 2); در اینجا،sensorیک شیء از کتابخانه AM2320 ایجاد میشود، وlcdشیء با آدرس I2C نمایشگر مقداردهی اولیه میشود.
درsetup()در این تابع، هر دوِ حساس(حس کننده) و نمایشگر LCD را مقداردهی اولیه میکنیم. این کار شامل روشن کردن نور پسزمینه و نمایش یک پیام اولیه است.
void setup() {
sensor.begin();
lcd.begin();
lcd.backlight();
lcd.print("Robojax AM2320 ");
lcd.setCursor (0,1);
lcd.print("LCD1602 I2C Demo");
delay(3000);
}این شِفر (کود) نمایشگر را طوری تنظیم میکند که پیام خوشآمدگویی را به مدت 3 ثانیه نمایش دهد تا کاربر فرصت داشته باشد ببیند سیستم در حال راهاندازی است.
آنloop()این تابع بهطور مداوم برای اندازهگیریهای حساس(حس کننده) بررسی میکند و نمایشگر را مطابق آن بهروز میکند. اگر اندازهگیری در دسترس باشد، صفحه را پاک میکند و دما را به هر دو واحد فارنهایت و سانتیگراد همراه با رطوبت نسبی نمایش میدهد.
void loop() {
if (sensor.measure()) {
lcd.clear();
lcd.print("T:");
lcd.print(temp('F'));
lcd.print("F/");
lcd.print(temp('C'));
lcd.print("C");
lcd.setCursor (0,1);
lcd.print("R.H. :");
lcd.print(sensor.getHumidity());
lcd.print("%");
}
else {
int errorCode = sensor.getErrorCode();
switch (errorCode) {
case 1: lcd.print("ERR: Sensor offline"); break;
case 2: lcd.print("ERR: CRC failed."); break;
}
}
delay(500);
}این گزیده نشان میدهد چگونه برنامه دادههای حساس(حس کننده) را بازیابی و نمایش میدهد در حالی که با بررسی هرگونه خطای احتمالیerrorCode.
نمایش / چه انتظاری باید داشته باشید
پس از تکمیل تنظیمات، انتظار داشته باشید که نمایشگر LCD دما را هم به درجهٔ فارنهایت و هم به درجهٔ سانتیگراد و همچنین درصد رطوبت نسبی نشان دهد. اگر حساس(حس کننده) آفلاین باشد یا خطای CRC رخ دهد، نمایشگر پیامهای خطای مربوطه را نشان خواهد داد. مهم است که از محکم بودن همهٔ اتصالات اطمینان حاصل کنید تا از بروز هرگونه مشکل جلوگیری شود (در ویدئو در 02:45).
برچسبهای زمانی ویدیو
- 00:00- مقدمهای بر پروژه
- 01:30- دستورالعملهای سیمکشی
- 03:15- توضیح شِفر (کود)
- 04:45- نمایش عملکرد
مواردی که ممکن است به آنها نیاز داشته باشید
-
آمازون
-
علیاکسپرسحساس(حس کننده) AM2302 یا DHT11 یا DHT22 را از علیاکسپرس خریداری کنیدs.click.aliexpress.com
منابع و مراجع
-
خارجیصفحه مستندات وایر آردوینوarduino.cc
-
خارجیکتابخانه AM2320 (از گیتهاب)github.com
فایلها📁
برگه مشخصات (pdf)
-
راهنمای کاربر حساس(حس کننده) دما و رطوبت I2C آدافرuit-AM2320
adafruit-am2320-temperature-humidity-i2c-sensor.pdf1.27 MB
فایل فریزینگ
-
حساس(حس کننده) رطوبت و دما AM2320
AM2320 Humidity and Temperature Sensor.fzpz0.01 MB