Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Donanım baxımından, layihə istifadə edir:
- Arduino Uno / Mega 2560
- Ethernet qalxanı Wiznet W5100 / Ethernet modulu Wiznet W5200-W5500
- OneWire avtobusundakı DS18B20 temperatur sensoru
- Qazan keçid üçün istifadə olunan SRD-5VDC-SL-C rölesi
Addım 1: Ethernet Termostatının Təsviri
Arduino, məsələn, bu gün göstərəcəyimiz bir otaq termostatı qurmaq üçün istifadə edilə bilən lazımlı bir bağlama platformasıdır. Termostata, yerləşdiyi LAN şəbəkəsindən daxil olmaq mümkündür, eyni zamanda termostatın bütün elementlərini konfiqurasiya etmək üçün istifadə olunan bir veb interfeysi ilə təchiz edilmişdir. Veb interfeysi birbaşa veb server rejimində Arduino üzərində işləyir. Veb server məlumatlandırıcı və ya hətta funksional ola biləcək bir neçə müstəqil HTML səhifəsinin işləməsinə imkan verir. Veb server 80 portunda işləyir -
Layihədə istifadə olunan SRD-5VDC-SL-C elektromaqnit rölesi 230V-2300W gücündə 10A-a qədər keçid etməyə imkan verir. Bir DC dövrəsinin (yükünün) dəyişdirilməsi halında 300W (30V DC -də 10A) keçid etmək mümkündür. Alternativ olaraq, OMRON G3MB-202P SSR rölesi, yalnız induktiv olmayan yüklər üçün və yalnız AC sxemləri üçün uyğun olan kabel sxeminə tam uyğundur. Maksimum keçid gücü 460W (230V, 2A). Ethernet qalxanı və digər ətraf qurğuları olan Arduino istehlakı, röleyi açıq vəziyyətdə 100-120mA səviyyəsindədir. Bağlandıqda, 5V təchizatda 200mA -dan aşağı.
Addım 2: Veb interfeysi
Termostat üçün veb interfeysi imkan verir:
- DS18B20 sensorundan real vaxt temperaturuna baxın
- Səhifədə dinamik çıxış dəyişikliyi ilə real vaxt rölesinin vəziyyətinə baxın
- Hədəf (istinad) temperaturunu 5 ilə 50 ° C aralığında 0,25 ° C addım ilə dəyişdirin
- 0,25 ° C addım ilə 0 ilə 10 ° C aralığında histerezis dəyişdirin
Veb interfeysi daha böyük və kiçik ekranları yerləşdirmək üçün hazırlanmışdır. Həssasdır, geniş ekran yüksək keyfiyyətli ekranları dəstəkləyir, həm də mobil cihazları dəstəkləyir. İnterfeys, Arduino-da işləyən bir səhifəni açarkən müştəri tərəfindəki cihazı yükləyən xarici bir CDN serverindən Bootstrap çərçivəsinin idxal edilmiş CSS üslublarından istifadə edir. Arduino Uno yaddaşı məhdud olduğu üçün yalnız bir neçə kB ölçülü səhifələr işlədə bilər. Xarici bir serverdən CSS üslublarını idxal edərək, Arduinonun performansını və yaddaş yükünü azaldacaq. Proqram təminatı (Arduine Uno üçün) 70% flash yaddaşdan (32kB - 4kB Bootloader) və 44% RAM yaddaşından (2kB) istifadə edir.
Veb səhifənin statik hissələri (HTML sənəd başlığı və altbilgisi, Bootstrap CSS bağlantısı, meta etiketlər, HTTP cavab başlığı, Məzmun Növü, forma və daha çox) birbaşa Arduino flash yaddaşında saxlanılır ki, bu da istifadəçi üçün istifadə olunan RAM miqdarını əhəmiyyətli dərəcədə azalda bilər. -yaradılan məzmun. Veb server daha sabitdir və eyni anda şəbəkədəki bir neçə cihazın çoxlu əlaqəsini idarə edə bilir.
Elektrik kəsildikdən sonra da müəyyən edilmiş dəyərləri saxlamaq üçün Arduinonun EEPROM yaddaşında saxlanılır. İstifadə temperaturu 10 -a, histerezis 100 -ə qədərdir. Dəyərlərin hər biri EEPROM yaddaşında maksimum 5B tutur. EEPROM transkripsiya limiti 100.000 transkript səviyyəsindədir. Məlumat yalnız HTML forması təqdim edildikdə yazılır. Cihazın ilk açılışda qeyd olunan EEPROM ofsetlərində heç bir şeyin olmaması halında, avtomatik yazma standart dəyərlərlə yerinə yetiriləcək - istinad: 20.25, histerezis 0.25 ° C
Yenile meta etiketi, hər 10 saniyədə bütün Arduino səhifəsini yeniləyir. Bu vaxta qədər termostatın dəyişməsini yazmaq lazımdır, əks halda səhifə yeniləndikdə giriş pəncərələri sıfırlanacaq. Ethernet kitabxanasında asinxron veb serverin istifadəsi olmadığı üçün bütün səhifə yenidən yazılmalıdır. Əsasən dəyişən dinamik məlumatlar çıxışın cari dəyəridir - Açma / Kapatma.
Addım 3: Web Serverdə işləyən HTML Səhifələr, Şemalar, Mənbə Kodu
Arduino üzərində işləyən HTML səhifələri:
- / - formanı ehtiva edən kök səhifə, röle üçün mövcud məntiqi çıxış siyahısı, temperatur
- /action.html - dəyərləri formadan emal edir, EEPROM yaddaşına yazır, istifadəçini yenidən kök səhifəyə yönləndirir
- / get_data/ - mövcud temperatur, istinad temperaturu və histerezis haqqında məlumatları üçüncü tərəfə (kompüter, mikrokontrolör, digər müştəri …) JSON formatında paylayır
Bu termostatın genişləndirilmiş versiyası da var:
- Röleler üçün əl rejimi (məhdudiyyətsiz vaxt, çətin ON / OFF)
- Gözətçi sayğacı
- Daha çox sensorlar mövcuddur, məsələn: SHT21, SHT31, DHT22, BME280, BMP280 və başqaları
- Soyutma rejimi
- Ethernetdən asılı olmayan RS232 / UART vasitəsilə idarəetmə və konfiqurasiya
- Termostat üçün PID temperatur nəzarət
- Termostat üçün ESP8266, ESP32 platformalarından istifadə imkanı
Layihə üçün proqramın tətbiqini aşağıdakı ünvanda tapa bilərsiniz: https://github.com/martinius96/termostat-ethernet/ Tətbiq Ethernet qalxanına təyin edilmiş statik/dinamik IPv4 ünvanı üçün proqramları ehtiva edir.
Termostat yalnız daxili temperatur üçün nəzərdə tutulmuşdur! (0 ° C -dən yuxarı), sistem məntiqinin uyğunlaşdırıldığı. Mövcud bir otaq termostatını bir termostatla əvəz etmək mümkündür, bir soyuducuda termostatı müvəqqəti olaraq dəyişdirmək, terrariumda və sairədə sabit bir temperatur saxlamaq mümkündür.