فهرست مطالب:

ایستگاه هواشناسی DIY با استفاده از DHT11 ، BMP180 ، Nodemcu با Arduino IDE در سرور Blynk: 4 مرحله
ایستگاه هواشناسی DIY با استفاده از DHT11 ، BMP180 ، Nodemcu با Arduino IDE در سرور Blynk: 4 مرحله

تصویری: ایستگاه هواشناسی DIY با استفاده از DHT11 ، BMP180 ، Nodemcu با Arduino IDE در سرور Blynk: 4 مرحله

تصویری: ایستگاه هواشناسی DIY با استفاده از DHT11 ، BMP180 ، Nodemcu با Arduino IDE در سرور Blynk: 4 مرحله
تصویری: ایستگاه هواشناسی آردوینو نانو، BME280 و SSD1306 OLED 2024, نوامبر
Anonim
ایستگاه هواشناسی DIY با استفاده از DHT11 ، BMP180 ، Nodemcu با Arduino IDE روی سرور Blynk
ایستگاه هواشناسی DIY با استفاده از DHT11 ، BMP180 ، Nodemcu با Arduino IDE روی سرور Blynk
ایستگاه هواشناسی DIY با استفاده از DHT11 ، BMP180 ، Nodemcu با Arduino IDE روی سرور Blynk
ایستگاه هواشناسی DIY با استفاده از DHT11 ، BMP180 ، Nodemcu با Arduino IDE روی سرور Blynk
ایستگاه هواشناسی DIY با استفاده از DHT11 ، BMP180 ، Nodemcu با Arduino IDE روی سرور Blynk
ایستگاه هواشناسی DIY با استفاده از DHT11 ، BMP180 ، Nodemcu با Arduino IDE روی سرور Blynk
ایستگاه هواشناسی DIY با استفاده از DHT11 ، BMP180 ، Nodemcu با Arduino IDE روی سرور Blynk
ایستگاه هواشناسی DIY با استفاده از DHT11 ، BMP180 ، Nodemcu با Arduino IDE روی سرور Blynk

Github: DIY_Weather_Station

Hackster.io: ایستگاه هواشناسی

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

ایستگاه هواشناسی دارای تجهیزات و ابزار اندازه گیری شرایط جوی برای ارائه اطلاعات برای پیش بینی آب و هوا و مطالعه آب و هوا و آب و هوا است. برای اتصال و کدگذاری به کمی تلاش نیاز است. بنابراین اجازه دهید شروع کنیم.

درباره نودمکو:

NodeMCU یک پلت فرم IoT منبع باز است.

این شامل سیستم عامل است که بر روی ESP8266 Wi-Fi SoC از Espressif Systems اجرا می شود و سخت افزاری که بر اساس ماژول ESP-12 ساخته شده است.

اصطلاح "NodeMCU" به طور پیش فرض بیشتر به سیستم عامل اشاره دارد تا کیت های dev. سیستم عامل از زبان برنامه نویسی Lua استفاده می کند. این برنامه بر اساس پروژه eLua است و بر روی Espressif Non-OS SDK برای ESP8266 ساخته شده است. از بسیاری از پروژه های منبع باز مانند lua-cjson و spiffs استفاده می کند.

حسگرها و نرم افزار مورد نیاز:

1. Nodemcu (esp8266-12e v1.0)

2. DHT11

3. BMP180

4. Arduino IDE

مرحله 1: سنسورهای خود را بشناسید

سنسورهای خود را بشناسید
سنسورهای خود را بشناسید

BMP180:

شرح:

BMP180 شامل یک سنسور مقاوم در برابر پیزو ، مبدل آنالوگ به دیجیتال و یک واحد کنترل با E2PROM و رابط سریال I2C است. BMP180 مقدار جبران نشده فشار و دما را ارائه می دهد. E2PROM 176 بیت داده کالیبراسیون فردی را ذخیره کرده است. این برای جبران جبران ، وابستگی به دما و سایر پارامترهای سنسور استفاده می شود.

  • UP = داده های فشار (16 تا 19 بیت)
  • UT = داده های دما (16 بیت)

مشخصات فنی:

  • Vin: 3 تا 5VDC
  • منطق: سازگار با 3 تا 5 ولت
  • محدوده سنجش فشار: 300-1100 hPa (9000 متر تا -500 متر از سطح دریا)
  • تا 0.03hPa / 0.25m وضوح -40 تا +85 ° C محدوده عملیاتی ، +-2 ° C دقت دما
  • این برد/تراشه از آدرس 7 بیتی I2C 0x77 استفاده می کند.

DHT11:

شرح:

  • DHT11 یک سنسور اصلی درجه حرارت و رطوبت بسیار کم هزینه است.
  • از سنسور رطوبت خازنی و ترمیستور برای اندازه گیری هوای اطراف استفاده می کند و یک سیگنال دیجیتالی را روی پین داده (بدون نیاز به پین ورودی آنالوگ) بیرون می ریزد. استفاده از آن بسیار ساده است ، اما برای گرفتن اطلاعات به زمانبندی دقیق نیاز دارد.
  • تنها نقطه ضعف واقعی این سنسور این است که فقط می توانید هر 2 ثانیه یکبار اطلاعات جدیدی از آن دریافت کنید ، بنابراین هنگام استفاده از کتابخانه ما ، قرائت سنسورها می تواند تا 2 ثانیه عمر داشته باشد.

مشخصات فنی:

  • قدرت 3 تا 5 ولت و ورودی/خروجی
  • برای خواندن درجه حرارت 0-50 درجه سانتی گراد accuracy دقت 2 درجه سانتی گراد مناسب است
  • برای خواندن رطوبت 20-80 with با دقت 5 Good خوب است
  • حداکثر 2.5 میلی آمپر جریان فعلی در هنگام تبدیل (هنگام درخواست داده)

مرحله 2: قابلیت اتصال

قابلیت اتصال
قابلیت اتصال

DHT11 با Nodemcu:

پین 1 - 3.3V

پین 2 - D4

پین 3 - NC

پین 4 - Gnd

BMP180 با Nodemcu:

Vin - 3.3V

گند - گند

SCL - D6

SDA - D7

مرحله 3: Blynk را راه اندازی کنید

Image
Image
راه اندازی Blynk
راه اندازی Blynk

بلینک چیست؟

Blynk یک پلتفرم با برنامه های iOS و Android برای کنترل Arduino ، Raspberry Pi و موارد مشابه از طریق اینترنت است.

این یک داشبورد دیجیتالی است که در آن می توانید با کشیدن و رها کردن ابزارک ها ، یک رابط گرافیکی برای پروژه خود بسازید. تنظیم همه چیز بسیار ساده است و در کمتر از 5 دقیقه شروع به خرابکاری می کنید. بلینک به تخته یا سپر خاصی بسته نشده است. در عوض ، سخت افزار مورد نظر شما را پشتیبانی می کند. این که آردوینو یا رزبری پای شما از طریق Wi-Fi ، اترنت یا تراشه جدید ESP8266 به اینترنت متصل باشد ، بلینک شما را آنلاین و آماده اینترنت چیزهای شما می کند.

برای کسب اطلاعات بیشتر در مورد راه اندازی Blynk: Blink Setup

مرحله 4: کد

کد
کد

// نظرات هر خط در فایل.ino زیر آمده است

#شامل #تعریف سریال BLYNK_PRINT #شامل #شامل #شامل #شامل #شامل #شامل Adafruit_BMP085 bmp؛ #تعریف I2C_SCL 12 #تعریف I2C_SDA 13 float dst، bt، bp، ba؛ char dstmp [20] ، btmp [20] ، bprs [20] ، balt [20] ؛ bool bmp085_present = true؛ char auth = "کلید تأیید خود را از برنامه Blynk در اینجا قرار دهید"؛ char ssid = "SSID فای شما"؛ char pass = "گذرواژه شما"؛ #تعریف DHTPIN 2 #تعریف DHTTYPE DHT11 DHT dht (DHTPIN ، DHTTYPE) ؛ // تعریف پین و تایمر dhttype BlynkTimer ؛ void sendSensor () {if (! bmp.begin ()) {Serial.println ("سنسور معتبر BMP085 پیدا نشد ، سیم کشی را بررسی کنید!") ؛ while (1) {}} float h = dht.readHumidity ()؛ float t = dht.readTemperature ()؛ if (isnan (h) || isnan (t)) {Serial.println ("از سنسور DHT خوانده نشد!") ؛ برگشت؛ } دو گاما = log (h / 100) + ((17.62*t) / (243.5 + t)) ؛ dp = 243.5*گاما / (17.62 گاما) ؛ float bp = bmp.readPressure ()/100؛ float ba = bmp.readAltitude ()؛ float bt = bmp.readTemperature ()؛ float dst = bmp.readSealevelPressure ()/100؛ Blynk.virtualWrite (V5 ، h) ؛ Blynk.virtualWrite (V6 ، t) ؛ Blynk.virtualWrite (V10 ، bp) ؛ Blynk.virtualWrite (V11 ، ba) ؛ Blynk.virtualWrite (V12 ، bt) ؛ Blynk.virtualWrite (V13، dst)؛ Blynk.virtualWrite (V14 ، dp) ؛ } void setup () {Serial.begin (9600)؛ Blynk.begin (author، ssid، pass)؛ dht.begin ()؛ Wire.begin (I2C_SDA ، I2C_SCL) ؛ تأخیر (10) ؛ timer.setInterval (1000L ، sendSensor) ؛ } void loop () {Blynk.run ()؛ timer.run ()؛ }

توصیه شده: