در این آموزش به کمک برد آردوینو نانو که یکی از پرکاربرد ترین برد های خانواده آردوینو به حساب میآید، قصد ساخت یک دماسنج با قابلیت نمایش همزمان دما و رطوبت با سنسور DHT22 و همچنین نمایشگر سون سگمنت را داریم. در ادامه این آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
برد آردوینو Nano
مجموعه برد های آردوینو از جمله برد های توسعه پرطرفدار بین مهندسین امبدد هستند که در مدل های مختلفی از جمله Micro , proMini , Nano , Uno و همچنین Mega قابل تهیه هستند، هسته مرکزی این برد های محبوب از سری AtMega328 می باشد. آردوینو پلتفرم سختافزاری و نرمافزاری متنباز است. همان طور که قبل تر اشاره کردیم، پلتفرم آردوینو شامل یک میکروکنترلر تکبردی متنباز است که قسمت سختافزار آردوینو را تشکیل میدهد. علاوه بر این، پلتفرم آردوینو یک نرمافزار آردوینو IDE که به منظور برنامهنویسی برای بردهای آردوینو طراحی شدهاست و یک بوت لودر نرمافزاری که بر روی میکروکنترلر بارگذاری میشود را در بر میگیرد.
سنسور دما رطوبت DHT22
سنسورها متنوعی برای سنجش دما و رطوبت طراحی و تولید شدهاند. هر کدام محدوده و حساسیت مختلفی دارند. سنسور DHT22 یکی از بهترین سنسورهای اندازه گیری دما و رطوبت هستند. این سنسورها از دو بخش رطوبت خازنی و یک مقاومت گرمایی تشکیل شدهاند. همچنین یک واحد مبدل آنالوگ به دیجیتال در DHT22 وجود دارد، که خروجی دیجیتال تولید میکند. به کمک این مبدل کاربر میتواند از آن در میکروکنترلرها از آن برای خواندن مقادیر استفاده کند.
سون سگمنت
نمایشگرهای سون سگمنت از جمله قطعات پرطرفدار، برای نمایش متن یا عدد هستند. این قطعات در انواع کاتد و آنود مشترک یافت میشوند. در نوع آند مشترک تمام پینهای مثبت قطعات به یکدیگر متصل هستند و کاربر با استفاده از پین های منفی قادر به راه اندازی این قطعات خواهد بود و در نوع کاتد مشترک نیز به همین ترتیب. به هر یک از هفت LED موجود در این بسته بندی، یک قطعه یا سگمنت گفته می شود زیرا هنگام روشن شدن، بخشی از یک رقم عددی را برای نمایش تشکیل می دهد. همچنین از یک ال ای اضافی نیز بعضی ۷SEGMENT ها استفاده می شود که نشانگر یک نقطه اعشاری است.
روش کار این پروژه
در این پروژه با استفاده از سنسور DHT22 مقادیر دما و رطوبت محیط را اندازهگیری و با استفاده از برد آردوینو نانو که یکی از برد های پرطرفدار در خانواده آردوینو بشمار می آید. در ادامه بعد از تحلیل مقادیر بدست آمده از سنسور دما، اقدام به راهاندازی ماژول سونسگمنت خواهیم کرد تا مقدار مربوط به نمایش درآیند.
وسایل موردنیاز
شماتیک و اتصالات
با توجه به جدول و شماتیک زیر اتصالات را برقرار کنید به این صورت که پایه VCC به ۵v آردوینو و همچنین پایه GND آردوینو به GND ماژول متصل می گردد. دقت داشته باشید که محل اتصال پایه های DIN ,CS ,CLK در برد های آردوینو NANO ,UNO با سری MEGA متفاوت است.
- شماتیک اتصالات پروژه ساخت دما سنج با قابلیت نمایش دما و رطوبت با ماژول سونسگمنت.
کد و راهاندازی
برای مشاهده کامل آموزش راهاندازی ماژول ۷segment و همچنین راهنمای نصب کتابخانه مورد نیاز به این آموزش مراجعه کنید.
#include <HCMAX7219.h> #include "SPI.h" #include <Adafruit_Sensor.h> #include <DHT.h> #include <DHT_U.h> #define DHTPIN 2 #define DHTTYPE DHT22 DHT_Unified dht(DHTPIN, DHTTYPE); #define LOAD 10 HCMAX7219 HCMAX7219(LOAD); void setup() { Serial.begin(9600); dht.begin(); sensor_t sensor; dht.temperature().getSensor(&sensor); dht.humidity().getSensor(&sensor); } void loop() { sensors_event_t event; dht.temperature().getEvent(&event); float T = event.temperature; dht.humidity().getEvent(&event); float H = event.relative_humidity; Serial.print(F("Temperature: ")); Serial.print(event.temperature); Serial.println(F("°C")); Serial.print(F("Humidity: ")); Serial.print(event.relative_humidity); Serial.println(F("%")); HCMAX7219.Clear(); HCMAX7219.print7Seg("C",6); HCMAX7219.print7Seg(T,8); //HCMAX7219.print7Seg("H:",2); HCMAX7219.print7Seg(H,4); HCMAX7219.Refresh(); delay(1000); }
جمع بندی
در این آموزش با استفاده از از کتابخانههای HCMAX7219 و SPI قادر به کنترل این ماژول خواهیم بود، به این صورت که با Clear Buffer خروجی بافر را پاک کرده سپس با استفاده از دستور print7seg متن مورد نظر را وارد می کنیم در ادامه با یک refresh ساده، متن مورد نظر ما نمایش داده خواهد شد.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام مهندس بسیار اموزش عالی بود
فقط میشه همزمان رطوبت و دما را بصورت بیسیم روی ThingSpaek دید ؟
البته با استفاده از اینترنت ماژول سیمکارت برای جاهایی که دسترسی به اینترنت نیست و یا حتی با اتصال ماژول esp8266 به مودم وایفای برای جاهایی که دسترسی به اینترنت هست
سلام این آموزش در سایت منتشر شده.
https://digispark.ir/send-data-with-sim800l-gprs-internet-to-thingspeak-iot-platform/
سلام من می خام دما رو تا یک رقم اعشار نمایش بده چی کار کنم؟
با سلام
از دیتا تایپ flaot برای رقم اعشاری استفاده میشود.