Isi kandungan:

Termostat Bilik - Arduino + Ethernet: 3 Langkah
Termostat Bilik - Arduino + Ethernet: 3 Langkah

Video: Termostat Bilik - Arduino + Ethernet: 3 Langkah

Video: Termostat Bilik - Arduino + Ethernet: 3 Langkah
Video: XLoader - upload strojového kódu (.hex) - Ethernet termostat - Arduino Uno 2024, Julai
Anonim
Termostat Bilik - Arduino + Ethernet
Termostat Bilik - Arduino + Ethernet

Dari segi perkakasan, projek ini menggunakan:

  • Arduino Uno / Mega 2560
  • Ethernet perisai Wiznet W5100 / Ethernet modul Wiznet W5200-W5500
  • Sensor suhu DS18B20 pada bas OneWire
  • Relay SRD-5VDC-SL-C digunakan untuk pertukaran dandang

Langkah 1: Penerangan Termostat Ethernet

Penerangan mengenai Ethernet Thermostat
Penerangan mengenai Ethernet Thermostat

Arduino adalah platform penyematan yang berguna yang boleh digunakan, misalnya, untuk membina termostat bilik, yang akan kami tunjukkan hari ini. Termostat dapat diakses dari rangkaian LAN di mana ia berada, sementara dilengkapi dengan antara muka web yang digunakan untuk mengkonfigurasi semua elemen termostat. Antara muka web berjalan terus di Arduino dalam mod pelayan web. Pelayan web membenarkan menjalankan beberapa halaman HTML bebas, yang boleh menjadi maklumat atau berfungsi. Pelayan web berjalan di port 80 -

Relay elektromagnetik SRD-5VDC-SL-C, yang digunakan dalam projek, membolehkan beralih hingga 10A pada 230V - kuasa 2300W. Sekiranya menukar litar DC (beban) adalah mungkin untuk menukar 300W (10A pada 30V DC). Sebagai alternatif, geganti SSR OMRON G3MB-202P sepenuhnya sesuai untuk rajah pendawaian, yang hanya sesuai untuk beban bukan induktif dan eksklusif untuk litar AC. Kuasa pensuisan maksimum 460W (230V, 2A). Penggunaan Arduino dengan perisai Ethernet dan periferal lain berada pada tahap 100-120mA dengan relay terbuka. Apabila ditutup, di bawah 200mA pada bekalan 5V.

Langkah 2: Antara Muka Web

Antara Muka Web
Antara Muka Web

Antara muka web untuk termostat membolehkan:

  • Lihat suhu masa nyata dari sensor DS18B20
  • Lihat status relay masa nyata dengan perubahan output dinamik di halaman
  • Ubah suhu sasaran (rujukan) dalam lingkungan 5 hingga 50 ° C dengan langkah 0,25 ° C
  • Ubah histeresis dalam lingkungan 0 hingga 10 ° C dengan langkah 0,25 ° C

Antara muka web dirancang untuk menampung skrin yang lebih besar dan lebih kecil. Ia responsif, menyokong skrin definisi tinggi skrin lebar, tetapi juga peranti mudah alih. Antaramuka menggunakan gaya CSS yang diimport dari rangka Bootstrap dari pelayan CDN luaran, yang memuatkan peranti sisi klien ketika membuka halaman yang berjalan di Arduino. Kerana Arduino Uno terhad memori, ia hanya dapat menjalankan halaman dengan ukuran beberapa kB. Dengan mengimport gaya CSS dari pelayan luaran, ia akan mengurangkan prestasi dan beban memori Arduino. Pelaksanaan perisian (untuk Arduine Uno) menggunakan 70% memori flash (32kB - 4kB Bootloader) dan 44% memori RAM (2kB).

Bahagian statik halaman web (header dan footer dokumen HTML, pautan Bootstrap CSS, tag meta, header respons HTTP, Jenis Kandungan, bentuk dan banyak lagi) disimpan secara langsung dalam memori kilat Arduino, yang dapat mengurangkan jumlah RAM yang digunakan untuk pengguna dengan ketara -menyusun kandungan. Oleh itu, pelayan web lebih stabil dan dapat menangani pelbagai sambungan beberapa peranti dalam rangkaian pada masa yang sama.

Untuk mengekalkan nilai-nilai yang ditetapkan walaupun setelah gangguan kuasa, ia disimpan dalam memori EEPROM Arduino. Suhu rujukan untuk mengimbangi 10, histeresis untuk mengimbangi 100. Setiap nilai menempati maksimum 5B dalam memori EEPROM. Had transkripsi EEPROM adalah pada tahap 100, 000 transkrip. Data ditimpa hanya apabila borang HTML dihantar. Sekiranya peranti tidak menyimpan apa-apa pada offset EEPROM yang disebutkan pada permulaan pertama, penulisan automatik akan dilakukan dengan nilai lalai - rujukan: 20.25, histeresis 0.25 ° C

Tag Refresh meta menyegarkan keseluruhan halaman Arduino setiap 10 saat. Pada masa ini adalah perlu untuk menulis perubahan untuk termostat, jika tidak, tetingkap input akan diset semula apabila halaman dimuat semula. Kerana perpustakaan Ethernet tidak termasuk penggunaan pelayan web tak segerak, keseluruhan halaman mesti ditulis semula. Data dinamik yang terutama berubah adalah nilai keluaran semasa - Hidup / Mati.

Langkah 3: Halaman HTML Berjalan di Pelayan Web, Skema, Kod Sumber

Halaman HTML Berjalan di Pelayan Web, Skema, Kod Sumber
Halaman HTML Berjalan di Pelayan Web, Skema, Kod Sumber

Halaman HTML yang berjalan di Arduino:

  • / - halaman root yang mengandungi borang, senarai output logik semasa untuk relay, suhu
  • /action.html - memproses nilai dari borang, menuliskannya ke memori EEPROM, mengarahkan pengguna kembali ke halaman root
  • / get_data / - menyebarkan data mengenai suhu semasa, suhu rujukan dan histeresis kepada pihak ketiga (komputer, mikrokontroler, pelanggan lain …) dalam format JSON

Terdapat juga versi termostat yang diperluas yang merangkumi:

  • Mod manual untuk relay (masa tidak terhad, ON / OFF keras)
  • Pemasa pengawas
  • Terdapat lebih banyak sensor, contohnya: SHT21, SHT31, DHT22, BME280, BMP280 dan lain-lain
  • Mod penyejukan
  • Kawalan dan konfigurasi melalui RS232 / UART bebas daripada Ethernet
  • Kawalan suhu PID untuk termostat
  • Kemungkinan menggunakan platform ESP8266, ESP32 untuk termostat

Pelaksanaan program untuk projek ini dapat dilihat di: https://github.com/martinius96/termostat-ethernet/ Pelaksanaannya berisi program untuk alamat IPv4 statis / dinamis yang diberikan pada perisai Ethernet.

Termostat hanya bertujuan untuk suhu dalaman! (di atas 0 ° C), yang mana logik sistem disesuaikan. Adalah mungkin untuk mengganti termostat bilik yang ada dengan termostat, mungkin untuk sementara waktu mengganti termostat di dalam peti sejuk, mengekalkan suhu tetap di terarium dan sejenisnya.

Disyorkan: