সুচিপত্র:

ওয়াইফাই আইওটি তাপমাত্রা এবং আর্দ্রতা সেন্সর। অংশ: 8 IoT, হোম অটোমেশন: 9 টি ধাপ
ওয়াইফাই আইওটি তাপমাত্রা এবং আর্দ্রতা সেন্সর। অংশ: 8 IoT, হোম অটোমেশন: 9 টি ধাপ

ভিডিও: ওয়াইফাই আইওটি তাপমাত্রা এবং আর্দ্রতা সেন্সর। অংশ: 8 IoT, হোম অটোমেশন: 9 টি ধাপ

ভিডিও: ওয়াইফাই আইওটি তাপমাত্রা এবং আর্দ্রতা সেন্সর। অংশ: 8 IoT, হোম অটোমেশন: 9 টি ধাপ
ভিডিও: ESP8266 ESP01 DHT11 তাপমাত্রা আর্দ্রতা সেন্সর মডিউল প্রোগ্রামিং | RemoteXY | FLProg 2024, নভেম্বর
Anonim
ওয়াইফাই আইওটি তাপমাত্রা এবং আর্দ্রতা সেন্সর। অংশ: 8 IoT, হোম অটোমেশন
ওয়াইফাই আইওটি তাপমাত্রা এবং আর্দ্রতা সেন্সর। অংশ: 8 IoT, হোম অটোমেশন

প্রস্তাবনা

এই নিবন্ধটি ব্যবহারিক রাগডাইজেশন এবং আগের নির্দেশাবলীর অগ্রগতির বিকাশকে নথিভুক্ত করে: আপনার প্রথম আইওটি ওয়াইফাই ডিভাইস 'পিম্পিং'। পার্ট 4: আইওটি, হোম অটোমেশন সহ সমস্ত প্রয়োজনীয় সফ্টওয়্যার কার্যকারিতা যা গার্হস্থ্য বাড়ির পরিবেশে সফল স্থাপনাকে সক্ষম করে।

ভূমিকা

উপরে উল্লিখিত হিসাবে এই নির্দেশযোগ্যটি একটি নির্ভরযোগ্য সিস্টেম ডিজাইনের সাথে পূর্বের আইওটি উদাহরণকে একত্রিত করার বর্ণনা দেয় যা ব্যবহারিক ব্যবহারের ক্ষেত্রে সফলভাবে পরিচালনার অনুমতি দেয় যেমন; বিপর্যয়কর বিদ্যুৎ ক্ষতি, এমকিউটিটি ব্রোকার ব্যর্থতা, ওয়াইফাই এন/ডাব্লু ব্যর্থতা, রিমোট সেন্সর পুনর্গঠন, নেটওয়ার্ক ট্র্যাফিক কমাতে কনফিগারযোগ্য রিপোর্টিং কৌশল এবং সেন্সর ক্রমাঙ্কন।

আমার প্রথম IoT সেন্সর নেটওয়ার্ক গঠনের জন্য মোট 6 টি বন্ধ ডিভাইস তৈরি করা হয়েছে (উপরের ছবি 1 দেখুন) এবং আমার বাড়ির চারপাশে বিতরণ করা হয়েছে।

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

নিম্নলিখিত আইওটি সেন্সর সহ সম্পূর্ণ নকশা বিবরণ রয়েছে; নির্মাণ, সোর্স কোড, পরীক্ষার কৌশল এবং ওপেনহ্যাব কনফিগারেশন।

আমি কি অংশ প্রয়োজন?

  1. 1 বন্ধ ESP8266-01,
  2. 1uF ইলেক্ট্রোলাইটিক ক্যাপাসিটার বন্ধ 2,
  3. 10K প্রতিরোধক বন্ধ 3,
  4. 330R প্রতিরোধক বন্ধ 1,
  5. 3 মিমি দিয়া 1 বন্ধ। এলইডি,
  6. 1 বন্ধ LD1117-33v, 3v3 LDO VReg। (এখানে ফার্নেল),
  7. 1 ডিএইচটি 22 তাপমাত্রা/আর্দ্রতা সেন্সর বন্ধ,
  8. 1 বন্ধ ডুয়াল 4way 0.1 "সংযোগকারী,
  9. CAMDENBOSS RX2008/S-5 প্লাস্টিক এনক্লোজার, পটিং বক্স, এবিএস, 38 মিমি, 23 মিমি (এখানে ফার্নেল),
  10. 1 ডিসি পাওয়ার সংযোগকারী বন্ধ, প্লাগ, 1 এ, 2 মিমি, প্যানেল মাউন্ট (এখানে ফার্নেল),
  11. 1 TO-220 Heatsink 24.4 ° C/W (Farnell এখানে),
  12. বিভিন্ন তাপ সঙ্কুচিত পাইপ (হলুদ, ইবে এখানে),
  13. বিভিন্ন দৈর্ঘ্যের আইডিসি ফিতা কেবল,
  14. হিটসিংক যৌগ,
  15. ভেরোবোর্ড,
  16. ESP8266-01 প্রোগ্রামিং ডিভাইস। এখানে দেখো; স্ট্রিপ বোর্ডের সাথে ব্যবহারিক সার্কিট নির্মাণ, ধাপ 9 এর পরে।

আমার কোন সফটওয়্যার দরকার?

  1. Arduino IDE 1.6.9
  2. Arduino IDE ESP8266-01 প্রোগ্রাম করার জন্য কনফিগার করা হয়েছে। এখানে দেখো; ESP8266-01 প্রোগ্রামে Arduino IDE সেট আপ করা

আমি কি সরঞ্জাম প্রয়োজন?

  1. তাতাল,
  2. ড্রিল এবং বিভিন্ন বিট,
  3. নথি পত্র,
  4. হ্যাকস,
  5. শক্ত ভাইস,
  6. তাপ বন্দুক,
  7. ডিএমএম।

আমার কোন দক্ষতা দরকার?

  1. ইলেকট্রনিক্সের ন্যূনতম উপলব্ধি,
  2. Arduino এর জ্ঞান এবং এটি IDE,
  3. প্রাথমিক জালিয়াতি দক্ষতা (সোল্ডারিং, হ্যাক-সয়িং, ফাইলিং, ড্রিলিং ইত্যাদি),
  4. কিছু ধৈর্য,
  5. আপনার হোম নেটওয়ার্ক সম্পর্কে কিছু ধারণা।

বিষয় আচ্ছাদিত

  1. সার্কিট ওভারভিউ
  2. সফটওয়্যার সিস্টেম ওভারভিউ
  3. সফটওয়্যার ওভারভিউ
  4. সেন্সর ক্রমাঙ্কন
  5. MQTT টপিক নামকরণ কনভেনশন
  6. OpenHAB কনফিগারেশন
  7. নকশা পরীক্ষা করা হচ্ছে
  8. উপসংহার
  9. রেফারেন্স ব্যবহৃত

সিরিজ লিঙ্ক

অংশ 7: স্টাডি লাইট কন্ট্রোলার (পুনরায় কাজ করা)। পার্ট 7: আইওটি, হোম অটোমেশন

পার্ট 9: আইওটি মেইনস কন্ট্রোলার। পার্ট 9: আইওটি, হোম অটোমেশন

ধাপ 1: সার্কিট ওভারভিউ

সার্কিট ওভারভিউ
সার্কিট ওভারভিউ
সার্কিট ওভারভিউ
সার্কিট ওভারভিউ
সার্কিট ওভারভিউ
সার্কিট ওভারভিউ
সার্কিট ওভারভিউ
সার্কিট ওভারভিউ

উপরের ছবি 1 আইওটি সেন্সরের জন্য সম্পূর্ণ সার্কিট ডিজাইন দেখায়।

IoT ডিভাইসের কেন্দ্রস্থলে ESP8266-01 থাকে যা একটি DHT22 তাপমাত্রা/আর্দ্রতা সেন্সরের সাথে 10K পুল আপ রেজিস্টারের মাধ্যমে GPIO2 তে সংযুক্ত থাকে। একটি বহিরাগত 5v একটি সুইচড মোড সাপ্লাই দিয়ে সরবরাহ করা হয় এবং একটি 2mm ডিসি প্যানেল মাউন্ট সকেটের মাধ্যমে ডিভাইসে খাওয়ানো হয় এবং স্থানীয়ভাবে নিয়ন্ত্রিত হয় একটি LD1117-33v, 3v3 LDO ভোল্টেজ রেগুলেটর একটি BZP M3 প্যান হেড স্ক্রু এবং বাদাম দিয়ে একটি বহিরাগত তাপ সিংকে লাগানো। ।

নকশায় GPIO0 এর সাথে সংযুক্ত একটি 3 মিমি লাল নেতৃত্ব অন্তর্ভুক্ত রয়েছে যা স্টার্ট আপ বা পরবর্তী ত্রুটির সময় আইওটি ডিভাইসের স্থিতি সম্পর্কে স্থানীয় ইঙ্গিত দিতে ব্যবহৃত হয়। এটি ওপেনহ্যাব ইন্টারফেসের মাধ্যমে ম্যানুয়াল অ্যাক্টিভেশন দ্বারা ডিভাইস সনাক্ত করতে ব্যবহার করা যেতে পারে।

সম্পূর্ণ নকশাটি একটি ABS পটিং বাক্সে সুন্দরভাবে ফিট করে যা উপরের ছবি 2 এ দেখানো হয়েছে এবং স্থানীয় হিটিং ইফেক্টের কারণে পক্ষপাত রোধ করতে সেন্সরটি যথাসম্ভব নিশ্চিত করার জন্য নির্দিষ্ট করা হয়েছিল (উপরের ছবি 7)।

সার্কিট বোর্ড হল ভেরোবোর্ডের একক টুকরা, আকৃতিতে কাটা এবং ঘেরের সাথে মানানসই করা (উপরের ছবি 3)। এই বোর্ডটি একটি এম 3 কাউন্টারসঙ্ক নাইলন স্ক্রু এবং দুটি বাদাম দিয়ে স্থির করা হয়েছে যা সেন্সরের নীচের অংশে ফ্লাশ করে, এইভাবে এটি একটি সমতল পৃষ্ঠে বসতে দেয়।

ছবি 4… 6 নির্মাণের বিভিন্ন অবস্থা দেখায়।

পদক্ষেপ 2: সফ্টওয়্যার সিস্টেম ওভারভিউ

সফটওয়্যার সিস্টেম ওভারভিউ
সফটওয়্যার সিস্টেম ওভারভিউ
সফটওয়্যার সিস্টেম ওভারভিউ
সফটওয়্যার সিস্টেম ওভারভিউ

এই IoT তাপমাত্রা এবং আর্দ্রতা সেন্সিং ডিভাইসে উপরের ছবি 1 এ দেখানো হিসাবে ছয়টি মূল সফ্টওয়্যার উপাদান রয়েছে।

SPIFFS

এটি অন-বোর্ড এসপিআই ফ্ল্যাশ ফাইলিং সিস্টেম এবং নিম্নলিখিত তথ্যগুলি ধরে রাখতে ব্যবহৃত হয় (উপরের ছবি 2 দেখুন);

  • আইকন এবং 'সেন্সর কনফিগারেশন হোম পেজ' এইচটিএমএল: আইওটি ডিভাইস দ্বারা পরিবেশন করা হয় যখন এটি আপনার আইওটি ওয়াইফাই নেটওয়ার্কে সংযোগ করতে অক্ষম হয় (সাধারণত ভুল নিরাপত্তার তথ্যের কারণে) এবং ব্যবহারকারীকে প্রয়োজন ছাড়া দূর থেকে সেন্সর কনফিগার করার মাধ্যম প্রদান করে নতুন প্রোগ্রাম বা নতুন SPIFFS কন্টেন্ট আপলোড করতে।
  • নিরাপত্তা তথ্য: এটি আইওটি ডিভাইস দ্বারা আপনার আইওটি ওয়াইফাই নেটওয়ার্ক এবং এমকিউটিটি ব্রোকারের সাথে সংযোগ স্থাপনের জন্য ব্যবহৃত তথ্য ধারণ করে। 'সেন্সর কনফিগারেশন হোম পেজ' এর মাধ্যমে জমা দেওয়া তথ্য এই ফাইলে লেখা আছে ('secvals.txt')।
  • ক্রমাঙ্কন তথ্য: এই ফাইলের মধ্যে থাকা তথ্য ('calvals.txt') অন-বোর্ড তাপমাত্রা/আর্দ্রতা সেন্সরকে ক্যালিব্রেট করতে ব্যবহার করা উচিত যদি এটি প্রয়োজন হয়। MQTT ব্রোকারের MQTT কমান্ডের মাধ্যমে শুধুমাত্র IoT ডিভাইসে ক্যালিব্রেশন ধ্রুবক লেখা যায়।

দ্রষ্টব্য: প্রাথমিকভাবে ডিভাইসটি সেট আপ করার জন্য এখানে Arduino IDE এর সাথে SPIFFS কিভাবে ব্যবহার করতে হবে তার সম্পূর্ণ বিবরণের জন্য এখানে দেখুন।

mDNS সার্ভার

আইওটি ডিভাইসটি ওয়াইফাই স্টেশন হিসাবে আপনার ওয়াইফাই নেটওয়ার্কের সাথে সংযোগ স্থাপন করতে ব্যর্থ হলে এবং এর পরিবর্তে একটি ঘরোয়া ওয়াইফাই রাউটারের অনুরূপ একটি ওয়াইফাই অ্যাক্সেস পয়েন্ট হয়ে উঠলে এই কার্যকারিতা চালু হয়। এই ধরনের রাউটারের ক্ষেত্রে আপনি সাধারণত আপনার ব্রাউজার ইউআরএল বারে সরাসরি 192.168.1.1 (সাধারণত বাক্সে লেবেলে মুদ্রিত লেবেলে মুদ্রিত) এর আইপি অ্যাড্রেস দিয়ে এটির সাথে সংযোগ স্থাপন করবেন যেখানে আপনি প্রবেশ করার জন্য একটি লগইন পৃষ্ঠা পাবেন ব্যবহারকারীর নাম এবং পাসওয়ার্ড আপনাকে ডিভাইস কনফিগার করার অনুমতি দেয়।

এপি মোডে (অ্যাক্সেস পয়েন্ট মোডে) ইএসপি 8266 এর জন্য ডিভাইসটি আইপি অ্যাড্রেস 192.168.4.1 এ ডিফল্ট হয়ে যায়, তবে এমডিএনএস সার্ভার চলার সাথে সাথে আপনাকে ব্রাউজার ইউআরএল বারে মানুষের বন্ধুত্বপূর্ণ নাম 'SENSORSVR.local' লিখতে হবে। 'সেন্সর কনফিগারেশন হোম পেজ'।

MQTT ক্লায়েন্ট

MQTT ক্লায়েন্ট সমস্ত প্রয়োজনীয় কার্যকারিতা প্রদান করে; আপনার আইওটি নেটওয়ার্ক এমকিউটিটি ব্রোকারের সাথে সংযোগ করুন, আপনার পছন্দের বিষয়গুলিতে সাবস্ক্রাইব করুন এবং প্রদত্ত বিষয়ে পে -লোড প্রকাশ করুন। সংক্ষেপে এটি আইওটি কোর কার্যকারিতা প্রদান করে।

HTTP ওয়েব সার্ভার

উপরে উল্লিখিত হিসাবে, যদি আইওটি ডিভাইসটি ওয়াইফাই নেটওয়ার্কের সাথে সংযোগ করতে অক্ষম হয় যার এসএসআইডি, পি/ডাব্লু ইত্যাদি এসপিআইএফএফএস -এ থাকা সুরক্ষা তথ্য ফাইলে সংজ্ঞায়িত করা হয় তবে ডিভাইসটি অ্যাক্সেস পয়েন্টে পরিণত হবে। একবার অ্যাক্সেস পয়েন্ট দ্বারা সরবরাহিত ওয়াইফাই নেটওয়ার্কের সাথে সংযুক্ত হয়ে গেলে, একটি HTTP ওয়েব সার্ভারের উপস্থিতি আপনাকে সরাসরি ডিভাইসটির সাথে সংযোগ স্থাপন করতে এবং একটি HTTP ওয়েব ব্রাউজার ব্যবহারের মাধ্যমে এর কনফিগারেশন পরিবর্তন করতে দেয় যার উদ্দেশ্য হচ্ছে 'সেন্সর কনফিগারেশন হোম' পৃষ্ঠা 'ওয়েব পেজ যা SPIFFS- তেও থাকে।

ওয়াইফাই স্টেশন

এই কার্যকারিতাটি আইওটি ডিভাইসকে নিরাপত্তা তথ্য ফাইলের প্যারামিটার ব্যবহার করে একটি ঘরোয়া ওয়াইফাই নেটওয়ার্কের সাথে সংযোগ স্থাপনের ক্ষমতা দেয়, এটি ছাড়া আপনার আইওটি ডিভাইস এমকিউটিটি ব্রোকারে সাবস্ক্রাইব/প্রকাশ করতে পারবে না

ওয়াইফাই অ্যাক্সেস পয়েন্ট

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

এই অ্যাক্সেস পয়েন্টটি একটি SSID = "SENSOR" + IoT ডিভাইসের MAC ঠিকানার শেষ dig টি সংখ্যা সম্প্রচার করে। এই বন্ধ নেটওয়ার্কের পাসওয়ার্ডটি কল্পনাপ্রসূতভাবে 'পাসওয়ার্ড' নামে পরিচিত

ধাপ 3: সফ্টওয়্যার ওভারভিউ

সফটওয়্যার ওভারভিউ
সফটওয়্যার ওভারভিউ
সফটওয়্যার ওভারভিউ
সফটওয়্যার ওভারভিউ

এই সোর্স কোডটি সফলভাবে কম্পাইল করার জন্য আপনার নিম্নলিখিত অতিরিক্ত লাইব্রেরির প্রয়োজন হবে;

PubSubClient.h

  • লিখেছেন: নিক ও'লারি
  • উদ্দেশ্য: প্রদত্ত ব্রোকারের সাহায্যে MQTT বিষয় প্রকাশ বা সাবস্ক্রাইব করতে ডিভাইসটিকে সক্ষম করে
  • থেকে:

DHT.h

  • লিখেছেন: অ্যাডাফ্রুট
  • উদ্দেশ্য: DHT তাপমাত্রা/আর্দ্রতা সেন্সরের জন্য লাইব্রেরি
  • থেকে:

কোড ওভারভিউ

সফ্টওয়্যারটি রাষ্ট্রীয় মেশিন ব্যবহার করে যা উপরের ছবি 1 এ দেখানো হয়েছে (নীচে প্রদত্ত উত্সের সম্পূর্ণ অনুলিপি)। নিচে 5 টি প্রধান রাজ্য রয়েছে;

  • এটা

    এই প্রারম্ভিক অবস্থাটি পাওয়ার আপের পরে প্রথম রাজ্যে প্রবেশ করেছে।

  • NOCONFIG

    একটি অবৈধ বা অনুপস্থিত secvals.txt ফাইল ধরা পড়লে এই অবস্থায় প্রবেশ করা হয়

  • NW মুলতুবি

    এই রাজ্যটি ক্ষণস্থায়ী, যখন কোন ওয়াইফাই নেটওয়ার্ক সংযোগ নেই তখন প্রবেশ করে

  • পেন্ডিং এমকিউটিটি

    এই রাজ্যটি ক্ষণস্থায়ী, একটি ওয়াইফাই নেটওয়ার্ক সংযোগ তৈরি হওয়ার পরে প্রবেশ করা হয়েছে এবং যখন সেই নেটওয়ার্কে এমকিউটিটি ব্রোকারের কোন সংযোগ নেই।

  • সক্রিয়

    ওয়াইফাই নেটওয়ার্ক সংযোগ এবং এমকিউটিটি ব্রোকার সংযোগ উভয়ই প্রতিষ্ঠিত হয়ে গেলে এটি স্বাভাবিক কর্মক্ষম অবস্থা। এই অবস্থাতেই সেন্সরের তাপমাত্রা এবং আর্দ্রতা কার্যকারিতা এমকিউটিটি ব্রোকারের কাছে প্রকাশিত হয়।

রাজ্যের মধ্যে রূপান্তর নিয়ন্ত্রণকারী ঘটনাগুলি উপরের ছবি 1 এ বর্ণিত হয়েছে। রাজ্যের মধ্যে স্থানান্তরও নিম্নলিখিত SecVals পরামিতি দ্বারা নিয়ন্ত্রিত হয়;

  • প্রথম এমকিউটিটি ব্রোকার আইপি ঠিকানা। বিন্দুযুক্ত দশমিক আকারে AAA. BBB. CCC. DDD
  • দ্বিতীয় MQTT ব্রোকার পোর্ট। পূর্ণসংখ্যা আকারে।
  • তৃতীয় MQTT ব্রোকার সংযোগ STA মোড থেকে AP মোডে যাওয়ার আগে করার চেষ্টা করে। পূর্ণসংখ্যা আকারে।
  • 4th র্থ ওয়াইফাই নেটওয়ার্ক SSID। মুক্ত আকারে পাঠ্য।
  • ৫ ম ওয়াইফাই নেটওয়ার্ক পাসওয়ার্ড। মুক্ত আকারে পাঠ্য।

উপরে উল্লিখিত হিসাবে যদি আইওটি ডিভাইসটি ওয়াইফাই স্টেশন হিসাবে ওয়াইফাই নেটওয়ার্কের সাথে সংযোগ করতে অক্ষম হয় তবে এসএসআইডি এবং পি/ডাব্লু স্পাইফফসে অনুষ্ঠিত secvals.txt এ সংজ্ঞায়িত করা হয়েছে আইওটি ডিভাইস একটি অ্যাক্সেস পয়েন্ট হয়ে যাবে। একবার এই অ্যাক্সেস পয়েন্টের সাথে সংযুক্ত হলে এটি Pic 2 (যেমন 'SENSORSVR.local' অথবা 192.168.4.1 আপনার ব্রাউজারের ইউআরএল অ্যাড্রেস বারে প্রবেশ করে) 'সেন্সর কনফিগারেশন হোম পেজ' দেখাবে। এই হোম পেজটি HTTP ব্রাউজারের মাধ্যমে সেন্সরের পুনর্গঠনের অনুমতি দেয়।

সক্রিয় অবস্থায় থাকা অবস্থায় রিমোট অ্যাক্সেস

একবার MQTT ব্রোকারের সাথে সংযুক্ত হয়ে গেলে MQTT বিষয় প্রকাশনার মাধ্যমে ডিভাইসটিকে পুনরায় ক্যালিব্রেট করা এবং পুনরায় কনফিগার করাও সম্ভব। Calvals.txt ফাইলে R/W অ্যাক্সেস আছে এবং secvals.txt শুধুমাত্র লেখার অ্যাক্সেস প্রকাশ করেছে।

ব্যবহারকারী ডিবাগ

বুট ক্রম চলাকালীন IoT ডিভাইস নেতৃত্বে নিম্নলিখিত ডিবাগ প্রতিক্রিয়া দেয়

  • 1 ছোট ফ্ল্যাশ: SPIFFS (secvals.txt) এ কোন কনফিগ ফাইল নেই
  • 2 সংক্ষিপ্ত ঝলকানি: IoT ডিভাইস ওয়াইফাই নেটওয়ার্কে সংযোগ করার চেষ্টা করছে
  • ক্রমাগত আলোকসজ্জা: IoT ডিভাইস MQTT ব্রোকারের সাথে সংযোগ স্থাপনের চেষ্টা করছে
  • বন্ধ: ডিভাইস সক্রিয়
  • নোট 1: 'সেন্সর কনফিগারেশন হোম পেজ' নিরাপদ সকেট ব্যবহার করে না এবং তাই আপনার নেটওয়ার্ক নিরাপদ থাকার উপর নির্ভর করে।
  • নোট 2: প্রতিটি আইওটি ডিভাইস প্রোগ্রাম করার জন্য এমকিউটিটি স্ট্রিং ডাউনলোড করার আগে সম্পাদনার প্রয়োজন হবে। এর কারণ হল সেন্সরের সংখ্যা এমকিউটিটি টপিক স্ট্রিংয়ে এম্বেড করা হয়েছে। যেমন। 'WFD/THSen/100/HumdStatus/1' আমার 6 টি ডিভাইসের জন্য তাদের যথাক্রমে 1… 6 নম্বর দেওয়া হয়েছে।

ধাপ 4: সেন্সর ক্রমাঙ্কন

সেন্সর ক্রমাঙ্কন
সেন্সর ক্রমাঙ্কন
সেন্সর ক্রমাঙ্কন
সেন্সর ক্রমাঙ্কন

যখন IoT ডিভাইসটি ক্ষমতায় আসে, তখন বুট ক্রমের অংশ হিসেবে 'cavals.txt' নামে একটি ফাইল SPIFFS থেকে পড়া হয়। এই ফাইলের বিষয়বস্তু হল পিক -১ -এ উল্লিখিত ক্রমাঙ্কন ধ্রুবকগুলি। আরও একটি মান রয়েছে যা ডিভাইসের জন্য একটি রিপোর্টিং কৌশল নির্ধারণ করে এবং সেন্সরগুলি ক্রমাঙ্কন করার জন্য অনুসরণ করা পদ্ধতি সহ নীচে বর্ণনা করা হয়েছে।

রিপোর্টিং কৌশল এই প্যারামিটারটি নির্ধারণ করে যে রিমোট সেন্সর কিভাবে কোন পরিবেষ্টিত প্যারামেট্রিক স্থানীয় পরিবর্তন করে তা রিপোর্ট করে। যদি 0 এর মান নির্বাচন করা হয় তাহলে রিমোট সেন্সর তাপমাত্রা বা আর্দ্রতার মানগুলিতে যে কোনো পরিবর্তন সেন্সর পড়ার সময় প্রকাশ করবে (প্রায় প্রতি 10 সেকেন্ড)। অন্য কোন মান 1… 60 মিনিটের পরিবর্তনের প্রকাশকে বিলম্বিত করবে। এই প্যারামিটারটি পরিবর্তন করা MQTT নেটওয়ার্ক ট্রাফিকের অপ্টিমাইজেশনের অনুমতি দেয়।

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

সেন্সরগুলিকে ক্যালিব্রেট করার জন্য তারা একে অপরের সাথে ঘনিষ্ঠ শারীরিক সান্নিধ্যে স্থাপন করা হয়েছে উপরের ছবি 2 এ দেখানো হয়েছে। তাদের পাশে আমি একটি ডিএমএম স্থাপন করেছি একটি ক্যালিব্রেটেড থার্মোকল সংযুক্ত (ফ্লুক 87 ভি) এবং তারপর ওপেনহ্যাব তাপমাত্রার মাধ্যমে প্রতিটি ডিভাইস থেকে আউটপুট পর্যবেক্ষণ করেছি একটি ভাল তাপমাত্রা সুইং পেতে একটি দিনের মধ্যে ট্রেন্ড পৃষ্ঠা। আমি স্ট্যাটিক অফসেট (এলিভেটেড জিরো 'সি') এবং ক্যালিব্রেটেড থার্মোকল থেকে আসা মানের সাথে সম্পর্কিত প্রতিটি ডিভাইসের পরিবর্তনের হার (লাভ, বা গ্রাফ 'এম' এর opeাল) উভয়ই লক্ষ্য করেছি। আমি তখন সহজ y = mx+c সম্পর্ক গণনা করেছিলাম (আমি দেখেছি এটি একটি সরল রেখার গ্রাফের কাছাকাছি অনুমান হিসাবে যথেষ্ট রৈখিক ছিল) এবং MQTTSpy এর মাধ্যমে ক্রমাঙ্কন ধ্রুবকগুলির মধ্যে কোন প্রয়োজনীয় সংশোধন প্রোগ্রাম করা।

ক্রমাঙ্কন সফল হয়েছে তা নিশ্চিত করার জন্য ডিভাইসগুলি আরও 24 ঘন্টা পর্যবেক্ষণ করা হয়েছিল। যার একটি ইঙ্গিত ছিল ওপেনহ্যাব তাপমাত্রা প্রবণতা পৃষ্ঠায় তাপমাত্রার চিহ্নগুলি সবই একে অপরের উপরে ছিল।

অবশ্যই যদি আপনি কেবলমাত্র তাপমাত্রার একটি আনুমানিকতায় আগ্রহী হন তবে আপনি সমস্ত ক্রমাঙ্কন মানগুলিকে ডিফল্ট হিসাবে রেখে দিতে পারেন।

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

যেহেতু আমার কাছে স্থানীয় পরিবেষ্টিত আর্দ্রতা সঠিকভাবে রেকর্ড বা এমনকি নিয়ন্ত্রণ করার কোন উপায় নেই, সেন্সরগুলি ক্যালিব্রেট করার জন্য আমি উপরের মত একই পদ্ধতি ব্যবহার করেছি, সমস্ত ডিভাইসকে ঘনিষ্ঠ শারীরিক সান্নিধ্যে রেখে (ছবি 2) এবং কেবল OpenHAB এর মাধ্যমে তাদের আউটপুট পর্যবেক্ষণ করে আর্দ্রতা পাতা। আমি তখন ক্রমাঙ্কন রেফারেন্স হিসাবে ডিভাইস #1 বাছাই করেছি এবং এর সাথে সম্পর্কিত সমস্ত ডিভাইসগুলি ক্যালিব্রেট করেছি।

ধাপ 5: MQTT টপিক নামকরণ কনভেনশন

MQTT টপিক নামকরণ কনভেনশন
MQTT টপিক নামকরণ কনভেনশন
MQTT টপিক নামকরণ কনভেনশন
MQTT টপিক নামকরণ কনভেনশন

অনেক ট্রায়াল এবং ত্রুটির পরে আমি উপরের ছবি 1 এ বর্ণিত বিষয়ের নামকরণ কনভেনশনে স্থির হয়েছি।

যথা, 'AccessMethod/DeviceType/WhichDevice/Action/SubDevice'

এটি নিখুঁত নয় কিন্তু এটি একটি প্রদত্ত প্যারামেট্রিক মানের জন্য সমস্ত সেন্সর আউটপুট দেখতে দরকারী ফিল্টার প্রয়োগ করার অনুমতি দেয় যাতে MQTTSpy এর সাথে উপরের ছবি 2 এর মতো সহজে তুলনা করা যায়। এটি প্রদত্ত আইওটি ডিভাইসের মধ্যে কার্যকারিতার যুক্তিসঙ্গতভাবে এক্সটেনসিবল লজিক্যাল গ্রুপিং সমর্থন করে।

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

দ্রষ্টব্য: যদি আপনি নিশ্চিত না হন কিভাবে MQTTSpy ব্যবহার করবেন এখানে দেখুন 'একটি MQTT ব্রোকার সেট আপ করা। পার্ট 2: আইওটি, হোম অটোমেশন '

ধাপ 6: OpenHAB কনফিগারেশন

OpenHAB কনফিগারেশন
OpenHAB কনফিগারেশন
OpenHAB কনফিগারেশন
OpenHAB কনফিগারেশন
OpenHAB কনফিগারেশন
OpenHAB কনফিগারেশন

আমি আমার আগের নির্দেশে (এখানে) দেওয়া OpenHAB কনফিগারেশন পরিবর্তন করেছি এবং এর জন্য পৃথক এন্ট্রি যোগ করেছি;

  • গ্যারেজ,
  • হল,
  • বসার ঘর,
  • রান্নাঘর
  • অতিথি বেডরুমের
  • প্রধান শোবার - ঘর

সাইট ম্যাপে উপরের ছবি 1 দেখুন।

এই প্রতিটি এন্ট্রিগুলির জন্য আমি স্থানীয় পরিবেষ্টিত মানগুলি প্রকাশ করে পৃথক সাইটম্যাপ যুক্ত করেছি (উপরের ছবি 2 দেখুন);

  • তাপমাত্রা
  • আর্দ্রতা
  • তাপ সূচক

আমি সেন্সর মধ্যে মাউন্ট স্থানীয় নেতৃত্ব নিয়ন্ত্রণ একটি সুইচ অন্তর্ভুক্ত।

ছবি 3… 5 তাপমাত্রা, আর্দ্রতা এবং RSSI (রিসিভড সিগন্যাল স্ট্রেংথ ইঙ্গিত, মূলত সেন্সর কতটা ভালভাবে ওয়াইফাই নেটওয়ার্ক দেখতে পারে তার একটি পরিমাপ) এর জন্য 24 ঘন্টা সময়কালে পৃথক লাইভ ট্রেস দেখায়।

ছবি 6 একটি সপ্তাহে একটি দীর্ঘমেয়াদী আর্দ্রতা প্রবণতার উদাহরণ দেয়।

দ্রষ্টব্য 1: যদি আপনি ওপেনহ্যাব কীভাবে ব্যবহার করবেন তা নিশ্চিত না হন তবে এখানে দেখুন 'ওপেনহ্যাব সেট আপ এবং কনফিগার করা। পার্ট 6: আইওটি, হোম অটোমেশন '

নোট 2: পরিবর্তিত সাইটম্যাপ, নিয়ম এবং আইটেম ফাইল, আইকন ইত্যাদির একটি অনুলিপি নীচে দেওয়া হয়েছে।

ধাপ 7: নকশা পরীক্ষা করা

নকশা পরীক্ষা করা হচ্ছে
নকশা পরীক্ষা করা হচ্ছে
নকশা পরীক্ষা করা হচ্ছে
নকশা পরীক্ষা করা হচ্ছে

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

যাইহোক, প্রধান রাজ্য মেশিনটি পরীক্ষা করা একটু কঠিন বলে প্রমাণিত হয়েছে কারণ এটি ওয়াইফাই নেটওয়ার্কের উপস্থিতি বা অনুপস্থিতির উপর নির্ভর করে, যার জন্য নির্দিষ্ট প্যারামিটার সেট প্রয়োজন। এর জন্য হোম নেটওয়ার্ক ব্যবহার করা সহজ ছিল না।

এই সমস্যাটি সমাধান করার জন্য আমি যথাক্রমে 'DummyNet1' এবং 'DummyNet2' এর SSIDs দিয়ে অ্যাক্সেস পয়েন্ট (ছবি 1) হিসাবে কনফিগার করা ESP8266-01 ব্যবহার করে আমার নিজস্ব ডামি নেটওয়ার্ক তৈরি করেছি। নেতৃত্বের উপরে ছবি 2 এ সার্কিট ব্যবহার করে একটি ইঙ্গিত দেয় যে যদি একটি IoT ডিভাইস এর সাথে সংযুক্ত থাকে। যদিও এটি একটি নিখুঁত পরীক্ষার সমাধান ছিল না (যেমন। এই প্রতিটি ডামি ওয়াইফাই নেটওয়ার্কের মধ্যে একটি MQTT সার্ভার ছিল না) রাষ্ট্রীয় মেশিনটি সম্পূর্ণভাবে পরীক্ষা করা সম্ভব ছিল।

আমি নীচে সোর্স কোডের একটি অনুলিপি অন্তর্ভুক্ত করেছি।

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

সাধারণ

IoT ডিভাইসের সফটওয়্যারটি অনেক মাস ধরে নির্ভরযোগ্যভাবে কাজ করে এখন গৃহস্থালি বিদ্যুৎ বিভ্রাট (প্রধানত আমার দ্বারা সৃষ্ট) থেকে পুনরুদ্ধার করছে। সামগ্রিকভাবে তারা বেশ শক্তিশালী ডিভাইস যা সামঞ্জস্যপূর্ণ এবং নির্ভুল তথ্য প্রদান করে।

উন্নতি

SPIFFS- এ পড়ার এবং লেখার জন্য সফটওয়্যার রুটিন তৈরিতে আমি কোড লিখেছি যা আমার দৃষ্টিভঙ্গির চেয়ে কিছুটা বেশি উন্নত হতে পারে, অকার্যকর পয়েন্টার, পুনastনির্মাণ এবং পয়েন্টারগুলিতে পয়েন্টার ব্যবহার করে। যদিও এটি খুব নমনীয় এবং কাজটি ভাল করে, পরের বার আমি JSON ব্যবহার করতে পারি ConfigFile.ino এর লাইনে এটি কিছুটা সহজ রাখতে।

  • আরডুইনো জিআইটি হাব কোর

    https://github.com/esp8266/Arduino

  • ConfigFile.ino উৎস

    https://github.com/esp8266/Arduino/tree/master/libraries/esp8266/examples/ConfigFile

ইচ্ছেতালিকা

আমি ব্রোকারের সাথে সংযোগ স্থাপনের জন্য একটি এমডিএনএস ক্লায়েন্ট ব্যবহার করার ইচ্ছা করেছিলাম কিন্তু লাইব্রেরিটি খুব ঝাপসা ছিল। এই কারণেই 'MQTTSVR.local' এর বিপরীতে MQTT ব্রোকারের IP ঠিকানা উল্লেখ করা প্রয়োজন। ভবিষ্যতে এমডিএনএস লাইব্রেরি আরও স্থিতিশীল হয়ে উঠলে আমি ডিভাইসে এই ক্ষমতা যোগ করব।

সেন্সরগুলির বিরুদ্ধে ক্যালিব্রেট করার জন্য নির্ভুলভাবে পর্যবেক্ষণ এবং পরিবেষ্টিত আর্দ্রতা নিয়ন্ত্রণের একটি মাধ্যম থাকলে ভাল হত। তবে এটি বলেছে যে নির্বাচিত ক্রমাঙ্কন পদ্ধতি ভাল আপেক্ষিক রিডিং দেয় এবং DHT22 ডেটা শীটের স্পেসিফিকেশনের সাথে সঙ্গতিপূর্ণভাবে সঠিক বলে মনে হয়।

অবশেষে, সফ্টওয়্যারের জটিলতা দেখে আমি একটি সম্পূর্ণ পরিবর্তন সময়সাপেক্ষ হয়ে ওঠার পরে কোডটি সম্পূর্ণভাবে পরীক্ষা করে দেখতে পেলাম। আমি পরবর্তী তারিখে স্বয়ংক্রিয় পরীক্ষার বিষয়টি বিবেচনা করতে পারি।

ধাপ 9: রেফারেন্স ব্যবহৃত

আমি এই নির্দেশিকা একসাথে রাখার জন্য নিম্নলিখিত উৎসগুলি ব্যবহার করেছি;

PubSubClient.h

  • লিখেছেন: নিক ও'লারি
  • থেকে:

DHT.h

  • লিখেছেন: অ্যাডাফ্রুট
  • থেকে:

DHT22 ডেটশীট

প্রস্তাবিত: