İçindekiler:

Oda Termostatı - Arduino + Ethernet: 3 Adım
Oda Termostatı - Arduino + Ethernet: 3 Adım

Video: Oda Termostatı - Arduino + Ethernet: 3 Adım

Video: Oda Termostatı - Arduino + Ethernet: 3 Adım
Video: Termostat X Esp8266 Wifi Arduino Kombi ve Klima İnternet Kontrol programı 2024, Temmuz
Anonim
Oda Termostatı - Arduino + Ethernet
Oda Termostatı - Arduino + Ethernet

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ı

Ethernet Termostatının Açıklaması
Ethernet Termostatının Açıklaması

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ü

Web Arayüzü
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

Web Sunucusunda Çalışan HTML Sayfaları, Şemalar, Kaynak Kodu
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: