آموزش آردوینوپروژه های آردوینو

راه اندازی سنسور دما و رطوبت AM2320 با آردوینو

اگر میخواهید گزارش مناسبی از وضعیت هوا در گلخانه خود داشته باشید، یا میخواهید یک سیستم کنترل رطوبت بسازید، یا داده های دما و رطوبت را در وب سایت خود پیگیری کنید، سنسور AM2320 برای شما گزینه مناسبی است!

سنسور AM2320 در کارخانه کالیبره شده است و برای کار به قطعات خارجی کمی نیاز دارد. بنابراین تنها با چند اتصال و مقداری کد آردوینو، می توانید بلافاصله اندازه گیری رطوبت و دما را شروع کنید.

معرفی سنسور AM2320

AM2320 یک سنسور دیجیتال دما و رطوبت کم هزینه، آسان برای استفاده نسبتا دقیق، از شرکت AOSONG است. این سنسور شبیه سنسورهای محبوب دما و رطوبت DHT11/DHT22 است، اما برخلاف سنسورهای کلاسیک DHT، دارای پرووتکل ارتباطی I2C است!

معرفی سنسور AM2320

سنسور AM2320 قادر است رطوبت را در محدوده کامل 0 تا 100٪ RH با دقت ± 3% در محدوده 20% تا 80% RH بخواند. حداکثر محدوده دمایی 40- تا 80 درجه سانتیگراد و دقت 0.5± درجه سانتیگراد در 25 درجه سانتیگراد (رزولوشن 0.01 درجه سانتیگراد) است. AM2320 می تواند داده ها را با حداکثر نرخ نمونه برداری 0.5 هرتز، یعنی یک خواندن در هر دو ثانیه، خروجی دهد.

برق مورد نیاز

سنسور از 3.3 ولت تا 5.5 ولت استفاده می کند و می توانید بدون نگرانی از آن با میکروکنترلر 3.3 ولت یا 5 ولت مورد علاقه خود استفاده کنید.

AM2320 در طول اندازه گیری ها کمتر از 0.95 میلی آمپر و در حالت خواب کمتر از 10 میکروآمپر مصرف می کند. این مصرف کم انرژی امکان پیاده سازی را در دستگاه های باتری دار مانند گوشی ها، پوشیدنی ها یا ساعت های هوشمند می دهد.

رابط I2C

AM2320 یک سنسور I2C است، به این معنی که از دو سیم I2C موجود در اکثر میکروکنترلرها استفاده می‌کند و می‌تواند آن پین‌ ها را با سیم های سایر سنسورهای I2C به اشتراک بگذارد تا زمانی که برخورد آدرسی نداشته باشند. این سنسور دارای آدرس I2C ثابت است و روی کد هگز 0x5C تنظیم شده است.

مشخصات فنی

ولتاژ تغذیه 3.3V تا 5.5V
کشش جریان ~0.95mA (در طول اندازه گیری)
~10µA (در طول  حالت خواب)
محدوده رطوبت 0 تا 100 %RH
دقت رطوبت ±3% در محدوده 20% تا 80% RH
محدوده دما -40°C تا +80°C
دقت دما ±0.5°C در 25°C
نرخ نمونه برداری 0.5Hz (هر دو ثانیه)

برای جزئیات بیشتر لطفا به دیتاشیت سنسور مراجعه کنید.

حالا بیایید نگاهی به پین‌ اوت بیندازیم.

پین اوت سنسور am2320

  • VDD پایه پاور است. از آنجایی که سنسور از 3.3 تا 5.5 ولت DC استفاده می کند، قدرتی برابر با سطح منطقی میکروکنترلر خود به آن بدهید – به عنوان مثال. برای میکرو 5 ولت مانند آردوینو، از 5 ولت استفاده کنید.
  • SDA پین داده I2C است و نیاز به مقاومت پول آپ 2.2K تا 10K دارد.
  • GND زمین مشترک است.
  • SCL پین ساعت I2C است که به مقاومت پول آپ 2.2K تا 10K نیاز دارد.
مطلب پیشنهادی:  برقراری ارتباط بین دو برد آردوینو با پروتکل I2C

اتصال سنسور AM2320 به آردوینو

همانطور که گفته شد، این سنسور از پروتکل I2C استفاده می کند، اتصال AM2320 به آردوینو بسیار ساده است!

برای شروع استفاده از سنسور فقط چهار پایه وجود دارد که باید وصل شوند. یکی برای VCC، یکی برای GND و دو خط داده برای ارتباط I2C.

پایه SCL را به پایه ساعت I2C و پایه SDA را به پایه داده I2C در آردوینو وصل کنید. توجه داشته باشید که هر برد آردوینو دارای پین های I2C متفاوتی است که باید بر اساس آن متصل شوند. در بردهای آردوینو با طرح R3، سیم SDA (خط داده) و SCL (خط ساعت) روی هدرهای پین نزدیک به پایه AREF قرار دارند. آنها همچنین با نام های A5 (SCL) و A4 (SDA) شناخته می شوند.

AM2320 مقاومت پول آپ داخلی برای ارتباط I2C ندارد. بنابراین، شما باید آنها را به صورت خارجی اضافه کنید. هر مقدار از 2.2K تا 10K باید خوب کار کند.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

تصویر زیر سیم کشی را نشان می دهد.

اتصال سنسور AM2320 به آردوینو

نصب کتابخانه Adafruit AM2320

برای راه اندازی و راه اندازی حسگر خود، باید کتابخانه Adafruit AM2320 را نصب کنید که از طریق Library Manager آردوینو در دسترس است.

برای نصب کتابخانه به Sketch > Include Library > Manage Libraries بروید. منتظر بمانید تا نرم افزار آردوینو فهرست کتابخانه ها را بارگیری کند و لیست کتابخانه های نصب شده را به روز کند.

کلمه Adafruit AM2320 را تایپ کنید و کتابخانه مربوطه را نصب کنید.

همچنین باید کتابخانه کمکی Adafruit Bus IO را نصب کنید.

کد آردوینو سنسور AM2320

کد کامل در فایل دانلودی انتهای صفحه قرار داده شده است. در اینجا قسمت های مختلف کد را بررسی میکنیم.

کد بسیار ساده است، در ابتدا، کتابخانه های Adafruit_Sensor.h و Adafruit_AM2320.h گنجانده شده اند و یک آبجکت Adafruit_AM2320 ایجاد شده است.

#include "Adafruit_Sensor.h"
#include "Adafruit_AM2320.h"

Adafruit_AM2320 am2320 = Adafruit_AM2320();

در تابع setup، ما ارتباط سریال با رایانه شخصی را مقداردهی اولیه می‌کنیم و برای مقداردهی اولیه آبجکت، متود start() را فراخوانی می‌کنیم.

void setup() {
  Serial.begin(9600);
  while (!Serial) {
    delay(10); // تاخیر  برای راه اندازی  ارتباط سریال
  }

  am2320.begin();
}

هنگامی که آبجکت مقدار دهی اولیه شد، می توانید با استفاده از عملگر نقطه به متدهای شی (am2320) دسترسی پیدا کنید.

  • am2320.readTemperature() دمای اعشاری (اعشاری + کسری) را بر حسب درجه سانتی گراد برمی گرداند. شما می توانید با ضرب در 1.8 و جمع 32 آن را به فارنهایت تبدیل کنید.
  • am2320.readHumidity() مقدار رطوبت را به عنوان یک مقدار اعشاری بین 0 تا 100 برمی گرداند (این متود درصد مقدار رطوبت را می خواند).

 

void loop() {
  Serial.print("Temp: ");
  Serial.print(am2320.readTemperature());
  Serial.print(" C");
  Serial.print("\t\t");
  Serial.print("Humidity: ");
  Serial.print(am2320.readHumidity());
  Serial.println(" \%");

  delay(2000);
}

هنگامی که کد شما آپلود شد، سریال مانیتور را با سرعت 9600bps باز کنید. شما باید چیزی شبیه به خروجی زیر ببینید. سعی کنید روی سنسور نفس بکشید تا تغییرات رطوبت و دما را ببینید!

موارد موجود در فایل : سورس کامل

5 (1 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

برای ارسال تصاویر از انجمن سایت استفاده کنید.

سوالات فنی را در انجمن سایت مطرح کنید تا در مسابقه شرکت کنید. ورود به انجمن

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *