সুচিপত্র:

ESP32: 3 ধাপ সহ ব্লুটুথ (BLE) কিভাবে ব্যবহার করবেন
ESP32: 3 ধাপ সহ ব্লুটুথ (BLE) কিভাবে ব্যবহার করবেন

ভিডিও: ESP32: 3 ধাপ সহ ব্লুটুথ (BLE) কিভাবে ব্যবহার করবেন

ভিডিও: ESP32: 3 ধাপ সহ ব্লুটুথ (BLE) কিভাবে ব্যবহার করবেন
ভিডিও: Turn ON and OFF LED using mobile App using Bluetooth on ESP32 board 2024, জুন
Anonim

#####বিঃদ্রঃ#####

এই নির্দেশাবলীতে দেখানো পদ্ধতিটি পুরানো এবং পুরানো। সর্বশেষ পদ্ধতির জন্য এই ভিডিওটি দেখুন।

###############

যদিও ESP32 একটি বিস্তৃত বৈশিষ্ট্য তালিকা (উইকিপিডিয়া) নিয়ে গর্ব করে, সবচেয়ে বড় বৈশিষ্ট্য যা দৃষ্টি আকর্ষণ করে তা হল BLE সমর্থন সহ অন্তর্নির্মিত ব্লুটুথ v4.2। কিন্তু সেই বিবৃতি একটি বিভ্রান্তিকর হতে পারে, যখন হার্ডওয়্যার আছে, ব্লুটুথ ব্যবহারের জন্য সফটওয়্যার সমর্থন অনুপস্থিত। (এটি উন্নয়নাধীন)

যারা BLE কি জানেন না তাদের জন্য এটি ব্লুটুথ লো এনার্জি। এটি একটি ব্লুটুথ প্রোটোকল যা "ক্লাসিক" ব্লুটুথের তুলনায় যথেষ্ট কম বিদ্যুৎ খরচ বাড়ায়।

এই নির্দেশাবলীতে আমি আপনাকে দেখাবো কিভাবে আপনি BLE এর মাধ্যমে আপনার ফোনে ESP32 বোর্ড থেকে ডেটা পাঠানোর জন্য সীমিত (সফ্টওয়্যার) সম্পদ ব্যবহার করতে পারেন।

কিছু অস্বীকৃতি…

আপনি এই গাইডের সাথে আরও এগিয়ে যাওয়ার আগে আমার কয়েকটি উল্লেখযোগ্য বিষয় উল্লেখ করা উচিত..

নোট 1: যখন আমি বলি যে ব্লুটুথ সাপোর্ট এখনও পাওয়া যায় না, তখন আমি বলতে চাচ্ছি আরডুইনো ডেভেলপমেন্ট এনভায়রনমেন্টে।

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

দ্রষ্টব্য 2: আমি যে পদ্ধতিটি ব্যবহার করছি তা অনেকটা কার্যকর এবং BLE কিভাবে আদর্শভাবে কাজ করবে তা নয়। লাইব্রেরি BLE তে পরিষেবা তৈরির জন্য সমর্থন করে এখানে আরডুইনো পরিবেশের জন্য নয়।

একমাত্র জিনিস যা আপনি নির্ভরযোগ্যভাবে করতে পারেন তা হল একটি বীকন তৈরি করা যা এর নামটির বিজ্ঞাপন দেয়। একটি ইউটিউব মন্তব্য এটিকে খুব সুন্দরভাবে লিখেছে: "LOL, একটি নিষ্ঠুর হ্যাক। কিন্তু আপনি কি করতে পারেন?"

নোট 3: আপনি যে ধরনের ডেটা পাঠাতে পারেন তা হল স্ট্রিং।

আপনি স্ট্রিং থেকে এবং অন্য ধরণের ডেটা কোড এবং ডিকোড করার সিদ্ধান্ত নিতে পারেন কিন্তু এটি এই গাইডের সুযোগের বাইরে।

ধাপ 1: উদাহরণ নির্মাণ

Image
Image
উদাহরণ নির্মাণ
উদাহরণ নির্মাণ
উদাহরণ নির্মাণ
উদাহরণ নির্মাণ
উদাহরণ নির্মাণ
উদাহরণ নির্মাণ

আপনি যদি শুধু ব্যাখ্যার জন্য এখানে থাকেন তাহলে আপনি এই ধাপটি এড়িয়ে যেতে পারেন কিন্তু এর মধ্য দিয়ে যাওয়া আপনাকে একটু বেশি স্পষ্টতা দিতে পারে..

প্রথমে আমি একটি উদাহরণ প্রকল্প তৈরি করতে যাচ্ছি এবং তারপরে আমি কীভাবে এটি কাজ করে এবং আপনি কীভাবে ব্লুটুথ যোগাযোগের প্রতিলিপি তৈরি করতে পারেন তা ব্যাখ্যা করার চেষ্টা করব। আমরা একটি বহনযোগ্য তাপমাত্রা সেন্সর তৈরি করব যা আপনার স্মার্টফোনে একটি লাইভ ফিড পাঠায়। বিল্ডটি একক লি-পো-তে কয়েক দিন চলতে পারে এবং সহজেই BLE এর সুবিধাগুলি প্রদর্শন করে।

আপনি আপনার পানীয়গুলিকে অন্তরক করার জন্য মডিউলটিকে কোস্টার হিসাবে ব্যবহার করতে পারেন এবং আপনার পানীয় সর্বোত্তম তাপমাত্রায় পৌঁছানোর সাথে সাথেই একটি বিজ্ঞপ্তি পেতে পারেন। কারণ 40 এর উপরে ডিগ্রি চা পান করতে হলে এটি একটি তামাশা হবে।

আপনার প্রয়োজন একমাত্র হার্ডওয়্যার হল একটি ESP32 বোর্ড এবং একটি ডিজিটাল তাপমাত্রা সেন্সর। আমার বোর্ড বহিরাগত ব্যাটারি সমর্থন করে তাই আমি একটি 3.7v লি-পো ব্যবহার করছি যা আমি কিছু পুরানো ডিভাইস থেকে উদ্ধার করে এই প্রকল্পটিকে পোর্টেবল করতে পারি।

হার্ডওয়্যার

তাপমাত্রা সেন্সরের সংযোগগুলি সহজ। লাল তার 3.3v, কালো সংযোগ স্থল (gnd), হলুদ সংযোগ করে GPIO 2 যা আমার বোর্ডে D9 হিসাবে চিহ্নিত করা হয়। লাল এবং হলুদ তারের মধ্যে একটি 4.7k ওহম প্রতিরোধক সংযুক্ত করুন। আমি প্রতিরোধক ব্যবহার করছি না, পরিবর্তে আমি একটি 3 পিন প্লাগ-সক্ষম টার্মিনাল ব্যবহার করছি যা আমার সেন্সরের সাথে এসেছে। এটি একটি অন্তর্নির্মিত পুল আপ প্রতিরোধক আছে।

লি-পো সত্যিই একটি জেএসটি সংযোগকারী ব্যবহার করে সংযুক্ত করা উচিত কিন্তু আমি একটি কিনতে বিরক্ত করা যাবে না তাই আমি শুধু সংযোগকারী মধ্যে কিছু (মহিলা থেকে মহিলা) জাম্পার তারের মধ্যে জুতা horned এবং ব্যাটারি টার্মিনাল অন্য জোড়া সোল্ডার। এটি একটি নির্ভরযোগ্য সংযোগ এবং একটি অস্থায়ী পাওয়ার সুইচ তৈরি করে।

এখন একটি প্রকল্প ঘের হিসাবে, আমি একটি স্টাইরোফোম ডিস্ক ব্যবহার করছি যা একটি বড় শীট থেকে কাটা হয়েছে। এটি একটি দুর্দান্ত অন্তরক তৈরি করে। আরেকটি ছোট ডিস্ক উপরে আটকে আছে কিন্তু একটু পাশে। এটি তারের অতিরিক্ত দৈর্ঘ্য মোড়ানোর জন্য তাই তারা সব জায়গায় ঝুলছে না। আপনার আঠালো একটি উদার কর্মসংস্থান এবং সেন্সর প্রোবের জন্য একটি ছোট গর্ত পরে, আপনি সফ্টওয়্যার এগিয়ে যেতে প্রস্তুত।

সফটওয়্যার

আপনার যদি ইতিমধ্যেই আরডুইনো আইডিই ইনস্টল না থাকে তাহলে এটি ডাউনলোড করতে এই লিঙ্কে যান। আরডুইনো সফটওয়্যারটি ডিফল্টভাবে বিভিন্ন ESP32 বোর্ডের জন্য বোর্ড সংজ্ঞা সহ আসে না। তাদের এই লিঙ্কে যেতে এবং একটি জিপে ফাইলগুলি ডাউনলোড করতে। আপনাকে তাদের এই স্থানে আনজিপ করতে হবে:

C:/ব্যবহারকারী // নথি/Arduino/হার্ডওয়্যার/espserrif/ESP32

আপনার পিসিতে আপনার ব্যবহারকারীর নাম কোথায়? নিশ্চিত করুন যে বিভিন্ন ফাইল ESP32 ফোল্ডারের অধীনে উপলব্ধ এবং অন্য ফোল্ডারের অধীনে নয়।

এখন যদি আপনি আরডুইনো সফটওয়্যারটি শুরু করেন এবং টুলস-> বোর্ডে যান তাহলে নিচে স্ক্রোল করার সময় আপনাকে বিভিন্ন ESP32 বোর্ড দেখতে হবে।

বেশিরভাগ ডিজিটাল তাপমাত্রা সেন্সর মাইক্রো কন্ট্রোলারের সাথে যোগাযোগের জন্য ওয়ানওয়ায়ার প্রোটোকল ব্যবহার করে তাই আমাদের লাইব্রেরি পেতে হবে। স্কেচ-এ যান> লাইব্রেরি অন্তর্ভুক্ত করুন-> লাইব্রেরি পরিচালনা করুন এবং ওয়ানওয়্যারের জন্য অনুসন্ধান করুন এবং লাইব্রেরি ইনস্টল করুন যা অনেক লেখক দ্বারা। আপনার ওয়ানওয়্যারের হাব দরকার নেই। বাদ দাও.

এখন আপনি এই ধাপের সাথে সংযুক্ত কোডটি ডাউনলোড এবং খুলতে পারেন (temperature-example.ino)।

আপনি যদি আমার থেকে আলাদা সেন্সর ব্যবহার করেন তাহলে আপনাকে সেই অনুযায়ী কোড পরিবর্তন করতে হবে। GetTemp () এর অধীনে কোডটি প্রতিস্থাপন করুন। শুধু চূড়ান্ত তাপমাত্রা ফিরিয়ে দিন

প্রত্যাবর্তন;

তাপমাত্রা ধারণকারী ভাসা কোথায়?

বোর্ডে প্লাগ করুন, সরঞ্জামগুলির নীচে থেকে সঠিক বোর্ড এবং পোর্ট নির্বাচন করুন এবং আপলোড করুন।

যদি কোড আপলোড করতে অস্বীকার করে, সেন্সরটি সংযোগ বিচ্ছিন্ন করুন এবং GPIO 0 কে মাটিতে সংযুক্ত করুন। আপলোড করার পরে সংযোগগুলি পুনরুদ্ধার করুন।

আপনার ইএসপি এখন আপনার কফির তাপমাত্রা বিশ্বের কাছে চিৎকার করা উচিত কিন্তু আপনার এমন একজনের প্রয়োজন যে এটি বুঝতে পারে।

অ্যান্ড্রয়েড অ্যাপ

দু Sorryখিত আইফোন ব্যবহারকারীরা (… সত্যিই নয়)।

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

যদি আপনি 'বিজ্ঞাপন সমর্থিত নয়' বলে একটি ত্রুটি বার্তা পান, ঠিক আছে ক্লিক করুন এবং এটি উপেক্ষা করুন কিন্তু যদি আপনি একটি বার্তা পান যে 'BLE সমর্থিত নয়' তাহলে আপনার ফোনে ব্লুটুথ 4.0 বা উচ্চতর নেই এবং এটি চালাতে সক্ষম হবে না অ্যপ.

নিশ্চিত করুন যে আপনার ফোনে ব্লুটুথ চালু আছে এবং 'স্টার্ট স্ক্যানিং' এ ক্লিক করুন, যতক্ষণ না esp পরিসীমা এবং চালিত থাকে ততক্ষণ আপনি কিছু তাপমাত্রা মান গ্রহণ করতে হবে।

সম্ভাব্য ত্রুটি:

  • -1000:: এর মানে হল যে আপনার ডিভাইসটি ESP খুঁজে পায়নি। নিশ্চিত করুন যে ব্লুটুথ চালু আছে এবং ESP পুনরায় চালু করার চেষ্টা করুন।
  • এসএনএ:: এর মানে হল যে আপনার ফোনটি ইএসপি থেকে ডেটা গ্রহণ করছে কিন্তু ইএসপি নিজেই জিপিআইও ২ তে একটি তাপমাত্রা সেন্সর খুঁজে পায়নি। আপনার বোর্ডের স্কিম্যাটিক্স দিয়ে দুবার চেক করুন যে আপনি GPIO 2 এর সাথে সংযুক্ত এবং D2 হিসেবে চিহ্নিত পিন নয়।

পদক্ষেপ 2: ব্যাখ্যা

কিভাবে BLE সাধারনভাবে কাজ করে তা হল যে একটি ডিভাইস তার নামটি একটি বীকনের মত বিজ্ঞাপন দেয়, এই নামটি যে কেউ দেখতে পারে এবং ডিভাইসটি সনাক্ত করতে ব্যবহৃত হয়। তারপরে ডিভাইসটি বিভিন্ন পরিষেবা তৈরি করতে পারে যা অন্যরা এটির সাথে সংযুক্ত হওয়ার সময় দেখে। এই পরিষেবাগুলিতে ডেটার বিভিন্ন ধারা থাকতে পারে।

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

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

সুতরাং আমি কিভাবে পরিষেবা তৈরি না করে ডেটা পাঠাচ্ছি তা হল বীকন স্টাফিং নামক ওয়াইফাই প্রোটোকলের অনুরূপ কৌশল ব্যবহার করে। এর মানে হল যে আমি বীকন নামের মধ্যেই পাঠানো তথ্য অন্তর্ভুক্ত করছি। এটি আমাকে বীকনের সাথে সংযুক্ত করার জন্য অন্যান্য ডিভাইসের প্রয়োজন ছাড়াই ডেটা বিজ্ঞাপন করতে সক্ষম করে।

ble.begin (beaconMsg); // beaconMsg হল বিজ্ঞাপিত নাম

আমরা ইএসপি বিন্যাসে এর নাম দিয়ে একটি বীকন তৈরি করতে SimpleBLE লাইব্রেরি ব্যবহার করছি। যেখানে নামের শুরুতে 'ESP' সর্বদা অপরিবর্তিত থাকে এবং প্রতি 100 মিলিসেকেন্ডে getValue () ফাংশন দ্বারা ফেরত সর্বশেষ তথ্য দিয়ে প্রতিস্থাপিত হয়।

ফ্লোট getValue () {return sensorValue;}

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

যোগাযোগ শুধুমাত্র একটি উপায়, অ্যাপ্লিকেশন কিছু ফেরত পাঠায় না।

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

দিনের শেষে, এই পদ্ধতিটি সঠিকভাবে বাস্তবায়িত BLE লাইব্রেরির কোন প্রতিস্থাপন নয় কিন্তু এটি সম্পূর্ণরূপে BLE সমর্থন Arduino এ না আসা পর্যন্ত কিছু প্রকল্পের জন্য যথেষ্ট হতে পারে। আশা করি এই নির্দেশিকাগুলি আপনার জন্য কিছু সহায়ক ছিল।

আমাকে এই পণ্যগুলি পাঠানোর জন্য DFRobot.com কে একটি বড় ধন্যবাদ:

  • ইএসপি 32 ফায়ারবিটল বোর্ড
  • ফায়ারবিটল এক্সপেনশন শিল্ড
  • DS18B20 তাপমাত্রা সেন্সর

আমি সম্প্রতি এই লাইব্রেরিটি খুঁজে পেয়েছি। ReadME দাবি করে যে আপনি ডেটা পাওয়ার জন্য অন্যান্য BLE ডিভাইসের সাথে সংযোগ করতে পারেন (নিজের বিজ্ঞাপন দিতে পারবেন না)। আমি এটা চেষ্টা করিনি কিন্তু আপনি আগ্রহী হলে আপনি এটি পরীক্ষা করে দেখতে পারেন।

আপনি প্রকল্পের ভিডিওটি এখানে দেখতে পারেন: ইউটিউব

প্রস্তাবিত: