সুচিপত্র:
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:00
MPL3115A2 সঠিক চাপ/উচ্চতা এবং তাপমাত্রার তথ্য প্রদানের জন্য I2C ইন্টারফেস সহ একটি MEMS চাপ সেন্সর নিয়োগ করে। সেন্সর আউটপুট একটি উচ্চ রেজল্যুশন 24-বিট এডিসি দ্বারা ডিজিটালাইজড হয়। অভ্যন্তরীণ প্রক্রিয়াকরণ হোস্ট এমসিইউ সিস্টেম থেকে ক্ষতিপূরণ কাজগুলি সরিয়ে দেয়। এটি মাত্র 0.05 kPa তে পরিবর্তন সনাক্ত করতে সক্ষম যা উচ্চতায় 0.3 মিটার পরিবর্তনের সমান। এখানে কণা ফোটনের সাথে এর প্রদর্শন।
ধাপ 1: আপনার যা প্রয়োজন..
1. কণা ফোটন
2. MPL3115A2
3. I²C কেবল
4. কণা ফোটনের জন্য I²C শিল্ড
ধাপ 2: সংযোগ:
কণা ফোটনের জন্য একটি I2C ieldাল নিন এবং কণা ফোটনের পিনের উপর আলতো করে চাপ দিন।
তারপর I2C তারের এক প্রান্ত MPL3115A2 সেন্সরের সাথে এবং অন্য প্রান্তটি I2C ieldালের সাথে সংযুক্ত করুন।
উপরের ছবিতে কানেকশন দেখানো হয়েছে।
ধাপ 3: কোড:
MPL3115A2 এর কণা কোডটি আমাদের Github সংগ্রহস্থল-DCUBE স্টোর থেকে ডাউনলোড করা যাবে।
এখানে লিঙ্ক আছে।
আমরা পার্টিকেল কোডের জন্য দুটি লাইব্রেরি ব্যবহার করেছি, যেগুলো application.h এবং spark_wiring_i2c.h। সেন্সরের সাথে I2C যোগাযোগের সুবিধার্থে Spark_wiring_i2c লাইব্রেরি প্রয়োজন।
আপনি এখান থেকে কোডটি অনুলিপি করতে পারেন, এটি নিম্নরূপ দেওয়া হয়েছে:
// একটি স্বাধীন ইচ্ছা লাইসেন্স দিয়ে বিতরণ করা হয়।
// এটি যে কোন উপায়ে ব্যবহার করুন, মুনাফা বা বিনামূল্যে, যদি এটি তার সংশ্লিষ্ট কাজের লাইসেন্সের সাথে খাপ খায়।
// MPL3115A2
// এই কোডটি MPL3115A2_I2CS I2C মিনি মডিউলের সাথে কাজ করার জন্য ডিজাইন করা হয়েছে
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
// MPL3115A2 I2C ঠিকানা হল 0x60 (96)
#সংযোজনকারী 0x60
ফ্লোট cTemp = 0.0, fTemp = 0.0, চাপ = 0.0, উচ্চতা = 0.0;
int temp = 0, tHeight = 0; long pres = 0;
অকার্যকর সেটআপ()
{
// পরিবর্তনশীল সেট করুন
Particle.variable ("i2cdevice", "MPL3115A2");
Particle.variable ("cTemp", cTemp);
Particle.variable ("চাপ", চাপ);
Particle.variable ("উচ্চতা", উচ্চতা);
// I2C যোগাযোগ শুরু করুন
Wire.begin ();
// সিরিয়াল কমিউনিকেশন শুরু করুন, বড রেট = 9600 সেট করুন
Serial.begin (9600);
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// নিয়ন্ত্রণ নিবন্ধন নির্বাচন করুন
Wire.write (0x26);
// অ্যাক্টিভ মোড, ওএসআর = 128, আলটিমিটার মোড
Wire.write (0xB9);
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// ডাটা কনফিগারেশন রেজিস্টার নির্বাচন করুন
Wire.write (0x13);
// উচ্চতা, চাপ, তাপমাত্রার জন্য ডেটা প্রস্তুত ইভেন্ট সক্ষম
Wire.write (0x07);
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
বিলম্ব (300);
}
অকার্যকর লুপ ()
{
স্বাক্ষরবিহীন int ডেটা [6];
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// নিয়ন্ত্রণ নিবন্ধন নির্বাচন করুন
Wire.write (0x26);
// অ্যাক্টিভ মোড, ওএসআর = 128, আলটিমিটার মোড
Wire.write (0xB9);
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
বিলম্ব (1000);
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// ডাটা রেজিস্টার নির্বাচন করুন
Wire.write (0x00);
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
// 6 বাইট ডেটা অনুরোধ করুন
Wire.requestFrom (Addr, 6);
// 0x00 (00) ঠিকানা থেকে 6 বাইট ডেটা পড়ুন
// অবস্থা, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
যদি (Wire.available () == 6)
{
ডেটা [0] = ওয়্যার.রেড ();
ডেটা [1] = ওয়্যার.রেড ();
ডেটা [2] = ওয়্যার.রেড ();
ডেটা [3] = ওয়্যার.রেড ();
তথ্য [4] = Wire.read ();
তথ্য [5] = ওয়্যার.রেড ();
}
// ডেটাকে 20-বিটে রূপান্তর করুন
tHeight = ((((দীর্ঘ) তথ্য [1] * (দীর্ঘ) 65536) + (তথ্য [2] * 256) + (তথ্য [3] এবং 0xF0)) / 16);
temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16;
উচ্চতা = tHeight / 16.0;
cTemp = (temp / 16.0);
fTemp = cTemp * 1.8 + 32;
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// নিয়ন্ত্রণ নিবন্ধন নির্বাচন করুন
Wire.write (0x26);
// সক্রিয় মোড, ওএসআর = 128, ব্যারোমিটার মোড
Wire.write (0x39);
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
// I2C ট্রান্সমিশন শুরু করুন
Wire.beginTransmission (Addr);
// ডাটা রেজিস্টার নির্বাচন করুন
Wire.write (0x00);
// I2C ট্রান্সমিশন বন্ধ করুন
Wire.endTransmission ();
বিলম্ব (1000);
// 4 বাইট ডেটার অনুরোধ করুন
Wire.requestFrom (Addr, 4);
// 4 বাইট ডেটা পড়ুন
// স্ট্যাটাস, প্রেস এমএসবি 1, প্রেস এমএসবি, প্রেস এলএসবি
যদি (Wire.available () == 4)
{
ডেটা [0] = ওয়্যার.রেড ();
ডেটা [1] = ওয়্যার.রেড ();
ডেটা [2] = ওয়্যার.রেড ();
ডেটা [3] = ওয়্যার.রেড ();
}
// ডেটাকে 20-বিটে রূপান্তর করুন
pres = (((long) data [1] * (long) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16;
চাপ = (প্রেস / 4.0) / 1000.0;
// ড্যাশবোর্ডে আউটপুট ডেটা
Particle.publish ("উচ্চতা:", স্ট্রিং (উচ্চতা));
Particle.publish ("চাপ:", স্ট্রিং (চাপ));
Particle.publish ("সেলসিয়াস তাপমাত্রা:", স্ট্রিং (cTemp));
Particle.publish ("ফারেনহাইট তাপমাত্রা:", স্ট্রিং (fTemp));
বিলম্ব (1000);
}
ধাপ 4: অ্যাপ্লিকেশন:
MPL3115A2 এর বিভিন্ন অ্যাপ্লিকেশনের মধ্যে রয়েছে উচ্চ নির্ভুলতা Altimetry, স্মার্টফোন/ট্যাবলেট, ব্যক্তিগত ইলেকট্রনিক্স Altimetry ইত্যাদি এটি জিপিএস ডেড রিকোনিং, জরুরী পরিষেবার জন্য জিপিএস বর্ধন, ম্যাপ অ্যাসিস্ট, নেভিগেশনের পাশাপাশি ওয়েদার স্টেশন যন্ত্রপাতি অন্তর্ভুক্ত করতে পারে।
প্রস্তাবিত:
কণা ফোটন - TCN75A তাপমাত্রা সেন্সর টিউটোরিয়াল: 4 টি ধাপ
কণা ফোটন-TCN75A তাপমাত্রা সেন্সর টিউটোরিয়াল: TCN75A একটি দুই-তারের সিরিয়াল তাপমাত্রা সেন্সর যা তাপমাত্রা-থেকে-ডিজিটাল রূপান্তরের সাথে অন্তর্ভুক্ত। এটি ব্যবহারকারীর প্রোগ্রামযোগ্য রেজিস্টারগুলির সাথে অন্তর্ভুক্ত করা হয়েছে যা তাপমাত্রা-সেন্সিং অ্যাপ্লিকেশনের জন্য নমনীয়তা প্রদান করে। রেজিস্টার সেটিংস ব্যবহারকারীদের অনুমতি দেয়
কণা ফোটন - ADT75 তাপমাত্রা সেন্সর টিউটোরিয়াল: 4 টি ধাপ
কণা ফোটন - ADT75 তাপমাত্রা সেন্সর টিউটোরিয়াল: ADT75 একটি অত্যন্ত নির্ভুল, ডিজিটাল তাপমাত্রা সেন্সর। এটি একটি ব্যান্ড ফাঁক তাপমাত্রা সেন্সর এবং তাপমাত্রা পর্যবেক্ষণ এবং ডিজিটাইজ করার জন্য 12-বিট এনালগ টু ডিজিটাল কনভার্টার নিয়ে গঠিত। এর অত্যন্ত সংবেদনশীল সেন্সর এটিকে আমার জন্য যথেষ্ট যোগ্য করে তোলে
কণা ফোটন - STS21 তাপমাত্রা সেন্সর টিউটোরিয়াল: 4 টি ধাপ
কণা ফোটন - STS21 তাপমাত্রা সেন্সর টিউটোরিয়াল: STS21 ডিজিটাল তাপমাত্রা সেন্সর উচ্চতর কর্মক্ষমতা এবং স্থান সংরক্ষণের পদচিহ্ন সরবরাহ করে। এটি ডিজিটাল, I2C ফরম্যাটে ক্যালিব্রেটেড, লিনিয়ারাইজড সিগন্যাল প্রদান করে। এই সেন্সরের ফ্যাব্রিকেশন CMOSens প্রযুক্তির উপর ভিত্তি করে তৈরি করা হয়েছে, যা উচ্চতর গুণাবলীর জন্য বৈশিষ্ট্যযুক্ত
কণা ফোটন - HDC1000 তাপমাত্রা সেন্সর টিউটোরিয়াল: 4 টি ধাপ
পার্টিকেল ফোটন - HDC1000 তাপমাত্রা সেন্সর টিউটোরিয়াল: HDC1000 হল একটি ডিজিটাল আর্দ্রতা সেন্সর যার সমন্বিত তাপমাত্রা সেন্সর যা খুব কম শক্তিতে চমৎকার পরিমাপ নির্ভুলতা প্রদান করে। ডিভাইসটি একটি নতুন ক্যাপাসিটিভ সেন্সরের উপর ভিত্তি করে আর্দ্রতা পরিমাপ করে। আর্দ্রতা এবং তাপমাত্রা সেন্সর মুখ
কণা ফোটন - BH1715 ডিজিটাল অ্যাম্বিয়েন্ট লাইট সেন্সর টিউটোরিয়াল: 4 টি ধাপ
কণা ফোটন - BH1715 ডিজিটাল অ্যাম্বিয়েন্ট লাইট সেন্সর টিউটোরিয়াল: BH1715 হল একটি ডিজিটাল অ্যাম্বিয়েন্ট লাইট সেন্সর যার একটি I²C বাস ইন্টারফেস। BH1715 সাধারণত মোবাইল ডিভাইসের জন্য এলসিডি এবং কীপ্যাড ব্যাকলাইট পাওয়ার অ্যাডজাস্ট করার জন্য পরিবেষ্টিত আলো ডেটা পেতে ব্যবহৃত হয়। এই ডিভাইসটি একটি 16-বিট রেজোলিউশন এবং একটি অ্যাডজাস দেয়