সুচিপত্র:

একটি ইনহাউস আইওটি এয়ার কোয়ালিটি সেন্সর তৈরি করুন কোন ক্লাউড প্রয়োজন নেই: 10 টি ধাপ
একটি ইনহাউস আইওটি এয়ার কোয়ালিটি সেন্সর তৈরি করুন কোন ক্লাউড প্রয়োজন নেই: 10 টি ধাপ

ভিডিও: একটি ইনহাউস আইওটি এয়ার কোয়ালিটি সেন্সর তৈরি করুন কোন ক্লাউড প্রয়োজন নেই: 10 টি ধাপ

ভিডিও: একটি ইনহাউস আইওটি এয়ার কোয়ালিটি সেন্সর তৈরি করুন কোন ক্লাউড প্রয়োজন নেই: 10 টি ধাপ
ভিডিও: নতুন প্রোডাক্ট ইনহাউস ভিডিও 2024, নভেম্বর
Anonim
একটি ইনহাউস আইওটি এয়ার কোয়ালিটি সেন্সর তৈরি করুন কোন ক্লাউডের প্রয়োজন নেই
একটি ইনহাউস আইওটি এয়ার কোয়ালিটি সেন্সর তৈরি করুন কোন ক্লাউডের প্রয়োজন নেই
একটি ইনহাউস আইওটি এয়ার কোয়ালিটি সেন্সর তৈরি করুন কোন ক্লাউডের প্রয়োজন নেই
একটি ইনহাউস আইওটি এয়ার কোয়ালিটি সেন্সর তৈরি করুন কোন ক্লাউডের প্রয়োজন নেই
একটি ইনহাউস আইওটি এয়ার কোয়ালিটি সেন্সর তৈরি করুন কোন ক্লাউডের প্রয়োজন নেই
একটি ইনহাউস আইওটি এয়ার কোয়ালিটি সেন্সর তৈরি করুন কোন ক্লাউডের প্রয়োজন নেই
একটি ইনহাউস আইওটি এয়ার কোয়ালিটি সেন্সর তৈরি করুন কোন ক্লাউডের প্রয়োজন নেই
একটি ইনহাউস আইওটি এয়ার কোয়ালিটি সেন্সর তৈরি করুন কোন ক্লাউডের প্রয়োজন নেই

অন্দর বা বহিরঙ্গন বাতাসের গুণমান দূষণের অনেক উৎস এবং আবহাওয়ার উপর নির্ভর করে।

এই ডিভাইসটি 2 টি সেন্সর চিপ ব্যবহার করে কিছু সাধারণ এবং কিছু আকর্ষণীয় প্যারামিটার ক্যাপচার করে।

  • তাপমাত্রা
  • আর্দ্রতা
  • চাপ
  • জৈব গ্যাস
  • মাইক্রো-কণা

এখানে ব্যবহৃত সেন্সরগুলি হল তাপমাত্রা, আর্দ্রতা, চাপ এবং জৈব গ্যাসের মান পাওয়ার জন্য BME680 এবং মাইক্রো কণার ঘনত্ব পেতে PMS5003।

হোমডিং লাইব্রেরি ব্যবহার করে এমন একটি ডিভাইস তৈরি করা সহজ যা কেবল আপনার হোম নেটওয়ার্কের সাথে সংযুক্ত এবং নেটওয়ার্কের যেকোনো ব্রাউজারের মাধ্যমে পৌঁছানো এবং নিয়ন্ত্রণ করা যায়। এটি এমন উপাদানগুলির একটি নির্বাচনের সাথে আসে যা সর্বাধিক সাধারণ সেন্সর চিপ, ডিভাইস এবং অন্যান্য পরিষেবাগুলি ব্যবহার করার অনুমতি দেয়।

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

সরবরাহ

এই প্রকল্পটি নির্মাণের জন্য আপনাকে যা দরকার তা হল একটি ESP8266 ভিত্তিক বোর্ড যেমন Nodemcu বোর্ড এবং বাতাসের মান পরিমাপের জন্য সেন্সরের সেট। এই প্রকল্পে ব্যবহৃত হোমডিং লাইব্রেরি তাপমাত্রা, আর্দ্রতা, চাপ এবং গুণমানের জন্য কিছু সাধারণ সেন্সর চিপ সমর্থন করে। এখানে BMP680 চিপ ব্যবহার করা হয়েছে।

  • বিদ্যুৎ সরবরাহের জন্য একটি ইউএসবি প্লাগ এবং একটি মাইক্রো-ইউএসবি কেবল।
  • ESP8266 CPU সহ 1 nodemcu বোর্ড।
  • 1 BME680 সেন্সর ব্রেকআউট বোর্ড।
  • 1 PM2.5 বায়ু কণা লেজার সেন্সর টাইপ PMS5003

এটি একটি DHT22 সেন্সর দিয়ে BME680 সেন্সর অদলবদল করা সহজ কারণ এগুলি অন্যান্য অনেকের মধ্যে লাইব্রেরি দ্বারা সমর্থিত।

ধাপ 1: ESP8266 এর জন্য Arduino পরিবেশ প্রস্তুত করুন

ESP8266 এর জন্য Arduino পরিবেশ প্রস্তুত করুন
ESP8266 এর জন্য Arduino পরিবেশ প্রস্তুত করুন
  1. Arduino IDE এর সর্বশেষ সংস্করণ ইনস্টল করুন (বর্তমানে সংস্করণ 1.8.2)।
  2. Esp8266 সাপোর্ট ইনস্টল করার জন্য বোর্ড ম্যানেজার ব্যবহার করুন। বিস্তারিত নির্দেশনা এখানে পাওয়া যাবে:
  3. স্ক্রিনশটে দেখানো হিসাবে 1MByte SPIFFS ফাইল সিস্টেম সহ NodeMCU 1.0 এর জন্য বোর্ড অপশন সেটআপ করুন

পদক্ষেপ 2: প্রয়োজনীয় লাইব্রেরি অন্তর্ভুক্ত করুন

প্রয়োজনীয় লাইব্রেরি অন্তর্ভুক্ত করুন
প্রয়োজনীয় লাইব্রেরি অন্তর্ভুক্ত করুন

হোমডিং লাইব্রেরি সেন্সর এবং ডিসপ্লের কাজ করার জন্য কিছু সাধারণ অতিরিক্ত লাইব্রেরির উপর নির্ভর করে।

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

কখনও কখনও (অজানা কারণে) গ্রন্থাগারগুলির ইনস্টলেশন ব্যর্থ হয় তাই সমস্ত প্রয়োজনীয় গ্রন্থাগারগুলি ম্যানুয়ালি ইনস্টল করা প্রয়োজন।

প্রয়োজনীয় লাইব্রেরি সম্পর্কে বিস্তারিত তথ্য ডকুমেন্টেশন ওয়েবসাইটে https://homeding.github.io/#page=/elements.md এ পাওয়া যাবে।

এটি বর্তমান প্রয়োজনীয় গ্রন্থাগারের তালিকা:

  • Adafruit NeoPixel
  • LiquidCrystal_PCF8574.h
  • SSD1306 ডিসপ্লের জন্য ESP8266 এবং ESP32 Oled ড্রাইভার
  • রোটারি এনকোডার
  • ESPx এর জন্য DHT সেন্সর লাইব্রেরি
  • ওয়ানওয়্যার

PMS5003 বায়ু কণা লেজার সেন্সর 9600 বড সিরিয়াল লাইন সংকেত ব্যবহার করে যোগাযোগ করে। এই সংকেতটি সফটওয়্যার সিরিয়াল লাইব্রেরি ব্যবহার করে ধরা হয় যা ESP8266 সরঞ্জামগুলির ইনস্টলেশনের সাথে আসে। লাইব্রেরি হিসাবে একটি পুরোনো সংস্করণ ইনস্টল না করা নিশ্চিত করুন।

ধাপ 3: স্ট্যান্ডার্ড উদাহরণ স্কেচ কাস্টমাইজ করুন

স্ট্যান্ডার্ড উদাহরণ স্কেচ কাস্টমাইজ করুন
স্ট্যান্ডার্ড উদাহরণ স্কেচ কাস্টমাইজ করুন

স্ট্যান্ডার্ড উদাহরণে ইতোমধ্যে কিছু সাধারণ সেন্সরকে উপাদান হিসেবে অন্তর্ভুক্ত করা হয়েছে তাই শুধুমাত্র কিছু কনফিগারেশনের প্রয়োজন হবে।

এটি BME680 সেন্সরের জন্য প্রযোজ্য যা BME680 এলিমেন্ট দ্বারা সমর্থিত।

PMS5003 সেন্সর কম সাধারণ এবং ফার্মওয়্যারে PMS এলিমেন্ট অন্তর্ভুক্ত করে সক্রিয় করা প্রয়োজন। স্কেচের এলিমেন্ট রেজিস্টার বিভাগে #Define HOMEDING_INCLUDE_PMS নির্ধারণ করে এটি করা হয়

#HOMEDING_INCLUDE_BME680 নির্ধারণ করুন#HOMEDING_INCLUDE_PMS নির্ধারণ করুন

নেটওয়ার্কে নতুন ডিভাইস যোগ করার ক্ষেত্রে সরলতার জন্য আপনি standard.ino স্কেচ ফাইলের পাশে secrets.h ফাইলে আপনার বাড়ির ওয়াইফাইয়ের SSID এবং পাসফ্রেজ যোগ করতে পারেন। কিন্তু আপনি এই হার্ড-কোডেড কনফিগারেশন ছাড়া নেটওয়ার্কে ডিভাইস যুক্ত করতে বিল্ট-ইন ওয়াইফাই ম্যানেজার ব্যবহার করতে পারেন।

এখন স্কেচ বাস্তবায়নের বিষয়ে সবকিছু সম্পন্ন হয়েছে এবং ফার্মওয়্যার কম্পাইল এবং আপলোড করা যেতে পারে।

ধাপ 4: ওয়েব UI আপলোড করুন

স্ট্যান্ডার্ড উদাহরণ একটি ডেটা ফোল্ডারের সাথে আসে যাতে ওয়েব UI এর জন্য সমস্ত ফাইল থাকে।

আপনি এই ফাইলগুলি আপলোড করার আগে আপনি এই নিবন্ধের সাথে env.json এবং config.json ফাইল যোগ করতে চাইতে পারেন কারণ এটি জিনিসগুলিকে আরও সহজ করে তুলবে।

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

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

ধাপ 5: BME680 সেন্সর যুক্ত করুন

BME680 সেন্সর যুক্ত করুন
BME680 সেন্সর যুক্ত করুন
BME680 সেন্সর যুক্ত করুন
BME680 সেন্সর যুক্ত করুন
BME680 সেন্সর যুক্ত করুন
BME680 সেন্সর যুক্ত করুন

BME680 সেন্সর I2C বাস ব্যবহার করে বোর্ডের সাথে যোগাযোগ করছে।

যেহেতু এটি সম্ভবত অন্যান্য এক্সটেনশনের সাথে শেয়ার করা হয় যেমন অন্যান্য সেন্সর বা ডিসপ্লে ডিভাইস লেভেলে env.json এ ডিভাইসের নেটওয়ার্ক নামের সাথে কনফিগার করা হয়। এখানে ডিভাইস এবং I2C সেটিংসের একটি নিষ্কাশিত নমুনা:

"যন্ত্র": {

"0": {"name": "airding", "description": "এয়ার কোয়ালিটি সেন্সর", … "i2c-scl": "D2", "i2c-sda": "D1"}}

ব্রেডবোর্ডে আপনি সেন্সরের সাথে সংযোগের তারগুলি দেখতে পারেন: 3.3V = লাল, GND = কালো, SCL = হলুদ, SDA = নীল

BME680 এর কনফিগারেশন config.json এ ব্যবহার করা যেতে পারে:

"bme680": {

"bd": {"address": "0x77", "readtime": "10s"}}

আমরা পরে কর্ম যোগ করব।

সেটআপ পরীক্ষা করার জন্য শুধু একটি ব্রাউজার ব্যবহার করুন এবং https://airding/board.htm খুলুন এবং আপনি সেন্সরের প্রকৃত মানগুলি দেখতে পাবেন এবং সেগুলি প্রতি 10 সেকেন্ডে আপডেট হবে:

ধাপ 6: PMS5003 সেন্সর যুক্ত করুন

PMS5003 সেন্সর যুক্ত করুন
PMS5003 সেন্সর যুক্ত করুন

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

এই সেন্সরের শক্তি অবশ্যই ভিন থেকে নেওয়া উচিত যা সাধারণত ইউএসবি বাস দ্বারা চালিত হয়। GND একই কিন্তু Vin পিনের পাশে পাওয়া যায়।

সেন্সর থেকে ডেটা একটি স্ট্যান্ডার্ড 9600 বড সিরিয়াল ফরম্যাটে স্থানান্তরিত হয় তাই rx এবং tx পিন এবং পড়ার সময় কনফিগার করা প্রয়োজন:

"পিএমএস": {

"pm25": {"description": "pm25 particle sensor", "pinrx": "D6", "pintx": "D5", "readtime": "10s"}}

আমরা পরে কর্ম যোগ করব।

সেটআপটি আবার পরীক্ষা করতে শুধু ডিভাইসটি রিবুট করুন এবং একটি ব্রাউজার ব্যবহার করুন এবং https://airding/board.htm খুলুন এবং আপনি সেন্সরের প্রকৃত pm35 মান দেখতে পাবেন এবং সেগুলি প্রতি 10 সেকেন্ডে আপডেট হবে কিন্তু এই মানটি সাধারণত প্রায়ই পরিবর্তন হয় না।

সেন্সরের পাশে একটি মোমবাতির আলো রেখে আপনি উচ্চ মান পেতে পারেন কারণ একটি মোমবাতি এই কণার অনেকটা উৎপন্ন করে।

এখন আপনি একটি সুন্দর আবাসনে সবকিছু রাখতে পারেন কারণ অন্যান্য কনফিগারেশন এবং এমনকি সফটওয়্যার আপডেটগুলি দূরবর্তীভাবে করা যেতে পারে।

ধাপ 7: কিছু নেটওয়ার্ক বৈশিষ্ট্য যোগ করা

Env.json এ নিম্নলিখিত কনফিগারেশন এক্সট্র্যাক্ট সক্রিয় করা হচ্ছে

  • বাতাসে ফার্মওয়্যার আপডেট করা
  • SSDP নেটওয়ার্ক প্রোটোকল ব্যবহার করে নেটওয়ার্ক সনাক্ত করার অনুমতি দেয় এবং একটি এনটিপি সার্ভার থেকে বর্তমান সময় পুনরুদ্ধার করে।

{

… "Ota": {"0": {"port": 8266, "passwd": "123", "description": "শুনুন 'ওভার দ্য এয়ার' ওটিএ আপডেটস"}}, "ssdp": {"0 ": {" Manufacturer ":" yourname "}}," ntptime ": {" 0 ": {" readtime ":" 36h "," zone ": 2}}}

আপনি আপনার অবস্থানের সময় অঞ্চল সমন্বয় করা উচিত। যদি আপনার সন্দেহ হয় আপনি ইউটিসি/জিএমটি থেকে অফসেট পেতে ওয়েব সাইট https://www.timeanddate.com/ ব্যবহার করতে পারেন। জার্মানি গ্রীষ্মকালের জন্য "2" সঠিক।

আপনি

পুনরায় চালু করার পরে আপনি নেটওয়ার্কে এয়ারডিং ডিভাইসটি খুঁজে পেতে পারেন এবং এনটিপি সার্ভার থেকে উত্তর পাওয়ার পরে স্থানীয় সময় পাওয়া যায়।

ধাপ 8: কিছু লগিং যোগ করা

শুধু প্রকৃত মান যথেষ্ট নাও দিতে পারে তাই আরো কিছু উপাদান ব্যবহার করা যেতে পারে।

এই গল্পের জন্য লগ এলিমেন্ট এবং NPTTime এলিমেন্ট ব্যবহার করা হয় লগ ফাইলে সেন্সর ভ্যালুর ইতিহাস রেকর্ড করতে এবং এই এলিমেন্টের ওয়েব UI কার্ড এটিকে গ্রাফ হিসেবে দেখাতে পারে।

নিম্নলিখিত কনফিগারেশন গ্যাস এবং কণার জন্য 2 লগ উপাদান তৈরি করে:

{

"log": {"pm": {"description": "pm25 এর লগ", "filename": "/pmlog.txt", "filesize": "10000"}, "aq": {"description": " গ্যাস মানের লগ "," ফাইলের নাম ":" /aqlog.txt "," filesize ":" 10000 "}}}

ধাপ 9: ক্রিয়া

ক্রিয়া
ক্রিয়া

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

ক্রিয়াগুলি এমন উপাদানটিতে কনফিগার করা হয় যা অ্যাকশন নির্গত করে 2 টি এন্ট্রি প্রয়োজন:

  • Pms/p25 onvalue ইভেন্টটি একটি ভ্যালু অ্যাকশন ব্যবহার করে লগ/পিএম এলিমেন্টে প্রকৃত মান পাঠায়।
  • Bme680/bd ongas ইভেন্ট একটি ভ্যালু অ্যাকশন ব্যবহার করে লগ/পিএম এলিমেন্টে প্রকৃত মান পাঠায়।

{

"pms": {"pm25": {… "onvalue": "log/pm? value = $ v"}}, "bme680": {"bd": {… "ongas": "log/aq? value = $ v "}}}

এখন সমস্ত উপাদান কনফিগার করা হয়েছে।

ধাপ 10: ছবি এবং কনফিগারেশন ফাইল

ছবি এবং কনফিগারেশন ফাইল
ছবি এবং কনফিগারেশন ফাইল
ছবি এবং কনফিগারেশন ফাইল
ছবি এবং কনফিগারেশন ফাইল
ছবি এবং কনফিগারেশন ফাইল
ছবি এবং কনফিগারেশন ফাইল

এখানে আমার চূড়ান্ত আইওটি এয়ার কোয়ালিটি সেন্সরের কিছু ছবি।

ডাউনলোডের জন্য কনফিগারেশন ফাইল আপলোড করার আগে *.json (no.txt) নামকরণ করতে হবে।

লিঙ্ক এবং রেফারেন্স

  • হোমডিং সোর্স কোড রিপোজিটরি:
  • ডকুমেন্টেশন:
  • আদর্শ উদাহরণ:
  • BME680 উপাদান:
  • পিএমএস এলিমেন্ট:
  • লগ উপাদান:
  • NtpTime উপাদান:

প্রস্তাবিত: