جدول المحتويات:

ترموستات الغرفة - Arduino + Ethernet: 3 خطوات
ترموستات الغرفة - Arduino + Ethernet: 3 خطوات

فيديو: ترموستات الغرفة - Arduino + Ethernet: 3 خطوات

فيديو: ترموستات الغرفة - Arduino + Ethernet: 3 خطوات
فيديو: ESP32 + PHY Ethernet LAN8720 - thermostat with webserver 2024, يوليو
Anonim
ترموستات الغرفة - اردوينو + إيثرنت
ترموستات الغرفة - اردوينو + إيثرنت

من حيث الأجهزة ، يستخدم المشروع:

  • اردوينو أونو / ميجا 2560
  • درع إيثرنت Wiznet W5100 / وحدة إيثرنت Wiznet W5200-W5500
  • جهاز استشعار درجة الحرارة DS18B20 في حافلة OneWire
  • مرحل SRD-5VDC-SL-C يستخدم لتبديل الغلاية

الخطوة 1: وصف Ethernet Thermostat

وصف إيثرنت ترموستات
وصف إيثرنت ترموستات

Arduino عبارة عن منصة مضمنة سهلة الاستخدام يمكن استخدامها ، على سبيل المثال ، لبناء منظم حرارة للغرفة ، والذي سنعرضه اليوم. يمكن الوصول إلى منظم الحرارة من شبكة LAN التي يوجد بها ، بينما يكون مزودًا بواجهة ويب تُستخدم لتكوين جميع عناصر منظم الحرارة. تعمل واجهة الويب مباشرة على Arduino في وضع خادم الويب. يسمح خادم الويب بتشغيل العديد من صفحات HTML المستقلة ، والتي يمكن أن تكون مفيدة أو حتى وظيفية. يعمل خادم الويب على المنفذ 80 -

يسمح التتابع الكهرومغناطيسي SRD-5VDC-SL-C ، المستخدم في المشروع ، بالتبديل حتى 10 أمبير عند 230 فولت - الطاقة 2300 واط. في حالة تبديل دائرة التيار المستمر (الحمل) ، يمكن تبديل 300 واط (10 أمبير عند 30 فولت تيار مستمر). بدلاً من ذلك ، فإن مرحل OMRON G3MB-202P SSR متوافق تمامًا مع مخطط الأسلاك ، وهو مناسب فقط للأحمال غير الحثية وحصريًا لدوائر التيار المتردد. الحد الأقصى لقوة التحويل 460 واط (230 فولت ، 2 أمبير). يكون استهلاك Arduino مع درع Ethernet والأجهزة الطرفية الأخرى عند مستوى 100-120mA مع فتح المرحل. عند الإغلاق ، أقل من 200 مللي أمبير عند 5 فولت.

الخطوة الثانية: واجهة الويب

واجهة ويب
واجهة ويب

تسمح واجهة الويب الخاصة بمنظم الحرارة بما يلي:

  • اعرض درجة الحرارة في الوقت الفعلي من جهاز استشعار DS18B20
  • عرض حالة الترحيل في الوقت الفعلي مع تغيير الإخراج الديناميكي على الصفحة
  • قم بتعديل درجة الحرارة المستهدفة (المرجعية) في النطاق من 5 إلى 50 درجة مئوية بخطوة 0.25 درجة مئوية
  • تعديل التباطؤ في النطاق من 0 إلى 10 درجة مئوية بخطوة 0.25 درجة مئوية

تم تصميم واجهة الويب لاستيعاب الشاشات الأكبر والأصغر. إنه سريع الاستجابة ، ويدعم الشاشات العريضة عالية الدقة ، وكذلك الأجهزة المحمولة. تستخدم الواجهة أنماط CSS مستوردة من إطار عمل Bootstrap من خادم CDN خارجي ، والذي يقوم بتحميل الجهاز من جانب العميل عند فتح صفحة تعمل على Arduino. نظرًا لأن Arduino Uno محدود الذاكرة ، فيمكنه تشغيل صفحات بحجم بضعة كيلوبايت فقط. من خلال استيراد أنماط CSS من خادم خارجي ، سيؤدي ذلك إلى تقليل أداء وحمل الذاكرة في Arduino. يستخدم تطبيق البرنامج (لـ Arduine Uno) 70٪ من ذاكرة الفلاش (32 كيلو بايت - 4 كيلو بايت محمل الإقلاع) و 44٪ من ذاكرة الوصول العشوائي (2 كيلو بايت).

يتم تخزين الأجزاء الثابتة من صفحة الويب (رأس وتذييل مستند HTML ، وربط Bootstrap CSS ، والعلامات الوصفية ، ورأس استجابة HTTP ، ونوع المحتوى ، والنموذج وغير ذلك) مباشرةً في ذاكرة فلاش Arduino ، والتي يمكن أن تقلل بشكل كبير من مقدار ذاكرة الوصول العشوائي المستخدمة للمستخدم المحتوى الذي تم إنشاؤه. وبالتالي ، يكون خادم الويب أكثر استقرارًا ويمكنه التعامل مع التوصيلات المتعددة للعديد من الأجهزة في الشبكة في نفس الوقت.

من أجل الحفاظ على القيم المحددة حتى بعد انقطاع التيار الكهربائي ، يتم تخزينها في ذاكرة EEPROM الخاصة بـ Arduino. درجة الحرارة المرجعية لإزاحة 10 ، التباطؤ لإزاحة 100. كل من القيم تحتل 5B كحد أقصى في ذاكرة EEPROM. حد نسخ EEPROM عند مستوى 100000 نسخة. يتم الكتابة فوق البيانات فقط عند تقديم نموذج HTML. في حالة عدم وجود أي شيء مخزّن في الجهاز على إزاحات EEPROM المذكورة عند بدء التشغيل الأول ، سيتم إجراء الكتابة التلقائية بالقيم الافتراضية - المرجع: 20.25 ، التباطؤ 0.25 درجة مئوية

تقوم علامة التحديث الوصفية بتحديث صفحة Arduino بالكامل كل 10 ثوانٍ. بحلول هذا الوقت ، من الضروري كتابة التغيير في منظم الحرارة ، وإلا فسيتم إعادة تعيين نوافذ الإدخال عند تحديث الصفحة. نظرًا لأن مكتبة Ethernet لا تتضمن استخدام خادم ويب غير متزامن ، يجب إعادة كتابة الصفحة بأكملها. البيانات الديناميكية التي تتغير بشكل أساسي هي القيمة الحالية للإخراج - تشغيل / إيقاف.

الخطوة 3: صفحات HTML التي تعمل على خادم الويب ، والخطط ، وكود المصدر

صفحات HTML تعمل على خادم الويب ، والخطط ، وكود المصدر
صفحات HTML تعمل على خادم الويب ، والخطط ، وكود المصدر

صفحات HTML التي تعمل على Arduino:

  • / - صفحة جذر تحتوي على النموذج ، قائمة إخراج المنطق الحالي للترحيل ، درجة الحرارة
  • /action.html - يعالج القيم من النموذج ، ويكتبها في ذاكرة EEPROM ، ويعيد توجيه المستخدم إلى الصفحة الرئيسية
  • / get_data / - يوزع بيانات عن درجة الحرارة الحالية ودرجة الحرارة المرجعية والتباطؤ إلى طرف ثالث (كمبيوتر ، وحدة تحكم دقيقة ، عميل آخر …) بتنسيق JSON

هناك أيضًا إصدار موسع من منظم الحرارة هذا يتضمن:

  • الوضع اليدوي للمرحلات (وقت غير محدود ، تشغيل / إيقاف تشغيل صعب)
  • مؤقت جهاز المراقبة
  • توفر المزيد من المستشعرات ، على سبيل المثال: SHT21 و SHT31 و DHT22 و BME280 و BMP280 وغيرها
  • وضع التبريد
  • التحكم والتكوين عبر RS232 / UART بشكل مستقل عن Ethernet
  • التحكم في درجة الحرارة PID للثرموستات
  • إمكانية استخدام منصات ESP8266 و ESP32 للترموستات

يمكن العثور على تنفيذ البرنامج الخاص بالمشروع على: https://github.com/martinius96/termostat-ethernet/ يحتوي التطبيق على برامج لعنوان IPv4 الثابت / الديناميكي المخصص لدرع Ethernet.

منظم الحرارة مخصص فقط لدرجات الحرارة الداخلية! (فوق 0 درجة مئوية) ، والتي يتم تكييف منطق النظام معها. من الممكن استبدال ترموستات الغرفة الحالي بثرموستات ، ومن الممكن مؤقتًا استبدال منظم الحرارة في الثلاجة ، والحفاظ على درجة حرارة ثابتة في terrarium وما شابه.

موصى به: