فهرست مطالب:
- مرحله 1: فهرست موارد
- مرحله 2: مقدمه نسبی
- مرحله 3: مدار را وصل کنید
- مرحله 4: برای کامپایل آماده شوید
- مرحله 5: کد تست برای پورت سریال سنسور DHT22
- مرحله 6: کد پروژه
- مرحله 7: توضیحات
تصویری: ایستگاه هواشناسی با استفاده از Arduino UNO: 7 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
ایجاد شده توسط: Hazel Yang
این پروژه یک ایستگاه هواشناسی است که از یک برد Arduino UNO برای کنترل جریان داده ، یک سنسور DHT22 برای جمع آوری داده ها و یک صفحه OLED برای نمایش داده ها استفاده می کند.
مرحله 1: فهرست موارد
1. صفحه نمایش: OLED ، 1.3 اینچ SH1106 ، رنگ سفید I2C ---- PID: 18283
2. سنسور: سنسور رطوبت و دما دیجیتال DHT22 ---- PID: 7375
3. متصل می شود: Jumper Wires ---- PID: 10316 یا 10318 یا 10312 (بستگی به طول دارد) یا می توانید از سیم جامد 22 AWG استفاده کنید ---- PID: 22490
تخته نان ---- PID: 10686 یا 10698 یا 103142 (بستگی به اندازه دارد)
4. قدرت: این کابل فقط می تواند با پورت USB کامپیوتر متصل شود و از کابل نیز برای انتقال داده بین برد IDE و برد آردوینو استفاده می شود. کابل USB ، A تا B ، M/M ، 0.5M (1.5FT) ---- PID: 29862
یا می توانید از آن برای تغذیه برد استفاده کنید: آداپتور 5V 2A AC/DC ---- PID: 10817.
مرحله 2: مقدمه نسبی
معرفی صفحه نمایش: 1.3 اینچ سفید OLED
1. می توانید سندی را که تنظیمات اولیه و توضیحات را نشان می دهد ، پیدا کنید:
معرفی سنسور: سنسور رطوبت و دما DHT22 1. می توانید سندی را که توضیحات را نشان می دهد ، پیدا کنید:
مرحله 3: مدار را وصل کنید
سنسور DHT22 داده های سریال را به پین 2 ارسال می کند. بنابراین ، پین دوم را از سمت چپ وصل کنید ، پین "SDA" باید به پین 2 متصل شود.
برای نمایشگر SSH1106 ، از پین آنالوگ برای انتقال استفاده می کند. مدار صفحه نمایش پین "SCL" به "A5" آردوینو و پین "SDA" به "A4" آردوینو خواهد بود. در حالی که داده های موقعیت پیکسل به طور مداوم در حال انتقال هستند ، عملکرد صفحه نمایش در برنامه فقط هر بار که داده ها را از سنسور می خواند ، فرمان را فعال می کند.
سنسور و صفحه نمایش می توانند از 3.3 ولت برای روشن کردن آردوینو به عنوان منبع تغذیه DC استفاده کنند. برای تغذیه ، ما باید هر دو پین "VCC" را به "3.3V" آردوینو متصل کنیم. و پین های "GND" را می توان به سادگی به پین "GND" روی برد آردوینو متصل کرد.
از کابل USB A به B استفاده کنید ، Arudino را به کامپیوتر وصل کنید.
مرحله 4: برای کامپایل آماده شوید
"u8glib" برای صفحه SSH1106 از Olikraus.
"کتابخانه حسگر DHT" برای سنسور DHT22 از Adafruit. شما باید دو کتابخانه را بارگیری کنید: کتابخانه حسگر DHT22:
U8glib:
و از "مدیریت کتابخانه" در IDE استفاده کنید تا آنها را از حالت فشرده خارج کنید. آموزش آنلاین مدیریت کتابخانه ها:
مرحله 5: کد تست برای پورت سریال سنسور DHT22
ضریب آزمایش برای پورت سریال سنسور DHT22 (که داخل کتابخانه DHT22 است >> مثال):
(می توانید از این قسمت بگذرید.)
فقط برای آزمایش سنسور DHT22 به طور عادی داده ها را می خواند
#عبارتند از
#عبارتند از
#عبارتند از
#عبارتند از
#عبارتند از
#DHTPIN 2 را تعریف کنید
#DHTTYPE DHT22 را تعریف کنید
DHT dht (DHTPIN ، DHTTYPE) ؛
void setup () {
Serial.begin (9600)؛
Serial.println (F ("آزمایش DHT22!")) ؛
dht.begin ()؛
}
حلقه خالی () {
// بین اندازه گیری ها چند ثانیه صبر کنید.
تاخیر (2000) ؛
// دما یا رطوبت خواندن حدود 250 میلی ثانیه طول می کشد!
// قرائت سنسورها نیز ممکن است تا 2 ثانیه "قدیمی" باشد (سنسور آن بسیار کند است)
float h = dht.readHumidity ()؛
// دما را به صورت سانتیگراد بخوانید (به طور پیش فرض)
float t = dht.readTemperature ()؛
// درجه حرارت را فارنهایت بخوانید (isFahrenheit = true)
float f = dht.readTemperature (true) ؛
// بررسی کنید که آیا خواندن انجام نشد و زودتر خارج شوید (دوباره امتحان کنید).
if (isnan (h) || isnan (t) || isnan (f)) {
Serial.println (F ("از سنسور DHT خوانده نشد!")) ؛
برگشت؛
}
// محاسبه شاخص گرما در فارنهایت (به طور پیش فرض)
float hif = dht.computeHeatIndex (f ، h) ؛
// محاسبه شاخص گرما برحسب درجه سانتیگراد (isFahreheit = false)
float hic = dht.computeHeatIndex (t ، h ، false) ؛
Serial.print (F ("رطوبت:")) ؛
Serial.print (h) ؛
Serial.print (F ("٪ دما:")) ؛
Serial.print (t)؛
Serial.print (F ("° C")) ؛
Serial.print (f)؛
Serial.print (F ("° F درجه حرارت شاخص:")) ؛
Serial.print (hic)؛
Serial.print (F ("° C")) ؛
Serial.print (hif) ؛
Serial.println (F ("° F"))؛
}
// پس از کامپایل برنامه ، برای بررسی داده ها روی TOOLS >> SERIAL MONITOR کلیک کنید.
// پایان برنامه آزمایش.
مرحله 6: کد پروژه
#عبارتند از
#عبارتند از
#عبارتند از
#عبارتند از
#عبارتند از
#DHTPIN 2 را تعریف کنید
#DHTTYPE DHT22 را تعریف کنید
#شامل "U8glib.h"
U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE) ؛
سنسور DHT (DHTPIN ، DHTTYPE) ؛
خلاء قرعه کشی (خالی) {
u8g.setFont (u8g_font_unifont) ؛
float h = sensor.readHumidity ()؛
// دما را به صورت سانتیگراد بخوانید (به طور پیش فرض)
float t = sensor.readTemperature ()؛
// بررسی کنید که آیا خواندن انجام نشد و زودتر خارج شوید (دوباره امتحان کنید).
if (isnan (h) || isnan (t)) {
u8g.print ("خطا") ؛
برای(؛؛)؛
برگشت؛
}
u8g.setPrintPos (4 ، 10) ؛
u8g.print ("دما (C):")؛
u8g.setPrintPos (4 ، 25) ؛
u8g. چاپ (t) ؛
u8g.setPrintPos (4 ، 40) ؛
u8g.print ("رطوبت (٪):")؛
u8g.setPrintPos (4 ، 55) ؛
u8g.print (h) ؛
}
void setup (void) {
u8g.setRot180 ()؛
Serial.begin (9600)؛
sensor.begin ()؛
}
حلقه خالی (خالی) {
// حلقه تصویر
u8g.firstPage ()؛
انجام دادن {
قرعه کشی()؛
} while (u8g.nextPage ())؛
// بازسازی تصویر پس از تأخیر (2000) ؛
}
// پایان برنامه اصلی.
مرحله 7: توضیحات
سپس ، مدار پین را برای برد Arduino آماده کنید. زیرا کتابخانه سنسور برای اعلام شیء به داده نیاز دارد.
و می توانید داده های حسگر را با نظارت بر داده های خروجی از طریق پین دیجیتال 2 با استفاده از تابع "Serial.print ()" آزمایش کنید. از آنجا که فرکانس انتقال داده تقریباً 1 بار در هر 2 ثانیه (که 0.5 هرتز است) است ، هنگامی که در Arduino IDE برنامه ریزی می شود ، باید تاخیر درون عملکرد حلقه را بیش از 2 ثانیه تنظیم کنیم. بنابراین یک "تأخیر (2000)" در داخل تابع حلقه وجود دارد. این اطمینان می دهد که داده ها مرتباً به روز می شوند. در تابع "draw" ، داده ها را از درگاه داده های سریال دریافت کرده و با استفاده از توابع "readHumidity" و "readTemperature" در اعداد شناور قرار دهید.
رطوبت و دما را با استفاده از عملکرد چاپ در فایل "u8glib" چاپ کنید. با تغییر شماره در عملکرد "setPrintPos" می توانید موقعیت را تنظیم کنید. عملکرد چاپ می تواند مستقیماً متن و اعداد را نشان دهد.
برای راه اندازی سخت افزار ، به پورت سریال 10 ثانیه تأخیر دهید. سپس تابع شروع را برای سنسور فراخوانی کنید. با توجه به مدار من ، صفحه نمایش من وارونه بود. بنابراین من یک تابع "setRot180" برای چرخاندن صفحه نمایش نیز وارد کردم.
عملکرد حلقه برد Arduino اصلی ترین عملکرد است. به منظور نمایش متن و داده ها هر بار که حسگر به روز می شود ، تابع draw را فرا می خواند.
صفحه نمایش به این شکل است:
می توانید Arduino UNO را از رایانه خود جدا کرده و با استفاده از یک آداپتور برق 5 ولت DC به جک 2.1 میلی متری آن متصل کنید. این برنامه را در داخل درایو خود ذخیره می کند و می تواند بعد از روشن شدن مجدد برنامه را به طور مداوم دوباره اجرا کند.
توصیه شده:
ایستگاه هواشناسی حرفه ای با استفاده از ESP8266 و ESP32 DIY: 9 مرحله (همراه با تصاویر)
ایستگاه هواشناسی حرفه ای با استفاده از ESP8266 و ESP32 DIY: LineaMeteoStazione یک ایستگاه آب و هوایی کامل است که می تواند با سنسورهای حرفه ای Sensirion و برخی از اجزای ابزار Davis (باران سنج ، بادسنج) ارتباط برقرار کند. این پروژه به عنوان ایستگاه هواشناسی DIY طراحی شده است اما فقط نیاز به
ایستگاه هواشناسی NaTaLia: ایستگاه آب و هوایی خورشیدی آردوینو به درستی انجام شد: 8 مرحله (همراه با تصاویر)
ایستگاه هواشناسی NaTaLia: ایستگاه آب و هوایی خورشیدی آردوینو به درستی انجام شد: پس از 1 سال عملیات موفق در 2 مکان مختلف ، من برنامه های پروژه ایستگاه هواشناسی خورشیدی خود را به اشتراک می گذارم و توضیح می دهم که چگونه به یک سیستم تبدیل شده است که می تواند در مدت زمان طولانی زنده بماند. دوره های انرژی خورشیدی اگر دنبال کنید
ایستگاه هواشناسی DIY و ایستگاه حسگر WiFi: 7 مرحله (همراه با تصاویر)
DIY Weather Station & WiFi Sensor Station: در این پروژه نحوه ایجاد ایستگاه هواشناسی به همراه ایستگاه حسگر WiFi را به شما نشان خواهم داد. ایستگاه حسگر داده های دما و رطوبت محلی را اندازه گیری می کند و آنها را از طریق WiFi به ایستگاه هواشناسی ارسال می کند. سپس ایستگاه هواشناسی t
ایستگاه هواشناسی DIY با استفاده از DHT11 ، BMP180 ، Nodemcu با Arduino IDE در سرور Blynk: 4 مرحله
ایستگاه هواشناسی DIY با استفاده از DHT11 ، BMP180 ، Nodemcu با Arduino IDE در سرور Blynk: Github: DIY_Weather_Station Hackster.io: ایستگاه هواشناسی آیا برنامه آب و هوا را می دیدید ، درست است؟ مثلاً وقتی آن را باز می کنید با شرایط آب و هوایی مانند دما ، رطوبت و غیره آشنا می شوید
ایستگاه هواشناسی Acurite 5 در 1 با استفاده از Raspberry Pi و Weewx (سایر ایستگاه های هواشناسی سازگار هستند): 5 مرحله (همراه با تصاویر)
ایستگاه هواشناسی Acurite 5 در 1 با استفاده از Raspberry Pi و Weewx (دیگر ایستگاه های آب و هوایی سازگار هستند): وقتی ایستگاه هواشناسی Acurite 5 in 1 را خریداری کردم ، می خواستم بتوانم آب و هوا را در خانه ام بررسی کنم. وقتی به خانه رسیدم و آن را راه اندازی کردم ، متوجه شدم که یا باید صفحه نمایش را به کامپیوتر وصل کنم یا هاب هوشمند آنها را بخرم ،