সুচিপত্র:

HTS221 এবং রাস্পবেরি পাই ব্যবহার করে আর্দ্রতা এবং তাপমাত্রা পরিমাপ: 4 টি ধাপ
HTS221 এবং রাস্পবেরি পাই ব্যবহার করে আর্দ্রতা এবং তাপমাত্রা পরিমাপ: 4 টি ধাপ
Anonim
Image
Image

HTS221 আপেক্ষিক আর্দ্রতা এবং তাপমাত্রার জন্য একটি অতি কম্প্যাক্ট ক্যাপাসিটিভ ডিজিটাল সেন্সর। ডিজিটাল সিরিয়াল ইন্টারফেসের মাধ্যমে পরিমাপের তথ্য প্রদানের জন্য এটি একটি সেন্সিং উপাদান এবং একটি মিশ্র সংকেত অ্যাপ্লিকেশন নির্দিষ্ট সমন্বিত সার্কিট (ASIC) অন্তর্ভুক্ত করে। এতগুলি বৈশিষ্ট্যগুলির সাথে একীভূত এটি সমালোচনামূলক আর্দ্রতা এবং তাপমাত্রা পরিমাপের জন্য সবচেয়ে উপযুক্ত সেন্সরগুলির মধ্যে একটি।

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

পদক্ষেপ 1: হার্ডওয়্যার প্রয়োজন:

হার্ডওয়্যার প্রয়োজন
হার্ডওয়্যার প্রয়োজন
হার্ডওয়্যার প্রয়োজন
হার্ডওয়্যার প্রয়োজন
হার্ডওয়্যার প্রয়োজন
হার্ডওয়্যার প্রয়োজন

আমাদের লক্ষ্য পূরণের জন্য আমাদের যে উপকরণগুলির প্রয়োজন তা নিম্নলিখিত হার্ডওয়্যার উপাদানগুলি অন্তর্ভুক্ত করে:

1. HTS221

2. রাস্পবেরি পাই

3. I2C কেবল

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

5. ইথারনেট কেবল

পদক্ষেপ 2: হার্ডওয়্যার সংযুক্তি:

হার্ডওয়্যার সংযুক্তি
হার্ডওয়্যার সংযুক্তি
হার্ডওয়্যার সংযুক্তি
হার্ডওয়্যার সংযুক্তি

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

HTS221 I2C এর উপর কাজ করবে। সেন্সরের প্রতিটি ইন্টারফেসকে কিভাবে ওয়্যার আপ করতে হয় তা দেখানো হচ্ছে ওয়্যারিং ডায়াগ্রামের উদাহরণ।

বাক্সের বাইরে, বোর্ডটি একটি I2C ইন্টারফেসের জন্য কনফিগার করা হয়েছে, যেমন আপনি অন্যথায় অজ্ঞেয়বাদী হলে আমরা এই হুকআপটি ব্যবহার করার পরামর্শ দিই।

আপনার প্রয়োজন শুধু চারটি তারের! VCC, Gnd, SCL এবং SDA পিনের জন্য মাত্র চারটি সংযোগ প্রয়োজন এবং এগুলি I2C তারের সাহায্যে সংযুক্ত।

এই সংযোগগুলি উপরের ছবিতে প্রদর্শিত হয়েছে।

ধাপ 3: আর্দ্রতা এবং তাপমাত্রা পরিমাপের জন্য কোড:

আর্দ্রতা এবং তাপমাত্রা পরিমাপের জন্য কোড
আর্দ্রতা এবং তাপমাত্রা পরিমাপের জন্য কোড

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

পাশাপাশি ব্যবহারকারীদের স্বাচ্ছন্দ্যের জন্য, আমরা এখানে কোডটি ব্যাখ্যা করছি:

কোডিংয়ের প্রথম ধাপ হিসাবে আপনাকে পাইথনের ক্ষেত্রে smbus লাইব্রেরি ডাউনলোড করতে হবে, কারণ এই লাইব্রেরি কোডে ব্যবহৃত ফাংশনগুলিকে সমর্থন করে। সুতরাং, লাইব্রেরি ডাউনলোড করতে আপনি নিম্নলিখিত লিঙ্কটি দেখতে পারেন:

pypi.python.org/pypi/smbus-cffi/0.5.1

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

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

আমদানির সময়

# I2C বাস নিন

বাস = smbus. SMBus (1)

# HTS221 ঠিকানা, 0x5F (95)

# গড় কনফিগারেশন রেজিস্টার নির্বাচন করুন, 0x10 (16)

# 0x1B (27) তাপমাত্রার গড় নমুনা = 256, আর্দ্রতার গড় নমুনা = 512

bus.write_byte_data (0x5F, 0x10, 0x1B)

# HTS221 ঠিকানা, 0x5F (95)

# নিয়ন্ত্রণ রেজিস্টার 1, 0x20 (32) নির্বাচন করুন

# 0x85 (133) পাওয়ার অন, ক্রমাগত আপডেট, ডেটা আউটপুট রেট = 1 Hz

bus.write_byte_data (0x5F, 0x20, 0x85)

সময় ঘুম (0.5)

# HTS221 ঠিকানা, 0x5F (95)

# ডিভাইসের অ-উদ্বায়ী মেমরি থেকে ক্রমাঙ্কন মান পড়ুন

# আর্দ্রতা ক্রমাঙ্কন মান

# 0x30 (48), 1 বাইট থেকে ফিরে তথ্য পড়ুন

val = bus.read_byte_data (0x5F, 0x30)

H0 = val / 2

# 0x31 (49), 1 বাইট থেকে ফিরে তথ্য পড়ুন

val = bus.read_byte_data (0x5F, 0x31)

H1 = val /2

# 0x36 (54), 2 বাইট থেকে ফিরে তথ্য পড়ুন

val0 = bus.read_byte_data (0x5F, 0x36)

val1 = bus.read_byte_data (0x5F, 0x37)

H2 = ((val1 এবং 0xFF) * 256) + (val0 এবং 0xFF)

# 0x3A (58), 2 বাইট থেকে ফিরে তথ্য পড়ুন

val0 = bus.read_byte_data (0x5F, 0x3A)

val1 = bus.read_byte_data (0x5F, 0x3B)

H3 = ((val1 এবং 0xFF) * 256) + (val0 এবং 0xFF)

# তাপমাত্রা ক্রমাঙ্কন মান

# 0x32 (50), 1 বাইট থেকে ফিরে তথ্য পড়ুন

T0 = bus.read_byte_data (0x5F, 0x32)

T0 = (T0 এবং 0xFF)

# 0x32 (51), 1 বাইট থেকে ফিরে তথ্য পড়ুন

T1 = bus.read_byte_data (0x5F, 0x33)

T1 = (T1 এবং 0xFF)

# 0x35 (53), 1 বাইট থেকে ফিরে তথ্য পড়ুন

কাঁচা = bus.read_byte_data (0x5F, 0x35)

কাঁচা = (কাঁচা এবং 0x0F)

# তাপমাত্রা ক্রমাঙ্কন মানকে 10-বিটে রূপান্তর করুন

T0 = ((কাঁচা এবং 0x03) * 256) + T0

T1 = ((কাঁচা এবং 0x0C) * 64) + T1

# 0x3C (60), 2 বাইট থেকে ফিরে তথ্য পড়ুন

val0 = bus.read_byte_data (0x5F, 0x3C)

val1 = bus.read_byte_data (0x5F, 0x3D)

T2 = ((val1 এবং 0xFF) * 256) + (val0 এবং 0xFF)

# 0x3E (62), 2 বাইট থেকে ফিরে তথ্য পড়ুন

val0 = bus.read_byte_data (0x5F, 0x3E)

val1 = bus.read_byte_data (0x5F, 0x3F)

T3 = ((val1 এবং 0xFF) * 256) + (val0 এবং 0xFF)

# 0x28 (40) থেকে কমান্ড রেজিস্টার 0x80 (128), 4 বাইটের সাথে ডেটা পড়ুন

# আর্দ্রতা msb, আর্দ্রতা lsb, temp msb, temp lsb

data = bus.read_i2c_block_data (0x5F, 0x28 | 0x80, 4)

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

আর্দ্রতা = (ডেটা [1] * 256) + ডেটা [0]

আর্দ্রতা = ((1.0 * H1) - (1.0 * H0)) * (1.0 * আর্দ্রতা - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0)

temp = (data [3] * 256) + data [2]

যদি টেম্প> 32767:

টেম্প -= 65536

cTemp = ((T1 - T0) / 8.0) * (temp - T2) / (T3 - T2) + (T0 / 8.0)

fTemp = (cTemp * 1.8) + 32

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

"আপেক্ষিক আর্দ্রতা: %.2f %%" %আর্দ্রতা মুদ্রণ করুন

"সেলসিয়াস তাপমাত্রা: %.2f C" %cTemp মুদ্রণ করুন

"ফারেনহাইটে তাপমাত্রা: %.2f F" %fTemp মুদ্রণ করুন

নীচে উল্লিখিত কোডের অংশে পাইথন কোডগুলির সঠিক সম্পাদনের জন্য প্রয়োজনীয় লাইব্রেরি অন্তর্ভুক্ত রয়েছে।

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

আমদানির সময়

কমান্ড প্রম্পটে নিচের উল্লিখিত কমান্ডটি টাইপ করে কোডটি কার্যকর করা যেতে পারে।

$> পাইথন HTS221.py

ব্যবহারকারীর রেফারেন্সের জন্য উপরের ছবিতে সেন্সরের আউটপুটও দেখানো হয়েছে।

ধাপ 4: অ্যাপ্লিকেশন:

অ্যাপ্লিকেশন
অ্যাপ্লিকেশন

HTS221 বিভিন্ন ভোক্তা পণ্য যেমন এয়ার হিউমিডিফায়ার এবং রেফ্রিজারেটর ইত্যাদিতে নিযুক্ত করা যেতে পারে।

প্রস্তাবিত: