فهرست مطالب:

ایستگاه هواشناسی با استفاده از تمشک پای با BME280 در پایتون: 6 مرحله
ایستگاه هواشناسی با استفاده از تمشک پای با BME280 در پایتون: 6 مرحله

تصویری: ایستگاه هواشناسی با استفاده از تمشک پای با BME280 در پایتون: 6 مرحله

تصویری: ایستگاه هواشناسی با استفاده از تمشک پای با BME280 در پایتون: 6 مرحله
تصویری: ایستگاه فضائی و زندگی کارکنان آن را در 10 دقیقه بشناسید 2024, جولای
Anonim
Image
Image
لایحه تجهیزات ضروری
لایحه تجهیزات ضروری

is a maith a scéalaí an armancir (آب و هوا داستان نویسی خوب است)

با توجه به مسائل مربوط به گرمایش جهانی و تغییرات آب و هوا ، الگوی آب و هوایی جهانی در سراسر جهان نامنظم می شود که منجر به تعدادی از بلایای طبیعی مرتبط با آب و هوا (خشکسالی ، دمای شدید ، سیل ، طوفان و آتش سوزی می شود) ، به نظر می رسد ایستگاه هواشناسی ضروری است شر در خانه شما با استفاده از مجموعه ای از قطعات و حسگرهای ارزان قیمت ، اطلاعات زیادی در مورد لوازم الکترونیکی اولیه از پروژه ایستگاه هواشناسی می آموزید. راه اندازی آن بسیار آسان است و در کوتاه مدت نمی توانید آن را داشته باشید.

مرحله 1: قبض تجهیزات ضروری

لایحه تجهیزات ضروری
لایحه تجهیزات ضروری
لایحه تجهیزات ضروری
لایحه تجهیزات ضروری
لایحه تجهیزات ضروری
لایحه تجهیزات ضروری

1. رزبری پای

دست خود را روی برد Raspberry Pi بگذارید. Raspberry Pi یک کامپیوتر تک صفحه ای است که از لینوکس استفاده می کند. Raspberry Pi واقعاً ارزان ، کوچک و همه کاره است که از یک رایانه قابل دسترس و کاربردی برای یادگیری اصول برنامه نویسی و توسعه نرم افزار ساخته شده است.

2. I2C Shield برای رزبری پای

INPI2 (آداپتور I2C) پورت Raspberry Pi 2/3 I²C را برای استفاده در چندین دستگاه I2C فراهم می کند. در فروشگاه DCUBE موجود است.

3. سنسور رطوبت دیجیتال ، فشار و دما ، BME280

BME280 یک سنسور رطوبت ، فشار و دما است که دارای زمان پاسخ سریع و دقت کلی بالا است. ما این سنسور را از فروشگاه DCUBE خریداری کردیم.

4. کابل اتصال I2C

ما از کابل I²C موجود در اینجا فروشگاه DCUBE استفاده کردیم.

5. کابل میکرو USB

منبع تغذیه کابل میکرو USB یک انتخاب ایده آل برای تغذیه رزبری پای است.

6 دسترسی به اینترنت را از طریق آداپتور EthernetCable/WiFi تفسیر کنید

دسترسی به اینترنت را می توان از طریق کابل اترنت متصل به شبکه محلی و اینترنت فعال کرد. متناوباً ، می توانید با استفاده از دانگل بی سیم USB به شبکه بی سیم متصل شوید ، که به پیکربندی نیاز دارد.

7. کابل HDMI (کابل نمایش و اتصال)

هر مانیتور HDMI/DVI و هر تلویزیون باید به عنوان نمایشگر Pi کار کند. متناوباً ، می توانید از طریق SSH از راه دور به Pi دسترسی داشته باشید و نیازی به مانیتور (فقط کاربران پیشرفته) را نادیده بگیرید.

مرحله 2: اتصالات سخت افزاری برای مدار

اتصالات سخت افزاری برای مدار
اتصالات سخت افزاری برای مدار
اتصالات سخت افزاری برای مدار
اتصالات سخت افزاری برای مدار

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

اتصال Raspberry Pi و I2C Shield

ابتدا Raspberry Pi را بردارید و I²C Shield را روی آن قرار دهید. Shield را به آرامی فشار دهید و ما با این مرحله به آسانی پای انجام می دهیم (عکس را ببینید).

اتصال سنسور و رزبری پای

سنسور را بردارید و کابل I²C را با آن وصل کنید. مطمئن شوید خروجی I²C همیشه به ورودی I²C متصل شود. همین امر برای Raspberry Pi با محافظ I²C که روی آن پین GPIO نصب شده است باید رعایت شود. ما استفاده از کابل های I²C را توصیه می کنیم زیرا نیاز به خواندن پینت ها ، لحیم کاری و ضعف ناشی از کوچکترین لغزش را نفی می کند. به با استفاده از این کابل plug and play ساده ، می توانید تخته ها را نصب کرده ، تعویض کنید یا تخته های بیشتری را به راحتی به یک برنامه اضافه کنید.

توجه: سیم قهوه ای همیشه باید اتصال GND (GND) بین خروجی یک دستگاه و ورودی دستگاه دیگر را دنبال کند

اتصال به اینترنت کلید است

شما در اینجا دو انتخاب دارید. در هر صورت می توانید Raspberry Pi را با استفاده از کابل اترنت به شبکه وصل کنید یا از آداپتور USB به WiFi برای اتصال WIFI استفاده کنید. در هر صورت ، تا زمانی که به اینترنت متصل هستید ، تحت پوشش هستید.

فعال کردن مدار

کابل Micro USB را به پریز برق رزبری پای وصل کنید. پانچ و voila! تیم ما اطلاعات است.

اتصال به صفحه نمایش

ما می توانیم کابل HDMI را به مانیتور و یا به تلویزیون متصل کنیم. علاوه بر این ، ما می توانیم به Raspberry Pi بدون اتصال آن به مانیتور با استفاده از دسترسی از راه دور دسترسی پیدا کنیم. SSH یک ابزار مفید برای دسترسی از راه دور ایمن است. همچنین می توانید از نرم افزار PUTTY برای آن استفاده کنید. این گزینه برای کاربران پیشرفته است ، بنابراین ما در اینجا به طور مفصل به آن نمی پردازیم.

اگر نمی خواهید هزینه زیادی صرف کنید ، این یک روش اقتصادی است

مرحله 3: برنامه نویسی Raspberry Pi در پایتون

برنامه نویسی رزبری پای در پایتون
برنامه نویسی رزبری پای در پایتون

کد پایتون برای رزبری پای و سنسور BME280. در مخزن Github ما موجود است.

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

کد به وضوح در مقابل شما قرار دارد و در ساده ترین شکل است که می توانید تصور کنید و نباید مشکلی داشته باشید. هنوز هم بپرسید (حتی اگر هزار چیز می دانید ، باز هم از کسی که می داند بپرسید).

همچنین می توانید کد پایتون فعال برای این سنسور را از اینجا کپی کنید.

# توزیع شده با مجوز اراده آزاد # BME280 # این کد برای کار با ماژول کوتاه BME280_I2CS I2C موجود در ControlEverything.com طراحی شده است. #

smbus وارد کنید

زمان واردات

# اتوبوس I2C بگیرید

bus = smbus. SMBus (1)

آدرس # BME280 ، 0x76 (118)

# خواندن اطلاعات از 0x88 (136) ، 24 بایت b1 = bus.read_i2c_block_data (0x76 ، 0x88 ، 24)

# تبدیل داده ها

# ضرایب دما dig_T1 = b1 [1] * 256 + b1 [0] dig_T2 = b1 [3] * 256 + b1 [2] اگر dig_T2> 32767: dig_T2 -= 65536 dig_T3 = b1 [5] * 256 + b1 [4] اگر dig_T3> 32767: dig_T3 -= 65536

# ضرایب فشار

dig_P1 = b1 [7] * 256 + b1 [6] dig_P2 = b1 [9] * 256 + b1 [8] اگر dig_P2> 32767: dig_P2 -= 65536 dig_P3 = b1 [11] * 256 + b1 [10] اگر dig_P3 > 32767: dig_P3 -= 65536 dig_P4 = b1 [13] * 256 + b1 [12] اگر dig_P4> 32767: dig_P4 -= 65536 dig_P5 = b1 [15] * 256 + b1 [14] اگر dig_P5> 32767: dig_P5 -= 65536 dig_P6 = b1 [17] * 256 + b1 [16] اگر dig_P6> 32767: dig_P6 -= 65536 dig_P7 = b1 [19] * 256 + b1 [18] اگر dig_P7> 32767: dig_P7 -= 65536 dig_P8 = b1 [21] * 256 + b1 [20] اگر dig_P8> 32767: dig_P8 -= 65536 dig_P9 = b1 [23] * 256 + b1 [22] اگر dig_P9> 32767: dig_P9 -= 65536

آدرس # BME280 ، 0x76 (118)

# خواندن داده ها از 0xA1 (161) ، 1 بایت dig_H1 = bus.read_byte_data (0x76 ، 0xA1)

آدرس # BME280 ، 0x76 (118)

# خواندن داده ها از 0xE1 (225) ، 7 بایت b1 = bus.read_i2c_block_data (0x76 ، 0xE1 ، 7)

# تبدیل داده ها

# ضرایب رطوبت dig_H2 = b1 [1] * 256 + b1 [0] اگر dig_H2> 32767: dig_H2 -= 65536 dig_H3 = (b1 [2] & 0xFF) dig_H4 = (b1 [3] * 16) + (b1 [4] & 0xF) اگر dig_H4> 32767: dig_H4 -= 65536 dig_H5 = (b1 [4] / 16) + (b1 [5] * 16) اگر dig_H5> 32767: dig_H5 -= 65536 dig_H6 = b1 [6] اگر dig_H6> 127: dig_H6 -= 256

آدرس # BME280 ، 0x76 (118)

# ثبت رطوبت کنترل ، 0xF2 (242) # 0x01 (01) رطوبت بیش از حد = 1 گذرگاه. data_write_byte_data (0x76، 0xF2، 0x01) # آدرس BME280 ، 0x76 (118) # انتخاب ثبت اندازه گیری کنترل ، 0xF4 (244) # 0x27 (39) نرخ بیش از اندازه گیری فشار و دما = 1 # گذرگاه حالت عادی. نوشتن_بایت_ داده (0x76 ، 0xF4 ، 0x27) # آدرس BME280 ، 0x76 (118) # ثبت ثبت پیکربندی ، 0xF5 (245) # 0xA0 (00) زمان آماده به کار = 1000 میلی ثانیه اتوبوس.write_byte_data (0x76 ، 0xF5 ، 0xA0)

زمان خواب (0.5)

آدرس # BME280 ، 0x76 (118)

# خواندن داده ها از 0xF7 (247) ، 8 بایت # فشار MSB ، فشار LSB ، فشار xLSB ، دما MSB ، دما LSB # دما xLSB ، رطوبت MSB ، رطوبت LSB داده = bus.read_i2c_block_data (0x76 ، 0xF7 ، 8)

# داده های فشار و دما را به 19 بیت تبدیل کنید

adc_p = ((داده [0] * 65536) + (داده [1] * 256) + (داده [2] و 0xF0)) / 16 adc_t = ((داده [3] * 65536) + (داده [4] * 256) + (داده [5] و 0xF0)) / 16

# داده های رطوبت را تبدیل کنید

adc_h = داده [6] * 256 + داده [7]

# محاسبات جبران دما

var1 = ((adc_t) / 16384.0 - (dig_T1) / 1024.0) * (dig_T2) var2 = (((adc_t) / 131072.0 - (dig_T1) / 8192.0) * ((adc_t) /131072.0 - (dig_T1) /8192.0)) * (dig_T3) t_fine = (var1 + var2) cTemp = (var1 + var2) / 5120.0 fTemp = cTemp * 1.8 + 32

# محاسبات جبران فشار

var1 = (t_fine / 2.0) - 64000.0 var2 = var1 * var1 * (dig_P6) / 32768.0 var2 = var2 + var1 * (dig_P5) * 2.0 var2 = (var2 / 4.0) + ((dig_P4) * 65536.0) var1 = ((dig_P3) * var1 * var1 / 524288.0 + (dig_P2) * var1) / 524288.0 var1 = (1.0 + var1 / 32768.0) * (dig_P1) p = 1048576.0 - adc_p p = (p - (var2 / 4096.0)) * 6250.0 / var1 var1 = (dig_P9) * p * p / 2147483648.0 var2 = p * (dig_P8) / 32768.0 فشار = (p + (var1 + var2 + (dig_P7)) / 16.0) / 100

# محاسبه جبران رطوبت

var_H = ((t_fine) - 76800.0) var_H = (adc_h - (dig_H4 * 64.0 + dig_H5 / 16384.0 * var_H)) * (dig_H2 / 65536.0 * (1.0 + dig_H6 / 67108864.0 * var_H * (1.0 + dig_H3 / 67108864.0 *))) رطوبت = var_H * (1.0 - dig_H1 * var_H / 524288.0) اگر رطوبت> 100.0: رطوبت = 100.0 رطوبت elif <0.0: رطوبت = 0.0

# خروجی داده ها به صفحه

چاپ "دما در درجه سانتیگراد:٪.2f C"٪ cTemp print "دما در فارنهایت:٪.2f F"٪ fTemp print "فشار:٪.2f hPa"٪ چاپ فشار "رطوبت نسبی:٪.2f ٪٪"٪ رطوبت

مرحله 4: کد در حال اجرا

کد در حال اجرا
کد در حال اجرا

اکنون ، کد را بارگیری (یا git pull) کرده و در Raspberry Pi باز کنید.

دستورات کامپایل و بارگذاری کد را در ترمینال اجرا کنید و خروجی را در Display مشاهده کنید. پس از چند ثانیه ، تمام پارامترها نمایش داده می شود. پس از اطمینان از اینکه همه چیز عالی کار می کند ، می توانید موارد جالب تری را توسعه دهید.

مرحله 5: استفاده در دنیای عملی

BME280 در همه کاربردهایی که نیاز به اندازه گیری رطوبت و فشار دارند ، عملکرد بالایی دارد. این برنامه های در حال ظهور آگاهی از زمینه هستند ، به عنوان مثال. تشخیص پوست ، تشخیص تغییر اتاق ، نظارت بر وضعیت تناسب اندام ، هشدار در مورد خشکی یا دمای بالا ، اندازه گیری حجم و جریان هوا ، کنترل اتوماسیون منزل ، کنترل گرمایش ، تهویه ، تهویه مطبوع (HVAC) ، اینترنت اشیاء (IoT) ، ارتقاء GPS (به عنوان مثال بهبود زمان اولیه تا بهبود ، حساب مرده ، تشخیص شیب) ، ناوبری در محیط داخلی (تغییر تشخیص کف ، تشخیص آسانسور) ، ناوبری در فضای باز ، برنامه های تفریحی و ورزشی ، پیش بینی آب و هوا و شاخص سرعت عمودی (افزایش/غرق شدن سرعت).

مرحله 6: نتیجه گیری

امیدوارم این پروژه الهام بخش آزمایش های بیشتر باشد. ساخت یک ایستگاه هواشناسی پیچیده تر می تواند شامل سنسورهای بیشتری مانند باران سنج ، سنسور نور ، بادسنج (سرعت باد) و غیره باشد. می توانید آنها را اضافه کرده و کد را اصلاح کنید. ما یک آموزش ویدیویی در YouTube داریم که عملکرد اصلی سنسور I²C را با Rasp Pi نشان می دهد. دیدن نتایج و عملکرد ارتباطات I²C واقعاً شگفت انگیز است. آن را نیز بررسی کنید. ساختمان و یادگیری سرگرم کننده داشته باشید! لطفا نظر خود را در مورد این دستورالعمل به ما اطلاع دهید. ما دوست داریم در صورت لزوم برخی پیشرفت ها را انجام دهیم.

توصیه شده: