Mündəricat:

EF230 Ağıllı Ev Layihəsi: 7 addım
EF230 Ağıllı Ev Layihəsi: 7 addım

Video: EF230 Ağıllı Ev Layihəsi: 7 addım

Video: EF230 Ağıllı Ev Layihəsi: 7 addım
Video: EF230: MATLAB RVR Speech Recognition Demonstration 2024, Iyul
Anonim
EF230 Ağıllı Ev Layihəsi
EF230 Ağıllı Ev Layihəsi

Ehtiyac duyulan hissələr və materiallar:

  • 1 Arduino MKR 1000
  • 3 Çörək taxtası
  • 2 Mini Fotosel
  • 1 NPN Transistorlar
  • 1 Mini Güc Açarı
  • 1 LED - RGB (4 qolu)
  • 1 LED (seçdiyiniz rəng)
  • 1 Diod 1N4148
  • 1 10K Ohm Rezistorlar
  • 5 100 Ohm Rezistor
  • 1 temperatur sensoru TMP36
  • 1 DAGU 48: 1 Oranı Redüktörlü Motor
  • 25 tullanan tel
  • USB Kabeli
  • MATLAB Proqramı
  • Arduino 101/Genuino 101 lövhəsi üçün SIK Təcrübə Bələdçisi - SIK Təcrübə Bələdçisi Bağlantısı

Bu layihə, ev sahiblərinin enerji istifadəsini və təhlükəsizliyini optimallaşdırmağa kömək etmək üçün məlumatlardan istifadə edəcək ağıllı ev sisteminin konseptual dizaynını izah edir. Gecə açıq işıqları açmaq üçün bir işıq sensoru, təhlükəsizlik üçün bir işıq sensoru və daxili temperaturun idarə edilməsi üçün bir temperatur sensoru və fan daxildir.

Addım 1: İşığa həssas LED

  • İşığa həssas LED qurğusu, gecə yanan bir evdə açıq işıqları təmsil etmək üçündür.
  • Mini fotosel az miqdarda işıq hiss etdikdə LED yanacaq.
  • Ağıllı bir ev üçün bunun enerji və təhlükəsizlik təsirləri var. Gündüz işıqları söndürərək enerjiyə qənaət edəcək və gecələr daha çox təhlükəsizlik təmin edəcək.
  • Layihənin bu hissəsinin dəqiq naqilləri və quruluşunu SIK Təcrübə Bələdçisində 7 -ci sınaqda tapa bilərsiniz.

Addım 2: Mini Güc Anahtarı

  • Keçid ağıllı evin təhlükəsizlik prosesində ilk addımdır.
  • Açıldıqda, keçid istifadəçidən 'Ev' və ya 'Uzaq' rejiminə girmək istədiyini soruşan bir cavab başlayacaq.
  • 'Ev' rejimi seçilsə, təhlükəsizlik tərksilah edilmiş sayılır, ancaq 'Uzaq' rejiminin seçilməsi təhlükəsizlik sistemini silahlandıracaq.
  • Layihənin bu hissəsinin naqilləri Təcrübə Bələdçisində 6 -cı sınaqda tapıla bilər. Ağıllı evin məqsədləri üçün, 6 -cı sınaqda tapılan LED -lər və onların birləşdirən tellərinin daxil edilməsinə ehtiyac yoxdur.

Addım 3: İkinci Fotosel

İkinci Fotosel
İkinci Fotosel
  • İkinci fotosel ağıllı evin təhlükəsizlik sistemi üçün hərəkət sensoru rolunu oynayır.
  • Sensor yalnız əvvəlki addımda göstərildiyi kimi sistem 'Uzaq' rejiminə keçirildikdə istifadə olunur.
  • Fotosel aldığı işıq miqdarında azalma yaşayarsa, bunu evin içərisində hərəkət kimi tanıyar.
  • Layihənin bu hissəsinin quruluşunu SIK Təcrübə Bələdçisində 7 -ci sınaqda tapa bilərsiniz. Ancaq kabelə yalnız fotosel və onu birləşdirən tellərin daxil edilməsi lazımdır.

Addım 4: RGB LED

  • RGB LED mini güc açarı və ağıllı evin təhlükəsizlik sistemi üçün ikinci fotosel ilə birlikdə istifadə olunur.
  • Üç fərqli rəng ağıllı ev sakini üçün göstərici olaraq istifadə olunur.
  • Sistem 'Ev' rejiminə keçirildikdə LED mavi rəngə çevrilir. Sistem 'Uzaqda' rejiminə qoyulduqda LED yaşıl olur. Hərəkət sensoru kimi istifadə olunan fotosel açıldıqda işıq qırmızı yanıb -sönür.
  • RGB LED -in naqillərini SIK Təcrübə Kılavuzunun 3 -cü təcrübəsində tapa bilərsiniz.

Addım 5: Temperatur Sensoru

  • İstilik sensoru ağıllı evdə enerjiyə qənaət etməyin əsas hissəsidir.
  • Sakin, ağıllı ev istifadəyə verilərkən evləri üçün istədiyi temperaturu daxil edə bilir.
  • İstilik sensoru, sistemin həqiqi istiliyin nə qədər uzaq olduğunu bilir.
  • Temperatur sensoru üçün SİK Təcrübə Kılavuzunun 9 -cu təcrübəsində tapa bilərsiniz.

Addım 6: DAGU dişli motoru

DAGU dişli motoru
DAGU dişli motoru
  • Motor, ağıllı evin istədiyi temperatura və temperatur sensörünün oxunuşlarına əsaslanaraq evdəki istiliyi tənzimləməsinə imkan verir.
  • Evdəki AC qurğusu rolunu oynayan mühərrik, həqiqi istiliyin istənilən temperaturdan nə qədər yüksək olduğuna əsaslanaraq fərqli sürətlərdə fırlanacaq. Fərq nə qədər yüksək olsa, motor daha sürətli fırlanır.
  • Motorun naqillərini 11 -ci sınaqdakı Təcrübə Bələdçisində tapa bilərsiniz.

Addım 7: Kod

  • Ağıllı evin kodu, sakinin necə işlədiyini asanlıqla başa düşməsinə və parametrləri asanlıqla dəyişməsinə imkan verən birdən çox istifadəçi interfeysi ehtiva edir.
  • Ağıllı ev sistemi ilə, sakin uzaqda olarkən hərəkət sensoru söndürüldükdə xəbərdarlıq alacaq və e -poçtla göndərəcək.
  • Edilməli olan yeganə dəyişiklik, göndərənin e -poçtu və alıcının e -poçt ünvanı üçün məlumatların daxil edilməsidir.

aydın a; aydın s; aydın m; clc; hamısını bağlamaq; Arduino və servo dəyişənləri təmizləyin, buna görə də hər dəfə yenidən təyin oluna bilər, beləliklə kod səmərəli işləyəcək ("loop" lardan birinin düzgün işləməsi üçün "aydın m" lazımdır) a = arduino (); Arduino dəyişənini təyin edin

s = servo (a, 'D6'); Servo dəyişənini təyin edin

Təhlükəsizlik sistemi xəbərdarlıq e -poçtu üçün e -poçt dəyişənlərini işə salın

e -poçtlar = {'alıcı ünvanını daxil edin'}; Təhlükəsizlik e -poçtunun göndərilməsi üçün e -poçt sırası

Poçt göndərmək üçün Gmail istifadə etmək üçün lazım olan e -poçt üstünlük parametrləri

setpref ('İnternet', 'E_mail', 'göndərənin e -poçt ünvanı');

setpref ('İnternet', 'SMTP_Username', 'göndərənin istifadəçi adı');

setpref ('İnternet', 'SMTP_Password', 'göndərənin şifrəsi');

rekvizit = java.lang. System.getProperties;

props.setProperty ('mail.smtp.auth', 'doğru');

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

E -poçt mövzusu və mətn dəyişənləri

subj = 'Evinizdə Hücumçulara Alert';

text = 'Salam, bu evinizin xaricində hərəkət aşkar edildiyini bildirən Ağıllı Ev təhlükəsizlik sisteminizdir. Sizin üçün lazımi tədbirləri gördük və səlahiyyətlilərlə əlaqə saxladıq. Təhlükəsiz qalın. ';

doğru olarkən

prompt = {'İstədiyiniz ev temperaturunu daxil edin (65F ilə 85F arasında):'}; İstifadəçi giriş menyusu üçün sorğu

dlgtitle = 'Temperatur Seçimi'; İstifadəçi giriş menyusu üçün başlıq

dims = [1 30]; İstifadəçi giriş menyusu üçün ölçülər

definput = {'72'}; Menyu ilk açıldıqda görünən standart giriş

tempsel_array = inputdlg (tez, dlgtitle, dims, definput); Daxil edilmiş nömrəni bir sıra daxilində saxlayacaq popup istifadəçi giriş menyusu

if ~ isempty (tempsel_array) % Array boş deyilsə

tempsel_char = cell2mat (tempsel_array); Dizini bir simvol simvoluna çevirin

tempsel = str2double (tempsel_char); Xarakter simvolunu ədədlərə çevirin

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); Seçilmiş temperaturu ThingSpeak kanalınıza yazın

break % while döngəsindən kəsin ki, menyu bir neçə dəfə açılmasın

başqa % İstifadəçi klik edərsə bir temperatur daxil etmək əvəzinə ləğv edər

msg1 = msgbox ('İstilik seçilməyib, standart olaraq 85F', 'Xəbərdarlıq!'); Ləğv et düyməsini basdıqdan sonra istifadəçiyə mesaj göstərilir

gözləyin (msg1); Davam etməzdən əvvəl mesaj qutusunun bağlanmasını gözləyin

tempsel = 85; Mesaj qutusunda göstərilənlərə temperaturu təyin edin

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); Seçilmiş temperaturu ThingSpeak kanalınıza yazın

fasilə % menyu bir neçə dəfə açılmayacağı üçün while döngəsini kəsin

bitmək

bitmək

doğru olarkən

chID = 745517; ThingSpeak Kanal ID

writeKey = 'G9XOQTP8KOVSCT0N'; ThingSpeak Kanalına daxil olmaq üçün açar

Məlumat əldə etmək üçün sensorları işə salın

tempread = readVoltage (a, 'A3'); Temperatur sensorunun gərginliyini oxuyun

lightl1 = readVoltage (a, 'A2'); Qırmızı LEDə gedən fotorezistor üçün işıq səviyyəsi

lightl2 = readVoltage (a, 'A5'); Təhlükəsizlik sisteminə gedən fotorezistor üçün işıq səviyyəsi

switchv = readVoltage (a, 'A0'); Keçid üçün dəyər

Temperatur məlumatlarını gərginlikdən Fahrenheit dərəcəsinə çevirin

tempC = (tempread - 0,5) * 100; Selsi temperatur gərginlik çevirmək

tempF = (tempC * 9/5) + 32; Selsi temperaturunu Fahrenheitdəki temperatura çevirin

Çox rəngli LED üçün pin nömrələrini başladın

redp = 'D9'; LED -dən qırmızı işıq üçün pin

greenp = 'D10'; LED -dən yaşıl işıq üçün pin

plan = 'D11'; LED mavi işıq üçün Pin

if tempsel <tempF % Seçilmiş temperatur otaq temperaturundan böyükdürsə

yazma mövqeyi (lər, 1); Servo hərəkət başlayacaq

fasilə (10) % Servo, müəyyən bir müddətdən sonra AC -nin sönəcəyini göstərmək üçün 10 saniyə dönməyə davam edəcək

yazma mövqeyi (lər, 0); Fanı açmadan kodu davam etdirmək üçün fanı söndürün

tempsel = 150; Fanı söndürdükdən sonra, yalnız kodu davam etdirmək üçün, temperaturun dəyərini dəyişdirin

bitmək

əgər lightl1 <= 3 % İlk fotorezistor aşağı işıq səviyyəsini algılarsa

writeDigitalPin (a, 'A1', 1); Xarici işıqları təmsil edən qırmızı LED yandırın

başqa % İşıq səviyyəsi yenidən yüksəkdirsə

writeDigitalPin (a, 'A1', 0); Işıq səviyyəsi yenidən kifayət qədər yüksək olduqda qırmızı LED söndürün

bitmək

əgər switchv> 3 % keçid açılıbsa

A = var ('m', 'var'); 'M' dəyişəninin mövcudluğunu yoxlayın, bu while döngəsini işə salacaq və bir menyu maddəsi seçildikdə onu pozmağa imkan verəcək (bu səbəbdən kodun əvvəlində aydın m edilməlidir)

A == 0 % Loop 'm' dəyişəni mövcud olana qədər icra ediləcək

menutext = 'Hansı təhlükəsizlik rejiminə daxil olmaq istərdiniz?'; Təhlükəsizlik açılan menyusu üçün mətn

choices = {'Ev', 'Uzaqda'}; Təhlükəsizlik açılan menyusu üçün seçimlər

m = menyu (menyu mətni, seçimlər); Təhlükəsizlik sistemi rejimləri üçün açılan menyu

break % while döngəsinin pozulmasını təmin edir ki, menyu bir neçə dəfə açılmasın

bitmək

əgər m == 1 % 'Ev' rejimi seçilsə

writeDigitalPin (a, plan, 1); Rəng dəyişən LED -də yalnız mavi işığı yandırın

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

elseif m == 2 % 'Uzaqda' rejimi seçilsə

writeDigitalPin (a, plan, 0);

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 1); Rəngi dəyişən LED -də yalnız yaşıl işığı yandırın

əgər lightl2 <= 3 % İkinci fotorezistordakı işıq səviyyəsi aşağı olarsa, təhlükəsizlik sistemi tərəfindən aşkar edilən hərəkəti təmsil edir

sendmail (e -poçt, subj, mətn); Daha əvvəl müəyyən edilmiş e -poçt xüsusiyyətləri ilə bir e -poçt göndərin WriteDigitalPin (a, greenp, 0); Qırmızı rəng 2 dəfə açılır və sönür

writeDigitalPin (a, redp, 1);

fasilə (0.3)

writeDigitalPin (a, redp, 0);

fasilə (0.3)

writeDigitalPin (a, redp, 1);

fasilə (0.3)

writeDigitalPin (a, redp, 0);

fasilə (0.3)

writeDigitalPin (a, redp, 1); İşıq səviyyəsi geri qayıdana qədər hərəkət olduğunu göstərmək üçün yanıb -sönəndən sonra bərk qırmızı ilə bitirin

msg2 = msgbox ('Təhlükəsizlik sistemi tərəfindən girən aşkarlandı, ev sahiblərinə məlumat vermək üçün bir e -poçt göndərildi.', 'XƏBƏRDARLIQ!'); İstifadəçiyə hərəkət barədə məlumat vermək və göndərilən e -poçt haqqında məlumat vermək üçün mesaj qutusu (msg2) % Davam etməzdən əvvəl mesaj qutusunun bağlanmasını gözləyin.

başqa

writeDigitalPin (a, greenp, 1); İşıq səviyyəsi yenidən artdıqdan sonra yenidən yaşıl rəngə dönəcək

bitmək

bitmək

elseif switchv <3.3 % Açar söndürüldükdə

writeDigitalPin (a, plan, 0); Təhlükəsizlik sisteminin söndürüldüyünü göstərmək üçün LED -i tamamilə söndürün

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

bitmək

bitmək

Tövsiyə: