প্রকল্প সম্পর্কে

TaupunktLueftung হলো ESP32-ভিত্তিক একটি সিস্টেম, যা শিশির বিন্দুর পার্থক্যের ভিত্তিতে বুদ্ধিমান বায়ুচলাচল নিয়ন্ত্রণ করে। এটি বেসমেন্ট, লন্ড্রি রুম বা স্টোরেজ এলাকার মতো আর্দ্র কক্ষ শুকানোর জন্য আদর্শ – দক্ষ এবং সম্পূর্ণ স্বয়ংক্রিয়। সিস্টেমটি ভিতরে ও বাইরের তাপমাত্রা এবং আর্দ্রতা পরিমাপ করে (SHT31 বা DHT22-এর মতো সেন্সরের মাধ্যমে – বা MQTT-এর মাধ্যমে), শিশির বিন্দু গণনা করে, এবং শুধুমাত্র তখনই বায়ুচলাচল সক্রিয় করে যখন শুকানোর উপযোগী অবস্থা থাকে – অর্থাৎ, যখন বাইরের বাতাস আর্দ্রতা শোষণ করতে সক্ষম হয়, প্রবেশ করানোর পরিবর্তে। আর্দ্রতা নিয়ন্ত্রণ মোডে, এটি কাঙ্ক্ষিত আর্দ্রতার মাত্রা বজায় রাখার চেষ্টা করে আর্দ্রতা হ্রাস বা বৃদ্ধির মাধ্যমে। বায়ুচলাচল একটি রিলে দিয়ে সুইচ করা হয় – সর্বোত্তমভাবে দুটি ফ্যানের সেটআপে: একটি শুকনো বাতাস টানে, অন্যটি আর্দ্র বাতাস বের করে দেয়। এটি লক্ষ্যযুক্ত আর্দ্রতা হ্রাসের জন্য কার্যকর বায়ুপ্রবাহ তৈরি করে। ## বৈশিষ্ট্য - শিশির বিন্দু নিয়ন্ত্রিত বায়ুচলাচল – একটি শিশির বিন্দু বিশ্লেষণ অ্যালগরিদম পার্থক্যের ভিত্তিতে বায়ুচলাচল নিয়ন্ত্রণ করে। - WiFi শংসাপত্র অ্যাক্সেস পয়েন্ট (`TaupunktLueftung-Setup`) এর মাধ্যমে ব্রাউজারে কনফিগার করা হয় এবং স্থায়ীভাবে সংরক্ষিত থাকে। `secrets.h`-এ ম্যানুয়াল সম্পাদনার প্রয়োজন নেই। - লাইভ ডেটা প্রদর্শন, রিয়েল-টাইম চার্ট (ঘণ্টা, দৈনিক এবং মাসিক ভিউ) এবং কনফিগারেশন এলাকা সহ ওয়েব ইন্টারফেস। - **লাইট/ডার্ক ডিজাইন (Light/Dark/System)**, ড্রপডাউনের মাধ্যমে পরিবর্তনযোগ্য – পছন্দটি ব্রাউজারে সংরক্ষিত হয়। - **লগইন সুরক্ষা (HTTP Basic Auth)** পুরো ওয়েব ইন্টারফেসের জন্য, ব্যবহারকারীর নাম এবং পাসওয়ার্ড অপারেশনের সময় পরিবর্তনযোগ্য। - অতিরিক্ত ঠান্ডা হওয়ার বিরুদ্ধে ঐচ্ছিক তাপমাত্রা সুরক্ষা। - খুব কম আর্দ্রতার বিরুদ্ধে ঐচ্ছিক শুষ্কতা সুরক্ষা। - কাঙ্ক্ষিত আর্দ্রতার মাত্রা বজায় রাখতে ঐচ্ছিক আর্দ্রতা নিয়ন্ত্রণ মোড। - **সেন্সর ব্যর্থতায় ফেল-সেফ**: সেন্সর ত্রুটি অব্যাহত থাকলে, নিরাপত্তা ব্যবস্থা হিসেবে বায়ুচলাচল স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়, শেষ অবস্থায় অনির্দিষ্টকাল ধরে চলার পরিবর্তে। - সীমানা এলাকায় ফ্যান/রিলে সুরক্ষার জন্য সামঞ্জস্যযোগ্য বিলম্ব সময়। - MQTT ইন্টারফেস (পাবলিশ ও সাবস্ক্রাইব) + Home Assistant অটো-ডিসকভারি। - মডুলার: নির্বাচনযোগ্য সেন্সর উৎস (হার্ডওয়্যার বা MQTT ডেটা), "সেন্সর উৎস" এলাকায় সরাসরি পরিবর্তনযোগ্য। - ফার্মওয়্যার ব্যাকআপ: আপডেটের আগে বর্তমান চলমান ফার্মওয়্যার `.bin` হিসাবে সংরক্ষণ করা যায়। - WiFi শংসাপত্র ওয়েব ইন্টারফেসের একটি বোতামের মাধ্যমে রিসেট করা যায়, অন্যান্য সেটিংস না হারিয়ে। - ওভার-দ্য-এয়ার (OTA) ফার্মওয়্যার আপডেট সমর্থন করে। Arduino IDE থেকে USB-এর মাধ্যমে প্রাথমিক ফ্ল্যাশিংয়ের পরে, কাস্টমাইজড ফার্মওয়্যার ভেরিয়েন্ট Arduino IDE থেকে OTA-র মাধ্যমে আপডেট করা যায়, বা ওয়েব ইন্টারফেসের মাধ্যমে ফার্মওয়্যার ফাইল থেকে আপলোড করা যায়। - পারফরম্যান্স অপ্টিমাইজেশন (v4.2 থেকে): CSS/JavaScript ব্রাউজারে ক্যাশ করা হয়, প্রতিবার ESP32 থেকে পুনরায় লোড করার পরিবর্তে; একটি WiFi ফিক্স মডেম স্লিপ মোড স্থায়ীভাবে নিষ্ক্রিয় রাখে (WiFi পুনঃসংযোগের পরে লক্ষণীয় বিলম্ব প্রতিরোধ করে); MQTT পুনঃসংযোগ প্রচেষ্টা সীমিত করা হয় যাতে অপ্রাপ্য ব্রোকার ওয়েব ইন্টারফেস ব্লক না করে। ## প্রয়োজনীয় উপাদান এবং সেটআপ ### হার্ডওয়্যার উপাদান | উপাদান | বিবরণ | আনুমানিক মূল্য (EUR) | | --- | --- | --- | | **ESP32 ডেভ বোর্ড** (যেমন, DOIT) | WiFi সহ মাইক্রোকন্ট্রোলার | 6–10 EUR | | **SHT31 সেন্সর (ভিতরে, ঐচ্ছিকভাবে বাইরে)** | তাপমাত্রা ও আর্দ্রতা, I2C, উচ্চ নির্ভুলতা | 5–8 EUR প্রতিটি | | **DHT22 সেন্সর (বাইরে, বিকল্প)** | তাপমাত্রা ও আর্দ্রতা, ডিজিটাল সিঙ্গেল-ওয়্যার, সস্তা | 3–5 EUR | | **LED (3x)** + রেজিস্টর (220–470 ওহম) | স্ট্যাটাস নির্দেশক: সবুজ, হলুদ, লাল | 1–2 EUR | | **রিলে মডিউল (1 চ্যানেল)** | বায়ুচলাচল নিয়ন্ত্রণের জন্য | 2–4 EUR | | **জাম্পার তার / ব্রেডবোর্ড** | সেটআপ এবং পরীক্ষার জন্য | 2–5 EUR | | **এনক্লোজার (ঐচ্ছিক)** | ESP32 এবং তারের সুরক্ষা | 3–8 EUR | **মোট খরচ:** আনুমানিক **20–30 EUR**, কনফিগারেশন এবং উৎসের উপর নির্ভর করে। ### সেটআপ এবং ওয়্যারিং **ESP32 পিনআউট:** | ESP32 পিন | ফাংশন | সংযুক্ত | | --- | --- | --- | | GPIO17 | DHT22 ডেটা লাইন | DHT22 (10 kohm পুল-আপ সহ) থেকে GND – শুধুমাত্র DHT22 ভেরিয়েন্টের জন্য | | GPIO16 | রিলে | রিলে IN | | GPIO2 | সবুজ LED | রেজিস্টর + LED | | GPIO18 | লাল LED | রেজিস্টর + LED | | GPIO19 | হলুদ LED | রেজিস্টর + LED | | GPIO21 | SDA (I2C ডেটা) | SHT31 ভিতরে **এবং** SHT31 বাইরে (শেয়ার্ড বাস) | | GPIO22 | SCL (I2C ক্লক) | SHT31 ভিতরে **এবং** SHT31 বাইরে (শেয়ার্ড বাস) | | 3.3V/GND | পাওয়ার সাপ্লাই | সব উপাদান | ### সরলীকৃত ASCII স্কিম্যাটিক ``` +----------------------------+ | ESP32 ডেভ | | | | GPIO17 --> DHT22 ডেটা | (শুধুমাত্র DHT22 ভেরিয়েন্ট) | GPIO16 --> রিলে IN | | GPIO2 --> সবুজ LED | | GPIO18 --> লাল LED | | GPIO19 --> হলুদ LED | | GPIO21 --> SDA (SHT31) | | GPIO22 --> SCL (SHT31) | +-------------+--------------+ | 3.3V / GND ``` LED: অ্যানোড (লম্বা পিন) → রেজিস্টর → GPIO / ক্যাথোড (ছোট পিন) → GND ### আউটডোর সেন্সর নির্বাচন এই প্রকল্পটি আউটডোর সেন্সরের জন্য দুটি সেন্সর প্রকার সমর্থন করে: - **SHT31 (প্রস্তাবিত)** – ডিজিটাল I2C সেন্সর, DHT22-এর তুলনায় উল্লেখযোগ্যভাবে বেশি নির্ভুল এবং স্থিতিশীল (সাধারণত ±2% RH বনাম DHT22-এর ±2–5% RH), পরিবর্তনে দ্রুত সাড়া দেয়, কম তাপমাত্রাতেও নির্ভরযোগ্য মান প্রদান করে, এবং I2C ব্যবহার করে যা DHT22-এর মালিকানাধীন সিঙ্গেল-ওয়্যার টাইমিংয়ের চেয়ে বেশি শক্তিশালী, কম হস্তক্ষেপ-প্রবণ ট্রান্সমিশন প্রোটোকল। ছোট শিশির বিন্দুর পার্থক্যের ভিত্তিতে নিয়ন্ত্রণের জন্য, উচ্চতর সেন্সর নির্ভুলতা সরাসরি বায়ুচলাচল সিদ্ধান্তের গুণমানকে প্রভাবিত করে। - **DHT22** – সস্তা, কম নির্ভুল, তবে I2C অ্যাড্রেসিং ছাড়া সহজ 3-ওয়্যার ওয়্যারিং। **দুটি SHT31 সেন্সরের জন্য বিশেষ নোট:** যেহেতু ভিতরের এবং ঐচ্ছিক বাইরের SHT31 উভয়ই I2C ব্যবহার করে, উভয় সেন্সর **শেয়ার্ড বাসে** (SDA = GPIO21, SCL = GPIO22) কাজ করতে পারে – অতিরিক্ত ডেটা লাইনের প্রয়োজন নেই। ESP32-কে দুটি সেন্সরের মধ্যে পার্থক্য করতে দেওয়ার জন্য, SHT31-এর ঠিকানা নির্বাচনের জন্য একটি `AD`/`ADR` পিন রয়েছে: | সেন্সর | ADDR/AD পিন | ফলস্বরূপ I2C ঠিকানা | | --- | --- | --- | | SHT31 ভিতরে | খোলা বা GND-তে | `0x44` (ডিফল্ট) | | SHT31 বাইরে | **3.3V**-তে সংযুক্ত | `0x45` | *(কিছু SHT31 মডিউলে অতিরিক্ত `AL`/`ALR` পিন থাকে – এটি একটি অ্যালার্ম/ইন্টারাপ্ট আউটপুট এবং ঠিকানা নির্বাচনের সাথে সম্পর্কিত নয়; এটি সংযোগহীন রাখুন।)* **আউটডোর সেন্সর প্রকার সেট করা:** ভিতরে/বাইরে মোড (হার্ডওয়্যার বা MQTT) ওয়েব ইন্টারফেসে সেট করা যায়, তবে আউটডোর সেন্সরের জন্য SHT31 এবং DHT22-এর মধ্যে পছন্দটি ইচ্ছাকৃতভাবে সোর্স কোডে একটি **কম্পাইল-টাইম সিদ্ধান্ত** – এতে শুধুমাত্র প্রকৃতপক্ষে প্রয়োজনীয় সেন্সর লাইব্রেরি কম্পাইলেশনের সময় অন্তর্ভুক্ত হয়, ফ্ল্যাশ মেমরি সাশ্রয় করে এবং সম্ভবত অস্তিত্বহীন দ্বিতীয় সেন্সরের সাথে অপ্রয়োজনীয় I2C যোগাযোগ এড়ায়। সেন্সর প্রকার পরিবর্তন করতে: 1. `TaupunktLueftung.ino` খুলুন। 2. লাইনটি খুঁজুন `//#define SENSOR_TYP_AUSSEN_SHT31`। 3. **SHT31 আউটডোরের** জন্য (রিপোজিটরিতে ডিফল্ট): লাইনটি সক্রিয় রাখুন (কমেন্ট আউট নয়)। 4. **DHT22 আউটডোরের** জন্য: শুরুতে কমেন্ট মার্কার `//` ফিরিয়ে দিন এবং নিশ্চিত করুন DHT22 পিন 17-এ সংযুক্ত। **নিজে কম্পাইল না করে প্রি-বিল্ট ফার্মওয়্যার ভেরিয়েন্ট:** GitHub-এ প্রতিটি [রিলিজ](https://github.com/mallewski/TaupunktLueftung/releases) স্বয়ংক্রিয়ভাবে **দুটি রেডি-মেড `.bin` ফাইল** ধারণ করে – `TaupunktLueftung_dht22.bin` এবং `TaupunktLueftung_sht31.bin`। ওয়েব ইন্টারফেসে OTA আপডেটের সময় আপনার হার্ডওয়্যারের সাথে মিলে যাওয়া ফাইলটি বেছে নিন, Arduino IDE ইনস্টলেশনের প্রয়োজন নেই। ### নোট - **রিলে মডিউল:** 230V বায়ুচলাচল ফ্যান সুইচ করতে ব্যবহার করা যেতে পারে। **সতর্কতা:** মেইন ভোল্টেজ শুধুমাত্র যোগ্যতাসম্পন্ন কর্মীদের দ্বারা সংযুক্ত করা উচিত। - **MQTT:** বাহ্যিক সেন্সর ডেটা গ্রহণের জন্য একটি MQTT ব্রোকার প্রয়োজন (যেমন, Mosquitto বা Home Assistant)। অটো-ডিসকভারি সমর্থিত (Home Assistant সামঞ্জস্যপূর্ণ)। - **ওয়েব ইন্টারফেস:** MQTT, সেন্সর উৎস এবং থ্রেশহোল্ডের মতো সমস্ত সেটিংস ব্রাউজার ইন্টারফেসের মাধ্যমে সরাসরি কনফিগারযোগ্য, লগইন (ব্যবহারকারীর নাম/পাসওয়ার্ড) দ্বারা সুরক্ষিত। - **প্রথম ফ্ল্যাশের পরে ডিফল্ট শংসাপত্র:** ব্যবহারকারীর নাম `admin`, পাসওয়ার্ড `secrets.h` (`CONFIG_PASSWORD`) থেকে স্ব-কম্পাইলড ফার্মওয়্যারের জন্য, বা [...] উভয়ই পরে ওয়েব ইন্টারফেসে সেটিংস → অ্যাক্সেস (লগইন) এর অধীনে পরিবর্তন করা যেতে পারে। ### ফ্যান সুপারিশ ছোট বেসমেন্ট কক্ষের জন্য 100–150 m³/h। স্মার্ট হোম সিস্টেমের (যেমন Home Assistant) মাধ্যমে সংহত একটি WiFi স্মার্ট প্লাগও ব্যবহার করা যেতে পারে। ### পাওয়ার সাপ্লাই এবং ডিকপলিং 3.3V থেকে GND পাওয়ার পিনের যতটা সম্ভব কাছাকাছি রাখুন, সবচেয়ে কার্যকরভাবে সমান্তরালে দুটি ক্যাপাসিটরের সংমিশ্রণ হিসাবে: একটি **ইলেক্ট্রোলাইটিক ক্যাপাসিটর (470–1000 µF)** স্বল্প ভোল্টেজ ডিপের জন্য, সাথে একটি **সিরামিক ক্যাপাসিটর (100 nF)** সংক্ষিপ্ত, উচ্চ-ফ্রিকোয়েন্সি নয়েজ স্পাইকের জন্য – একা ইলেক্ট্রোলাইটিক উচ্চ-ফ্রিকোয়েন্সি উপাদানগুলি পর্যাপ্তভাবে পরিচালনা করে না। ### Home Assistant ইন্টিগ্রেশন (MQTT) বিদ্যমান Home Assistant সেন্সরগুলিকে অটোমেশনের মাধ্যমে সেন্সর উৎস হিসাবে খাওয়ানো যেতে পারে (দেখুন [গাইড: HA সেন্সর MQTT-এর মাধ্যমে](https://github.com/mallewski/TaupunktLueftung/blob/main/docs/Anleitung_HA_Sensoren_via_MQTT.md))। আপনি যদি এই প্রকল্পটি পছন্দ করেন বা এটি দরকারী মনে করেন, আপনি আমাকে একটি কফি কিনতে পারেন।