সুচিপত্র:
- পদক্ষেপ 1: হার্ডওয়্যার প্রয়োজন:
- পদক্ষেপ 2: হার্ডওয়্যার সংযুক্তি:
- ধাপ 3: আর্দ্রতা এবং তাপমাত্রা পরিমাপের জন্য কোড:
- ধাপ 4: অ্যাপ্লিকেশন:
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:00
HTS221 আপেক্ষিক আর্দ্রতা এবং তাপমাত্রার জন্য একটি অতি কম্প্যাক্ট ক্যাপাসিটিভ ডিজিটাল সেন্সর। ডিজিটাল সিরিয়াল ইন্টারফেসের মাধ্যমে পরিমাপের তথ্য প্রদানের জন্য এটি একটি সেন্সিং উপাদান এবং একটি মিশ্র সংকেত অ্যাপ্লিকেশন নির্দিষ্ট সমন্বিত সার্কিট (ASIC) অন্তর্ভুক্ত করে। এতগুলি বৈশিষ্ট্যগুলির সাথে একীভূত এটি সমালোচনামূলক আর্দ্রতা এবং তাপমাত্রা পরিমাপের জন্য সবচেয়ে উপযুক্ত সেন্সরগুলির মধ্যে একটি।
এই টিউটোরিয়ালে কণা ফোটনের সাথে HTS221 সেন্সর মডিউলের ইন্টারফেসিং চিত্রিত করা হয়েছে। আর্দ্রতা এবং তাপমাত্রার মান পড়ার জন্য, আমরা একটি I2c অ্যাডাপ্টারের সাথে কণা ব্যবহার করেছি এই I2C অ্যাডাপ্টার সেন্সর মডিউলের সাথে সংযোগ সহজ এবং আরো নির্ভরযোগ্য করে তোলে।
পদক্ষেপ 1: হার্ডওয়্যার প্রয়োজন:
আমাদের লক্ষ্য পূরণের জন্য আমাদের যে উপকরণগুলির প্রয়োজন তা নিম্নলিখিত হার্ডওয়্যার উপাদানগুলি অন্তর্ভুক্ত করে:
1. HTS221
2. কণা ফোটন
3. I2C কেবল
4. কণা ফোটনের জন্য I2C শিল্ড
পদক্ষেপ 2: হার্ডওয়্যার সংযুক্তি:
হার্ডওয়্যার হুকআপ বিভাগটি মূলত সেন্সর এবং কণা ফোটনের মধ্যে প্রয়োজনীয় তারের সংযোগ ব্যাখ্যা করে। কাঙ্ক্ষিত আউটপুটের জন্য যে কোনো সিস্টেমে কাজ করার সময় সঠিক সংযোগ নিশ্চিত করা মৌলিক প্রয়োজনীয়তা। সুতরাং, প্রয়োজনীয় সংযোগগুলি নিম্নরূপ:
HTS221 I2C এর উপর কাজ করবে। সেন্সরের প্রতিটি ইন্টারফেসকে কিভাবে ওয়্যার আপ করতে হয় তা দেখানো হচ্ছে ওয়্যারিং ডায়াগ্রামের উদাহরণ।
বাক্সের বাইরে, বোর্ডটি একটি I2C ইন্টারফেসের জন্য কনফিগার করা হয়েছে, যেমন আপনি অন্যথায় অজ্ঞেয়বাদী হলে আমরা এই হুকআপটি ব্যবহার করার পরামর্শ দিই।
আপনার প্রয়োজন শুধু চারটি তারের! VCC, Gnd, SCL এবং SDA পিনের জন্য মাত্র চারটি সংযোগ প্রয়োজন এবং এগুলি I2C তারের সাহায্যে সংযুক্ত।
এই সংযোগগুলি উপরের ছবিতে প্রদর্শিত হয়েছে।
ধাপ 3: আর্দ্রতা এবং তাপমাত্রা পরিমাপের জন্য কোড:
এখন কণা কোড দিয়ে শুরু করা যাক।
কণার সাথে সেন্সর মডিউল ব্যবহার করার সময়, আমরা application.h এবং spark_wiring_i2c.h লাইব্রেরি অন্তর্ভুক্ত করি। "application.h" এবং spark_wiring_i2c.h লাইব্রেরিতে ফাংশন রয়েছে যা সেন্সর এবং কণার মধ্যে i2c যোগাযোগ সহজ করে।
ব্যবহারকারীর সুবিধার জন্য সম্পূর্ণ কণা কোড নিচে দেওয়া হল:
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
// HTS221 I2C ঠিকানা হল 0x5F
#সংযোজনকারী 0x5F
দ্বিগুণ আর্দ্রতা = 0.0;
ডবল cTemp = 0.0;
ডবল fTemp = 0.0;
int temp = 0;
অকার্যকর সেটআপ()
{
// পরিবর্তনশীল সেট করুন
Particle.variable ("i2cdevice", "HTS221");
Particle.variable ("আর্দ্রতা", আর্দ্রতা);
Particle.variable ("cTemp", cTemp);
// মাস্টার হিসাবে I2C যোগাযোগ শুরু করুন
Wire.begin ();
// সিরিয়াল যোগাযোগ শুরু করুন, বড রেট = 9600 সেট করুন
Serial.begin (9600);
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// গড় কনফিগারেশন রেজিস্টার নির্বাচন করুন
Wire.write (0x10);
// তাপমাত্রার গড় নমুনা = 256, আর্দ্রতার গড় নমুনা = 512
Wire.write (0x1B);
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// নিয়ন্ত্রণ নিবন্ধন 1 নির্বাচন করুন
Wire.write (0x20);
// পাওয়ার অন, ক্রমাগত আপডেট, ডেটা আউটপুট হার = 1 Hz
Wire.write (0x85);
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
বিলম্ব (300);
}
অকার্যকর লুপ ()
{
স্বাক্ষরবিহীন int ডেটা [2];
স্বাক্ষরবিহীন int val [4];
স্বাক্ষরবিহীন int H0, H1, H2, H3, T0, T1, T2, T3, কাঁচা;
// আর্দ্রতা calliberation মান
জন্য (int i = 0; i <2; i ++)
{
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// ডেটা রেজিস্টার পাঠান
Wire.write ((48 + i));
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
// 1 বাইট ডেটা অনুরোধ করুন
Wire.requestFrom (Addr, 1);
// 1 বাইট ডেটা পড়ুন
যদি (Wire.available () == 1)
{
ডেটা = ওয়্যার.রেড ();
}
}
// আর্দ্রতা ডেটা রূপান্তর করুন
H0 = ডেটা [0] / 2;
H1 = ডেটা [1] / 2;
জন্য (int i = 0; i <2; i ++)
{
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// ডেটা রেজিস্টার পাঠান
Wire.write ((54 + i));
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
// 1 বাইট ডেটা অনুরোধ করুন
Wire.requestFrom (Addr, 1);
// 1 বাইট ডেটা পড়ুন
যদি (Wire.available () == 1)
{
ডেটা = ওয়্যার.রেড ();
}
}
// আর্দ্রতা ডেটা রূপান্তর করুন
H2 = (data [1] * 256.0) + data [0];
জন্য (int i = 0; i <2; i ++)
{
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// ডেটা রেজিস্টার পাঠান
Wire.write ((58 + i));
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
// 1 বাইট ডেটা অনুরোধ করুন
Wire.requestFrom (Addr, 1);
// 1 বাইট ডেটা পড়ুন
যদি (Wire.available () == 1)
{
ডেটা = ওয়্যার.রেড ();
}
}
// আর্দ্রতা ডেটা রূপান্তর করুন
H3 = (data [1] * 256.0) + data [0];
// তাপমাত্রা calliberation মান
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// ডেটা রেজিস্টার পাঠান
Wire.write (0x32);
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
// 1 বাইট ডেটা অনুরোধ করুন
Wire.requestFrom (Addr, 1);
// 1 বাইট ডেটা পড়ুন
যদি (Wire.available () == 1)
{
T0 = Wire.read ();
}
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// ডেটা রেজিস্টার পাঠান
Wire.write (0x33);
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
// 1 বাইট ডেটা অনুরোধ করুন
Wire.requestFrom (Addr, 1);
// 1 বাইট ডেটা পড়ুন
যদি (Wire.available () == 1)
{
T1 = Wire.read ();
}
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// ডেটা রেজিস্টার পাঠান
Wire.write (0x35);
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
// 1 বাইট ডেটা অনুরোধ করুন
Wire.requestFrom (Addr, 1);
// 1 বাইট ডেটা পড়ুন
যদি (Wire.available () == 1)
{
কাঁচা = Wire.read ();
}
কাঁচা = কাঁচা এবং 0x0F;
// তাপমাত্রা কলিবেরেশন মানগুলিকে 10-বিটে রূপান্তর করুন
T0 = ((কাঁচা এবং 0x03) * 256) + T0;
T1 = ((কাঁচা এবং 0x0C) * 64) + T1;
জন্য (int i = 0; i <2; i ++)
{
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// ডেটা রেজিস্টার পাঠান
Wire.write ((60 + i));
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
// 1 বাইট ডেটা অনুরোধ করুন
Wire.requestFrom (Addr, 1);
// 1 বাইট ডেটা পড়ুন
যদি (Wire.available () == 1)
{
ডেটা = ওয়্যার.রেড ();
}
}
// তথ্য রূপান্তর
T2 = (data [1] * 256.0) + data [0];
জন্য (int i = 0; i <2; i ++)
{
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// ডেটা রেজিস্টার পাঠান
Wire.write ((62 + i));
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
// 1 বাইট ডেটা অনুরোধ করুন
Wire.requestFrom (Addr, 1);
// 1 বাইট ডেটা পড়ুন
যদি (Wire.available () == 1)
{
ডেটা = ওয়্যার.রেড ();
}
}
// তথ্য রূপান্তর
T3 = (data [1] * 256.0) + data [0];
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// ডেটা রেজিস্টার পাঠান
Wire.write (0x28 | 0x80);
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
// 4 বাইট ডেটার অনুরোধ করুন
Wire.requestFrom (Addr, 4);
// 4 বাইট ডেটা পড়ুন
// আর্দ্রতা msb, আর্দ্রতা lsb, temp msb, temp lsb
যদি (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// তথ্য রূপান্তর
আর্দ্রতা = (val [1] * 256.0) + val [0];
আর্দ্রতা = ((1.0 * H1) - (1.0 * H0)) * (1.0 * আর্দ্রতা - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);
temp = (val [3] * 256) + val [2]; cTemp = (((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
fTemp = (cTemp * 1.8) + 32;
// ড্যাশবোর্ডে আউটপুট ডেটা
Particle.publish ("আপেক্ষিক আর্দ্রতা:", স্ট্রিং (আর্দ্রতা));
বিলম্ব (1000);
Particle.publish ("সেলসিয়াস তাপমাত্রা:", স্ট্রিং (cTemp));
বিলম্ব (1000);
Particle.publish ("ফারেনহাইট তাপমাত্রা:", স্ট্রিং (fTemp));
বিলম্ব (1000);
}
Particle.variable () ফাংশন সেন্সরের আউটপুট সংরক্ষণ করার জন্য ভেরিয়েবল তৈরি করে এবং Particle.publish () ফাংশন সাইটের ড্যাশবোর্ডে আউটপুট প্রদর্শন করে।
আপনার রেফারেন্সের জন্য উপরের ছবিতে সেন্সর আউটপুট দেখানো হয়েছে।
ধাপ 4: অ্যাপ্লিকেশন:
HTS221 বিভিন্ন ভোক্তা পণ্য যেমন এয়ার হিউমিডিফায়ার এবং রেফ্রিজারেটর ইত্যাদিতে নিযুক্ত করা যেতে পারে।
প্রস্তাবিত:
HYT939 এবং কণা ফোটন ব্যবহার করে আর্দ্রতা পরিমাপ: 4 টি ধাপ
HYT939 এবং কণা ফোটন ব্যবহার করে আর্দ্রতা পরিমাপ: HYT939 একটি ডিজিটাল আর্দ্রতা সেন্সর যা I2C যোগাযোগ প্রোটোকলে কাজ করে। মেডিকেল সিস্টেম এবং ল্যাবরেটরির ক্ষেত্রে আর্দ্রতা একটি গুরুত্বপূর্ণ বিষয় আমি
MCP9803 এবং কণা ফোটন ব্যবহার করে তাপমাত্রা পরিমাপ: 4 টি ধাপ
MCP9803 এবং কণা ফোটন ব্যবহার করে তাপমাত্রা পরিমাপ: MCP9803 একটি 2-তারের উচ্চ নির্ভুলতা তাপমাত্রা সেন্সর। তারা ব্যবহারকারী-প্রোগ্রামযোগ্য রেজিস্টারগুলির সাথে মূর্ত হয় যা তাপমাত্রা সেন্সিং অ্যাপ্লিকেশনগুলিকে সহজ করে। এই সেন্সরটি অত্যন্ত পরিশীলিত মাল্টি-জোন তাপমাত্রা পর্যবেক্ষণ ব্যবস্থার জন্য উপযুক্ত।
তাপমাত্রা এবং আর্দ্রতা নিরীক্ষণ SHT25 এবং কণা ফোটন ব্যবহার করে: 5 টি ধাপ
এসএইচটি ২৫ এবং কণা ফোটন ব্যবহার করে তাপমাত্রা এবং আর্দ্রতা পর্যবেক্ষণ: আমরা সম্প্রতি বিভিন্ন প্রকল্পে কাজ করেছি যার জন্য তাপমাত্রা এবং আর্দ্রতা পর্যবেক্ষণের প্রয়োজন ছিল এবং তখন আমরা বুঝতে পেরেছিলাম যে এই দুটি পরামিতিগুলি আসলে একটি সিস্টেমের কার্যক্ষমতার অনুমানের ক্ষেত্রে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। উভয়ই ইন্দুতে
আর্দ্রতা এবং তাপমাত্রা পরিমাপ HIH6130 এবং কণা ফোটন ব্যবহার করে: 4 টি ধাপ
HIH6130 এবং কণা ফোটন ব্যবহার করে আর্দ্রতা এবং তাপমাত্রা পরিমাপ: HIH6130 ডিজিটাল আউটপুট সহ আর্দ্রতা এবং তাপমাত্রা সেন্সর। এই সেন্সরগুলি ± 4% RH এর নির্ভুলতা স্তর প্রদান করে। শিল্প-নেতৃস্থানীয় দীর্ঘমেয়াদী স্থিতিশীলতা, প্রকৃত তাপমাত্রা-ক্ষতিপূরণযুক্ত ডিজিটাল I2C, শিল্প-নেতৃস্থানীয় নির্ভরযোগ্যতা, শক্তি দক্ষতা
HDC1000 এবং কণা ফোটন ব্যবহার করে তাপমাত্রা এবং আর্দ্রতার পরিমাপ: 4 টি ধাপ
HDC1000 এবং কণা ফোটন ব্যবহার করে তাপমাত্রা এবং আর্দ্রতার পরিমাপ: HDC1000 হল একটি ডিজিটাল আর্দ্রতা সেন্সর সহ সমন্বিত তাপমাত্রা সেন্সর যা খুব কম শক্তিতে চমৎকার পরিমাপ নির্ভুলতা প্রদান করে। ডিভাইসটি একটি নতুন ক্যাপাসিটিভ সেন্সরের উপর ভিত্তি করে আর্দ্রতা পরিমাপ করে। আর্দ্রতা এবং তাপমাত্রা সেন্সর মুখ