সুচিপত্র:

লং রেঞ্জ ওয়্যারলেস তাপমাত্রা এবং কম্পন সেন্সর দিয়ে শুরু করা: 7 টি ধাপ
লং রেঞ্জ ওয়্যারলেস তাপমাত্রা এবং কম্পন সেন্সর দিয়ে শুরু করা: 7 টি ধাপ

ভিডিও: লং রেঞ্জ ওয়্যারলেস তাপমাত্রা এবং কম্পন সেন্সর দিয়ে শুরু করা: 7 টি ধাপ

ভিডিও: লং রেঞ্জ ওয়্যারলেস তাপমাত্রা এবং কম্পন সেন্সর দিয়ে শুরু করা: 7 টি ধাপ
ভিডিও: মার্কিন যুক্তরাষ্ট্রে 6 সবচেয়ে ব্যয়বহুল এসইউভি 2024, জুলাই
Anonim
লং রেঞ্জ ওয়্যারলেস তাপমাত্রা এবং কম্পন সেন্সর দিয়ে শুরু করা
লং রেঞ্জ ওয়্যারলেস তাপমাত্রা এবং কম্পন সেন্সর দিয়ে শুরু করা

কখনও কখনও কম্পন অনেক অ্যাপ্লিকেশনে গুরুতর সমস্যার কারণ। মেশিন শ্যাফ্ট এবং বিয়ারিং থেকে শুরু করে হার্ডডিস্কের পারফরম্যান্স পর্যন্ত, কম্পন মেশিনের ক্ষতি, প্রাথমিক প্রতিস্থাপন, কম কর্মক্ষমতা এবং সঠিকতার উপর একটি বড় আঘাত করে। মেশিনে কম্পন পর্যবেক্ষণ এবং সময় সময় বিশ্লেষণ মেশিনের অংশের প্রাথমিক ক্ষতি এবং পরিধান এবং টিয়ার সমস্যা সমাধান করতে পারে।

এই নির্দেশে, আমরা আইওটি দীর্ঘ-পরিসরের ওয়্যারলেস কম্পন এবং তাপমাত্রা সেন্সরগুলিতে কাজ করব। এইগুলি অনেকগুলি বিস্তৃত অ্যাপ্লিকেশন সহ শিল্প গ্রেড সেন্সর।

  • ধাতব কাজ
  • বিদ্যুৎ উৎপাদন
  • মাইনিং
  • খাদ্য ও পানীয়

সুতরাং, এই নির্দেশনায় আমরা নিম্নলিখিতগুলির মধ্য দিয়ে যাচ্ছি:

  • XCTU এবং Labview UI ব্যবহার করে ওয়্যারলেস সেন্সর কনফিগার করা।
  • সেন্সর থেকে কম্পনের মান পাওয়া।
  • Xbee ডিভাইস এবং xbee প্রোটোকলের কাজ বোঝা।
  • ক্যাপটিভ পোর্টাল ব্যবহার করে ওয়াইফাই শংসাপত্র এবং আইপি কনফিগারেশন কনফিগার করা

ধাপ 1: হার্ডওয়্যার এবং সফ্টওয়্যার স্পেসিফিকেশন

হার্ডওয়্যার এবং সফ্টওয়্যার স্পেসিফিকেশন
হার্ডওয়্যার এবং সফ্টওয়্যার স্পেসিফিকেশন
হার্ডওয়্যার এবং সফ্টওয়্যার স্পেসিফিকেশন
হার্ডওয়্যার এবং সফ্টওয়্যার স্পেসিফিকেশন
হার্ডওয়্যার এবং সফ্টওয়্যার স্পেসিফিকেশন
হার্ডওয়্যার এবং সফ্টওয়্যার স্পেসিফিকেশন

হার্ডওয়্যার স্পেসিফিকেশন

  • ওয়্যারলেস কম্পন এবং তাপমাত্রা সেন্সর
  • জিগমো রিসিভার
  • ESP32 BLE/ WiFi ডিভাইস

সফটওয়্যার স্পেসিফিকেশন

  • Arduino IDE
  • ল্যাবভিউ ইউটিলিটি

ধাপ 2: XCTU ব্যবহার করে ওয়্যারলেস সেন্সর এবং জিগমো রিসিভার কনফিগার করা

XCTU ব্যবহার করে ওয়্যারলেস সেন্সর এবং জিগমো রিসিভার কনফিগার করা
XCTU ব্যবহার করে ওয়্যারলেস সেন্সর এবং জিগমো রিসিভার কনফিগার করা
XCTU ব্যবহার করে ওয়্যারলেস সেন্সর এবং জিগমো রিসিভার কনফিগার করা
XCTU ব্যবহার করে ওয়্যারলেস সেন্সর এবং জিগমো রিসিভার কনফিগার করা

প্রতিটি আইওটি ডিভাইসের জন্য একটি যোগাযোগ প্রোটোকল প্রয়োজন যাতে ডিভাইসটিকে ক্লাউডের উপরে রাখা যায় এবং বিভিন্ন ডিভাইসের মধ্যে একটি ওয়্যারলেস ইন্টারফেস স্থাপন করা যায়।

এখানে ওয়্যারলেস সেন্সর এবং জিগমো রিসিভার কম শক্তি এবং দূরপাল্লার সমাধান XBee ব্যবহার করে। XBee একটি ZigBee প্রোটোকল ব্যবহার করে যা 902 থেকে 928 MHz ISM ব্যান্ডগুলিতে অপারেশন নির্দিষ্ট করে।

Xbee XCTU সফটওয়্যার ব্যবহার করে কনফিগার করা যায়

  1. Xbee ডিভাইসটি অনুসন্ধান করুন অথবা উপরের বাম আইকনে ক্লিক করে একটি নতুন Xbee ডিভাইস যুক্ত করুন।
  2. ডিভাইসটি বাম দিকের প্যানেলে তালিকাভুক্ত করা হবে।
  3. সেটিংস দেখতে ডিভাইসে ডাবল ক্লিক করুন।
  4. এখন উপরের ডান কোণে কনসোল আইকনে ক্লিক করুন
  5. আপনি কনসোল আউটপুটে আসা মান দেখতে পারেন
  6. এখানে আমরা 54 বাইট দৈর্ঘ্যের ফ্রেম পাচ্ছি
  7. আসল মান পেতে এই বাইটগুলি আরও হেরফের করা হবে। আসল ধাপে প্রকৃত তাপমাত্রা এবং কম্পনের মানগুলি পাওয়ার পদ্ধতি উল্লেখ করা হয়েছে।

ধাপ 3: ল্যাবভিউ ইউটিলিটি ব্যবহার করে ওয়্যারলেস তাপমাত্রা এবং কম্পন মূল্য বিশ্লেষণ

ল্যাবভিউ ইউটিলিটি ব্যবহার করে ওয়্যারলেস তাপমাত্রা এবং কম্পন মূল্য বিশ্লেষণ
ল্যাবভিউ ইউটিলিটি ব্যবহার করে ওয়্যারলেস তাপমাত্রা এবং কম্পন মূল্য বিশ্লেষণ
ল্যাবভিউ ইউটিলিটি ব্যবহার করে ওয়্যারলেস তাপমাত্রা এবং কম্পন মূল্য বিশ্লেষণ
ল্যাবভিউ ইউটিলিটি ব্যবহার করে ওয়্যারলেস তাপমাত্রা এবং কম্পন মূল্য বিশ্লেষণ

সেন্সর দুটি মোডে চলে

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

এই ল্যাবভিউ UI চমৎকার গ্রাফে মান দেখায়। এটি বর্তমান এবং অতীতের মানগুলি দেখায়। আপনি ল্যাবভিউ ইউআই ডাউনলোড করতে এই লিঙ্কে যেতে পারেন।

রান মোডে যেতে ল্যান্ডিং পেজ মেনু থেকে রান আইকনে ক্লিক করুন।

ধাপ 4: ক্যাপটিভ পোর্টাল ব্যবহার করে DHCP/স্ট্যাটিক আইপি সেটিংস কনফিগার করা

ক্যাপটিভ পোর্টাল ব্যবহার করে ডিএইচসিপি/স্ট্যাটিক আইপি সেটিংস কনফিগার করা
ক্যাপটিভ পোর্টাল ব্যবহার করে ডিএইচসিপি/স্ট্যাটিক আইপি সেটিংস কনফিগার করা
ক্যাপটিভ পোর্টাল ব্যবহার করে ডিএইচসিপি/স্ট্যাটিক আইপি সেটিংস কনফিগার করা
ক্যাপটিভ পোর্টাল ব্যবহার করে ডিএইচসিপি/স্ট্যাটিক আইপি সেটিংস কনফিগার করা
ক্যাপটিভ পোর্টাল ব্যবহার করে ডিএইচসিপি/স্ট্যাটিক আইপি সেটিংস কনফিগার করা
ক্যাপটিভ পোর্টাল ব্যবহার করে ডিএইচসিপি/স্ট্যাটিক আইপি সেটিংস কনফিগার করা

আমরা ক্যাপটিভ পোর্টালটি ব্যবহার করছি ওয়াইফাই শংসাপত্র সংরক্ষণ করতে এবং আইপি সেটিংসের মাধ্যমে ঘুরতে। ক্যাপটিভ পোর্টালে বিস্তারিত পরিচিতির জন্য, আপনি নিম্নলিখিত নির্দেশাবলীর মাধ্যমে যেতে পারেন।

ক্যাপটিভ পোর্টাল আমাদের স্ট্যাটিক এবং ডিএইচসিপি সেটিংসের মধ্যে বেছে নেওয়ার বিকল্প দেয়। কেবল স্ট্যাটিক আইপি, সাবনেট মাস্ক, গেটওয়ে এবং ওয়্যারলেস সেন্সর গেটওয়ের মতো শংসাপত্রগুলি প্রবেশ করুন সেই আইপি তে কনফিগার করা হবে।

ধাপ 5: ক্যাপটিভ পোর্টাল ব্যবহার করে ওয়াইফাই সেটিংস সংরক্ষণ করা

ক্যাপটিভ পোর্টাল ব্যবহার করে ওয়াইফাই সেটিংস সংরক্ষণ করা হচ্ছে
ক্যাপটিভ পোর্টাল ব্যবহার করে ওয়াইফাই সেটিংস সংরক্ষণ করা হচ্ছে

একটি ওয়েবপেজ হোস্ট করা হচ্ছে যেখানে একটি তালিকা উপলব্ধ ওয়াইফাই নেটওয়ার্ক এবং সেখানে আরএসএসআই রয়েছে। ওয়াইফাই নেটওয়ার্ক এবং পাসওয়ার্ড নির্বাচন করুন এবং জমা দিন। শংসাপত্রগুলি EEPROM এ সংরক্ষিত হবে এবং IP সেটিংস SPIFFS- এ সংরক্ষিত হবে। এই নির্দেশাবলী এ আরো পাওয়া যাবে।

ধাপ 6: UbiDots- এ সেন্সর রিডিং প্রকাশ করা

এখানে আমরা ESP 32 গেটওয়ে রিসিভারের সাথে ওয়্যারলেস তাপমাত্রা এবং কম্পন সেন্সর ব্যবহার করছি তাপমাত্রা এবং আর্দ্রতা ডেটা পেতে। আমরা MQTT প্রোটোকল ব্যবহার করে UbiDots- এ ডেটা পাঠাচ্ছি। MQTT একটি পাবলিশ এবং সাবস্ক্রাইব মেকানিজম অনুসরণ করে বরং সেই অনুরোধ এবং সাড়া। এটি HTTP এর চেয়ে দ্রুত এবং নির্ভরযোগ্য। এটি নিম্নরূপ কাজ করে।

ওয়্যারলেস সেন্সর ডেটা পড়া

আমরা ওয়্যারলেস তাপমাত্রা এবং কম্পন সেন্সর থেকে একটি 29-বাইট ফ্রেম পাচ্ছি। প্রকৃত ফ্রেম এবং ভাইব্রেশন ডেটা পেতে এই ফ্রেমটি ব্যবহার করা হয়।

যদি (Serial2.available ()) {data [0] = Serial2.read (); বিলম্ব (কে); যদি (data [0] == 0x7E) {Serial.println ("Got Packet"); যখন (! Serial2.available ()); জন্য (i = 1; i <55; i ++) {data = Serial2.read (); বিলম্ব (1); } if (data [15] == 0x7F) /////// রিকিভ ডেটা সঠিক কিনা তা পরীক্ষা করার জন্য {if (data [22] == 0x08) //////// সেন্সরের ধরন নিশ্চিত করুন সঠিক {rms_x = ((uint16_t)} (((data [24]) << 16) + ((data [25]) << 8) + (data [26]))/100); rms_y = ((uint16_t) (((data [27]) << 16) + ((data [28]) << 8) + (data [29]))/100); rms_z = ((uint16_t) (((data [30]) << 16) + ((data [31]) << 8) + (data [32]))/100); max_x = ((uint16_t) (((data [33]) << 16) + ((data [34]) << 8) + (data [35]))/100); max_y = ((uint16_t) (((data [36]) << 16) + ((data [37]) << 8) + (data [38]))/100); max_z = ((uint16_t) (((data [39]) << 16) + ((data [40]) << 8) + (data [41]))/100);

min_x = ((uint16_t) (((data [42]) << 16) + ((data [43]) << 8) + (data [44]))/100); min_y = ((uint16_t) (((data [45]) << 16) + ((data [46]) << 8) + (data [47]))/100); min_z = ((uint16_t) (((data [48]) << 16) + ((data [49]) << 8) + (data [50]))/100);

cTemp = ((((data [51]) * 256) + data [52])); ফ্লোট ব্যাটারি = ((ডেটা [18] * 256) + ডেটা [19]); ভাসা ভোল্টেজ = 0.00322 * ব্যাটারি; সিরিয়াল.প্রিন্ট ("সেন্সর নম্বর"); Serial.println (তথ্য [16]); সিরিয়াল.প্রিন্ট ("সেন্সর টাইপ"); Serial.println (তথ্য [22]); সিরিয়াল.প্রিন্ট ("ফার্মওয়্যার সংস্করণ"); Serial.println (তথ্য [17]); সিরিয়াল.প্রিন্ট ("সেলসিয়াস তাপমাত্রা:"); Serial.print (cTemp); Serial.println ("C"); সিরিয়াল.প্রিন্ট ("এক্স-অক্ষে RMS কম্পন:"); সিরিয়াল.প্রিন্ট (rms_x); Serial.println ("mg"); সিরিয়াল.প্রিন্ট ("Y- অক্ষে RMS কম্পন:"); সিরিয়াল.প্রিন্ট (rms_y); Serial.println ("mg"); Serial.print ("Z- অক্ষে RMS কম্পন:"); সিরিয়াল.প্রিন্ট (rms_z); Serial.println ("mg");

সিরিয়াল.প্রিন্ট ("এক্স-অক্ষে ন্যূনতম কম্পন:");

Serial.print (min_x); Serial.println ("mg"); সিরিয়াল.প্রিন্ট ("Y- অক্ষে ন্যূনতম কম্পন:"); Serial.print (min_y); Serial.println ("mg"); সিরিয়াল.প্রিন্ট ("Z- অক্ষে ন্যূনতম কম্পন:"); Serial.print (min_z); Serial.println ("mg");

সিরিয়াল.প্রিন্ট ("এডিসি মান:");

Serial.println (ব্যাটারি); সিরিয়াল.প্রিন্ট ("ব্যাটারি ভোল্টেজ:"); সিরিয়াল.প্রিন্ট (ভোল্টেজ); Serial.println ("\ n"); যদি (ভোল্টেজ <1) {Serial.println ("ব্যাটারি প্রতিস্থাপনের সময়"); }}} অন্য {জন্য (i = 0; i <54; i ++) {Serial.print (data ); সিরিয়াল.প্রিন্ট (","); বিলম্ব (1); }}}}

UbiDots MQTT API- এর সাথে সংযুক্ত হচ্ছে

MQTT প্রক্রিয়ার জন্য হেডার ফাইল অন্তর্ভুক্ত করুন।

#অন্তর্ভুক্ত "PubSubClient.h"

MQTT- এর জন্য অন্যান্য ভেরিয়েবল সংজ্ঞায়িত করুন যেমন ক্লায়েন্টের নাম, দালালের ঠিকানা, টোকেন আইডি (আমরা EEPROM থেকে টোকেন আইডি আনছি)

#MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com" নির্ধারণ করুন; চর পেলোড [100]; চর বিষয় [150]; // টোকেন আইডি স্ট্রিং টোকেনআইডি সঞ্চয় করতে ভেরিয়েবল তৈরি করুন;

বিভিন্ন সেন্সর ডেটা সংরক্ষণের জন্য ভেরিয়েবল তৈরি করুন এবং বিষয় সংরক্ষণের জন্য একটি চর ভেরিয়েবল তৈরি করুন

#ডিফাইন VARIABLE_LABEL_TEMPF "tempF" // ভেরিয়েবল লেবেল অ্যাসেসিং

char topic1 [100];

char topic2 [100]; char topic3 [100];

উল্লিখিত MQTT বিষয়ে ডেটা প্রকাশ করুন, পেলোড দেখতে হবে {"tempc": {value: "tempData"}}

sprintf (topic1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (পেলোড, "%s", "");

// পেলোড স্প্রিন্টফ পরিষ্কার করে (পেলোড, "{"%s / ":", VARIABLE_LABEL_TEMPC);

// মান যোগ করে sprintf (পেলোড, "%s {" value / ":%s}", পেলোড, str_cTemp);

// মান যোগ করে sprintf (পেলোড, "%s}", পেলোড);

// অভিধান বন্ধনী বন্ধ করে দেয় Serial.println (পেলোড);

Serial.println (client.publish (topic1, payload)? "Published": "notpublished");

// অন্যান্য বিষয়ের জন্যও একই কাজ করুন

client.publish () UbiDots- এ ডেটা প্রকাশ করে।

ধাপ 7: ডেটা ভিজুয়ালাইজ করা

ডেটা ভিজুয়ালাইজ করা
ডেটা ভিজুয়ালাইজ করা
  • ইউবিডটসে যান এবং আপনার অ্যাকাউন্টে লগইন করুন।
  • উপরে তালিকাভুক্ত ডেটা ট্যাব থেকে ড্যাশবোর্ডে নেভিগেট করুন।
  • এখন নতুন উইজেট যুক্ত করতে "+" আইকনে ক্লিক করুন।
  • তালিকা থেকে একটি উইজেট নির্বাচন করুন এবং একটি পরিবর্তনশীল এবং ডিভাইস যোগ করুন।
  • বিভিন্ন উইজেট ব্যবহার করে সেন্সর ডেটা ড্যাশবোর্ডে দেখা যায়।

সামগ্রিক কোড

HTML এবং ESP32 এর জন্য ওভার কোড এই GitHub সংগ্রহস্থলে পাওয়া যাবে।

  1. এনসিডি ইএসপি 32 ব্রেকআউট বোর্ড।
  2. এনসিডি ওয়্যারলেস তাপমাত্রা এবং আর্দ্রতা সেন্সর।
  3. pubsubclient
  4. UbiDots

প্রস্তাবিত: