پروژه ایستگاه هواشناسی با آردوینو (دما و رطوبت هوا و خاک)
محتویات
سلام. پروژه ایستگاه هواشناسی با آردوینو (نمایش رطوبت، دما و رطوبت خاک) را آماده کردیم.
ساخت سیستم ایستگاه هواشناسی با آردوینو
در این پروژه آردوینو ما میخواهیم با استفاده از 2 سنسور، یک ایستگاه هواشناسی مبتنی بر Arduino را بسازیم. سنسور رطوبت خاک FC-28 برای انداره گیری رطوبت خاک و سنسور DHT22 برای اندازه گیری دما، رطوبت و شاخص گرما استفاده میشود. تمامی این پارامتر ها با استفاده از یک ال سی دی نوکیا 5110 نمایش داده میشوند.
قبل از اجرای این پروژه پیشنهاد میکنم پروژه های زیر را برای افزایش درک شما در این پروژه مشاهده کنید.
- آموزش نمایش تصویر در LCD گرافیکی نوکیا 5110 با آردوینو
- آموزش پروژه اندازه گیری دما و رطوبت با آردوینو
نحوه کار ایستگاه هواشناسی با استفاده از آردوینو
در این پروژه ایستگاه هواشناسی قصد داریم از دو سنسور استفاده کنیم. یکی برای اندازه گیری رطوبت خاک و دیگری برای خواندن دما ، رطوبت و شاخص گرما.
سنسور رطوبت خاک FC – 28 مقدار رطوبت خاک را به صورت ولتاژ آنالوگ از 0 تا 1023 به ما می دهد. هنگامی که خاک خشک است ، مقدار خروجی سنسور FC-28 به 1023 نزدیک تر می شود و وقتی خاک مرطوب باشد ، مقدار آن کم می شود. رطوبت در درصد اندازه گیری می شود ، بنابراین ما باید این مقادیر را به مقیاس جدیدی تبدیل کنیم که از 0 تا 100 باشد. این درصد در ال سی دی نوکیا 5110 نمایش داده می شود.
سنسور DHT22 می تواند دما ، رطوبت و شاخص گرما را اندازه گیری کند. سنسور DHT22 به صورت دیجیتالی خروجی می دهد و مستقیماً از طریق پین های I / O دیجیتال آردوینو تغذیه می شود. آردوینو این خروجی را می خواند و دما ، رطوبت و شاخص گرما را محاسبه می کند. این مقادیر سپس در ال سی دی نوکیا 5110 نمایش داده می شوند.
مدار ایستگاه هواشناسی با Arduino
تصویر زیر شماتیک مدار پروژه ایستگاه هواشناسی با آردوینو را نمایش میدهد.
دستور و عمل های زیر را برای اتصال ال سی دی نوکیا 5110 با Arduino انجام دهید.
- پین RST نوکیا 5110 را از طریق مقاومت 10k به پین 6 آردوینو وصل کنید.
- پین SCE نوکیا 5110 را از طریق مقاومت 1k به پین 7 Arduino وصل کنید.
- پین D / C نوکیا 5110 را از طریق مقاومت 10k به پین 5 آردوینو وصل کنید.
- پین DIN نوکیا 5110 را از طریق مقاومت 10k به پین 4 Arduino وصل کنید.
- پین CLK نوکیا 5110 را از طریق مقاومت 10k به پین 3 آردوینو وصل کنید.
- پین VCC نوکیا 5110 را به پین 3.3V آردوینو وصل کنید.
- پین LED نوکیا 5110 را از طریق مقاومت 330 اهم به پتانسیومتر وصل کنید.
- پین GND نوکیا 5110 را به پین GND 6 آردوینو وصل کنید.
پس از آن اتصالات حسگر DHT22 و رطوبت خاک FC-28 را با آردوینو برقرار کنید.
- پین 1 (پین VCC) سنسور DHT22 را به پین 5 ولت آردوینو وصل کنید.
- پین 2 (پین داده) سنسور DHT22 را به پین 8 Arduino وصل کنید.
- پین 4 (پین GND) سنسور DHT22 را به پین GND آردوینو وصل کنید.
اتصالات سنسور FC-28 با آردوینو
- پین VCC سنسور FC-28 را به 5V آردوینو وصل کنید.
- پین A0 سنسور FC-28 را به A0 آردوینو وصل کنید.
- پین GND سنسور FC-28 را به GND Arduino وصل کنید.
قطعات مورد نیاز
- برد آردوینو Uno
- ال سی دی نوکیا 5110
- سنسور دما و رطوبت DHT22
- سنسور رطوبت خاک FC-28
- پتانسیومتر 1 کیلو اهم
- مقاومت 1 کیلو اهم
- مقاومت 10 کیلو اهم – چهار عدد
- مقاومت 330 اهم
کد پروژه ایستگاه هوا شناسی با آردوینو
کد کامل پروژه در انتهای صفحه قرار داده شده است. در اینجا بعضی از قسمت های کد را بررسی میکنیم. اول از همه ، باید کتابخانه های LCD 5110 LCD و سنسور DHT22 را درج کنیم. پس از افزودن كتابخانه ها ، ما متغیری به نام “lcd” از نوع PCD8544 و متغیری به نام “temp_hum_sensor” از نوع DHT را تعریف میکنیم. سپس پین 8 را برای DHT22 اعلام کردیم.
#include <PCD8544.h> PCD8544 lcd; #include "DHT.h" #define DHTPIN 8 #define DHTTYPE DHT22 DHT temp_hum_sensor(DHTPIN, DHTTYPE);
در void setup() ، ارتباطات را با 5110 LCD در ابعاد “84*48” شروع میکنیم و “Reading From the Sensors” را روی صفحه LCD چاپ میکنیم. سپس ارتباط را با حسگر DHT22 شروع میکنیم.
lcd.begin(84, 48); lcd.print("Reading From the Sensors"); temp_hum_sensor.begin();
در void loop، مقادیر را از حسگر رطوبت خاک گرفته و در متغیر ذخیره می کنیم. سنسور رطوبت خاک مقادیر 0 تا 1023 را به ما می دهد ، برای اندازه گیری رطوبت باید آنها را به درصد تبدیل کنیم. بنابراین ، ما مقادیر را به 0 تا 100 تبدیل میکنیم.
output_value= analogRead(sensor_pin); output_value = map(output_value, 550, 40, 0, 100);
پس از آن ، شاخص دما ، رطوبت و گرما را از حسگر دما و رطوبت DHT22 میگیریم و اینها را در متغیر ذخیره میکنیم. سپس ، ما این خطوط را در LCD 5110 نشان میدهیم.
float hum = temp_hum_sensor.readHumidity(); float temp = temp_hum_sensor.readTemperature(); float fah = temp_hum_sensor.readTemperature(true); lcd.print("Hi: "); lcd.print(heat_index); lcd.println(" *F ");
موارد موجود در فایل : سورس کامل ، شماتیک
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود
از ال سی دی گرافیکی spi 8tft میتوان استفاده کرد
سلام عزیز
بله میشه اما نیاز به تغییر در کد هست
با سلام. سنسور dht 22 حداکثر چقدر میتواند از آردوینو فاصله داشته باشد؟ اتصال آردوینو و سنسور از طریق کابل تلفن میباشد. باتشکر
سلام عزیز
با توجه به محیط و نویز اطراف عدد متغیر هست باید خودتون تست کنید. برای ارتباط های طولانی باید از رابط های دیگه مثل RS485 استفاده بشه