İçindekiler:
- Adım 1: Ethernet Termostatının Tanımı
- 2. Adım: Web Arayüzü
- 3. Adım: Web Sunucusunda Çalışan HTML Sayfaları, Şemalar, Kaynak Kodu
Video: Oda Termostatı - Arduino + Ethernet: 3 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Donanım açısından proje şunları kullanır:
- Arduino Uno / Mega 2560
- Ethernet kalkanı Wiznet W5100 / Ethernet modülü Wiznet W5200-W5500
- OneWire veri yolundaki DS18B20 sıcaklık sensörü
- Kazan anahtarlama için kullanılan Röle SRD-5VDC-SL-C
Adım 1: Ethernet Termostatının Tanımı
Arduino, örneğin bugün göstereceğimiz bir oda termostatı oluşturmak için kullanılabilecek kullanışlı bir gömülü platformdur. Termostat, termostatın tüm elemanlarını yapılandırmak için kullanılan bir web arayüzü ile donatılmışken, bulunduğu LAN ağından erişilebilir. Web arayüzü, web sunucusu modunda doğrudan Arduino üzerinde çalışır. Web sunucusu, bilgilendirici ve hatta işlevsel olabilen birkaç bağımsız HTML sayfasının çalıştırılmasına izin verir. Web sunucusu 80 - HTTP bağlantı noktasında çalışır.
Projede kullanılan elektromanyetik röle SRD-5VDC-SL-C, 230V - güç 2300W'da 10A'e kadar anahtarlamaya izin veriyor. Bir DC devresinin (yük) değiştirilmesi durumunda 300W (30V DC'de 10A) anahtarlama yapılabilir. Alternatif olarak, OMRON G3MB-202P SSR rölesi, yalnızca endüktif olmayan yükler için ve yalnızca AC devreleri için uygun olan kablolama şeması için tamamen uyumludur. Maksimum anahtarlama gücü 460W (230V, 2A). Ethernet kalkanı ve diğer çevre birimleri ile Arduino'nun tüketimi röle açıkken 100-120mA seviyesindedir. Kapatıldığında, 5V beslemede 200mA'in altında.
2. Adım: Web Arayüzü
Termostat için web arayüzü şunları sağlar:
- DS18B20 sensöründen gerçek zamanlı sıcaklığı görüntüleyin
- Sayfada dinamik çıkış değişikliği ile gerçek zamanlı röle durumunu görüntüleyin
- 0,25 °C'lik bir adımla 5 ila 50 °C aralığında hedef (referans) sıcaklığı değiştirin
- 0,25 °C'lik bir adımla 0 ila 10 °C aralığında histerezisi değiştirin
Web arayüzü, daha büyük ve daha küçük ekranları barındıracak şekilde tasarlanmıştır. Duyarlıdır, geniş ekran yüksek çözünürlüklü ekranları ve aynı zamanda mobil cihazları destekler. Arayüz, Arduino'da çalışan bir sayfayı açarken istemci tarafı cihazı yükleyen harici bir CDN sunucusundan Bootstrap çerçevesinin içe aktarılan CSS stillerini kullanır. Arduino Uno bellek sınırlı olduğundan, yalnızca birkaç kB boyutundaki sayfaları çalıştırabilir. Harici bir sunucudan CSS stillerini içe aktararak, Arduino'nun performansını ve bellek yükünü azaltacaktır. Yazılım uygulaması (Arduine Uno için) %70 flash belleği (32kB - 4kB Bootloader) ve %44 RAM belleği (2kB) kullanır.
Bir web sayfasının statik bölümleri (HTML belge üstbilgisi ve altbilgisi, Bootstrap CSS bağlantısı, meta etiketler, HTTP yanıt üstbilgisi, İçerik Türü, form ve daha fazlası) doğrudan Arduino'nun flash belleğinde saklanır, bu da kullanıcı için kullanılan RAM miktarını önemli ölçüde azaltabilir. - oluşturulan içerik. Web sunucusu bu nedenle daha kararlıdır ve ağdaki birkaç cihazın aynı anda çoklu bağlantısını işleyebilir.
Bir elektrik kesintisinden sonra bile ayarlanan değerleri korumak için Arduino'nun EEPROM hafızasında saklanır. Ofset 10'a referans sıcaklık, ofset 100'e histerezis. Değerlerin her biri, EEPROM belleğinde maksimum 5B yer kaplar. EEPROM transkripsiyon limiti 100.000 transkript düzeyindedir. Yalnızca HTML formu gönderildiğinde verilerin üzerine yazılır. İlk çalıştırmada cihazın belirtilen EEPROM ofsetlerinde kayıtlı hiçbir şey olmaması durumunda, varsayılan değerlerle otomatik yazma gerçekleştirilecektir - referans: 20.25, histerezis 0.25 ° C
Yenile meta etiketi, Arduino sayfasının tamamını her 10 saniyede bir yeniler. Bu zamana kadar termostat için değişikliğin yazılması gerekmektedir, aksi takdirde sayfa yenilendiğinde giriş pencereleri sıfırlanacaktır. Ethernet kitaplığı eşzamansız bir web sunucusunun kullanımını içermediğinden, tüm sayfanın yeniden yazılması gerekir. Esas olarak değişen dinamik veriler, çıkışın mevcut değeridir - Açık / Kapalı.
3. Adım: Web Sunucusunda Çalışan HTML Sayfaları, Şemalar, Kaynak Kodu
Arduino üzerinde çalışan HTML sayfaları:
- / - formu içeren kök sayfa, röle için geçerli mantık çıkış listesi, sıcaklık
- /action.html - formdaki değerleri işler, bunları EEPROM belleğine yazar, kullanıcıyı tekrar kök sayfaya yönlendirir
- /get_data/ - mevcut sıcaklık, referans sıcaklık ve histerezis ile ilgili verileri üçüncü bir tarafa (bilgisayar, mikrodenetleyici, diğer istemci…) JSON formatında dağıtır
Bu termostatın aşağıdakileri içeren genişletilmiş versiyonu da vardır:
- Röleler için manuel mod (sınırsız süre, sabit AÇIK / KAPALI)
- bekçi zamanlayıcısı
- Mevcut daha fazla sensör, örneğin: SHT21, SHT31, DHT22, BME280, BMP280 ve diğerleri
- Soğutma modu
- Ethernet'ten bağımsız RS232 / UART üzerinden kontrol ve konfigürasyon
- Termostat için PID sıcaklık kontrolü
- Termostat için ESP8266, ESP32 platformlarını kullanma imkanı
Proje için program uygulaması şu adreste bulunabilir: https://github.com/martinius96/termostat-ethernet/ Uygulama, Ethernet kalkanına atanan statik / dinamik IPv4 adresi için programlar içerir.
Termostat yalnızca iç ortam sıcaklıkları için tasarlanmıştır! (0 ° C'nin üzerinde), sistem mantığının uyarlandığı. Mevcut bir oda termostatını bir termostatla değiştirmek mümkündür, bir termostatı buzdolabında geçici olarak değiştirmek, teraryumda sabit bir sıcaklığı korumak ve benzerleri mümkündür.
Önerilen:
Raspberry Pi 4'ü Dizüstü Bilgisayar/PC Üzerinden Ethernet Kablosu Kullanarak Kurma (Monitör Yok, Wi-Fi Yok): 8 Adım
Raspberry Pi 4'ü Dizüstü Bilgisayar/PC Üzerinden Ethernet Kablosu Kullanarak (Monitör Yok, Wi-Fi Yok): Kurulum için Raspberry Pi 4 Model-B 1Gb RAM ile çalışacağız. Raspberry-Pi, eğitim amaçlı ve kendin yap projelerinde kullanılan, uygun maliyetli, 5V 3A güç kaynağı gerektiren tek kartlı bir bilgisayardır.İşletim Sistemleri gibi
Ethernet Kablosu Nasıl Yapılır: 5 Adım
Ethernet Kablosu Nasıl Yapılır: Merhaba! Bugün kendi endüstri standardı ethernet kablonuzu nasıl yapacağınızı öğreneceğiz! Konu kabloya ihtiyaç olduğunda hangisi size para kazandıracak! Öyleyse neden size öğretmeye uygunum? Şey, ben bir BT uzmanıyım, son 2 yılımı geçirdim
DIY 10/100M Ethernet PoE Enjektörü: 6 Adım
Kendin Yap 10/100M Ethernet PoE Enjektörü: Burada 10/100M ethernet için uygun basit bir PoE enjektörü yapacağız, ayrıca doğrudan pillerle de çalıştırılabilir
Ethernet Üzerinden MCP23017 GPIO Kontrolü: 5 Adım
Ethernet Üzerinden MCP23017 GPIO Kontrolü: Sensör Köprüsü ve MCP23017 ayırma kartını kullanarak ethernet üzerinden MCP23017 IO genişleticiyi kontrol edin. Python komut dosyaları, tarayıcı URL'leri veya HTTP iletişimi yapabilen herhangi bir sistem tarafından gönderilen komutlar. Ev otomasyonu için Home Assistant'a entegre edilebilir.Kablolar
Ethernet Sensörlü Nem Okuma: 3 Adım
Ethernet Sensörü ile Nem Okuma: Projenin amacı, ethernet ağı üzerinden nem ve sıcaklık okumalarını okuyabilmek ve sonuçların ev otomasyonunda (Home Assistant vb.) ar'da performans