Daftar Isi:

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 Instruksi ini kami akan menunjukkan kepada Anda cara membuat sistem rumah pintar Anda sendiri dengan Desainer Aplikasi MATLAB dengan papan Sparkfun Red. Instruksi ini dapat digunakan untuk membantu memperoleh pemahaman dasar tentang Desainer Aplikasi MATLAB, serta menggunakan fotoresistor, servomotor, dan sensor gerak PIR.

Langkah 1: Untuk Memulai: Bahan

Proyek ini membutuhkan bahan-bahan berikut:

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

- Satu fotoresistor

- Satu motor servo mini

- Satu motor servo kontinu

- Satu sensor gerak PIR

- Satu sensor suhu

- 2 LED

- Kabel dan resistor sesuai kebutuhan

Langkah 2: Langkah 2: Mendekati Masalah untuk Dipecahkan

Tujuan utama dari proyek ini adalah untuk membuat sistem rumah pintar yang mudah digunakan dengan mengkodekan papan Arduino Uno dengan MATLAB. Kami pertama kali berpikir untuk hanya bekerja dengan sensor suhu dan kelembaban, namun jika kami tetap menggunakan kedua sensor itu, sistem rumah pintar kami tidak akan mudah dipasarkan ke khalayak umum. Kami memutuskan bahwa kami ingin membuat sistem energi rumah pintar secara keseluruhan yang akan berfungsi sebagai termostat pintar dan sistem keamanan. Akhirnya, kami ingin bekerja dengan AppDesigner MATLAB sehingga pengguna dapat dengan mudah mengubah rumah pintar sesuka mereka.

Langkah 3: Langkah 3: Konfigurasi GUI dan Alur Kode Dasar

Langkah 3: Mengonfigurasi GUI dan Alur Kode Dasar
Langkah 3: Mengonfigurasi GUI dan Alur Kode Dasar

Untuk memulai, Anda perlu membuka MATLABs AppDesigner dan menempatkan yang berikut ini:

Dua bidang edit numerik untuk input ambang batas panas dan dingin

Tombol untuk membuka kunci pintu

Dan empat lampu indikator untuk perapian, pintu, kipas angin, dan lampu sorot.

Dua label untuk berkomunikasi dengan pengguna.

Untuk proyek ini, kami merasa lebih mudah untuk bekerja dengan variabel global dan fungsi startup di dalam desainer. Anda akan membutuhkan variabel-variabel ini dalam fungsi startup:

global

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

Saat ini kami hanya memiliki tugas untuk variabel sehingga komputer Anda dapat membaca arduino. COM3 mungkin berbeda tergantung pada port apa yang mungkin digunakan komputer Anda.

Ketika Anda menjalankan kode, itu akan mulai dalam fungsi startup membuat variabel global dan mengkalibrasi sistem. Di akhir fungsi ini akan ada fungsi timer yang memanggil properti yang kita beri nama Timer. Di dalam properti Timer ini kami memasukkan kode yang menjalankan sistem home sehingga timer tidak menjalankan ulang kode kalibrasi.

Catatan: Kami tidak memberikan instruksi pengkabelan apa pun untuk sistem. Kami merujuk ke 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 termostat bekerja sebagai berikut:

Pengguna akan memasukkan suhu yang mereka anggap terlalu panas atau terlalu dingin. Setelah termometer membaca, jika rumah terlalu dingin maka "perapian" (LED merah) akan menyala dan memanaskan rumah. Jika rumah terlalu panas maka "kipas" (motor servo kontinu) akan menyalakan pendingin rumah.

Untuk mengkode sistem termostat:

Kami akan mulai dalam fungsi startup untuk menampilkan suhu saat ini dan membiarkan pengguna memasukkan ambang batas dingin dan panas mereka.

p = 'A0' %Pin fotoresistor

volt = bacaTegangan(a, suhu); celc = (volt-0.5).*100; curr_temp = celc*9/5+32; app. Label_4. Text = num2str(curr_temp); %Nomor label dapat mengubah jeda(10); %Mungkin ingin berubah!!!!!

Kemudian kita akan menyelesaikan sistem termostat dalam properti Timer.

suhu_kurir global

global coldUI global hotUI global jika curr_temp hotUI app. FanStateLamp. Color = [0.47 0.67 0.19]; %Mengubah lampu GUI menjadi hijau writePWMDutyCycle(a, 'D11',.9) %Tiga baris kode berikutnya menjalankan jeda kipas servo (10) writePWMDutyCycle(a, 'D11',.0) else app. FireplaceStateLamp. Color = [0,90 0,90 0,90]; %Ini mematikan semua lampu GUI dan aplikasi perapian. FanStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin(a, 'D13', 0); akhir

Langkah 5: Langkah 4: Menyiapkan Sistem Pintu

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

Fungsi pintu berfungsi sebagai berikut:

Saat Anda pertama kali menjalankan kode MATLAB, aplikasi akan meminta Anda untuk membuka pintu sehingga fotoresistor dapat melakukan pembacaan cahaya awal. Setelah itu selesai, timer akan aktif dan fotoresistor akan mengambil pembacaan cahaya sekunder. Jika pembacaan cahaya sekunder lebih ringan dari awal, motor servo akan mengunci pintu. Jika pengguna ingin pintu tidak terkunci, mereka dapat menekan tombol pada aplikasi yang akan membuka kunci pintu.

Untuk mengkonfigurasi motor servo dan fotoresistor:

Untuk mengkodekan sistem pintu:

Kami akan mulai dalam fungsi startup untuk mengambil pembacaan cahaya awal.

s = servo(a, 'D9') %Pin dapat berubah berdasarkan pengkabelan

app. Label_4. Text='Tolong buka pintu untuk mengkalibrasi sistem'; jeda (15); %Ini memberi waktu bagi pengguna untuk membuka pintu int_light = readVoltage(a, p); app. Label_4. Text = 'Anda dapat menghapus jari Anda';

Selanjutnya, kita akan melengkapi kode di dalam properti Timer

buka kunci global

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

Terakhir kita akan membuat callback tombol buka kunci. Setelah pengguna menekan tombol buka kunci, buka kunci variabel global akan diberi nomor yang dapat menyelesaikan pernyataan if terakhir di properti Timer.

buka kunci global

buka kunci = 1234;

Langkah 6: Langkah 6: Menyiapkan Sistem Flood Light

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

Fungsi lampu sorot berfungsi sebagai berikut:

Saat Anda memulai kode MATLAB, sensor gerak PIR akan mulai mendeteksi gerakan. Setelah mendeteksi beberapa jenis gerakan, itu akan memotong sinyal daya. Setelah sinyal itu terputus, lampu banjir akan menyala di luar rumah.

Untuk mengkonfigurasi sistem lampu banjir:

Untuk mengkodekan sistem lampu banjir:

Kali ini kita dapat melompat ke properti Timer karena kita tidak perlu menulis variabel tambahan apapun.

human_detected = readDigitalPin(a, 'D2'); %Pin dapat berubah berdasarkan konfigurasi jika human_detected == 0 writeDigitalPin(a, 'D7', 1) %Pin dapat mengubah app. FloodLightStateLamp. Color = [0.47 0.67 0.19]; elseif human_detected == 1 app. FloodLightStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin(a, 'D7', 0) akhir

Langkah 7: Kesimpulan

Sekarang setelah Anda memiliki draf GUI Anda dengan Perancang Aplikasi dan kode Anda untuk Arduino, Anda siap untuk melakukan pengeditan sendiri atau mencolokkan Arduino Anda dan pergi!

Direkomendasikan: