সুচিপত্র:

পাইথনে BME280 সহ রাস্পবেরি পাই ব্যবহার করে আবহাওয়া কেন্দ্র: 6 টি ধাপ
পাইথনে BME280 সহ রাস্পবেরি পাই ব্যবহার করে আবহাওয়া কেন্দ্র: 6 টি ধাপ

ভিডিও: পাইথনে BME280 সহ রাস্পবেরি পাই ব্যবহার করে আবহাওয়া কেন্দ্র: 6 টি ধাপ

ভিডিও: পাইথনে BME280 সহ রাস্পবেরি পাই ব্যবহার করে আবহাওয়া কেন্দ্র: 6 টি ধাপ
ভিডিও: Micropython esp32 with oled & bme280 2024, জুলাই
Anonim
Image
Image
অপরিহার্য যন্ত্রপাতি বিল
অপরিহার্য যন্ত্রপাতি বিল

ম্যাথ একটি স্কালí একটি লক্ষ্য (আবহাওয়া একটি ভাল গল্পকার)

বৈশ্বিক উষ্ণতা এবং জলবায়ু পরিবর্তনের সমস্যাগুলির সাথে, বিশ্বব্যাপী আবহাওয়া প্যাটার্ন আমাদের বিশ্বজুড়ে অনিয়মিত হয়ে উঠছে যার ফলে আবহাওয়া-সংক্রান্ত প্রাকৃতিক দুর্যোগ (খরা, চরম তাপমাত্রা, বন্যা, ঝড় এবং দাবানল) দেখা দেয়, একটি আবহাওয়া স্টেশন একটি প্রয়োজনীয় বলে মনে হয় বাড়িতে মন্দ। আপনি একটি সস্তা যন্ত্রাংশ এবং সেন্সর ব্যবহার করে একটি আবহাওয়া স্টেশন প্রকল্প থেকে মৌলিক ইলেকট্রনিক্স সম্পর্কে অনেক কিছু শিখেন। এটি সেট আপ করা বেশ সহজ এবং অল্প সময়ের মধ্যে আপনি এটি পেতে পারেন।

ধাপ 1: প্রয়োজনীয় যন্ত্রপাতি বিল

অপরিহার্য যন্ত্রপাতি বিল
অপরিহার্য যন্ত্রপাতি বিল
অপরিহার্য যন্ত্রপাতি বিল
অপরিহার্য যন্ত্রপাতি বিল
অপরিহার্য যন্ত্রপাতি বিল
অপরিহার্য যন্ত্রপাতি বিল

1. একটি রাস্পবেরি পাই

একটি রাস্পবেরি পাই বোর্ডে আপনার হাত পান। রাস্পবেরি পাই একটি লিনাক্স চালিত একক বোর্ড কম্পিউটার। রাস্পবেরি পাই সত্যিই সস্তা, ক্ষুদ্র এবং বহুমুখী একটি সহজলভ্য এবং কার্যকরী কম্পিউটার যা শিক্ষার্থীদের প্রোগ্রামিং এবং সফটওয়্যার ডেভেলপমেন্টের মূল বিষয়গুলি অনুশীলন করে।

2. রাস্পবেরি পাই এর জন্য I2C শিল্ড

INPI2 (I2C অ্যাডাপ্টার) একাধিক I2C ডিভাইসের ব্যবহারের জন্য রাস্পবেরি পাই 2/3 একটি I²C পোর্ট প্রদান করে। এটি DCUBE স্টোরে পাওয়া যায়।

3. ডিজিটাল আর্দ্রতা, চাপ এবং তাপমাত্রা সেন্সর, BME280

BME280 একটি আর্দ্রতা, চাপ এবং তাপমাত্রা সেন্সর যার দ্রুত প্রতিক্রিয়া সময় এবং উচ্চ সামগ্রিক নির্ভুলতা রয়েছে। আমরা DCUBE স্টোর থেকে এই সেন্সরটি কিনেছি।

4. I2C কানেক্টিং কেবল

আমরা এখানে DCUBE স্টোর পাওয়া I²C কেবল ব্যবহার করেছি।

5. মাইক্রো ইউএসবি কেবল

মাইক্রো ইউএসবি কেবল পাওয়ার সাপ্লাই রাস্পবেরি পাই পাওয়ার জন্য একটি আদর্শ পছন্দ।

6। ইথারনেটকেবল/ওয়াইফাই অ্যাডাপ্টারের মাধ্যমে ইন্টারনেট অ্যাক্সেস ব্যাখ্যা করুন

স্থানীয় নেটওয়ার্ক এবং ইন্টারনেটের সাথে সংযুক্ত ইথারনেট ক্যাবলের মাধ্যমে ইন্টারনেট অ্যাক্সেস সক্ষম করা যেতে পারে। বিকল্পভাবে, আপনি একটি USB ওয়্যারলেস ডংগল ব্যবহার করে একটি বেতার নেটওয়ার্কের সাথে সংযোগ করতে পারেন, যার জন্য কনফিগারেশনের প্রয়োজন হবে।

7. HDMI কেবল (ডিসপ্লে এবং কানেক্টিভিটি ক্যাবল)

যেকোন HDMI/DVI মনিটর এবং যেকোনো টিভি Pi- এর ডিসপ্লে হিসেবে কাজ করা উচিত। বিকল্পভাবে, আপনি SSH এর মাধ্যমে Pi দূরবর্তী অ্যাক্সেস করতে পারেন একটি মনিটরের প্রয়োজনকে অগ্রাহ্য করে (শুধুমাত্র উন্নত ব্যবহারকারীরা)।

ধাপ 2: সার্কিটের জন্য হার্ডওয়্যার সংযোগ

সার্কিটের জন্য হার্ডওয়্যার সংযোগ
সার্কিটের জন্য হার্ডওয়্যার সংযোগ
সার্কিটের জন্য হার্ডওয়্যার সংযোগ
সার্কিটের জন্য হার্ডওয়্যার সংযোগ

দেখানো পরিকল্পিত অনুযায়ী সার্কিট তৈরি করুন সাধারণভাবে, সংযোগগুলি খুব সহজ। শান্ত থাকুন এবং উপরের নির্দেশাবলী এবং চিত্রগুলি অনুসরণ করুন, এবং আপনার কোনও সমস্যা হওয়া উচিত নয়। শেখার সময়, আমরা হার্ডওয়্যার এবং সফ্টওয়্যার জ্ঞানের বিষয়ে ইলেকট্রনিক্সের মূল বিষয়গুলি ভালভাবে পেয়েছিলাম। আমরা এই প্রকল্পের জন্য একটি সাধারণ ইলেকট্রনিক্স স্কিম্যাটিক তৈরি করতে চেয়েছিলাম। ইলেকট্রনিক স্কিম্যাটিকস ব্লুপ্রিন্টের মত। একটি ব্লুপ্রিন্ট তৈরি করুন এবং নকশাটি সাবধানে অনুসরণ করুন। ইলেকট্রনিক্সের কিছু প্রাথমিক ধারণা এখানে কাজে লাগতে পারে!

রাস্পবেরি পাই এবং আই 2 সি শিল্ডের সংযোগ

প্রথমে রাস্পবেরি পাই নিন এবং তার উপর I²C শিল্ড রাখুন। আলতো করে শিল্ড টিপুন এবং আমরা এই পদক্ষেপটি পাইয়ের মতো সহজভাবে সম্পন্ন করেছি (ছবিটি দেখুন)।

সেন্সর এবং রাস্পবেরি পাই এর সংযোগ

সেন্সর নিন এবং এর সাথে I²C তারের সংযোগ করুন। নিশ্চিত করুন যে I²C আউটপুট সর্বদা I²C ইনপুটের সাথে সংযুক্ত। রাস্পবেরি পাই এর জন্য অনুসরণ করতে হবে I²C ieldাল এর উপরে GPIO পিন লাগানো। আমরা I²C কেবল ব্যবহার করার সুপারিশ করি কারণ এটি পিনআউট, সোল্ডারিং, এবং সামান্যতম স্লিপ-আপের কারণে সৃষ্ট অস্থিরতাকে অস্বীকার করে । এই সহজ প্লাগ এবং প্লে তারের সাহায্যে, আপনি ইনস্টল করতে পারেন, বোর্ডগুলি অদলবদল করতে পারেন, অথবা সহজেই একটি অ্যাপ্লিকেশনে আরও বোর্ড যুক্ত করতে পারেন।

দ্রষ্টব্য: বাদামী তারের সর্বদা একটি ডিভাইসের আউটপুট এবং অন্য ডিভাইসের ইনপুটের মধ্যে গ্রাউন্ড (GND) সংযোগ অনুসরণ করা উচিত।

ইন্টারনেট সংযোগ গুরুত্বপূর্ণ

আপনার এখানে দুটি পছন্দ আছে। হয় আপনি ইথারনেট কেবল ব্যবহার করে রাস্পবেরি পাইকে নেটওয়ার্কে সংযুক্ত করতে পারেন অথবা ওয়াইফাই সংযোগের জন্য ইউএসবি থেকে ওয়াইফাই অ্যাডাপ্টার ব্যবহার করতে পারেন। যেভাবেই হোক, যতক্ষণ এটি ইন্টারনেটের সাথে সংযুক্ত থাকে ততক্ষণ আপনি আচ্ছাদিত।

সার্কিটকে শক্তিশালী করা

রাস্পবেরি পাই এর পাওয়ার জ্যাকের মধ্যে মাইক্রো ইউএসবি কেবল প্লাগ করুন। পাঞ্চ আপ এবং ভয়েলা! আমাদের স্কোয়াড হল তথ্য।

স্ক্রিনের সাথে সংযোগ

আমরা হয় HDMI তারের একটি মনিটর বা টিভিতে সংযুক্ত থাকতে পারি। উপরন্তু, আমরা দূরবর্তী অ্যাক্সেস ব্যবহার করে মনিটরের সাথে সংযুক্ত না করে রাস্পবেরি পাই অ্যাক্সেস করতে পারি। SSH নিরাপদ দূরবর্তী অ্যাক্সেসের জন্য একটি সহজ হাতিয়ার। আপনি এর জন্য PUTTY সফটওয়্যারটিও ব্যবহার করতে পারেন। এই বিকল্পটি উন্নত ব্যবহারকারীদের জন্য তাই আমরা এখানে বিস্তারিতভাবে তা কভার করব না।

যদি আপনি বেশি খরচ করতে না চান তবে এটি একটি অর্থনৈতিক পদ্ধতি।

ধাপ 3: পাইথনে রাস্পবেরি পাই প্রোগ্রামিং

পাইথনে রাস্পবেরি পাই প্রোগ্রামিং
পাইথনে রাস্পবেরি পাই প্রোগ্রামিং

রাস্পবেরি পাই এবং BME280 সেন্সরের জন্য পাইথন কোড। এটা আমাদের Github সংগ্রহস্থলে পাওয়া যায়।

কোডে যাওয়ার আগে, নিশ্চিত করুন যে আপনি রিডমি ফাইলে দেওয়া নির্দেশাবলী পড়েছেন এবং সে অনুযায়ী আপনার রাস্পবেরি পাই সেটআপ করুন। আবহাওয়ার পূর্বাভাসের জন্য তথ্য সরবরাহ এবং আবহাওয়া এবং জলবায়ু অধ্যয়ন করার জন্য বায়ুমণ্ডলীয় অবস্থা পরিমাপের জন্য যন্ত্র এবং সরঞ্জাম সহ একটি আবহাওয়া স্টেশন হল একটি স্থল বা সমুদ্রের উপর একটি সুবিধা।

কোডটি স্পষ্টভাবে আপনার সামনে এবং এটি সবচেয়ে সহজ আকারে যা আপনি কল্পনা করতে পারেন এবং আপনার কোনও সমস্যা হওয়া উচিত নয়। তবুও জিজ্ঞাসা করুন যে কোন (এমনকি যদি আপনি হাজার জিনিস জানেন, তবুও এমন কাউকে জিজ্ঞাসা করুন যিনি জানেন)।

আপনি এই সেন্সরের জন্য এখানে কাজ করা পাইথন কোডটি অনুলিপি করতে পারেন।

# একটি স্বাধীন ইচ্ছার লাইসেন্স দিয়ে বিতরণ করা।# এটি যে কোন উপায়ে ব্যবহার করুন, লাভ বা বিনামূল্যে, যদি এটি তার সংশ্লিষ্ট কাজের লাইসেন্সের সাথে খাপ খায়। # BME280 # এই কোডটি BME280_I2CS I2C মিনি মডিউলের সাথে কাজ করার জন্য ডিজাইন করা হয়েছে ControlEverything.com থেকে উপলব্ধ। #

এসএমবিএস আমদানি করুন

আমদানির সময়

# I2C বাস নিন

বাস = 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] if dig_H6> 127: dig_H6 -= 256

# BME280 ঠিকানা, 0x76 (118)

# নিয়ন্ত্রণ আর্দ্রতা রেজিস্টার নির্বাচন করুন, 0xF2 (242) # 0x01 (01) আর্দ্রতা ওভারস্যাম্পলিং = 1 bus.write_byte_data (0x76, 0xF2, 0x01) # BME280 ঠিকানা, 0x76 (118) # নিয়ন্ত্রণ পরিমাপ রেজিস্টার নির্বাচন করুন, 0xF4 (244) # 0x27 (39) চাপ এবং তাপমাত্রা ওভারস্যাম্পলিং হার = 1 # সাধারণ মোড bus.write_byte_data (0x76, 0xF4, 0x27) # BME280 ঠিকানা, 0x76 (118) # কনফিগারেশন রেজিস্টার নির্বাচন করুন, 0xF5 (245) # 0xA0 (00) স্ট্যান্ডবাই টাইম = 1000 ms বাস.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 = ((data [0] * 65536) + (data [1] * 256) + (data [2] & 0xF0)) / 16 adc_t = ((data [3] * 65536) + (data [4] * 256) + (ডেটা [5] এবং 0xF0)) / 16

# আর্দ্রতা ডেটা রূপান্তর করুন

adc_h = data [6] * 256 + data [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 / 671088.0))) আর্দ্রতা = var_H * (1.0 - dig_H1 * var_H / 524288.0) যদি আর্দ্রতা> 100.0: আর্দ্রতা = 100.0 এলিফ আর্দ্রতা <0.0: আর্দ্রতা = 0.0

# স্ক্রিনে আউটপুট ডেটা

মুদ্রণ "সেলসিয়াস তাপমাত্রা: %.2f C" %cTemp মুদ্রণ "ফারেনহাইটে তাপমাত্রা: %.2f F" %fTemp মুদ্রণ "চাপ: %.2f hPa" %চাপ প্রিন্ট "আপেক্ষিক আর্দ্রতা: %.2f %%" %আর্দ্রতা

ধাপ 4: রানিং কোড

রানিং কোড
রানিং কোড

এখন, কোডটি ডাউনলোড করুন (বা গিট পুল) এবং এটি রাস্পবেরি পাইতে খুলুন।

টার্মিনালে কোড কম্পাইল এবং আপলোড করার জন্য কমান্ড চালান এবং ডিসপ্লেতে আউটপুট দেখুন। কয়েক সেকেন্ড পরে, এটি সমস্ত পরামিতি প্রদর্শন করবে। সবকিছু দুর্দান্ত কাজ করে তা নিশ্চিত করার পরে, আপনি আরও কিছু আকর্ষণীয় বিকাশ করতে পারেন।

ধাপ 5: ব্যবহারিক বিশ্বে ব্যবহার

BME280 আর্দ্রতা এবং চাপ পরিমাপের জন্য প্রয়োজনীয় সমস্ত অ্যাপ্লিকেশনে উচ্চ কার্যকারিতা অর্জন করে। এই উদীয়মান অ্যাপ্লিকেশনগুলি প্রসঙ্গ সচেতনতা, যেমন স্কিন ডিটেকশন, রুম চেঞ্জ ডিটেকশন, ফিটনেস মনিটরিং / সুস্থতা, শুষ্কতা বা উচ্চ তাপমাত্রার ব্যাপারে সতর্কতা, ভলিউম এবং এয়ার ফ্লো পরিমাপ, হোম অটোমেশন কন্ট্রোল, কন্ট্রোল হিটিং, ভেন্টিলেশন, এয়ার কন্ডিশনিং (এইচভিএসি), ইন্টারনেট অব থিংস (আইওটি), জিপিএস বর্ধন (যেমন সময়-থেকে-প্রথম সংশোধন, মৃত হিসাব, opeাল সনাক্তকরণ), অভ্যন্তরীণ নেভিগেশন (মেঝে সনাক্তকরণ, লিফট সনাক্তকরণ), বহিরঙ্গন নেভিগেশন, অবসর ও ক্রীড়া অ্যাপ্লিকেশন, আবহাওয়ার পূর্বাভাস এবং উল্লম্ব বেগ নির্দেশ (রাইজ/সিঙ্ক) গতি).

ধাপ 6: উপসংহার

আশা করি এই প্রকল্পটি আরও পরীক্ষা -নিরীক্ষায় অনুপ্রাণিত করবে। আরো পরিশীলিত আবহাওয়া স্টেশন তৈরিতে আরো কিছু সেন্সর যেমন রেইন গেজ, লাইট সেন্সর, অ্যানিমোমিটার (বাতাসের গতি) ইত্যাদি যুক্ত হতে পারে। আপনি সেগুলো যোগ করতে পারেন এবং কোড সংশোধন করতে পারেন। আমাদের ইউটিউবে একটি ভিডিও টিউটোরিয়াল রয়েছে যার মধ্যে রাস্প পাই সহ I²C সেন্সরের মৌলিক কার্যকারিতা রয়েছে। I²C যোগাযোগের ফলাফল এবং কাজ দেখে সত্যিই আশ্চর্যজনক। এটাও চেক করুন মজা বিল্ডিং এবং শেখার আছে! আপনি এই নির্দেশযোগ্য সম্পর্কে কি মনে করেন দয়া করে আমাদের জানান। প্রয়োজনে আমরা কিছু উন্নতি করতে চাই।

প্রস্তাবিত: