به تارنمای مجموعه ی AKTonics خوش آمدید

لطفا در نظر داشته باشید با توجه به مشغله ی کاری زیاد بروزرسانی سایت و اضافه کردن محتوی جدید به کندی پیش خواهد رفت. همچنین در با توجه به کمبود وقت کافی برای مواردی که در جای درست ثبت نشده اند، هرگونه نظر یا پیغامی که در جای مناسب ثبت نشده باشد بدون اطلاع قبلی حذف خواهد شد. لطفا برای راهنمایی در مورد یک مطلب خاص در بخش انتهایی همان صفحه سوال خود را ثبت کنید و برای خرید از سایت، سفارش پروژه یا پشتیبانی موارد خریداری شده از طریق صفحه ی تماس با ما روی پیام رسان واتزاپ یا تلگرام پیغام ثبت کنید. خواهشمنیدم از موارد بیهوده بپرهیزید. از همراهی و شکیبایی شما متشکریم...

آموزش ساخت ساعت و دماسنج-رطوبت سنج دیجیتال با آردوینو

style

در این آموزش با استفاده از ساعت دیجیتال PCF8563 و سنسور دماسنج/رطوبت سنج دیجیتال DHT11، برد آردوینو (مگا یا اونو) و شیلد نمایشگر ۱۶۰۲ (یا هر مدل دیگر از نمایشگر کاراکتری ۱۶ در ۲) یک ساعت دیجیتال با قابلیت نمایش روز/ماه/سال ساعت:دقیقه:ثانیه دما و رطوبت را روی نمایشگر و پورت سریال خواهیم ساخت. آموزش به صورت ساده و مقدماتی نوشته شده است و برای همگان قابل اجرا خواهد بود.

 

قطعات لازم

-برد آردوینو مگا یا اونو

-ماژول ساعت دیجیتال PCF8563

-شیلد نمایشگر کاراکتری ۱۶۰۲ یا هر مدل دیگری از این نمایشگر

-سنسور دماسنج/رطوبت سنج دیجیتال DHT11 یا DHT21 یا DHT22

 

نحوه ی اتصال قطعات به آردوینو

شیلد نمایشگر به راحتی روی برد قرار خواهد گرفت، درصورتی که از خود نمایشگر بجای شیلد استفاده می کنید از روی اسکچ ارائه شده پین های نمایشگر خود را به درستی انتخاب کنید. ماژول ساعت دیجیتال PCF8563 از طریق پروتکل I2C متصل خواهد شد. برای برد مگا پین SDA به پین ۲۰ و پین SCL به پین ۲۱ و برای برد اونو پین SDA به پین A4 و پین SCL به پین A5 متصل خواهد شد. برای سنسور های DHT پین دیجیتال را به پین ۱۵ متصل نمایید یا از داخل اسکچ پورت مناسبی را انتخاب کنید.

 

کتابخوانه ها و اسکچ آردوینو

در ابتدا دو کتابخوانه ی PCF8563 و TroykaDHT را دانلود و به نرم افزار آردوینوی خود اضافه کنید. سپس یک بار برنامه ی آردوینو را ری استارت کرده و اسکچ زیر را بارگذاری و روی برد خود آپلود کنید.


 /*

AK Digital Clock & Digital Temperature and Humidity with PCF8563 & DHT11

*/ 

//فراخوانی کتابخوانه های لازم

#include <LiquidCrystal.h>

#include <PCF8563.h>

#include <TroykaDHT.h>

//تنظیم پین های نمایشگر LCD

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

//شروع ساعت دیجیتال

PCF8563 pcf;

//راه اندازی سنسور دماسنج و رطوبت سنج DHT روی پین ۱۵ دیجیتال

DHT dht(15, DHT11);



 // در قسمت Setup مواردی را تعریف می کنیم که با شروع فعالیت برد نیامند آن ها هستیم. 

 void setup() {

  Serial.begin(9600);

  lcd.begin(16, 2);

  pcf.init();

  pcf.startClock();

  dht.begin();

}



 // در قسمت Loop مواردی را تعریف می کنیم که پس از شروع کار برد نیازمند تکرار آن ها هستیم. 

void loop() {

  lcd_print(); 

  serial_print(); 

  delay(1000);

}



//نمایش مقادیر ساعت دیجیتال و سنسور دیجیتال روی نمایشگر

void lcd_print() {

  //بازخوانی ساعت از ماژول ساعت دیجیتال

  Time nowTime = pcf.getTime();

  //شروع خط اول نمایشگر

  lcd.setCursor(0, 0);

  if (nowTime.day < 10) { lcd.print("0");  }

  //نمایش روز

  lcd.print(nowTime.day);

  lcd.print("/");

  if (nowTime.month < 10) { lcd.print("0");  }

  //نمایش ماه

  lcd.print(nowTime.month);

  lcd.print("/");

  lcd.print("20");

  //نمایش سال

  lcd.print(nowTime.year);

  lcd.print(" ");

  if (nowTime.hour < 10) { lcd.print("0");  }

  //نمایش ساعت

  lcd.print(nowTime.hour);

  lcd.print(":");

  if (nowTime.minute < 10) { lcd.print("0");  }

  //نمایش دقیقه

  lcd.print(nowTime.minute);

  //شروع خط دوم نمایشگر

  lcd.setCursor(0, 1);

  //بازخوانی دما و روطوب از سنسور DHT

  dht.read();

  lcd.print("Temp=");

  //نمایش دما

  lcd.print(dht.getTemperatureC(),0);

  lcd.print("\337");

  lcd.print("C Hu=");

  //نمایش رطوبت

  lcd.print(dht.getHumidity(),0);

  lcd.print("%");

}



//نمایش مقادیر ساعت دیجیتال و سنسور دیجیتال روی پورت سریال

void serial_print() {

  //بازخوانی ساعت از ماژول ساعت دیجیتال

  Time nowTime = pcf.getTime();

  //نمایش روز

  Serial.print(nowTime.day);

  Serial.print("/");

  //نمایش ماه

  Serial.print(nowTime.month);

  Serial.print("/");

  //نمایش سال

  Serial.print(nowTime.year);

  Serial.print(" ");

  //نمایش ساعت

  Serial.print(nowTime.hour);

  Serial.print(":");

  //نمایش دقیقه

  Serial.print(nowTime.minute);

  Serial.print(":");

  Serial.println(nowTime.second);

  //بازخوانی دما و روطوب از سنسور DHT

  dht.read();

  //نمایش دما

  Serial.print("Temperature = ");

  Serial.print(dht.getTemperatureC());

  Serial.print(" ");

  //نمایش رطوبت

  Serial.print("Humidity = ");

  Serial.print(dht.getHumidity());

  Serial.println(" %");

}

سفارش پروژه و خرید موارد موجود در سایت

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

درمورد مدیریت مجموعه

ابوالفضل خزائی

با سلام و تشکر از بازدید شما؛ این وب سایت با هدف انتشار مطالب، دانش و تجربه ی من در زمینه های الکترونیک، کامپیوتر، مدیریت سرور، مکانیک و ماشین آلات صنعتی، کنسول های بازی و ... راه اندازی شده است. امیدوارم از مطالب آن استفاده کنید، لذت ببرید و با نظرات، انتقادات و پیشنهادات خودتان به پیشرفت آن کمک کنید. ابوالفضل خزائی

برای این مطلب 4 نظر ثبت شده است.

  1. آرمین کیایی در تاریخ 18 خرداد 1397 می فرماید :

    سلام
    آیا میشه این آموزش رو(کد برنامه نویسیش رو)برای lcdکاراکتری معمولی(بدون شیلد و ماژول مبدل و…)بزارید
    و اینکه برای تبدیل تاریخ میلادی به شمسی باید چه کرد؟

    • ابوالفضل خزائی در تاریخ 18 خرداد 1397 می فرماید :

      با عرض سلام و ادب و احترام

      کلیه ی نمایشگر های LCD کاراکتری 1602 با همین کد قابل راه اندازی هستند، کافیست پین های متصل شده به نمایشگر با پین های ست شده در اسکچ یکسان باشد. برای تبدیل تاریخ میلادی به شمسی از کتابخانه ی JDate استفاده کنید.

      موفق و موید باشید.

      • آرمین کیایی در تاریخ 19 خرداد 1397 می فرماید :

        ببخشید میشه دقیق تر توضیح بدین چون من هیچی از برنامه نویسی آردوینو نمیدونم(هنوز یاد نگرفتم)

        • ابوالفضل خزائی در تاریخ 20 خرداد 1397 می فرماید :

          با عرض سلام و ادب و احترام

          توضیحات بنده مشکل دقت نداره که بخوام دقیق تر توضیح بدم. برنامه نویسی رو شروع کنید، حداقل مباحث ابتدایی رو یاد بگیرید. توضیحات من قابل فهم و درک خواهد شد.

          موفق و موید باشید.



تذکر مهم : نام و نام خانوادگی صحیح و کامل خود را به فارسی تایپ کنید.
تذکر مهم : به پیغام هایی که در نام و نام خانوادگی، آدرس ایمیل و آیدی تلگرام یا شماره واتزاپ آن ها مغایرت وجود داشته باشد پاسخ داده نخواهد شد.
تذکر مهم : پر کردن تمامی فیلد ها با اطلاعات صحیح و معتبر برای ارسال نظر/سوال اجباری است. به نظرات و سوالاتی که اطلاعات آن ها صحیح نیست پاسخ داده نخواهد شد.
تذکر مهم : در صورتی که در ثبت اولین پیغام خود قوانین سایت را رعایت نکنید، سیستم به صورت اتوماتیک پیغام های بعدی شما را حتی در صورت اصلاح اطلاعات حذف خواهد کرد.

درخواست آموزش

نام و نام خانودگی کامل شما
شماره تماس معتبر شما
درخواست شما

فرم بدلیل استفاده نادرست غیر فعال شده است...

جدیدترین نوشته های تارنما