عن المشروع
TaupunktLueftung هو نظام قائم على ESP32 للتحكم الذكي في التهوية بناءً على فرق نقطة الندى. إنه مثالي لتجفيف الغرف الرطبة مثل الأقبية وغرف الغسيل أو مناطق التخزين – بكفاءة وتلقائية كاملة.
يقيس النظام درجة الحرارة والرطوبة في الداخل والخارج (عبر مستشعرات مثل SHT31 أو DHT22 – أو عبر MQTT)، ويحسب نقاط الندى، ويقوم بتشغيل التهوية فقط عندما تتوفر ظروف تجفيف – أي عندما يكون الهواء الخارجي قادرًا على امتصاص الرطوبة بدلاً من إدخالها. في وضع التحكم في الرطوبة، يحاول الحفاظ على مستوى الرطوبة المطلوب عن طريق إزالة الرطوبة أو ترطيبها.
يتم تبديل التهوية عبر مرحل – بشكل مثالي في إعداد مع مروحتين: واحدة تسحب الهواء الجاف، والأخرى تطرد الهواء الرطب. وهذا يخلق تدفق هواء فعال للتجفيف المستهدف.
## الميزات
- تهوية متحكم بها بنقطة الندى للتجفيف المستهدف – خوارزمية تحليل نقطة الندى تتحكم في التهوية بناءً على الفرق.
- يتم تكوين بيانات اعتماد WiFi عبر نقطة الوصول (`TaupunktLueftung-Setup`) في المتصفح وتخزينها بشكل دائم. لا حاجة لتحرير يدوي في `secrets.h`.
- واجهة ويب مع عرض بيانات مباشر، رسوم بيانية في الوقت الفعلي (عروض كل ساعة ويومية وشهرية)، ومنطقة تكوين.
- **تصميم فاتح/داكن (فاتح/داكن/النظام)**، قابل للتبديل عبر قائمة منسدلة – يتم حفظ الاختيار في المتصفح.
- **حماية تسجيل الدخول (HTTP Basic Auth)** لواجهة الويب بأكملها، يمكن تغيير اسم المستخدم وكلمة المرور أثناء التشغيل.
- حماية اختيارية من درجة الحرارة ضد التبريد الزائد.
- حماية اختيارية من الجفاف ضد انخفاض الرطوبة.
- وضع تحكم اختياري في الرطوبة للحفاظ على مستوى الرطوبة المطلوب.
- **آمن عند فشل المستشعر**: إذا استمر خطأ المستشعر، يتم إيقاف التهوية تلقائيًا كإجراء أمان بدلاً من الاستمرار في التشغيل في الحالة الأخيرة.
- أوقات تأخير قابلة للضبط لحماية المروحة/المرحل في المناطق الحدودية.
- واجهة MQTT (نشر واشتراك) + اكتشاف تلقائي لـ Home Assistant.
- معياري: مصدر مستشعر قابل للتحديد (أجهزة أو بيانات MQTT)، قابل للتبديل مباشرة في منطقة "مصدر المستشعر".
- نسخة احتياطية للبرنامج الثابت: يمكن حفظ البرنامج الثابت الحالي كملف `.bin` قبل التحديث.
- يمكن إعادة تعيين بيانات اعتماد WiFi عبر زر في واجهة الويب دون فقدان الإعدادات الأخرى.
- يدعم تحديثات البرنامج الثابت عبر الهواء (OTA). بعد الوميض الأولي عبر USB من Arduino IDE، يمكن تحديث إصدارات البرنامج الثابت المخصصة عبر OTA من Arduino IDE، أو رفعها من ملف برنامج ثابت عبر واجهة الويب.
- تحسينات الأداء (منذ v4.2): يتم تخزين CSS/JavaScript مؤقتًا في المتصفح بدلاً من إعادة تحميلها من ESP32 في كل زيارة صفحة؛ إصلاح WiFi يبقي وضع السكون الحديث معطلًا بشكل دائم (يمنع التأخيرات الملحوظة بعد إعادة اتصال WiFi)؛ يتم تقييد محاولات إعادة اتصال MQTT بحيث لا يحجب الوسيط غير القابل للوصول واجهة الويب.
## المكونات المطلوبة والإعداد
### مكونات الأجهزة
| المكون | الوصف | السعر التقريبي (يورو) |
| --- | --- | --- |
| **لوحة ESP32 Dev (مثل DOIT) | متحكم دقيق مع WiFi | 6–10 يورو |
| **مستشعر SHT31 (داخلي، اختياري خارجي) | درجة حرارة ورطوبة، I2C، دقة عالية | 5–8 يورو لكل منهما |
| **مستشعر DHT22 (خارجي، بديل) | درجة حرارة ورطوبة، سلك واحد رقمي، أرخص | 3–5 يورو |
| **مصابيح LED (3x)** + مقاومات (220–470 أوم) | مؤشرات الحالة: أخضر، أصفر، أحمر | 1–2 يورو |
| **وحدة مرحل (قناة واحدة) | للتحكم في التهوية | 2–4 يورو |
| **أسلاك توصيل / لوحة تجارب | للإعداد والاختبار | 2–5 يورو |
| **غلاف (اختياري) | حماية لـ ESP32 والأسلاك | 3–8 يورو |
**التكلفة الإجمالية:** حوالي **20–30 يورو، حسب التكوين والمصدر.
### الإعداد والأسلاك
**تخطيط دبابيس ESP32:**
| دبوس ESP32 | الوظيفة | متصل بـ |
| --- | --- | --- |
| GPIO17 | خط بيانات DHT22 | DHT22 (مع مقاومة سحب 10 كيلو أوم) إلى 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 Dev |
| |
| GPIO17 --> DHT22 data | (فقط لنسخة DHT22)
| GPIO16 --> Relay IN |
| GPIO2 --> Green LED |
| GPIO18 --> Red LED |
| GPIO19 --> Yellow LED |
| GPIO21 --> SDA (SHT31) |
| GPIO22 --> SCL (SHT31) |
+-------------+--------------+
| 3.3V / GND
```
LEDs: الأنود (الطرف الطويل) → مقاومة → GPIO / الكاثود (الطرف القصير) → GND
### اختيار المستشعر الخارجي
يدعم هذا المشروع نوعين من المستشعرات للمستشعر الخارجي:
- **SHT31 (موصى به)** – مستشعر رقمي I2C، أكثر دقة واستقرارًا بشكل ملحوظ من DHT22 (عادةً ±2% RH مقابل ±2–5% RH لـ DHT22)، يستجيب بشكل أسرع للتغيرات، ويوفر قيمًا موثوقة حتى في درجات الحرارة المنخفضة، ويستخدم I2C وهو بروتوكول نقل أكثر قوة وأقل عرضة للتداخل من توقيت السلك الواحد الخاص بـ DHT22. للتحكم بناءً على فروق صغيرة في نقطة الندى، تؤثر دقة المستشعر الأعلى مباشرة على جودة قرارات التهوية.
- **DHT22** – أرخص، أقل دقة، ولكن أسلاك أبسط بثلاثة أسلاك بدون عنونة I2C.
**ملاحظة خاصة لمستشعري 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.
**إصدارات البرنامج الثابت الجاهزة دون تجميع بنفسك:** كل [إصدار](https://github.com/mallewski/TaupunktLueftung/releases) على GitHub يحتوي تلقائيًا على **ملفين `.bin` جاهزين** – `TaupunktLueftung_dht22.bin` و `TaupunktLueftung_sht31.bin`. ببساطة اختر الملف المطابق لأجهزتك أثناء تحديث OTA في واجهة الويب، دون الحاجة لتثبيت Arduino IDE.
### ملاحظات
- **وحدة المرحل:** يمكن استخدامها لتبديل مروحة تهوية 230 فولت. **تحذير:** يجب أن يتم توصيل الجهد الرئيسي فقط بواسطة موظفين مؤهلين.
- **MQTT:** لاستقبال بيانات المستشعر الخارجي، يلزم وجود وسيط MQTT (مثل Mosquitto أو Home Assistant). الاكتشاف التلقائي مدعوم (متوافق مع Home Assistant).
- **واجهة الويب:** جميع الإعدادات مثل MQTT ومصادر المستشعرات والعتبات قابلة للتكوين مباشرة عبر واجهة المتصفح، محمية بتسجيل دخول (اسم مستخدم/كلمة مرور).
- **بيانات الاعتماد الافتراضية بعد أول وميض:** اسم المستخدم `admin`، كلمة المرور من `secrets.h` (`CONFIG_PASSWORD`) للبرامج الثابتة المترجمة ذاتيًا، أو [...] يمكن تغيير كلاهما لاحقًا في واجهة الويب تحت الإعدادات ← الوصول (تسجيل الدخول).
### توصية المروحة
100–150 م³/ساعة لغرف الأقبية الصغيرة. يمكن أيضًا استخدام مقبس ذكي WiFi مدمج عبر نظام المنزل الذكي (مثل Home Assistant).
### مصدر الطاقة والفصل
ضع 3.3V إلى GND في أقرب مكان ممكن من دبابيس الطاقة، بشكل أكثر فعالية كمزيج من مكثفين بالتوازي: **مكثف إلكتروليتي (470–1000 ميكروفاراد)** لانخفاضات الجهد القصيرة، بالإضافة إلى **مكثف سيراميكي (100 نانوفاراد)** لارتفاعات الضوضاء عالية التردد القصيرة – المكثف الإلكتروليتي وحده لا يتعامل بشكل كافٍ مع المكونات عالية التردد.
### تكامل Home Assistant (MQTT)
يمكن تغذية مستشعرات Home Assistant الموجودة كمصدر مستشعر عبر الأتمتة (انظر [الدليل: مستشعرات HA عبر MQTT](https://github.com/mallewski/TaupunktLueftung/blob/main/docs/Anleitung_HA_Sensoren_via_MQTT.md)).
إذا أعجبك هذا المشروع أو وجدته مفيدًا، يمكنك شراء قهوة لي.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.