Isi kandungan:

Projek Rumah Pintar EF230: 7 Langkah
Projek Rumah Pintar EF230: 7 Langkah

Video: Projek Rumah Pintar EF230: 7 Langkah

Video: Projek Rumah Pintar EF230: 7 Langkah
Video: Logik Model Inovasi Sosial: Projek Rumah Pintar 2024, Julai
Anonim
Projek Rumah Pintar EF230
Projek Rumah Pintar EF230

Bahagian dan Bahan yang Diperlukan:

  • 1 Arduino MKR 1000
  • 3 Papan Roti
  • 2 Photocell Mini
  • 1 Transistor NPN
  • 1 Suis Kuasa Mini
  • 1 LED - RGB (4 serampang)
  • 1 LED (warna pilihan anda)
  • 1 Diod 1N4148
  • 1 Perintang Ohm 10K
  • Perintang 5 100 Ohm
  • 1 Sensor Suhu TMP36
  • 1 DAGU 48: 1 Nisbah Gearmotor
  • 25 Jumper Wayar
  • Kabel USB
  • Program MATLAB
  • Panduan Eksperimen SIK untuk Papan Arduino 101 / Genuino 101 - Pautan Panduan Eksperimen SIK

Projek ini memperincikan reka bentuk konsep sistem rumah pintar yang akan menggunakan data untuk membantu pemilik rumah mengoptimumkan penggunaan tenaga dan keselamatan mereka. Ini termasuk sensor cahaya untuk menyalakan lampu luar pada waktu malam, sensor cahaya untuk keselamatan, dan sensor suhu dan kipas untuk kawalan suhu dalam ruangan.

Langkah 1: LED Sensitif Cahaya

  • Persediaan LED yang sensitif terhadap cahaya dimaksudkan untuk mewakili lampu luar rumah yang datang pada waktu malam.
  • Apabila photocell mini merasakan jumlah cahaya yang dikurangkan, LED akan menyala.
  • Untuk rumah pintar ini mempunyai implikasi tenaga dan keselamatan. Ia akan menjimatkan tenaga dengan membiarkan lampu padam di siang hari dan akan memberikan keselamatan yang lebih tinggi pada waktu malam.
  • Pendawaian dan pemasangan yang tepat untuk bahagian projek ini boleh didapati di bawah eksperimen 7 dalam Panduan Percubaan SIK.

Langkah 2: Suis Kuasa Mini

  • Peralihan adalah langkah pertama dalam proses keselamatan rumah pintar.
  • Apabila dihidupkan, suis akan memulai respons yang menanyakan kepada pengguna apakah mereka ingin memasuki mod 'Rumah' atau mod 'Jauh'.
  • Sekiranya mod 'Rumah' dipilih, keselamatan dianggap dilucutkan senjata, tetapi memilih mod 'Jauh' akan mempersenjatai sistem keselamatan.
  • Pendawaian untuk bahagian projek ini boleh didapati di bawah eksperimen 6 dalam Panduan Eksperimen. Untuk tujuan rumah pintar, LED dan wayar penyambungnya yang terdapat dalam eksperimen 6 tidak perlu disertakan.

Langkah 3: Photocell Kedua

Photocell Kedua
Photocell Kedua
  • Fotocell kedua berfungsi sebagai sensor gerakan untuk sistem keselamatan rumah pintar.
  • Sensor hanya digunakan ketika sistem dimasukkan dalam mod 'Jauh' seperti yang dijelaskan pada langkah sebelumnya.
  • Sekiranya photocell mengalami penurunan jumlah cahaya yang diterimanya, ia akan mengiktirafnya sebagai gerakan di dalam rumah.
  • Penyediaan bahagian projek ini boleh didapati di bawah eksperimen 7 dalam Panduan Percubaan SIK. Walau bagaimanapun, hanya photocell dan wayar penghubungnya yang perlu disertakan dalam pendawaian.

Langkah 4: LED RGB

  • LED RGB digunakan bersama dengan suis kuasa mini dan photocell kedua untuk sistem keselamatan rumah pintar.
  • Tiga warna yang berbeza digunakan sebagai petunjuk untuk penghuni rumah pintar.
  • Apabila sistem diletakkan dalam mod 'Rumah', LED bertukar menjadi biru. Apabila sistem diletakkan dalam mod 'Jauh' LED menjadi hijau. Apabila photocell yang digunakan sebagai sensor gerakan tersekat, lampu akan berkedip merah.
  • Pendawaian untuk LED RGB boleh didapati dalam eksperimen 3 Panduan Eksperimen SIK.

Langkah 5: Sensor Suhu

  • Sensor suhu adalah sebahagian besar penjimatan tenaga di rumah pintar.
  • Penduduk dapat memasukkan suhu yang diinginkan untuk kediaman mereka ketika rumah pintar digunakan.
  • Sensor suhu adalah bagaimana sistem mengetahui sejauh mana suhu sebenar dari suhu yang diinginkan.
  • Penyediaan sensor suhu boleh didapati dalam eksperimen 9 Panduan Eksperimen SIK.

Langkah 6: DAGU Gearmotor

Gearmotor DAGU
Gearmotor DAGU
  • Motor membolehkan rumah pintar mengatur suhu di rumah berdasarkan suhu yang diinginkan dan bacaan sensor suhu.
  • Bertindak sebagai unit AC di rumah, motor akan berputar pada kelajuan yang berbeza berdasarkan berapa tinggi suhu sebenar daripada suhu yang diinginkan. Semakin tinggi perbezaannya, semakin cepat motornya berputar.
  • Pendawaian untuk motor boleh didapati dalam Panduan Eksperimen di bawah eksperimen 11.

Langkah 7: Kod

  • Kod untuk rumah pintar merangkumi pelbagai antara muka pengguna yang membolehkan penduduk memahami dengan mudah cara kerjanya dan mengubah tetapan dengan mudah.
  • Dengan sistem rumah pintar, penghuni akan menerima dan menghantar e-mel amaran jika sensor gerakan dimatikan semasa mereka berada jauh.
  • Satu-satunya perubahan yang perlu dibuat adalah memasukkan maklumat untuk e-mel pengirim dan alamat e-mel penerima.

jelas a; jelas s; jelas m; clc; tutup semua; % Hapus pemboleh ubah arduino dan servo sehingga mereka dapat ditakrifkan semula setiap kali sehingga kod akan berjalan dengan berkesan ("clear m" diperlukan agar salah satu gelung sementara berfungsi dengan baik) a = arduino (); % Tetapkan pemboleh ubah arduino

s = servo (a, 'D6'); % Tetapkan pemboleh ubah servo

% Memulakan pemboleh ubah e-mel untuk e-mel amaran sistem keselamatan

e-mel = {'masukkan alamat penerima'}; Array e-mel untuk menghantar e-mel keselamatan

% Tetapan pilihan e-mel yang diperlukan untuk menggunakan Gmail untuk menghantar e-mel dari

setpref ('Internet', 'E_mail', 'alamat e-mel pengirim');

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

setpref ('Internet', 'SMTP_Password', 'kata laluan pengirim');

alat peraga = 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');

% Pemboleh ubah subjek dan teks e-mel

subj = 'Makluman Penceroboh di Rumah Anda';

text = 'Hello, Ini adalah sistem keselamatan Rumah Pintar anda yang memberitahu bahawa terdapat gerakan yang dikesan di luar rumah anda. Kami telah mengambil langkah yang diperlukan dan menghubungi pihak berkuasa untuk anda. Kekal selamat.';

walaupun benar

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

dlgtitle = 'Pilih Suhu'; % Tajuk untuk menu input pengguna

malap = [1 30]; % Dimensi untuk menu input pengguna

definput = {'72'}; % Input lalai yang muncul ketika menu pertama kali dibuka

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

if ~ isempty (tempsel_array)% Sekiranya array TIDAK kosong

tempsel_char = cell2mat (tempsel_array); % Tukarkan susunan ke rentetan watak

tempsel = str2double (tempsel_char); % Tukarkan rentetan watak menjadi nombor

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

break% Break from while loop sehingga menu tidak muncul berulang kali

lain% Sekiranya pengguna mengklik batal dan bukannya memasuki suhu

msg1 = msgbox ('Tidak ada suhu yang dipilih, lalai ke 85F', 'Amaran!'); % Mesej dipaparkan kepada pengguna setelah mengklik batal

penantian (msg1); % Tunggu kotak mesej ditutup sebelum meneruskan

tempsel = 85; % Tetapkan suhu ke yang dinyatakan dalam kotak mesej

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

break% Break from while loop sehingga menu tidak muncul berulang kali

akhir

akhir

walaupun benar

chID = 745517; % ID Saluran ThingSpeak

writeKey = 'G9XOQTP8KOVSCT0N'; % Kunci untuk mengakses Saluran ThingSpeak

% Memulakan sensor untuk mengambil data

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

lightl1 = readVoltage (a, 'A2'); Tahap cahaya untuk photoresistor menuju LED merah

lightl2 = readVoltage (a, 'A5'); Tahap cahaya untuk photoresistor menuju ke sistem keselamatan

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

% Menukar data suhu dari voltan ke darjah Fahrenheit

tempC = (tempread - 0.5) * 100; % Tukar voltan ke suhu dalam Celsius

tempF = (tempC * 9/5) + 32; % Tukar suhu dalam Celsius ke suhu di Fahrenheit

% Memulakan nombor pin untuk LED pelbagai warna

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

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

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

jika tempsel <tempF% Sekiranya suhu yang dipilih lebih besar daripada suhu bilik

writePosition (s, 1); Servo akan mula bergerak

jeda (10)% Servo akan terus berputar selama 10 saat untuk menunjukkan bahawa AC akan mati setelah jangka masa yang ditentukan

writePosition (s, 0); % Matikan kipas untuk tujuan meneruskan kod tanpa kipas dihidupkan

tempsel = 150; % Ubah nilai suhu untuk keluar dari gelung setelah kipas dimatikan, sekali lagi hanya untuk tujuan meneruskan kod

akhir

if lightl1 <= 3% Sekiranya photoresistor pertama mengesan tahap cahaya rendah

tulisDigitalPin (a, 'A1', 1); % Hidupkan LED merah yang mewakili lampu luar

lain% Sekiranya tahap cahaya tinggi lagi

tulisDigitalPin (a, 'A1', 0); % Matikan LED merah apabila tahap cahaya cukup tinggi lagi

akhir

if switchv> 3% Sekiranya suis dihidupkan

A = wujud ('m', 'var'); % Periksa adanya pemboleh ubah 'm', ini akan menginisialisasi untuk loop sementara dan membiarkannya rosak ketika item menu dipilih (inilah sebabnya mengapa jelas m harus dilakukan pada awal kod)

sementara A == 0% Loop akan dijalankan sehingga pemboleh ubah 'm' wujud

menutext = 'Mod keselamatan mana yang ingin anda masukkan?'; % Teks untuk menu pop timbul keselamatan

pilihan = {'Rumah', 'Jauh'}; % Pilihan untuk menu pop timbul keselamatan

m = menu (menuutext, pilihan); % Popup menu untuk mod sistem keselamatan

break% Memastikan bahawa loop sementara rosak sehingga menu tidak akan muncul berkali-kali

akhir

jika m == 1% Jika mod 'Rumah' dipilih

tulisDigitalPin (a, bluep, 1); Nyalakan hanya cahaya biru pada LED yang berubah warna

tulisDigitalPin (a, redp, 0);

tulisDigitalPin (a, greenp, 0);

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

tulisDigitalPin (a, bluep, 0);

tulisDigitalPin (a, redp, 0);

tulisDigitalPin (a, greenp, 1); Nyalakan hanya lampu hijau pada LED yang berubah warna

if lightl2 <= 3% Sekiranya tahap cahaya pada photoresistor kedua rendah, mewakili gerakan yang dikesan oleh sistem keselamatan

sendmail (e-mel, subj, teks); % Hantar e-mel dengan sifat e-mel yang ditentukan sebelumnya writeDigitalPin (a, greenp, 0); Warna merah kilat hidup dan mati 2 kali

tulisDigitalPin (a, redp, 1);

berhenti seketika (0.3)

tulisDigitalPin (a, redp, 0);

berhenti seketika (0.3)

tulisDigitalPin (a, redp, 1);

berhenti seketika (0.3)

tulisDigitalPin (a, redp, 0);

berhenti seketika (0.3)

tulisDigitalPin (a, redp, 1); Selesaikan dengan warna merah pekat setelah berkelip untuk menunjukkan ada gerakan sehingga tahap cahaya kembali naik

msg2 = msgbox ('Penceroboh dikesan oleh sistem keselamatan, e-mel telah dihantar kepada pemilik rumah untuk memberitahu mereka.', 'PERINGATAN!'); % Kotak mesej untuk memberitahu pengguna pergerakan dan untuk memberitahu mengenai e-mel yang dihantar menunggu (msg2)% Tunggu kotak mesej ditutup sebelum meneruskan

yang lain

tulisDigitalPin (a, greenp, 1); Setelah tahap cahaya meningkat semula ia akan kembali menjadi hijau

akhir

akhir

elseif switchv <3.3% Sekiranya suis dimatikan

tulisDigitalPin (a, bluep, 0); % Matikan LED sepenuhnya untuk menunjukkan sistem keselamatan dimatikan

tulisDigitalPin (a, redp, 0);

tulisDigitalPin (a, greenp, 0);

akhir

akhir

Disyorkan: