সুচিপত্র:

BH1715 এবং Arduino Nano ব্যবহার করে হালকা তীব্রতা গণনা: 5 টি ধাপ
BH1715 এবং Arduino Nano ব্যবহার করে হালকা তীব্রতা গণনা: 5 টি ধাপ
Anonim
Image
Image

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

এই টিউটোরিয়ালে, আমরা আরডুইনো ন্যানো দিয়ে BH1715 এর কাজ প্রদর্শন করতে যাচ্ছি।

হার্ডওয়্যার যে আপনি এই উদ্দেশ্যে প্রয়োজন হতে যাচ্ছে নিম্নরূপ:

1. BH1715 - অ্যাম্বিয়েন্ট লাইট সেন্সর

2. Arduino ন্যানো

3. I2C কেবল

4. Arduino ন্যানোর জন্য I2C শিল্ড

ধাপ 1: BH1715 সংক্ষিপ্ত বিবরণ:

তুমি কি চাও..!!
তুমি কি চাও..!!

প্রথমে আমরা আপনাকে সেন্সর মডিউলের মৌলিক বৈশিষ্ট্যগুলির সাথে পরিচিত করতে চাই যা BH1715 এবং যোগাযোগ প্রোটোকল যার উপর এটি কাজ করে।

BH1715 একটি I digitalC বাস ইন্টারফেস সহ একটি ডিজিটাল অ্যাম্বিয়েন্ট লাইট সেন্সর। BH1715 সাধারণত মোবাইল ডিভাইসের জন্য এলসিডি এবং কীপ্যাড ব্যাকলাইট পাওয়ার অ্যাডজাস্ট করার জন্য পরিবেষ্টিত আলো ডেটা পেতে ব্যবহৃত হয়। এই ডিভাইসটি একটি 16-বিট রেজোলিউশন এবং একটি সামঞ্জস্যযোগ্য পরিমাপ পরিসীমা প্রদান করে, যা.23 থেকে 100, 000 লাক্স সনাক্ত করার অনুমতি দেয়।

সেন্সর যে কমিউনিকেশন প্রোটোকলের উপর কাজ করে তা হল I2C। I2C মানে ইন্টার-ইন্টিগ্রেটেড সার্কিট। এটি একটি যোগাযোগ প্রোটোকল যেখানে যোগাযোগ SDA (সিরিয়াল ডেটা) এবং এসসিএল (সিরিয়াল ক্লক) লাইনের মাধ্যমে হয়। এটি একই সময়ে একাধিক ডিভাইস সংযুক্ত করার অনুমতি দেয়। এটি একটি সহজ এবং সবচেয়ে কার্যকর যোগাযোগ প্রোটোকল।

ধাপ 2: আপনার যা প্রয়োজন..

তুমি কি চাও..!!
তুমি কি চাও..!!
তুমি কি চাও..!!
তুমি কি চাও..!!
তুমি কি চাও..!!
তুমি কি চাও..!!

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

1. BH1715 - অ্যাম্বিয়েন্ট লাইট সেন্সর

2. Arduino Nano

3. I2C কেবল

4. Arduino ন্যানোর জন্য I2C শিল্ড

ধাপ 3: হার্ডওয়্যার সংযুক্তি:

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

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

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

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

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

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

ধাপ 4: হালকা তীব্রতা পরিমাপ Arduino কোড:

হালকা তীব্রতা পরিমাপ Arduino কোড
হালকা তীব্রতা পরিমাপ Arduino কোড
হালকা তীব্রতা পরিমাপ Arduino কোড
হালকা তীব্রতা পরিমাপ Arduino কোড

এখন Arduino কোড দিয়ে শুরু করা যাক।

Arduino এর সাথে সেন্সর মডিউল ব্যবহার করার সময়, আমরা Wire.h লাইব্রেরি অন্তর্ভুক্ত করি। "ওয়্যার" লাইব্রেরিতে ফাংশন রয়েছে যা সেন্সর এবং আরডুইনো বোর্ডের মধ্যে i2c যোগাযোগ সহজ করে।

ব্যবহারকারীর সুবিধার জন্য পুরো Arduino কোড নিচে দেওয়া হল:

#অন্তর্ভুক্ত

// BH1715 I2C ঠিকানা হল 0x23 (35) #সংযোজক Addr 0x23 void setup () {// শুরু করুন I2C যোগাযোগকে মাস্টার ওয়্যার.বেগিন () হিসাবে; // সিরিয়াল কমিউনিকেশন শুরু করুন, বড রেট = 9600 সিরিয়াল.বেগিন (9600) সেট করুন; // I2C ট্রান্সমিশন ওয়্যার শুরু করুন। // Wire.write কমান্ডে ক্ষমতা পাঠান (0x01); // I2C ট্রান্সমিশন Wire.endTransmission () বন্ধ করুন; // I2C ট্রান্সমিশন ওয়্যার শুরু করুন। // ক্রমাগত পরিমাপ কমান্ড Wire.write (0x10) পাঠান; // I2C ট্রান্সমিশন Wire.endTransmission () বন্ধ করুন; বিলম্ব (300); } অকার্যকর লুপ () {স্বাক্ষরবিহীন int ডেটা [2]; // Wire.requestFrom (Addr, 2) থেকে 2 বাইটের অনুরোধ করুন; // 2 বাইট ডেটা পড়ুন // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); ডেটা [1] = ওয়্যার.রেড (); } বিলম্ব (300); // ডেটা ভাসিয়ে দিন ভাসমান আলোকসজ্জা = ((ডেটা [0] * 256) + ডেটা [1]) /1.20; // সিরিয়াল মনিটরের আউটপুট ডেটা Serial.print ("Ambient Light Luminance:"); Serial.print (luminance); Serial.println ("lux"); }

কোডের নিচের অংশটি i2c যোগাযোগ এবং Wire.begin () এবং Serial.begin () ফাংশনের সাহায্যে সিরিয়াল যোগাযোগ শুরু করে।

// মাস্টার হিসাবে I2C যোগাযোগ শুরু করুন

Wire.begin (); // সিরিয়াল কমিউনিকেশন শুরু করুন, বড রেট = 9600 সিরিয়াল.বেগিন (9600) সেট করুন; // I2C ট্রান্সমিশন ওয়্যার শুরু করুন। // Wire.write কমান্ডে ক্ষমতা পাঠান (0x01); // I2C ট্রান্সমিশন Wire.endTransmission () বন্ধ করুন; // I2C ট্রান্সমিশন ওয়্যার শুরু করুন। // ক্রমাগত পরিমাপ কমান্ড Wire.write (0x10) পাঠান; // I2C ট্রান্সমিশন Wire.endTransmission () বন্ধ করুন; বিলম্ব (300);

আলোর তীব্রতা কোডের নিচের অংশে পরিমাপ করা হয়।

স্বাক্ষরবিহীন int ডেটা [2];

// Wire.requestFrom (Addr, 2) থেকে 2 বাইটের অনুরোধ করুন; // 2 বাইট ডেটা পড়ুন // ALS msb, ALS lsb if (Wire.available () == 2) {data [0] = Wire.read (); ডেটা [1] = ওয়্যার.রেড (); } বিলম্ব (300); // ডেটা ভাসিয়ে দিন ভাসমান আলোকসজ্জা = ((ডেটা [0] * 256) + ডেটা [1]) /1.20; // সিরিয়াল মনিটরের আউটপুট ডেটা Serial.print ("Ambient Light Luminance:"); Serial.print (luminance); Serial.println ("lux");

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

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

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

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

প্রস্তাবিত: