Isi kandungan:

Sistem Rumah Pintar Arduino: 7 Langkah
Sistem Rumah Pintar Arduino: 7 Langkah

Video: Sistem Rumah Pintar Arduino: 7 Langkah

Video: Sistem Rumah Pintar Arduino: 7 Langkah
Video: Prototype Smarthome Berbasis Mikrokontroler Arduino Uno dan Android 2024, November
Anonim
Sistem Rumah Pintar Arduino
Sistem Rumah Pintar Arduino
Sistem Rumah Pintar Arduino
Sistem Rumah Pintar Arduino

Dalam Instructable ini kami akan menunjukkan kepada anda bagaimana membuat sistem rumah pintar anda sendiri dengan Pereka Aplikasi MATLAB dengan papan Sparkfun Red. Instructable ini dapat digunakan untuk membantu memperoleh pemahaman dasar mengenai Pereka Aplikasi MATLAB, serta menggunakan fotoresistor, servomotor, dan sensor gerakan PIR.

Langkah 1: Bermula: Bahan

Projek ini memerlukan bahan berikut:

- Arduino Uno (Untuk projek ini kami menggunakan papan Sparkfun Red)

- Satu fotoresistor

- Satu motor servo mini

- Satu motor servo berterusan

- Satu sensor gerakan PIR

- Satu sensor suhu

- 2 LED

- Wayar dan perintang mengikut keperluan

Langkah 2: Langkah 2: Mendekati Masalah yang Perlu Diselesaikan

Matlamat utama projek ini adalah untuk membuat sistem rumah pintar yang mudah digunakan dengan mengkodkan papan Arduino Uno dengan MATLAB. Mula-mula kami memikirkan hanya bekerja dengan sensor suhu dan kelembapan, namun jika kami tetap menggunakan dua sensor tersebut, sistem rumah pintar kami tidak akan mudah dipasarkan kepada khalayak umum. Kami memutuskan bahawa kami ingin membuat sistem tenaga rumah pintar keseluruhan yang akan berfungsi sebagai sistem termostat dan keselamatan pintar. Akhirnya, kami ingin bekerjasama dengan AppDesigner MATLAB supaya pengguna dapat mengubah rumah pintar dengan senang hati.

Langkah 3: Langkah 3: Mengkonfigurasi Aliran Kod dan Asas GUI

Langkah 3: Mengkonfigurasi Aliran Kod GUI dan Asas
Langkah 3: Mengkonfigurasi Aliran Kod GUI dan Asas

Untuk memulakan, anda perlu membuka MATLABs AppDesigner dan meletakkan perkara berikut:

Dua medan edit angka untuk input ambang panas dan sejuk

Butang untuk membuka pintu

Dan empat lampu penunjuk untuk perapian, pintu, kipas, dan lampu banjir.

Dua label untuk berkomunikasi dengan pengguna.

Untuk projek ini, kami lebih mudah bekerja dengan pemboleh ubah global dan fungsi permulaan dalam pereka. Anda memerlukan pemboleh ubah ini dalam fungsi permulaan:

global a

a = arduino ('COM3', 'uno', 'Perpustakaan', 'Servo'); global s global p global hotUI global coldUI global unlock global temp global curr_temp global int_light

Sekarang ini kami hanya mempunyai tugasan untuk pemboleh ubah supaya komputer anda dapat membaca arduino. COM3 mungkin berbeza bergantung pada port apa yang mungkin digunakan oleh komputer anda.

Apabila anda menjalankan kod, ia akan bermula dalam fungsi permulaan membuat pemboleh ubah global dan menentukurkan sistem. Pada akhir fungsi ini akan ada fungsi pemasa yang memanggil harta yang kita namakan Timer. Di dalam properti Pemasa ini, kami memasukkan kod yang menjalankan sistem rumah sehingga pemasa tidak menjalankan semula kod penentukuran.

Catatan: Kami tidak memberikan arahan pendawaian untuk sistem. Kami merujuk kepada manual yang disertakan dengan papan SparkFun Red.

Langkah 4: Langkah 3: Menyiapkan Sistem Termostat

Langkah 3: Menyiapkan Sistem Termostat
Langkah 3: Menyiapkan Sistem Termostat
Langkah 3: Menyiapkan Sistem Termostat
Langkah 3: Menyiapkan Sistem Termostat

Fungsi untuk termostat berfungsi seperti berikut:

Pengguna akan memasukkan suhu apa yang mereka anggap terlalu panas atau terlalu sejuk. Setelah termometer membaca, jika rumah terlalu sejuk maka "perapian" (LED merah) akan menyala dan memanaskan rumah. Sekiranya rumah terlalu panas maka "kipas" (motor servo berterusan) akan menyala rumah.

Untuk membuat kod sistem Thermostat:

Kami akan memulakan dalam fungsi permulaan untuk menampilkan suhu semasa dan membiarkan pengguna memasukkan ambang sejuk dan panas mereka.

p = 'A0'% Fotoresistor

volt = readVoltage (a, temp); celc = (volt-0.5). * 100; curr_temp = celc * 9/5 + 32; app. Label_4. Text = num2str (curr_temp); % Nombor label boleh berubah jeda (10); % Mungkin mahu berubah !!!!!

Kemudian kita akan melengkapkan sistem termostat dalam harta Pemasa.

curr_temp global

global ColdUI global hotUI global jika curr_temp hotUI app. FanStateLamp. Color = [0.47 0.67 0.19]; % Menyalakan lampu GUI hijau menulisPWMDutyCycle (a, 'D11',.9)% Tiga baris kod seterusnya menjalankan jeda kipas servo (10) writePWMDutyCycle (a, 'D11',.0) aplikasi lain. FireplaceStateLamp. Color = [0.90 0.90 0.90]; % Ini mematikan semua aplikasi lampu GUI dan perapian. FanStateLamp. Color = [0.9 0.9 0.9]; tulisDigitalPin (a, 'D13', 0); akhir

Langkah 5: Langkah 4: Menyiapkan Sistem Pintu

Langkah 4: Menyiapkan Sistem Pintu
Langkah 4: Menyiapkan Sistem Pintu

Fungsi untuk pintu berfungsi seperti berikut:

Semasa anda mula-mula menjalankan kod MATLAB anda, aplikasi akan meminta anda membuka pintu sehingga fotoresistor dapat membaca cahaya awal. Setelah selesai, pemasa akan diaktifkan dan fotoresistor akan mengambil bacaan cahaya sekunder. Sekiranya bacaan cahaya sekunder lebih ringan daripada yang awal, motor servo akan mengunci pintu. Sekiranya pengguna mahu pintu tidak terkunci, mereka boleh menekan butang pada aplikasi yang akan membuka kunci pintu.

Untuk mengkonfigurasi motor servo dan fotoresistor:

Untuk membuat kod sistem pintu:

Kami akan memulakan dalam fungsi permulaan untuk mengambil bacaan cahaya awal.

s = servo (a, 'D9')% Pin mungkin berubah berdasarkan pendawaian

app. Label_4. Text = 'Sila buka pintu untuk menentukur sistem'; berhenti seketika (15); % Ini memberi masa kepada pengguna untuk membuka pintu int_light = readVoltage (a, p); app. Label_4. Text = 'Anda boleh mengeluarkan jari anda';

Seterusnya, kami akan melengkapkan kod dalam harta Pemasa

buka kunci global

global int_light global s global a% Dapatkan bacaan ringan semasa untuk membandingkan curr_light = readVoltage (a, p); % - Pintu Kunci - jika int_light <curr_light writePosition (s, 1)% Kedudukan servo mungkin berbeza setiap jeda motor (0.5); app. DoorStateLamp. Color = [0.47 0.67 0.19]; akhir% - Buka Kunci Pintu - jika buka kunci == 1234 jeda (0.5); writePosition (s,.52) app. DoorStateLamp. Color = [0.85 0.33 0.10]; akhir

Akhirnya kami akan membuat panggilan balik butang buka kunci. Setelah pengguna menekan butang buka kunci, pemboleh ubah buka kunci global akan diberikan nombor yang dapat menyelesaikan pernyataan akhir jika di harta Pemasa.

buka kunci global

buka kunci = 1234;

Langkah 6: Langkah 6: Menyiapkan Sistem Lampu Banjir

Langkah 6: Menyiapkan Sistem Lampu Banjir
Langkah 6: Menyiapkan Sistem Lampu Banjir

Fungsi untuk lampu banjir berfungsi seperti berikut:

Apabila anda memulakan kod MATLAB, sensor gerakan PIR akan mula mengesan gerakan. Setelah mengesan beberapa jenis gerakan, ia akan memotong isyarat kuasa. Setelah isyarat itu dipotong, lampu banjir akan menyala di luar rumah.

Untuk mengkonfigurasi sistem lampu banjir:

Untuk membuat kod sistem lampu isyarat:

Kali ini kita boleh melangkau ke properti Pemasa kerana kita tidak perlu menulis pemboleh ubah tambahan.

human_detected = readDigitalPin (a, 'D2'); % Pin boleh berubah berdasarkan konfigurasi jika human_detected == 0 writeDigitalPin (a, 'D7', 1)% Pin boleh menukar aplikasi. FloodLightStateLamp. Color = [0.47 0.67 0.19]; otherif human_detected == 1 app. FloodLightStateLamp. Color = [0.9 0.9 0.9]; tulisDigitalPin (a, 'D7', 0) akhir

Langkah 7: Kesimpulannya

Sekarang anda mempunyai draf GUI anda dengan Pereka Aplikasi dan kod anda untuk Arduino, anda sudah bersedia untuk melakukan pengeditan sendiri atau memasukkan Arduino anda dan pergi!

Disyorkan: