Daftar Isi:

Proyek Rumah Pintar EF230: 7 Langkah
Proyek Rumah Pintar EF230: 7 Langkah

Video: Proyek Rumah Pintar EF230: 7 Langkah

Video: Proyek Rumah Pintar EF230: 7 Langkah
Video: Video Animasi Rumah Pintar Pemilu 2024, Juli
Anonim
Proyek Rumah Pintar EF230
Proyek Rumah Pintar EF230

Bagian dan Bahan yang Dibutuhkan:

  • 1 Arduino MKR 1000
  • 3 papan tempat memotong roti
  • 2 Fotosel Mini
  • 1 transistor NPN
  • 1 Saklar Daya Mini
  • 1 LED – RGB (4 cabang)
  • 1 LED (warna pilihan Anda)
  • 1 Dioda 1N4148
  • 1 Resistor 10K Ohm
  • 5 100 Ohm Resistor
  • 1 Sensor Suhu TMP36
  • 1 DAGU 48: 1 Rasio Gearmotor
  • 25 Kabel Jumper
  • Kabel USB
  • Program MATLAB
  • Panduan Eksperimen SIK untuk Papan Arduino 101/Genuino 101 - Tautan Panduan Eksperimen SIK

Proyek ini merinci desain konseptual sistem rumah pintar yang akan menggunakan data untuk membantu pemilik rumah mengoptimalkan penggunaan energi dan keamanan mereka. Ini termasuk sensor cahaya untuk menyalakan lampu luar di malam hari, sensor cahaya untuk keamanan, dan sensor suhu dan kipas untuk kontrol suhu dalam ruangan.

Langkah 1: LED Sensitif Cahaya

  • Pengaturan LED peka cahaya dimaksudkan untuk mewakili lampu luar di rumah yang menyala di malam hari.
  • Ketika fotosel mini merasakan pengurangan jumlah cahaya, LED akan menyala.
  • Untuk rumah pintar, ini memiliki implikasi energi dan keamanan. Ini akan menghemat energi dengan mematikan lampu di siang hari dan akan memberikan peningkatan keamanan di malam hari.
  • Pengkabelan dan pengaturan yang tepat untuk bagian proyek ini dapat ditemukan di bawah percobaan 7 di Panduan Percobaan SIK.

Langkah 2: Saklar Daya Mini

  • Switch adalah langkah pertama dalam proses keamanan rumah pintar.
  • Saat dihidupkan, sakelar akan memulai respons yang menanyakan pengguna apakah mereka ingin masuk ke mode 'Rumah' atau mode 'Pergi'.
  • Jika mode 'Home' dipilih, keamanan dianggap tidak aktif, tetapi memilih mode 'Away' akan mempersenjatai sistem keamanan.
  • Pengkabelan untuk bagian proyek ini dapat ditemukan di bawah percobaan 6 di Panduan Percobaan. Untuk keperluan rumah pintar, LED dan kabel penghubungnya yang ditemukan dalam percobaan 6 tidak perlu disertakan.

Langkah 3: Fotosel Kedua

Fotosel Kedua
Fotosel Kedua
  • Fotosel kedua berfungsi sebagai sensor gerak untuk sistem keamanan rumah pintar.
  • Sensor hanya digunakan ketika sistem dalam mode 'Jauh' seperti yang dijelaskan pada langkah sebelumnya.
  • Jika fotosel mengalami penurunan jumlah cahaya yang diterimanya, ia mengenalinya sebagai gerakan di dalam rumah.
  • Pengaturan untuk bagian proyek ini dapat ditemukan di bawah percobaan 7 di Panduan Percobaan SIK. Namun, hanya fotosel dan kabel penghubungnya yang perlu disertakan dalam kabel.

Langkah 4: LED RGB

  • LED RGB digunakan bersama dengan sakelar daya mini dan fotosel kedua untuk sistem keamanan rumah pintar.
  • Tiga warna berbeda digunakan sebagai indikator untuk penghuni rumah pintar.
  • Ketika sistem ditempatkan dalam mode 'Home', LED berubah menjadi biru. Ketika sistem ditempatkan dalam mode 'Jauh', LED berubah menjadi hijau. Ketika fotosel yang digunakan sebagai sensor gerak tersandung, lampu berkedip merah.
  • Pengkabelan untuk LED RGB dapat ditemukan dalam percobaan 3 dari Panduan Percobaan SIK.

Langkah 5: Sensor Suhu

  • Sensor suhu adalah bagian utama dari penghematan energi di rumah pintar.
  • Penghuni dapat memasukkan suhu yang diinginkan untuk rumah mereka saat rumah pintar digunakan.
  • Sensor suhu adalah bagaimana sistem mengetahui seberapa jauh suhu sebenarnya dari suhu yang diinginkan.
  • Pengaturan untuk sensor suhu dapat ditemukan dalam percobaan 9 dari Panduan Percobaan SIK.

Langkah 6: DAGU Gearmotor

DAGU Gearmotor
DAGU Gearmotor
  • Motor memungkinkan rumah pintar untuk mengatur suhu di dalam rumah berdasarkan suhu yang diinginkan dan pembacaan sensor suhu.
  • Bertindak sebagai unit AC di rumah, motor akan berputar pada kecepatan yang berbeda berdasarkan seberapa tinggi suhu sebenarnya dari suhu yang diinginkan. Semakin tinggi selisihnya, semakin cepat putaran motor.
  • Pengkabelan untuk motor dapat ditemukan di Panduan Eksperimen di bawah eksperimen 11.

Langkah 7: Kode

  • Kode untuk rumah pintar mencakup beberapa antarmuka pengguna yang memungkinkan penghuni untuk dengan mudah memahami cara kerjanya dan mengubah pengaturan dengan mudah.
  • Dengan sistem rumah pintar, penghuni akan menerima dan mengirim email peringatan jika sensor gerak dimatikan saat mereka pergi.
  • Satu-satunya perubahan yang perlu dilakukan adalah memasukkan informasi untuk email pengirim dan alamat email penerima.

jelas a; jelas s; jelas m; kl; tutup semua; % Hapus variabel arduino dan servo sehingga dapat didefinisikan ulang setiap kali sehingga kode akan berjalan secara efektif ("clear m" diperlukan agar salah satu loop while berfungsi dengan baik)a = arduino(); % Atur variabel arduino

s = servo(a, 'D6'); % Atur variabel servo

% Inisialisasi variabel email untuk email peringatan sistem keamanan

email = {'masukkan alamat penerima'}; % Array email untuk dikirimi email keamanan

% Pengaturan preferensi email diperlukan untuk menggunakan Gmail untuk mengirim email dari

setpref('Internet', 'E_mail', 'alamat email pengirim');

setpref('Internet', 'SMTP_Username', 'nama pengguna pengirim');

setpref('Internet', 'SMTP_Password', 'sandi pengirim');

props = java.lang. System.getProperties;

props.setProperty('mail.smtp.auth', 'benar');

props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.port', '465');

% Subjek email dan variabel teks

subj = 'Peringatan Penyusup di Rumah Anda';

text = 'Halo, Ini adalah sistem keamanan Rumah Pintar Anda yang memberi tahu Anda bahwa ada gerakan yang terdeteksi di luar rumah Anda. Kami telah mengambil tindakan yang diperlukan dan menghubungi pihak berwenang untuk Anda. Tetap aman.';

sementara benar

prompt = {'Masukkan suhu rumah yang diinginkan (antara 65F dan 85F):'}; % Prompt untuk menu input pengguna

dlgtitle = 'Pilihan Suhu'; % Judul untuk menu masukan pengguna

redup = [1 30]; % Dimensi untuk menu masukan pengguna

masukan = {'72'}; % Input default yang muncul saat menu pertama kali dibuka

tempsel_array = inputdlg(prompt, dlgtitle, redup, definput); % Menu input pengguna popup yang akan menyimpan nomor yang dimasukkan ke dalam array

if ~isempty(tempsel_array) % Jika array TIDAK kosong

tempsel_char = sel2mat(tempsel_array); % Ubah array menjadi string karakter

tempsel = str2double(tempsel_char); % Ubah string karakter menjadi angka

thingSpeakWrite(chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Tulis suhu yang dipilih ke saluran ThingSpeak Anda

break % Istirahat dari loop sementara sehingga menu tidak akan muncul berkali-kali

else % Jika pengguna mengklik batal alih-alih memasukkan suhu

msg1 = msgbox('Tidak ada suhu yang dipilih, default ke 85F', 'Peringatan!'); % Pesan ditampilkan kepada pengguna setelah mengklik batal

tunggu(msg1); % Tunggu hingga kotak pesan ditutup sebelum melanjutkan

tempsel = 85; % Atur suhu ke apa yang dinyatakan di kotak pesan

thingSpeakWrite(chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % Tulis suhu yang dipilih ke saluran ThingSpeak Anda

break % Istirahat dari loop sementara sehingga menu tidak akan muncul berkali-kali

akhir

akhir

sementara benar

chID = 745517; % ID Saluran ThingSpeak

writeKey = 'G9XOQTP8KOVSCT0N'; % Kunci untuk akses ke Saluran ThingSpeak

% Inisialisasi sensor untuk mengambil data

tempread = readVoltage(a, 'A3'); % Baca tegangan sensor suhu

lightl1 = readVoltage(a, 'A2'); % Tingkat cahaya untuk fotoresistor menuju ke LED merah

lightl2 = readVoltage(a, 'A5'); % Tingkat cahaya untuk fotoresistor menuju ke sistem keamanan

switchv = readVoltage(a, 'A0'); % Nilai untuk sakelar

% Konversi data suhu dari voltase ke derajat Fahrenheit

tempC = (tempread - 0,5) * 100; % Konversi tegangan ke suhu dalam Celcius

tempF = (tempC * 9/5) + 32; % Ubah suhu dalam Celcius ke suhu dalam Fahrenheit

% Inisialisasi nomor pin untuk LED multiwarna

redp = 'D9'; % Pin untuk lampu merah dari LED

hijaup = 'D10'; % Pin untuk lampu hijau dari LED

biru = 'D11'; % Pin untuk cahaya biru dari LED

if tempsel < tempF % Jika suhu yang dipilih lebih besar dari suhu ruangan

writePosition(s, 1); % Servo akan mulai bergerak

jeda(10) % Servo akan terus berputar selama 10 detik untuk menyatakan bahwa AC akan mati setelah jangka waktu tertentu

writePosition(s, 0); % Matikan kipas untuk tujuan melanjutkan kode tanpa kipas menyala

tempsel = 150; % Ubah nilai suhu untuk keluar dari loop setelah kipas dimatikan, sekali lagi hanya untuk tujuan melanjutkan kode

akhir

if lightl1 <= 3 % Jika photoresistor pertama mendeteksi tingkat cahaya rendah

writeDigitalPin(a, 'A1', 1); % Nyalakan LED merah yang melambangkan lampu luar ruangan

lain % Jika tingkat cahaya tinggi lagi

writeDigitalPin(a, 'A1', 0); % Matikan LED merah ketika tingkat cahaya cukup tinggi lagi

akhir

jika sakelarv > 3% Jika sakelar dihidupkan

A = ada('m', 'var'); % Periksa keberadaan variabel 'm', ini akan menginisialisasi perulangan while dan membiarkannya rusak ketika item menu dipilih (inilah mengapa clear m harus dilakukan di awal kode)

sementara A==0 % Loop akan dijalankan sampai variabel 'm' ada

menutext = 'Modus keamanan mana yang ingin Anda masuki?'; % Teks untuk menu popup keamanan

pilihan = {'Home', 'Away'}; % Pilihan untuk menu popup keamanan

m = menu(teks menu, pilihan); % Menu popup untuk mode sistem keamanan

break % Memastikan bahwa loop while terputus sehingga menu tidak akan muncul berkali-kali

akhir

jika m == 1% Jika mode 'Home' dipilih

writeDigitalPin(a, bluep, 1); % Nyalakan lampu biru saja di LED yang berubah warna

writeDigitalPin(a, redp, 0);

writeDigitalPin(a, greenp, 0);

elseif m == 2% Jika mode 'Jauh' dipilih

writeDigitalPin(a, bluep, 0);

writeDigitalPin(a, redp, 0);

writeDigitalPin(a, greenp, 1); % Nyalakan hanya lampu hijau di LED yang berubah warna

if lightl2 <= 3 % Jika tingkat cahaya pada fotoresistor kedua rendah, menunjukkan gerakan yang terdeteksi oleh sistem keamanan

sendmail(email, subj, teks); % Mengirim email dengan properti email yang telah ditentukan sebelumnya writeDigitalPin(a, greenp, 0); % Flash warna merah menyala dan mati 2 kali

writeDigitalPin(a, redp, 1);

jeda (0.3)

writeDigitalPin(a, redp, 0);

jeda (0.3)

writeDigitalPin(a, redp, 1);

jeda (0.3)

writeDigitalPin(a, redp, 0);

jeda (0.3)

writeDigitalPin(a, redp, 1); % Selesai dengan warna merah solid setelah berkedip untuk menunjukkan ada gerakan sampai tingkat cahaya kembali naik

msg2 = msgbox('Penyusup terdeteksi oleh sistem keamanan, email telah dikirim ke pemilik rumah untuk memberi tahu mereka.', 'PERINGATAN!'); % Kotak pesan untuk menginformasikan pengguna tentang gerakan dan untuk menginformasikan tentang email yang dikirim waitfor(msg2) % Tunggu hingga kotak pesan ditutup sebelum melanjutkan

lain

writeDigitalPin(a, greenp, 1); % Setelah tingkat cahaya naik lagi, itu akan kembali menjadi hijau

akhir

akhir

elseif switchv < 3,3% Jika sakelar dimatikan

writeDigitalPin(a, bluep, 0); % Matikan LED sepenuhnya untuk menunjukkan sistem keamanan mati

writeDigitalPin(a, redp, 0);

writeDigitalPin(a, greenp, 0);

akhir

akhir

Direkomendasikan: