Isi kandungan:

Termostat Rumah Pintar: 4 Langkah
Termostat Rumah Pintar: 4 Langkah

Video: Termostat Rumah Pintar: 4 Langkah

Video: Termostat Rumah Pintar: 4 Langkah
Video: #2 Membuat Rumah Pintar - Instalasi Google Nest Mini - Home Automation 2024, Julai
Anonim
Termostat Rumah Pintar
Termostat Rumah Pintar

Smart Home Thermostat kami adalah program yang dapat menjimatkan wang isi rumah secara automatik pada bil utiliti berdasarkan pilihan seseorang.

Langkah 1: Gambaran keseluruhan

Termostat Rumah Pintar menggunakan sensor suhu untuk mendapatkan suhu rumah. Pembacaan suhu ini dimasukkan ke dalam program di mana ia akan memutuskan sama ada sistem penyaman udara perlu memanaskan atau menyejukkan rumah berdasarkan suhu pemilik rumah yang diinginkan.

Terdapat dua mod untuk termostat: manual dan automatik. Mod manual yang akan menyesuaikan suhu rumah ke suhu yang diinginkan ditetapkan oleh pengguna. Dan mod termostat automatik secara automatik akan mengubah suhu rumah menjadi suhu yang telah ditetapkan oleh pengguna. Terdapat dua tetapan suhu untuk mod automatik: suhu jauh dan suhu sekarang. Suhu jauh digunakan untuk menjimatkan tenaga dengan menukar termostat menjadi suhu penjimatan tenaga yang telah ditetapkan setiap kali pengguna tidak berada di rumah. Suhu sekarang akan digunakan ketika pengguna berada di rumah dan menginginkan suhu yang selesa. Ketika berada dalam mod automatik termostat, sensor gerakan secara aktif mencari pergerakan untuk menentukan sama ada seseorang berada di rumah atau tidak. Berdasarkan pembacaan mereka, suhu rumah akan ditetapkan ke suhu jauh atau suhu sekarang.

Langkah 2: Bahagian dan Bahan

(15) Wayar Pelompat

(4) 220 Perintang Ohm

(1) Perintang 10K Ohm

(1) Sensor Temp

(1) Perintang Foto

(1) Kotak Gear DAGU Mini DC

(1) Diod

(1) Transistor

(1) Fotoresistor

(1) Papan roti

(1) Arduino MKR

Langkah 3: Litar

Litar
Litar
Litar
Litar
Litar
Litar
Litar
Litar

Gambar 1 = Gambar Kiri Besar

Gambar 2 = Kanan Atas

Rajah 3 = Kanan Tengah

Gambar 4 = Bawah Kanan

Rajah 1

Dengan menggunakan gambarajah di atas, kami menyambung setiap tiga LED kami. Kami menjauhkan setiap LED sejak kami bekerja dengan papan roti besar. Untuk papan roti yang lebih kecil, mungkin perlu meletakkan LED lebih dekat. Juga, tidak perlu menyalakan papan roti kerana LED menarik kuasa yang sedikit. Kami tidak menggunakan sambungan 5V pada papan roti untuk LED. Setiap sambungan dari LED ke Arduino kami dibuat seperti wayar hijau di atas. LED merah, biru, dan hijau kami disambungkan ke Pin Digital 8, 9, dan 10 masing-masing, yang ditentukan dengan wayar merah, biru, dan hijau dalam gambar kami.

Gambar 2

Gambarajah di atas digunakan untuk mengawasi fotoresistor. Kami membuat beberapa pembetulan sendiri; namun konsepnya masih sama. Fotoresistor mesti disambungkan ke pin analog yang kita ada di pin A1. Pastikan menggunakan perintang ohm 10K untuk perintang yang paling dekat dengan photoresistor.

Gambar 3

Ini adalah gambarajah yang digunakan untuk mengawasi sensor suhu. Pastikan tidak salah transistor yang digunakan di sini dengan sensor suhu. Mereka kelihatan hampir sama. Sensor suhu kemungkinan akan mempunyai TMP atau skrip lain yang ditulis di sisi rata sensor. Pendawaian di sini sangat mudah sensor suhu kami dipasang ke pin analog A0 dengan wayar putih.

Gambar 4

Gambar di atas digunakan untuk memasang DAGU Mini DC Gearbox. Kawat hijau yang dilekatkan pada Kotak Gear sebenarnya adalah wayar merah yang disambungkan padanya dalam gambar kami. Kotak gear disambungkan ke pin digital 11 dengan wayar oren dalam model kami. Pastikan tidak salah transistor yang digunakan di sini dengan sensor suhu. Mereka kelihatan hampir sama. Sensor suhu kemungkinan akan mempunyai TMP atau skrip lain yang ditulis di sisi rata sensor. Anda mesti menggunakan transistor di sini dan bukan sensor suhu.

Langkah 4: Kod Arduino

Di sini, bahagian kod yang paling penting dijelaskan. Kod tidak akan berfungsi hanya dengan apa yang diberikan di sini. Untuk mendapatkan kod kerja penuh, terdapat pautan di bahagian bawah halaman.

Semasa membuat kod termostat yang dapat diprogramkan, salah satu perkara pertama yang anda lakukan adalah memasang sensor dan membuat gelung untuk yang akan sentiasa mendapat bacaan suhu dari sensor suhu.

Menyiapkan Sensor Suhu dan LED:

tempPin = 'A0';% menentukan fungsi tanpa nama yang menukar voltan kepada suhu tempCfromVolts = @ (volt) (volt-0,5) * 100; persampelanDurasi = 5; % saat. Berapa lama kita mahu membuat sampel untuk persampelanInterval = 1; % Berapa saat antara bacaan suhu% mengatur vektor masa persampelan samplingTimes = 0: samplingInterval: samplingDuration; % mengira bilangan sampel berdasarkan tempoh dan selang bilanganSamples = panjang (samplingTimes); % pra-peruntukkan pemboleh ubah temp dan pemboleh ubah untuk bilangan bacaan ia akan menyimpan tempC = nol (numSamples, 1); tempF = tempC; % Kami akan menggunakan loop untuk kali ini untuk mengambil bilangan bacaan suhu% yang telah ditentukan

Gelung untuk:

untuk indeks = 1: numSamples% membaca voltan pada tempPin dan simpan dalam volt voltan berubah = readVoltage (a, tempPin); tempC (index) = -1 * tempCfromVolts (volt + 0.3); tempF (index) = tempC (index) * (9/5) +32; % Output berformat paparan yang menyampaikan suhu semasa membaca fprintf ('Suhu pada% d saat adalah% 5.2f C atau% 5.2f F. / n',… samplingTimes (index), tempC (index), tempF (index)); % perhatikan bahawa output paparan ini hanya akan dapat dilihat sekaligus setelah kod% selesai dijalankan melainkan anda menyalin / menampal kod tersebut ke mfile skrip biasa. jeda (samplingInterval)% kelewatan sehingga akhir sampel seterusnya

Seterusnya, kami membuat menu pengguna untuk pengguna memutuskan sama ada meletakkan termostat dalam mod Manual atau automatik. Kami juga membuat kod ralat jika pengguna tidak memilih salah satu dari dua pilihan tersebut.

Menu mod Manual menghendaki pengguna menetapkan nombor untuk suhu termostat, maka ia akan memanaskan rumah, menyejukkan rumah, atau menganggur berdasarkan bacaan. Untuk menyiapkan bahagian kod ini, anda menggunakan bacaan suhu dari sensor suhu dan membuat kod yang akan menyejukkan kediaman apabila bacaan suhu lebih tinggi daripada suhu yang ditetapkan, dan memanaskan rumah apabila bacaan suhu lebih rendah daripada suhu yang ditetapkan.

Setelah anda membaca suhu, anda boleh membuat kod yang akan memberitahu termostat untuk menyejukkan rumah apabila bacaan suhu lebih tinggi daripada suhu yang ditetapkan, dan memanaskan rumah apabila bacaan suhu lebih rendah daripada suhu yang ditetapkan. Untuk prototaip, cahaya biru menyala ketika termostat harus sejuk dan lampu merah menyala ketika termostat harus panas.

Penyediaan Menu:

pilihan = {'Automatik', 'Manual'}; imode = menu ('Mode', pilihan) jika imode> 0 h = msgbox (['Anda memilih' pilihan {imode}]); lain h = warndlg ('Anda menutup menu tanpa membuat pilihan') akhir menunggu (h);

Mod Manual menghendaki pengguna memasukkan suhu untuk termostat, kemudian berdasarkan pembacaan dari sensor suhu, ia akan memulakan penyejukan rumah pemanasan rumah. Sekiranya bacaan sensor suhu lebih tinggi daripada suhu yang ditetapkan, ia akan mula menyejukkan rumah. Sekiranya bacaan sensor suhu lebih rendah daripada suhu yang ditetapkan, ia akan memanaskan rumah.

Mod Manual akan bermula:

if imode == 2 dlg_prompts = {'Suhu berapa yang anda mahu?'}; dlg_title = 'Suhu'; dlg_defaults = {'68'}; opts. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Anda membatalkan arahan inputdlg'); else temp_manual = str2double (dlg_ans {1})% [Tambah slaid Pengaturan Peraturan Suhu di bawah] akhir

Di dalam pernyataan if untuk mod manual, anda perlu menulis antara muka menu untuk pengguna memilih suhu rumah yang diinginkan, dan kemudian menerapkan pernyataan sementara yang akan mengatur suhu rumah.

Penyediaan Peraturan Suhu:

sementara temp_manual <tempF writeDigitalPin (a, 'D9', 1) writeDigitalPin (a, 'D11', 1); tamat sementara temp_manual> tempF writeDigitalPin (a, 'D8', 1) writeDigitalPin (a, 'D11', 1); akhir

Mod Automatik memerlukan lebih banyak input daripada mod manual. Setelah memasuki mod Automatik, pengguna akan menetapkan suhu Normal dan Jauh untuk termostat mereka. Setelah memilihnya, berdasarkan mod mana termostat berada, ia akan kembali ke mod peraturan suhu

Sediakan mod Automatik:

elseif imode == 1 dlg_prompts = {'Normal', 'Away'}; dlg_title = 'Tetapan Suhu'; dlg_defaults = {'68', '64'}; opts. Resize = 'on'; dlg_ans = inputdlg (dlg_prompts, dlg_title, 1, dlg_defaults, opts); if isempty (dlg_ans) h = warndlg ('Anda membatalkan arahan inputdlg'); lain temp_normal = str2double (dlg_ans {1}) temp_away = str2double (dlg_ans {2}) akhir menunggu (h); % [Tambah Pengesan Gerak Langkah di bawah]

Kita juga perlu mengatur sensor gerakan untuk tetapan mod Automatik. Apabila pengesan gerakan mengambil gerakan, ia akan mengekalkan suhu pada tetapan suhu sekarang, jika tidak, ia akan ditetapkan ke tetapan suhu jauh.

Run_Motion_Detector (a, inf) sambil lightStr == 0 temp = temp_away sementara temp tempF writeDigitalPin (a, 'D6', 1) apa sahaja lampu merah pin juga terdapat pada motor untuk menulis peminatDigitalPin (a, 'D9', 1); hujung hujung semasa cahayaStr == 1 temp = temp_normal writeDigitalPin (a, 'D6', 1)% berubah ke pin apa pun cahaya biasa berada semasa temp tempF tulisDigitalPin (a, 'D6', 1) apa pun pin merah lampu ada juga motor untuk kipas tulisDigitalPin (a, 'D9', 1); hujung akhir

Kod lengkap boleh didapati di sini.

Disyorkan: