সুচিপত্র:

ESP32 Xiaomi Hack - Wirelessly Data পান: Ste টি ধাপ (ছবি সহ)
ESP32 Xiaomi Hack - Wirelessly Data পান: Ste টি ধাপ (ছবি সহ)

ভিডিও: ESP32 Xiaomi Hack - Wirelessly Data পান: Ste টি ধাপ (ছবি সহ)

ভিডিও: ESP32 Xiaomi Hack - Wirelessly Data পান: Ste টি ধাপ (ছবি সহ)
ভিডিও: Morning Routine (10 DIY Ideas, Makeup, Healthy Recipes) 2024, নভেম্বর
Anonim
Image
Image
ESP32 Xiaomi Hack - ওয়্যারলেস ডেটা পান
ESP32 Xiaomi Hack - ওয়্যারলেস ডেটা পান

প্রিয় বন্ধুরা অন্য একটি নির্দেশনায় স্বাগতম! আজ আমরা এই তথ্য পেতে যাচ্ছি কিভাবে এই Xiaomi তাপমাত্রা এবং আর্দ্রতা মনিটর ESP32 বোর্ডের ব্লুটুথ কার্যকারিতা ব্যবহার করে প্রেরণ করে।

আপনি দেখতে পাচ্ছেন, আমি একটি ESP32 বোর্ড এবং একটি 2.8”রঙের TFT ডিসপ্লে ব্যবহার করছি। ডিসপ্লেতে, আমরা তাপমাত্রা এবং আর্দ্রতা প্রদর্শন করি। চমৎকার বিষয় হল যে আমি কোন সেন্সরকে ESP32 বোর্ডের সাথে সংযুক্ত করিনি। আমি এই বাণিজ্যিক শাওমি তাপমাত্রা এবং আর্দ্রতা মনিটর থেকে বেতারভাবে তাপমাত্রা এবং আর্দ্রতা পাই। কিভাবে শীতল হয়! শাওমি ডিভাইসে ডিসপ্লে প্রতি সেকেন্ডে আপডেট হয় কিন্তু আমি শাওমি ডিভাইসে শক্তি সংরক্ষণের জন্য প্রতি 10 সেকেন্ডে ESP32 বোর্ডের সাথে সংযুক্ত ডিসপ্লেটি আপডেট করি।

এই শীতল শিয়াওমি তাপমাত্রা এবং আর্দ্রতা সেন্সরটি তার এলসিডি ডিসপ্লেতে তাপমাত্রা এবং আর্দ্রতা প্রদর্শন করে এবং এটি ব্লুটুথ প্রোটোকল ব্যবহার করে অন্যান্য শাওমি ডিভাইস বা অ্যাপগুলিতে ডেটা প্রেরণ করতে পারে। ডিভাইসগুলি একটি একক AAA ব্যাটারি ব্যবহার করে এবং যেহেতু এটি একটি বাণিজ্যিক পণ্য, তাই ডিভাইসের ব্যাটারি জীবন চমৎকার। এটি একক AAA ব্যাটারিতে কয়েক মাস স্থায়ী হতে পারে, যা আমরা আমাদের DIY প্রকল্পগুলিতে অর্জন করতে পারি না। কয়েক সপ্তাহ আগে, আমি আবিষ্কার করেছি যে কিছু চতুর লোকেরা সেন্সর থেকে ডেটা প্রেরণের জন্য শিয়াওমি যে প্রোটোকল ব্যবহার করে তা ইঞ্জিনিয়ারকে বিপরীত করতে সক্ষম হয়েছিল এবং একটি ESP32 বোর্ড ব্যবহার করে সেই ডেটা পেতে পরিচালিত হয়েছিল। তাই আমি এটি চেষ্টা করেছি, এবং আপনি দেখতে পারেন এটি কাজ করে!

ধাপ 1: সমস্ত যন্ত্রাংশ পান

সব যন্ত্রাংশ পান
সব যন্ত্রাংশ পান

আসুন এখন দেখি কিভাবে এই প্রকল্পটি তৈরি করা যায়। আমাদের একটি ESP32 বোর্ড, একটি 2.8”ILI9341 ডিসপ্লে, Xiaomi তাপমাত্রা এবং আর্দ্রতা সেন্সর, একটি ব্রেডবোর্ড এবং কিছু তারের প্রয়োজন।

এই নির্দেশাবলীতে আমি যে অংশগুলি ব্যবহার করতে যাচ্ছি তার কিছু লিঙ্ক এখানে দেওয়া হল।

  • ESP32 ▶
  • 2.8 "প্রদর্শন ▶
  • শাওমি সেন্সর ▶
  • ব্রেডবোর্ড ▶
  • তারের ▶
  • ইউএসবি মিটার ▶
  • পাওয়ারব্যাঙ্ক ▶

ধাপ 2: ESP32 বোর্ড

Image
Image
ইএসপি 32 বোর্ড
ইএসপি 32 বোর্ড

আপনি যদি এর সাথে পরিচিত না হন, ESP32 চিপ হল জনপ্রিয় ESP8266 চিপের উত্তরাধিকারী যা আমরা অতীতে বহুবার ব্যবহার করেছি। ESP32 একটি পশু! এটি দুটি 32 টি প্রসেসিং কোর অফার করে যা 160MHz এ কাজ করে, প্রচুর পরিমাণে মেমরি, ওয়াইফাই, ব্লুটুথ এবং অন্যান্য বৈশিষ্ট্যগুলি প্রায় 7 $ খরচ সহ! আশ্চর্যজনক জিনিস!

এই বোর্ডের জন্য আমি প্রস্তুত করেছি বিস্তারিত পর্যালোচনা দেখুন। আমি এই নির্দেশাবলীতে ভিডিও সংযুক্ত করেছি। এটি বুঝতে সাহায্য করবে কেন এই চিপ আমাদের চিরকালের জন্য জিনিস তৈরির পদ্ধতি পরিবর্তন করবে! ESP32 সম্পর্কে সবচেয়ে উত্তেজনাপূর্ণ জিনিসগুলির মধ্যে একটি হল যে যদিও এটি এত শক্তিশালী, এটি একটি গভীর ঘুমের মোড প্রদান করে যার জন্য শুধুমাত্র 10μΑ কারেন্ট প্রয়োজন। এটি ESP32 কে কম বিদ্যুতের অ্যাপ্লিকেশনের জন্য আদর্শ চিপে পরিণত করে।

ধাপ 3: 2.8 "Arduino এবং ESP32 এর জন্য TFT প্রদর্শন

Image
Image
2.8
2.8
2.8
2.8
2.8
2.8

ডিসপ্লেটি বড়, এবং এটি 320x240 পিক্সেলের রেজোলিউশন অফার করে। আমার পছন্দের একটি ডিসপ্লের তুলনায়, 1.8”কালার টিএফটি ডিসপ্লে আপনি এটিকে অনেক বড় দেখতে পারেন। স্ক্রিনটি স্পর্শ কার্যকারিতাও দেয় যা একটি অতিরিক্ত বোনাস এবং পিছনে একটি এসডি কার্ড স্লট। এটি SPI ইন্টারফেস ব্যবহার করে, তাই Arduino বা ESP32 বোর্ডের সাথে সংযোগ খুবই সহজবোধ্য। ডিসপ্লের খরচ তুলনামূলকভাবে কম; এর দাম প্রায় 11 ডলার যা আমার মতে এই ডিসপ্লেটি যা দেয় তার ন্যায্য মূল্য।

এই ডিসপ্লের মতো আরেকটি বিষয় হল যে এটি টাচ ডিসপ্লের মতো ieldাল হিসাবে আসে না যা আমরা এতদিন ব্যবহার করছিলাম। এইভাবে, আমরা ডিসপ্লেটিকে যে কোন বোর্ড, Arduino Pro mini, STM32, ESP8266, এবং ESP32 এর সাথে সংযুক্ত করতে পারি। এটি খুবই গুরুত্বপূর্ণ কারণ এখন আমাদের একটি স্বল্পমূল্যের ডিসপ্লে আছে যা আমরা প্রতিটি বোর্ডের সাথে ব্যবহার করতে পারি। এখন পর্যন্ত, আমরা এই বোর্ডগুলির সাথে একমাত্র স্পর্শ প্রদর্শন ব্যবহার করতে পারতাম নেক্সটেশন ডিসপ্লে যা বেশি ব্যয়বহুল, এবং সৎ হওয়ার জন্য যদিও আমি সেগুলি সময় সময় ব্যবহার করি, আমি সেগুলি সত্যিই পছন্দ করি না।

ধাপ 4: ডিসপ্লে সংযুক্ত করা

ডিসপ্লে সংযুক্ত করা হচ্ছে
ডিসপ্লে সংযুক্ত করা হচ্ছে
ডিসপ্লে সংযুক্ত করা হচ্ছে
ডিসপ্লে সংযুক্ত করা হচ্ছে
ডিসপ্লে সংযুক্ত করা হচ্ছে
ডিসপ্লে সংযুক্ত করা হচ্ছে
ডিসপ্লে সংযুক্ত করা হচ্ছে
ডিসপ্লে সংযুক্ত করা হচ্ছে

প্রথমে, আমাদের ESP32 বোর্ডকে 2.8”ডিসপ্লেতে সংযুক্ত করতে হবে। আপনি Instructable এর সাথে সংযুক্ত পরিকল্পিত খুঁজে পেতে পারেন। আমি এই DOIT ESP32 বোর্ড ব্যবহার করছি যা প্রায় দুই বছর আগে প্রকাশিত হয়েছিল। বোর্ডের এই সংস্করণটি আর পাওয়া যায় না কারণ এখন এটির একটি নতুন সংস্করণ উপলব্ধ রয়েছে যা আরও পিন সরবরাহ করে, এটি একটি। আমি বোর্ডের পুরানো সংস্করণটি ব্যবহার করার একমাত্র কারণ হল বোর্ডের একই পাশে এসপিআই পিনের পাশে রাখা বোর্ডের GND পিন, যা এটি রুটিবোর্ড বান্ধব করে তোলে।

বোর্ডের সাথে ডিসপ্লে সংযুক্ত করার পর আমরা প্রকল্পটিকে শক্তিশালী করতে পারি। কয়েক সেকেন্ড পরে, আমরা কাছাকাছি Xiaomi ডিভাইস থেকে লাইভ ডেটা পাই। যেহেতু ডিভাইসটি ব্লুটুথ 4 ব্যবহার করে তার পরিসীমা বেশ ভালো। আমরা সহজেই এই ডিভাইসটি দূরত্ব থেকে 10 মিটার বা তার বেশি পর্যন্ত ডেটা পেতে পারি! আমরা শাওমি ডিভাইসের ব্যাটারি স্তরও পেতে পারি কিন্তু আমি এই মানটি পর্দায় প্রদর্শন করি না।

যদি আমরা এই ইউএসবি মিটার ব্যবহার করি, আমরা দেখতে পাচ্ছি যে এই বড় ডিসপ্লে ব্যবহার করে এই প্রকল্পের বর্তমান ড্র প্রায় 120-150 এমএ। যদি আমরা একটি ই-পেপার ডিসপ্লে ব্যবহার করি, ESP32 বোর্ডকে গভীর ঘুমের মোডে রাখুন এবং প্রতি কয়েক মিনিটে সেন্সর থেকে ডেটা পেতে আমরা এই প্রকল্পটিকে ব্যাটারি বান্ধব করে তুলতে পারি। আমি ভবিষ্যতে ভিডিওতে এটি চেষ্টা করব। এই প্রকল্পটি কেবল একটি প্রদর্শন যে আমরা এই ডিভাইস থেকে তারবিহীনভাবে ডেটা পেতে পারি।

ধাপ 5: প্রকল্পের কোড

প্রকল্পের কোড
প্রকল্পের কোড

আসুন এখন প্রকল্পের সফ্টওয়্যার দিকটি দেখি।

প্রকল্পের কোড এই প্রকল্পের উপর ভিত্তি করে:

আমি কোডটি ব্যবহার করেছি যা শাওমি ডিভাইস থেকে সেই ডেটা পায় এবং এটি দিয়ে একটি স্বতন্ত্র প্রকল্প তৈরি করে।

এই পরিবর্তনশীলটিতে, আমরা ঘোষণা করি যে আমাদের প্রতি 10 সেকেন্ডে নতুন তথ্য পেতে হবে।

#SCAN_TIME 10 // সেকেন্ড নির্ধারণ করুন

এখানে, আমরা ঘোষণা করি যে আমরা ডিগ্রি সেলসিয়াস তাপমাত্রা প্রদর্শন করতে চাই। আপনি যদি ইম্পেরিয়াল সিস্টেম ব্যবহার করতে চান তবে এই ভেরিয়েবলটি মিথ্যাতে সেট করুন।

বুলিয়ান মেট্রিক = সত্য; // মেট্রিক পদ্ধতির জন্য সত্য সেট করুন; সাম্রাজ্যের জন্য মিথ্যা

সেটআপ ফাংশনে আমরা ইএসপি 32 বোর্ডের ডিসপ্লে এবং ব্লুটুথ মডিউল শুরু করি এবং তারপরে আমরা স্ক্রিনে ইউজার ইন্টারফেস আঁকে।

অকার্যকর সেটআপ() {

WRITE_PERI_REG (RTC_CNTL_BROWN_OUT_REG, 0); // ব্রাউনআউট ডিটেক্টর নিষ্ক্রিয় করুন

tft.begin ();

Serial.begin (115200);

Serial.println ("ESP32 XIAOMI DISPLAY"); initBluetooth ();

drawUI ();

}

পরবর্তী, আমরা প্রতি 10 সেকেন্ডে কাছাকাছি ব্লুটুথ ডিভাইসগুলি অনুসন্ধান করি। আমরা শাওমি ডিভাইসের সাথে সংযোগ স্থাপন করি না কারণ এটির প্রয়োজন নেই। আমরা শুধুমাত্র কাছাকাছি ব্লুটুথ কম শক্তি পেরিফেরাল জন্য স্ক্যান এবং সম্প্রচার বিজ্ঞাপন প্যাকেট চেক।

অকার্যকর লুপ () {char printLog [256]; Serial.printf (" %d সেকেন্ডের জন্য BLE স্ক্যান শুরু করুন … / n", SCAN_TIME); BLEScanResults foundDevices = pBLEScan-> start (SCAN_TIME); int count = foundDevices.getCount (); printf ("পাওয়া যন্ত্রের সংখ্যা: %d / n", গণনা);

বিলম্ব (100);

}

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

ধাপ 6: চূড়ান্ত চিন্তাভাবনা এবং উন্নতি

চূড়ান্ত চিন্তা ও উন্নতি
চূড়ান্ত চিন্তা ও উন্নতি
চূড়ান্ত চিন্তা ও উন্নতি
চূড়ান্ত চিন্তা ও উন্নতি

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

আমি এই প্রকল্প সম্পর্কে আপনার মতামত জানতে চাই। আপনি কি এটা দরকারী বলে মনে করেন যে আমরা কিছু বাণিজ্যিক ব্লুটুথ ডিভাইস থেকে ডেটা পেতে পারি? আপনি এই কার্যকারিতা ব্যবহার করে কি নির্মাণ করতে যাচ্ছেন? আমি আপনার ধারণাগুলি পড়তে চাই তাই দয়া করে নীচের মন্তব্য বিভাগে তাদের পোস্ট করুন। ধন্যবাদ!

প্রস্তাবিত: