সুচিপত্র:

একটি ESP- এখন হোম আবহাওয়া স্টেশন: 9 ধাপ (ছবি সহ)
একটি ESP- এখন হোম আবহাওয়া স্টেশন: 9 ধাপ (ছবি সহ)

ভিডিও: একটি ESP- এখন হোম আবহাওয়া স্টেশন: 9 ধাপ (ছবি সহ)

ভিডিও: একটি ESP- এখন হোম আবহাওয়া স্টেশন: 9 ধাপ (ছবি সহ)
ভিডিও: Welcome to the HOME OF PANDAS 🇨🇳| CHENGDU - SECHUAN [EP-14] CHINA SERIES 2024, নভেম্বর
Anonim
একটি ESP-Now হোম ওয়েদার স্টেশন
একটি ESP-Now হোম ওয়েদার স্টেশন

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

ধাপ 1: নকশা বিবরণ

নকশা বিবরণ
নকশা বিবরণ

আমি বিভিন্ন সেন্সর স্টেশন রাখতে চেয়েছিলাম যা আমি বিভিন্ন স্থানে স্থাপন করতে পারতাম এবং তাদের একটি প্রধান স্টেশনে (বা হাব) রিপোর্ট করতে চাই যেটি তথ্য সংরক্ষণ করবে। বিভিন্ন ধারণা চেষ্টা করার পর, আমি Espressif এর ESP-Now প্রোটোকল ব্যবহার করার সিদ্ধান্ত নিয়েছি, কারণ এটি সরাসরি ডিভাইসের মধ্যে দ্রুত যোগাযোগের অনুমতি দেয়। আপনি এখানে ইএসপি-এখন সম্পর্কে কিছুটা পড়তে পারেন এবং এই গিটহাব রেপো আমার অনুপ্রেরণার একটি দুর্দান্ত অংশ ছিল।

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

কিছু সেন্সর স্টেশন ব্যাটারি (বা সৌর চার্জযুক্ত ব্যাটারি) চালাবে এবং অন্যদের কেবলমাত্র মূল শক্তি থাকবে। যাইহোক, আমি চেয়েছিলাম সবাই যতটা সম্ভব কম শক্তি ব্যবহার করুক এবং সেখানেই ESP8266 এবং ESP32 ডিভাইসের জন্য উপলব্ধ "ডিপস্লিপ" বৈশিষ্ট্যটি অত্যন্ত সহায়ক। সেন্সর স্টেশনগুলি পর্যায়ক্রমে জেগে উঠবে, পরিমাপ নেবে এবং সেগুলি গেটওয়ে ডিভাইসে পাঠাবে এবং কিছু পূর্বনির্ধারিত সময়ের জন্য ঘুমাতে যাবে। প্রতি 5 মিনিটে (300 %) তাদের জাগার সময়কাল তাদের বিদ্যুৎ খরচ উল্লেখযোগ্যভাবে হ্রাস করে।

ধাপ 2: সেন্সর

সেন্সর
সেন্সর
সেন্সর
সেন্সর

পরিবেশগত পরামিতি পরিমাপের জন্য বেছে নেওয়া বিভিন্ন সেন্সর রয়েছে। আমি শুধুমাত্র I2C কমিউনিকেশন সক্ষম সেন্সরগুলির সাথে থাকার সিদ্ধান্ত নিয়েছি, কারণ এটি দ্রুত পরিমাপের অনুমতি দেয় এবং আমার যে কোনও ডিভাইসে কাজ করবে। সরাসরি আইসিগুলির সাথে কাজ করার পরিবর্তে, আমি আমার ডিজাইনগুলি সরল করার জন্য একই পিন-আউটযুক্ত মডিউলগুলি ব্যবহারের জন্য প্রস্তুত অনুসন্ধান করেছি। আমি কেবলমাত্র তাপমাত্রা এবং আর্দ্রতা পরিমাপ করতে চেয়েছিলাম এবং তাই একটি SI7021 ভিত্তিক মডিউল বেছে নিয়েছি। পরে আমি একটি সেন্সর চেয়েছিলাম যা চাপ পরিমাপ করতে পারে এবং BME280 ভিত্তিক সেন্সর মডিউলগুলি চেষ্টা করার সিদ্ধান্ত নিয়েছে। কিছু অবস্থানের জন্য আমি এমনকি আলোর মাত্রা পর্যবেক্ষণ করতে চেয়েছিলাম এবং BH1750 মডিউল একটি পৃথক সেন্সর মডিউল হিসাবে এটির জন্য আদর্শ ছিল। আমি ইবে থেকে আমার সেন্সর মডিউল কিনেছি এবং এগুলি আমি পেয়েছি এমন মডিউল:

  • BME280 (GY-BMP/E280), তাপমাত্রা, আর্দ্রতা এবং চাপ পরিমাপ করে
  • SI7021 (GY-21), তাপমাত্রা এবং আর্দ্রতা পরিমাপ করে
  • BH1750 (GY-302), আলো পরিমাপ করে

GY-BMP/E280 PCB মডিউলের দুটি স্টাইল পাওয়া যাবে। উভয়ই 1 থেকে 4 পিনের জন্য একই পিন আউট ভাগ করে। একটি মডিউলে দুটি অতিরিক্ত পিন রয়েছে, CSB এবং SDO এই দুটি পিন মডিউলের 4-পিন সংস্করণে পূর্বে সংযুক্ত। SDO পিনের স্তর I2C ঠিকানা নির্ধারণ করে (Ground = default of 0x76, VCC = 0x77)। I2C ইন্টারফেস নির্বাচন করতে CSB পিনটি অবশ্যই VCC- এর সাথে সংযুক্ত থাকতে হবে। আমি 4 পিন মডিউল পছন্দ করি, যেহেতু এটি আমার উদ্দেশ্যে ব্যবহার করার জন্য প্রস্তুত।

সাধারণভাবে, এই মডিউলগুলি ব্যবহার করা খুবই সুবিধাজনক কারণ তারা ইতিমধ্যেই যোগাযোগ লাইনগুলির জন্য পুল-আপ প্রতিরোধক ইনস্টল করে রেখেছে এবং সবগুলি 3.3V এ চালিত হয় তাই ESP8266 ভিত্তিক বোর্ডগুলির সাথে সামঞ্জস্যপূর্ণ। মনে রাখবেন, এই সেন্সর আইসিগুলির পিনগুলি সাধারণত 5V সহনশীল নয়, তাই তাদের সরাসরি Arduino Uno এর মতো কিছু দিয়ে ইন্টারফেস করা তাদের স্থায়ীভাবে ক্ষতি করতে পারে।

ধাপ 3: সেন্সর স্টেশন

সেন্সর স্টেশন
সেন্সর স্টেশন

উল্লিখিত হিসাবে, সেন্সর স্টেশনগুলি ESP-Now যোগাযোগ প্রোটোকল ব্যবহার করে সমস্ত Espressif ডিভাইস হবে। পূর্ববর্তী প্রকল্প এবং পরীক্ষা -নিরীক্ষা থেকে, আমার কাছে আমার প্রাথমিক পরীক্ষাগুলি পরিচালনার জন্য এবং সেগুলি চূড়ান্ত নকশায় অন্তর্ভুক্ত করার জন্য আমার কাছে বিভিন্ন ধরণের ডিভাইস ছিল। আমার হাতে নিম্নলিখিত ডিভাইস ছিল:

  • দুটি ESP-01 মডিউল
  • দুটি Wemos D1 মিনি উন্নয়ন বোর্ড
  • একটি Lolin ESP8266 উন্নয়ন বোর্ড
  • একটি ESP12E সিরিয়াল ওয়াইফাই কিট বোর্ড
  • একটি GOOUUU ESP32 বোর্ড (একটি 38 পিন ডেভেলপমেন্ট বোর্ড)

আমার একটি ওয়েমোস ডি 1 আর 2 ডেভেলপমেন্ট বোর্ডও ছিল, কিন্তু এর সাথে এমন সমস্যা ছিল যা এটিকে গভীর ঘুম থেকে জাগতে দেয়নি এবং একটি গেট ওয়ে ডিভাইস হিসাবে এটি ক্র্যাশ হবে এবং সঠিকভাবে পুনরায় চালু হবে না। আমি পরে এটি মেরামত করেছি এবং এটি গ্যারেজ ডোর ওপেনার প্রকল্পের অংশ হয়ে উঠেছে। "ডিপস্লিপ" কাজ করার জন্য, ESP8266 এর RST পিনটি GPIO16 পিনের সাথে সংযুক্ত থাকতে হবে, যাতে স্লিপ টাইমার ডিভাইসটিকে জাগিয়ে তুলতে পারে। আদর্শভাবে এই সংযোগটি স্কটকি ডায়োড (ক্যাথোড থেকে জিপিআইও 16) দিয়ে করা উচিত যাতে প্রোগ্রামিং চলাকালীন ইউএসবি-টিএলএল সংযোগের মাধ্যমে ম্যানুয়াল রিসেট এখনও কাজ করে। যাইহোক, একটি কম মান (300-ইশ ওহম) প্রতিরোধক বা এমনকি সরাসরি তারের সংযোগ এখনও সফল হতে পারে।

ESP-01 মডিউলগুলি GPIO16 পিনে সহজে অ্যাক্সেসের অনুমতি দেয় না এবং একজনকে অবশ্যই সরাসরি IC- এ সোল্ডার করতে হবে। এটি একটি সহজ কাজ নয় এবং আমি প্রত্যেকের জন্য এটি সুপারিশ করব না। ESP12E সিরিয়াল ওয়াইফাই কিট বোর্ড একটি নতুনত্বের আইটেম ছিল এবং এটি আমার উদ্দেশ্য জন্য দরকারী হতে বেশ কিছু পরিবর্তন প্রয়োজন। ব্যবহার করার জন্য সবচেয়ে সহজ বোর্ড ছিল Wemos D1 মিনি টাইপ বোর্ড এবং ললিন বোর্ড। ESP32 ডিভাইসে কাজ করার জন্য গভীর ঘুমের জন্য কোন পরিবর্তন প্রয়োজন হয় না। Andreas Spiess এর একটি চমৎকার নির্দেশযোগ্য।

ধাপ 4: ESP-01 সেন্সর স্টেশন

ESP-01 সেন্সর স্টেশন
ESP-01 সেন্সর স্টেশন
ESP-01 সেন্সর স্টেশন
ESP-01 সেন্সর স্টেশন
ESP-01 সেন্সর স্টেশন
ESP-01 সেন্সর স্টেশন

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

ESP-01 বোর্ডগুলি খুবই কমপ্যাক্ট এবং এর সাথে কাজ করার জন্য কয়েকটি ডিজিটাল IO পিন আছে, কিন্তু এটি I2C ইন্টারফেসের জন্য যথেষ্ট। বোর্ডগুলিকে "ডিপস্লিপ" কাজ করার অনুমতি দেওয়ার জন্য একটি জটিল পরিবর্তন প্রয়োজন। দেখানো ছবিতে, একটি তারের কোণার পিন (GPIO16) থেকে হেডারের RST পিনে সোল্ডার করা হয়েছিল। আমি যে তারটি ব্যবহার করেছি তা 0.1 মিমি ব্যাসের অন্তরক "মেরামত" তার। ইনসুলেশন লেপ গরম করার পরে গলে যায়, তাই এটি PCBs এ ট্রেস ইত্যাদি মেরামতের জন্য বিক্রি করা যেতে পারে এবং এখনও শর্টস তৈরির বিষয়ে চিন্তা করবেন না যেখানে তারের অন্যান্য উপাদানগুলির সাথে যোগাযোগ করে। এর আকারের সাথে কাজ করা কঠিন করে তোলে এবং আমি একটি (শখ/স্ট্যাম্প সংগ্রাহক শৈলী) মাইক্রোস্কোপের অধীনে এই তারটি সোল্ডার করেছি। মনে রাখবেন যে ডান দিকে হেডারের একটি 0.1 "(2.54 মিমি) পিন স্পেসিং আছে। এখানে স্কটকি ডায়োড ইনস্টল করা মোটেও সহজ হবে না, তাই আমি কেবল তারের চেষ্টা করার সিদ্ধান্ত নিয়েছি এবং উভয় ইউনিট ওভার ধরে চলছে কোন সমস্যা ছাড়াই একটি মাস।

মডিউলগুলি আমার তৈরি দুটি প্রোটোটাইপ বোর্ডে ইনস্টল করা হয়েছিল। একটি (#1) একটি প্রোগ্রামার বোর্ড যা I2C মডিউলগুলি ইনস্টল এবং পরীক্ষা করার অনুমতি দেয়, অন্যটি (#2) হল I2C ডিভাইসের জন্য একটি উন্নয়ন/পরীক্ষা বোর্ড। প্রথম বোর্ডের জন্য আমি একটি পুরানো ইউএসবি পুরুষ সংযোগকারী এবং একটি ছোট পিসিবি একসাথে ইউএসবি ওয়াল অ্যাডাপ্টার থেকে ইউনিটকে পাওয়ার জন্য বিক্রি করেছি। অন্য ইউনিটে স্ক্রু টার্মিনাল হেডারে ফিট করার জন্য একটি নিয়মিত ডিসি জ্যাক সংশোধন করা হয়েছে এবং এটি ওয়াল অ্যাডাপ্টারের মাধ্যমেও চালিত।

স্কিম্যাটিক দেখায় কিভাবে তারা সংযুক্ত এবং কিভাবে প্রোগ্রামার কাজ করে। আমার অন্য কোন ESP-01 মডিউল নেই, তাই প্রোগ্রামারের কোন তাৎক্ষণিক প্রয়োজন ছিল না। ভবিষ্যতে আমি সম্ভবত তাদের জন্য একটি পিসিবি তৈরি করব। এই দুটি বোর্ডেই SI7021 সেন্সর মডিউল ইনস্টল করা আছে কারণ আমি সেই জায়গাগুলিতে চাপ পরিমাপে ততটা আগ্রহী ছিলাম না।

ধাপ 5: ESP 12E সিরিয়াল ওয়াইফাই কিট সেন্সর স্টেশন

ESP 12E সিরিয়াল ওয়াইফাই কিট সেন্সর স্টেশন
ESP 12E সিরিয়াল ওয়াইফাই কিট সেন্সর স্টেশন
ESP 12E সিরিয়াল ওয়াইফাই কিট সেন্সর স্টেশন
ESP 12E সিরিয়াল ওয়াইফাই কিট সেন্সর স্টেশন

ESP12E সিরিয়াল ওয়াইফাই কিট বোর্ড এই ডিভাইসের সাহায্যে কী করা যায় তা দেখানোর জন্য যতটা উন্নয়নের জন্য করা হয়েছিল তা নয়। আমি ইএসপি 8266 প্রোগ্রামিং সম্পর্কে কিছুটা জানার জন্য এটি অনেক আগেই কিনেছিলাম এবং অবশেষে এটিকে কিছু নতুন ব্যবহার করার সিদ্ধান্ত নিয়েছি। আমি বিক্ষোভের জন্য ইনস্টল করা সমস্ত এলইডি সরিয়ে দিয়েছি এবং একটি ইউএসবি প্রোগ্রামিং হেডার এবং একটি আই 2 সি হেডার যুক্ত করেছি যা আমি ব্যবহার করা মডিউলগুলির জন্য উপযুক্ত। এটিতে একটি সিডিএস ফটো রেসিস্টর ছিল যার এনালগ ইনপুট পিনের সাথে সংযুক্ত ছিল এবং আমি এটিকে সেখানে রেখে দেওয়ার সিদ্ধান্ত নিয়েছি। এই বিশেষ ইউনিটটি আমার গ্যারেজ ওয়ার্কশপ মনিটরিং করতে যাচ্ছিল এবং এটিতে থাকা ফটো-সেন্সরটি আমাকে জানাতে যথেষ্ট ছিল যে লাইটগুলি ভুলক্রমে রেখে দেওয়া হয়েছিল কিনা। হালকা পরিমাপের জন্য আমি রিডিংগুলিকে স্বাভাবিক করেছিলাম যাতে আমাকে একটি শতাংশ আউটপুট দিতে পারে এবং রাতে "5" এর বেশি কিছু বোঝায় যে লাইটগুলি বন্ধ ছিল বা বাড়ির একটি দরজা সঠিকভাবে বন্ধ ছিল না। RST এবং GPIO16 পিনগুলি স্পষ্টভাবে PCB- এ লেবেলযুক্ত এবং তাদের সংযোগকারী Schottky ডায়োড PCB- এর নিচের দিকে ইনস্টল করা ছিল। এটি একটি ইউএসবি-সিরিয়াল বোর্ডের মাধ্যমে চালিত যা সরাসরি একটি ইউএসবি ওয়াল চার্জারে প্লাগ করা থাকে। আমার কাছে এই ইউএসবি-সিরিয়াল বোর্ডগুলির অতিরিক্ত আছে এবং এখনই এটির প্রয়োজন নেই।

আমি এই বোর্ডের জন্য একটি পরিকল্পিত করিনি এবং সাধারণত এই উদ্দেশ্যে ব্যবহার করার জন্য একটি কেনার সুপারিশ করি না। ওয়েমোস ডি 1 মিনি বোর্ডগুলি আরও উপযুক্ত এবং পরবর্তীতে আলোচনা করা হবে। যদিও, আপনার যদি এর মধ্যে একটি থাকে এবং কিছু পরামর্শের প্রয়োজন হয়, আমি সাহায্য করতে পেরে খুশি হব।

ধাপ 6: D1 মিনি সেন্সর স্টেশন

D1 মিনি সেন্সর স্টেশন
D1 মিনি সেন্সর স্টেশন
D1 মিনি সেন্সর স্টেশন
D1 মিনি সেন্সর স্টেশন
D1 মিনি সেন্সর স্টেশন
D1 মিনি সেন্সর স্টেশন

Wemos D1 মিনি টাইপের ESP8266 ডেভেলপমেন্ট বোর্ডগুলি আমার পছন্দের ব্যবহার এবং যদি আমাকে এটি করতে হয় তবে আমি কেবল এটি ব্যবহার করব। তাদের কাছে প্রচুর পরিমাণে অ্যাক্সেসযোগ্য আইও পিন রয়েছে, সরাসরি Arduino IDE এর মাধ্যমে প্রোগ্রাম করা যায় এবং এখনও মোটামুটি কমপ্যাক্ট। D0 পিন এই বোর্ডগুলিতে GPIO16 এবং একটি Schottky ডায়োড সংযোগ করা বরং সহজ। পরিকল্পিতভাবে দেখায় কিভাবে আমি এই বোর্ডগুলিকে তারযুক্ত করেছি এবং উভয়ই BME2808 সেন্সর মডিউল ব্যবহার করে।

দুটি বোর্ডের মধ্যে একটি বাইরের আবহাওয়া পর্যবেক্ষণ করতে ব্যবহৃত হয় এবং সৌরবিদ্যুতের ব্যাটারি থেকে চলে। একটি 165mm x 135mm (6V, 3.5W) সৌর প্যানেল একটি TP4056 Li-ion ব্যাটারি চার্জিং মডিউলের সাথে সংযুক্ত (সৌর চালিত ব্যাটারি সেন্সর স্টেশন সেটআপ ডায়াগ্রাম দেখুন)। এই বিশেষ চার্জিং মডিউল (03962A) একটি ব্যাটারি সুরক্ষা সার্কিট যা ব্যাটারি (প্যাক) না থাকলে প্রয়োজনীয়। লি-আয়ন ব্যাটারি একটি পুরানো ল্যাপটপের ব্যাটারি প্যাক থেকে পুনর্ব্যবহৃত করা হয়েছিল এবং এটি এখনও D1 মিনি বোর্ড চালানোর জন্য পর্যাপ্ত চার্জ ধারণ করতে পারে, বিশেষ করে গভীর ঘুম সক্ষম। উপাদানগুলি থেকে কিছুটা নিরাপদ রাখার জন্য বোর্ডটি একটি প্লাস্টিকের ঘেরের মধ্যে স্থাপন করা হয়েছিল। যাইহোক, বাইরের তাপমাত্রা এবং আর্দ্রতার সংস্পর্শে আসার জন্য, 25 মিমি ব্যাসের দুটি গর্ত ড্রিল করা হয়েছিল এবং কালো ল্যান্ডস্কেপ কাপড় দিয়ে (ভিতর থেকে) আচ্ছাদিত করা হয়েছিল। কাপড় আর্দ্রতা penোকাতে অনুমতি দেয় এবং এর জন্য আর্দ্রতা পরিমাপ করা যায়। ঘেরের এক প্রান্তে একটি ছোট গর্ত ছিল ড্রিল এবং একটি পরিষ্কার প্লাস্টিকের জানালা লাগানো। এখানেই BH1750 লাইট সেন্সর মডিউল স্থাপন করা হয়েছিল। পুরো ইউনিটটি বাইরে ছায়ায় রাখা হয় (সরাসরি সূর্য নয়) আলো সেন্সরটি খোলা দিকে নির্দেশ করে। এটি আমাদের বর্ষা/মেঘলা শীতের আবহাওয়ায় প্রায় 4 সপ্তাহ ধরে সৌরশক্তি চালিত ব্যাটারি থেকে চলছে।

ধাপ 7: গেটওয়ে এবং ওয়েব সার্ভার

গেটওয়ে এবং ওয়েব সার্ভার
গেটওয়ে এবং ওয়েব সার্ভার
গেটওয়ে এবং ওয়েব সার্ভার
গেটওয়ে এবং ওয়েব সার্ভার
গেটওয়ে এবং ওয়েব সার্ভার
গেটওয়ে এবং ওয়েব সার্ভার

একটি Lolin NodeMCU V3 (ESP8266) বোর্ড ESP-Now গেটওয়ে ডিভাইসের জন্য এবং একটি ESP32 (GOOUUU বোর্ড) ওয়েবসাইট সার্ভারের জন্য ব্যবহার করা হয়েছিল। প্রায় যে কোনো ESP8266 বা এমনকি ESP32 বোর্ড গেটওয়ে ডিভাইস হিসেবে কাজ করতে পারত, এই বোর্ডটি ছিল আমার কাছে থাকা বাকি সব বোর্ড ব্যবহার করার পর "বাকি ছিল"।

আমি ESP32 বোর্ড ব্যবহার করেছি যেহেতু আমার তথ্য সংগ্রহ, সাজানোর, সঞ্চয় করার জন্য সংরক্ষণ এবং ওয়েব সার্ভার চালানোর জন্য একটু বেশি কম্পিউটিং ক্ষমতার একটি বোর্ড দরকার। ভবিষ্যতে এটির নিজস্ব সেন্সর এবং স্থানীয় (OLED) ডিসপ্লে থাকতে পারে। সঞ্চয়ের জন্য একটি কাস্টমাইজড অ্যাডাপ্টারের সাথে একটি এসডি কার্ড ব্যবহার করা হয়েছিল। আমি একটি সাধারণ মাইক্রোএসডি থেকে এসডি কার্ড অ্যাডাপ্টার ব্যবহার করেছি এবং ধাতুপট্টাবৃত পরিচিতিগুলিতে একটি 7 পিন পুরুষ (0.1 পিচ) হেডার বিক্রি করেছি। সংযোগ স্থাপনের জন্য আমি এই গিটহাবের পরামর্শ অনুসরণ করেছি।

প্রোটোটাইপিং সেটআপ (ডুপন্ট ওয়্যার সহ) একটি সেন্সর মডিউল অন্তর্ভুক্ত করে না, কিন্তু আমি যে চূড়ান্ত পিসিবি ডিজাইন করেছি তা একটি এবং একটি ছোট OLED ডিসপ্লের অনুমতি দেয়। আমি কিভাবে পিসিবি ডিজাইন করেছি তার একটি বিশদ নির্দেশাবলীর অংশ।

ধাপ 8: সফটওয়্যার

সফটওয়্যার
সফটওয়্যার

ESP8266 (ESP-NOW) ডিভাইস

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

গেটওয়ে ডিভাইস কোড ওয়েব সার্ভারের সাথে যোগাযোগের জন্য সফটওয়্যার সিরিয়াল ব্যবহার করেছে, যেহেতু ESP8266 এর শুধুমাত্র একটি সম্পূর্ণরূপে কার্যকরী হার্ডওয়্যার UART রয়েছে। 9600 এর সর্বোচ্চ বড রেটে চলছে এটা বেশ নির্ভরযোগ্য মনে হয় এবং এই অপেক্ষাকৃত ছোট ডাটা প্যাকেট পাঠানোর জন্য যথেষ্ট। গেটওয়ে ডিভাইসটি একটি ব্যক্তিগত ম্যাক ঠিকানা দিয়েও প্রোগ্রাম করা হয়। এর কারণ হল যদি এটি প্রতিস্থাপনের প্রয়োজন হয়, তবে সেন্সর স্টেশনগুলিকে নতুন প্রাপক MAC ঠিকানা দিয়ে পুনরায় প্রোগ্রাম করতে হবে না।

ESP32 (ওয়েব সার্ভার)

প্রতিটি সেন্সর স্টেশন তার ডেটা প্যাকেট গেটওয়ে ডিভাইসে পাঠায় যা এটি ওয়েব সার্ভারে ফরওয়ার্ড করে। ডেটা প্যাকেটের সাথে সেন্সর স্টেশন MAC ঠিকানাও পাঠানো হয় প্রতিটি স্টেশন চিহ্নিত করতে। প্রতিটি সেন্সরের অবস্থান নির্ধারণের জন্য ওয়েব সার্ভারে একটি "লুক-আপ" টেবিল থাকে এবং সেই অনুযায়ী ডেটা সাজায়। গেট ওয়ে ডিভাইসে পাঠানোর সময় সেন্সর একে অপরের সাথে "সংঘর্ষ" এড়ানোর জন্য পরিমাপের মধ্যে সময়ের ব্যবধান 5 মিনিট এবং একটি র্যান্ডম ফ্যাক্টর সেট করা হয়েছিল।

হোম ওয়াইফাই রাউটারটি ওয়েব সার্ভারে একটি নির্দিষ্ট আইপি ঠিকানা বরাদ্দ করার জন্য সেট করা হয়েছিল যখন এটি ওয়াইফাইয়ের সাথে সংযুক্ত হয়। আমার জন্য এটি ছিল 192.168.1.111। যে কোন ব্রাউজারে সেই ঠিকানাটি টাইপ করা আবহাওয়া স্টেশন ওয়েব সার্ভারের সাথে সংযুক্ত থাকবে যতক্ষণ ব্যবহারকারী হোম নেটওয়ার্কের ওয়াইফাই পরিসরের (এবং সংযোগ) মধ্যে থাকে। যখন ব্যবহারকারী ওয়েব পেজে সংযুক্ত হয়, ওয়েব সার্ভার পরিমাপের একটি টেবিলের সাথে সাড়া দেয় এবং প্রতিটি সেন্সরের শেষ পরিমাপের সময় অন্তর্ভুক্ত করে। এইভাবে যদি একটি সেন্সর স্টেশন নন-রেসপনসিভ হয়ে যায়, কেউ যদি টেবিল থেকে দেখতে পারে যদি কোন রিডিং 5-6 মিনিটের বেশি হয়।

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

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

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

ধাপ 9: ফলাফল

ফলাফল
ফলাফল

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

প্রস্তাবিত: