সুচিপত্র:

আইওটি সহজ সরল: একাধিক সেন্সর পর্যবেক্ষণ: 7 টি ধাপ
আইওটি সহজ সরল: একাধিক সেন্সর পর্যবেক্ষণ: 7 টি ধাপ

ভিডিও: আইওটি সহজ সরল: একাধিক সেন্সর পর্যবেক্ষণ: 7 টি ধাপ

ভিডিও: আইওটি সহজ সরল: একাধিক সেন্সর পর্যবেক্ষণ: 7 টি ধাপ
ভিডিও: Battery less power supply and battery life calculation for embedded devices II 2024, নভেম্বর
Anonim
আইওটি সহজ সরল: একাধিক সেন্সর পর্যবেক্ষণ
আইওটি সহজ সরল: একাধিক সেন্সর পর্যবেক্ষণ
আইওটি সহজ সরল: একাধিক সেন্সর পর্যবেক্ষণ
আইওটি সহজ সরল: একাধিক সেন্সর পর্যবেক্ষণ

কয়েক সপ্তাহ আগে, আমি এখানে একটি DS18B20 ব্যবহার করে তাপমাত্রা পর্যবেক্ষণ সম্পর্কে একটি টিউটোরিয়াল প্রকাশ করেছি, একটি ডিজিটাল সেন্সর যা 1-ওয়্যার বাসে যোগাযোগ করে, ইন্টারনেটে NodeMCU এবং Blynk এর মাধ্যমে ডেটা পাঠায়:

আইওটি সহজ সরল: তাপমাত্রা যে কোন জায়গায় পর্যবেক্ষণ করুন

কিন্তু অনুসন্ধানে আমরা যা মিস করেছি, সেটি ছিল এই ধরনের সেন্সরের একটি বড় সুবিধা যা একই 1-ওয়্যার বাসের সাথে সংযুক্ত একাধিক সেন্সর থেকে একাধিক ডেটা সংগ্রহের সম্ভাবনা। এবং, এখন এটি অন্বেষণ করার সময়।

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

ধাপ 1: উপাদান বিল

  • NodeMCU ESP 12-E (*)
  • 2 এক্স DS18B20 তাপমাত্রা সেন্সর
  • প্রতিরোধক 4.7K ওহমস
  • ব্রেডবোর্ড
  • তারের

(*) যে কোন ধরনের ESP ডিভাইস এখানে ব্যবহার করা যাবে। সবচেয়ে সাধারণ হল NodeMCU V2 বা V3। দুটোই সব সময় ভালো কাজ করবে।

ধাপ 2: DS18B20 তাপমাত্রা সেন্সর

DS18B20 তাপমাত্রা সেন্সর
DS18B20 তাপমাত্রা সেন্সর

আমরা এই টিউটোরিয়ালে DS18B20 সেন্সরের একটি জলরোধী সংস্করণ ব্যবহার করব। ভেজা অবস্থায় দূরবর্তী তাপমাত্রার জন্য এটি খুবই উপযোগী, উদাহরণস্বরূপ আর্দ্র মাটিতে। সেন্সরটি বিচ্ছিন্ন এবং 125oC পর্যন্ত পরিমাপ গ্রহণ করতে পারে (Adafrut এটিকে 100oC এর উপরে ব্যবহার করার সুপারিশ করে না তার ক্যাবল পিভিসি জ্যাকেটের কারণে)।

DS18B20 একটি ডিজিটাল সেন্সর যা দীর্ঘ দূরত্বেও এটি ব্যবহার করা ভাল করে তোলে! এই 1-তারের ডিজিটাল তাপমাত্রা সেন্সরগুলি মোটামুটি সুনির্দিষ্ট (range 0.5 ডিগ্রি সেলসিয়াস বেশি) এবং অনবোর্ড ডিজিটাল থেকে এনালগ কনভার্টার থেকে 12 বিট পর্যন্ত নির্ভুলতা দিতে পারে। তারা একটি একক ডিজিটাল পিন ব্যবহার করে NodeMCU- এর সাথে দুর্দান্ত কাজ করে, এবং আপনি একই পিনের সাথে একাধিকগুলিকে সংযুক্ত করতে পারেন, প্রত্যেকেরই একটি আলাদা 64-বিট আইডি আছে কারখানায় তাদের আলাদা করার জন্য।

সেন্সর 3.0 থেকে 5.0V পর্যন্ত কাজ করে, এর মানে হল যে এটি সরাসরি 3.3V NodeMCU পিনের একটি থেকে চালিত হতে পারে।

সেন্সরটিতে 3 টি তার রয়েছে:

  • কালো: GND
  • লাল: ভিসিসি
  • হলুদ: 1-ওয়্যার ডেটা

এখানে, আপনি সম্পূর্ণ ডেটা খুঁজে পেতে পারেন: DS18B20 ডেটশীট

ধাপ 3: সেন্সরগুলিকে NodeMCU এর সাথে সংযুক্ত করা

NodeMCU- এ সেন্সর সংযুক্ত করা হচ্ছে
NodeMCU- এ সেন্সর সংযুক্ত করা হচ্ছে
  1. উপরের ছবিতে দেখানো হিসাবে মিনি ব্রেডবোর্ডে প্রতিটি সেন্সর থেকে 3 টি তার সংযুক্ত করুন। আমি সেন্সরের তারটি আরও ভালভাবে ঠিক করতে বিশেষ সংযোজক ব্যবহার করেছি।
  2. লক্ষ্য করুন যে উভয় সেন্সর সমান্তরাল। আপনার যদি 2 টির বেশি সেন্সর থাকে তবে আপনারও একই কাজ করা উচিত।

    • লাল ==> 3.3V
    • কালো ==> GND
    • হলুদ ==> D4
  3. VCC (3.3V) এবং ডেটা (D4) এর মধ্যে 4.7K ohms রোধক ব্যবহার করুন

ধাপ 4: অনুমোদিত গ্রন্থাগারগুলি ইনস্টল করা

DS18B20 সঠিকভাবে ব্যবহার করার জন্য, দুটি লাইব্রেরির প্রয়োজন হবে:

  1. ওয়ানওয়্যার
  2. ডালাস তাপমাত্রা

আপনার Arduino IDE লাইব্রেরি ডিপোজিটরিতে উভয় লাইব্রেরি ইনস্টল করুন।

মনে রাখবেন যে ওয়ানওয়াইয়ার লাইব্রেরি অবশ্যই বিশেষ হতে হবে, যা ESP8266 এর সাথে ব্যবহার করার জন্য পরিবর্তিত হবে, অন্যথায় সংকলনের সময় আপনি একটি ত্রুটি পাবেন। আপনি উপরের লিঙ্কে শেষ সংস্করণটি পাবেন।

ধাপ 5: সেন্সর পরীক্ষা করা

সেন্সর পরীক্ষা করা
সেন্সর পরীক্ষা করা

সেন্সর পরীক্ষার জন্য, আমার GitHub থেকে নিচের ফাইলটি ডাউনলোড করুন:

NodeMCU_DS18B20_Dual_Se nsor_test.ino

/**************************************************************

*একাধিক টেম্পারেচার সেন্ডার টেস্ট**2 x OneWire সেন্সর: DS18B20*NodeMCU D4 (অথবা Arduino Pin 2) এর সাথে সংযুক্ত* ************************************************/ #অন্তর্ভুক্ত # NodeMCU পিন D4 OneWire OneWire (ONE_WIRE_BUS) এ #define ONE_WIRE_BUS 2 // DS18B20 অন্তর্ভুক্ত করুন; ডালাস তাপমাত্রা DS18B20 (& oneWire); অকার্যকর সেটআপ () {Serial.begin (115200); DS18B20. শুরু (); Serial.println ("টুয়েলিং ডুয়াল সেন্সর ডেটা"); } অকার্যকর লুপ () {float temp_0; ভাসা temp_1; DS18B20.requestTempemeters (); temp_0 = DS18B20.getTempCByIndex (0); // সেন্সর 0 সেলসিয়াস টেম্পে টেম্প ক্যাপচার করবে temp_1 = DS18B20.getTempFByIndex (1); // সেন্সর 0 ফারেনহাইট সিরিয়ালে টেম্প ক্যাপচার করবে। "(Temp_0:"); সিরিয়াল.প্রিন্ট (temp_0); Serial.print ("oC। Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); বিলম্ব (1000); }

উপরের কোডটি দেখে, আমাদের লক্ষ্য করা উচিত যে সবচেয়ে গুরুত্বপূর্ণ লাইনগুলি হল:

temp_0 = DS18B20.getTempCByIndex (0); // সেন্সর 0 সেলসিয়াসে টেম্প ক্যাপচার করবে

temp_1 = DS18B20.getTempFByIndex (1); // সেন্সর 0 ফারেনহাইটে টেম্প ক্যাপচার করবে

প্রথমটি সেলসিয়াসে সেন্সর [0] ("সূচী (0)" দেখুন) থেকে একটি মান ফেরত দেবে (কোডের অংশটি দেখুন: "getTempC"। দ্বিতীয় লাইনটি সেন্সর [1] এর সাথে সম্পর্কিত এবং ডেটা ফেরত দেবে ফারেনহাইটে। এখানে "n" সেন্সর থাকতে পারে যেহেতু তাদের প্রত্যেকের জন্য আলাদা "সূচক" আছে।

আপনার NodeMCU এ কোডটি এখনই আপলোড করুন এবং সিরিয়াল মনিটর ব্যবহার করে তাপমাত্রা নিরীক্ষণ করুন।

উপরের ছবিটি প্রত্যাশিত ফলাফল দেখায়। আপনার হাতে প্রতিটি সেন্সর ধরুন, আপনার তাপমাত্রা বাড়তে দেখা উচিত।

ধাপ 6: Blynk ব্যবহার করে

Blynk ব্যবহার করে
Blynk ব্যবহার করে
Blynk ব্যবহার করে
Blynk ব্যবহার করে

একবার আপনি তাপমাত্রা ডেটা ক্যাপচার শুরু করলে, এটি যে কোনও জায়গা থেকে দেখার সময়। আমরা Blynk ব্যবহার করে এটি করব। সুতরাং, সমস্ত ক্যাপচার করা ডেটা আপনার মোবাইল ডিভাইসে রিয়েল টাইমে প্রদর্শিত হবে এবং আমরা এর জন্য একটি historicalতিহাসিক ডিপোজিটরি তৈরি করব।

নিচের ধাপগুলো অনুসরণ করুন:

  1. একটি নতুন প্রকল্প তৈরি করুন।
  2. এটি একটি নাম দিন (আমার ক্ষেত্রে "দ্বৈত তাপমাত্রা মনিটর")
  3. নতুন ডিভাইস নির্বাচন করুন - ESP8266 (ওয়াইফাই) "আমার ডিভাইস" হিসাবে
  4. কোড ব্যবহার করার জন্য AUTH TOKEN কপি করুন (আপনি আপনার ইমেইলে পাঠাতে পারেন)।
  5. দুটি "গেজ" উইজেট অন্তর্ভুক্ত, সংজ্ঞায়িত:

    • ভার্চুয়াল পিন প্রতিটি সেন্সরের সাথে ব্যবহার করা হবে: V10 (সেন্সর [0]) এবং V11 (সেন্সর [1])
    • তাপমাত্রার পরিসীমা: -5 থেকে 100 oC সেন্সরের জন্য [0]
    • তাপমাত্রার পরিসীমা: সেন্সরের জন্য 25 থেকে 212 oC [1]
    • তথ্য পড়ার ফ্রিকোয়েন্সি: 1 সেকেন্ড
  6. V10 এবং V11 কে ভার্চুয়াল পিন হিসাবে সংজ্ঞায়িত করে একটি "হিস্ট্রি গ্রাফ" উইজেট অন্তর্ভুক্ত করে
  7. "প্লে" টিপুন (ডান দিকের কোণে ত্রিভুজ)

অবশ্যই, Blynk অ্যাপ আপনাকে বলবে যে NodeMCU অফ লাইন। আপনার Arduino IDE এ সম্পূর্ণ কোড আপলোড করার সময় এসেছে। এটা আপনি এখানে পাবেন:

NodeMCU_Dual_Sensor_Blynk_Ext.ino

আপনার নিজের পরিচয়পত্র দিয়ে "ডামি ডেটা" পরিবর্তন করুন।

/ * Blynk শংসাপত্র */

char auth = "এখানে আপনার BLYNK AUTH কোড আছে"; / * ওয়াইফাই শংসাপত্র */ char ssid = "আপনার SSID"; চার পাস = "আপনার পাসওয়ার্ড";

এবং এটাই!

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

/**************************************************************

* Blynk সহ IoT একাধিক তাপমাত্রা মনিটর **একাধিক ওয়ানওয়্যার সেন্সর: DS18B20*মার্সেলো রোভাই দ্বারা তৈরি - 25 আগস্ট 2017 ********************************** ******************************** প্রিন্ট নিষ্ক্রিয় করুন এবং স্থান সংরক্ষণ করুন / * ওয়াইফাই শংসাপত্র */ char ssid = "আপনার SSID"; চার পাস = "আপনার পাসওয়ার্ড"; / * টাইমার */ #সিম্পলটাইমার টাইমার অন্তর্ভুক্ত করুন; / * DS18B20 তাপমাত্রা সংবেদক ডালাস তাপমাত্রা DS18B20 (& oneWire); int temp_0; int temp_1; অকার্যকর সেটআপ () {Serial.begin (115200); Blynk.begin (auth, ssid, pass); DS18B20. শুরু (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println ("টুয়েলিং ডুয়াল সেন্সর ডেটা"); } অকার্যকর লুপ () {timer.run (); // সিম্পলটাইমার Blynk.run () শুরু করে; } /**************************************************** ****ব্লাইঙ্কে সেন্সর ডেটা পাঠান ******************************************* *********/ অকার্যকর getSendData () {DS18B20.requestTempemeters (); temp_0 = DS18B20.getTempCByIndex (0); // সেন্সর 0 সেলসিয়াস টেম্পে টেম্প ক্যাপচার করবে temp_1 = DS18B20.getTempFByIndex (1); // সেন্সর 0 ফারেনহাইট সিরিয়ালে টেম্প ক্যাপচার করবে। "(Temp_0:"); সিরিয়াল.প্রিন্ট (temp_0); Serial.print ("oC। Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); Blynk.virtualWrite (10, temp_0); // ভার্চুয়াল পিন V10 Blynk.virtualWrite (11, temp_1); // ভার্চুয়াল পিন V11}

একবার কোডটি আপলোড হয়ে চললে, Blynk অ্যাপটি চেক করুন। আমার আইফোন থেকে উপরের প্রিন্ট স্ক্রিনে দেখানো হিসাবে এটি এখন চলতে হবে।

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

উপসংহার
উপসংহার

বরাবরের মতো, আমি আশা করি এই প্রকল্পটি অন্যদেরকে ইলেকট্রনিক্স, রোবোটিক্স এবং আইওটি -এর উত্তেজনাপূর্ণ বিশ্বে তাদের পথ খুঁজে পেতে সাহায্য করতে পারে!

আপডেট হওয়া ফাইলগুলির জন্য দয়া করে আমার গিটহাব পরিদর্শন করুন: নোডএমসিইউ ডুয়েল টেম্প মনিটর

আরো প্রকল্পের জন্য, দয়া করে আমার ব্লগে যান: MJRoBot.org

বিশ্বের দক্ষিণ দিক থেকে সালাম!

আমার পরবর্তী নির্দেশনায় দেখা হবে!

ধন্যবাদ, মার্সেলো

প্রস্তাবিত: