Სარჩევი:

EF230 ჭკვიანი სახლის პროექტი: 7 ნაბიჯი
EF230 ჭკვიანი სახლის პროექტი: 7 ნაბიჯი

ვიდეო: EF230 ჭკვიანი სახლის პროექტი: 7 ნაბიჯი

ვიდეო: EF230 ჭკვიანი სახლის პროექტი: 7 ნაბიჯი
ვიდეო: Rover EF230 2024, ივლისი
Anonim
EF230 ჭკვიანი სახლის პროექტი
EF230 ჭკვიანი სახლის პროექტი

საჭირო ნაწილები და მასალები:

  • 1 არდუინო 1000 MKR
  • 3 პურის დაფა
  • 2 მინი ფოტოსელი
  • 1 NPN ტრანზისტორი
  • 1 მინი დენის გადამრთველი
  • 1 LED - RGB (4 prong)
  • 1 LED (ფერი თქვენი არჩევანი)
  • 1 დიოდი 1N4148
  • 1 10K Ohm რეზისტორები
  • 5 100 Ohm რეზისტორი
  • 1 ტემპერატურის სენსორი TMP36
  • 1 DAGU 48: 1 თანაფარდობა Gearmotor
  • 25 Jumper Wires
  • USB კაბელი
  • MATLAB პროგრამა
  • SIK ექსპერიმენტის გზამკვლევი Arduino 101/Genuino 101 დაფისთვის - SIK ექსპერიმენტის გზამკვლევი ბმული

ეს პროექტი ასახავს ჭკვიანი სახლის სისტემის კონცეპტუალურ დიზაინს, რომელიც გამოიყენებს მონაცემებს სახლის მესაკუთრეებისათვის ენერგიის მოხმარებისა და უსაფრთხოების ოპტიმიზაციაში. იგი მოიცავს სინათლის სენსორს ღამით გარე განათების ჩასართავად, სინათლის სენსორს უსაფრთხოებისათვის და ტემპერატურის სენსორს და ვენტილატორს შიდა ტემპერატურის კონტროლისთვის.

ნაბიჯი 1: სინათლის მგრძნობიარე LED

  • სინათლისადმი მგრძნობიარე LED კონფიგურაცია უნდა ნიშნავდეს გარე განათებებს სახლში ღამით.
  • როდესაც მინი ფოტოს უჯრედი იგრძნობს შუქის შემცირებულ რაოდენობას, LED ანათებს.
  • ჭკვიანი სახლისთვის ამას აქვს ენერგია და უსაფრთხოება. ის დაზოგავს ენერგიას დღის განმავლობაში შუქის ჩაქრობისას და უზრუნველყოფს უსაფრთხოების გაზრდას ღამით.
  • პროექტის ამ ნაწილის ზუსტი გაყვანილობა და კონფიგურაცია შეგიძლიათ ნახოთ ექსპერიმენტის 7 -ში SIK ექსპერიმენტის გზამკვლევში.

ნაბიჯი 2: მინი დენის გადამრთველი

  • გადართვა არის პირველი ნაბიჯი ჭკვიანი სახლის უსაფრთხოების პროცესში.
  • როდესაც ის ჩართულია, გადამრთველი იწყებს პასუხს მომხმარებელს, სთხოვს თუ არა მას სურს შევიდეს "სახლის" ან "არყოფნის" რეჟიმში.
  • თუ შეირჩევა "სახლის" რეჟიმი, უსაფრთხოება განიხილება განიარაღებული, მაგრამ "არყოფნის" რეჟიმის არჩევა უსაფრთხოების სისტემას შეიარაღებს.
  • პროექტის ამ ნაწილის გაყვანილობა შეგიძლიათ ნახოთ ექსპერიმენტის სახელმძღვანელოში მე –6 ექსპერიმენტის ქვეშ. ჭკვიანი სახლის მიზნებისათვის, LED და მისი დამაკავშირებელი მავთულები, რომლებიც მეექვსე ექსპერიმენტში გვხვდება, არ უნდა იყოს ჩართული.

ნაბიჯი 3: მეორე ფოტოცელი

მეორე ფოტოცელი
მეორე ფოტოცელი
  • მეორე ფოტოელემენტი ემსახურება მოძრაობის სენსორს ჭკვიანი სახლის უსაფრთხოების სისტემისთვის.
  • სენსორი გამოიყენება მხოლოდ მაშინ, როდესაც სისტემა მოთავსებულია "არყოფნის" რეჟიმში, როგორც ეს აღწერილია წინა ნაბიჯში.
  • თუ ფოტოელემენტი განიცდის შემცირებული სინათლის რაოდენობას, ის აღიარებს ამას, როგორც მოძრაობას სახლის შიგნით.
  • პროექტის ამ ნაწილის კონფიგურაცია შეგიძლიათ იხილოთ ექსპერიმენტის 7 -ში SIK ექსპერიმენტის გზამკვლევში. თუმცა გაყვანილობაში მხოლოდ ფოტოელემენტი და მისი დამაკავშირებელი მავთულები უნდა იყოს ჩართული.

ნაბიჯი 4: RGB LED

  • RGB LED გამოიყენება მინი დენის გადამრთველთან და ჭკვიანი სახლის უსაფრთხოების სისტემის მეორე ფოტოს უჯრედთან ერთად.
  • სამი განსხვავებული ფერი გამოიყენება როგორც ინდიკატორი ჭკვიანი სახლის მაცხოვრებლისთვის.
  • როდესაც სისტემა მოთავსებულია "სახლის" რეჟიმში, LED ხდება ცისფერი. როდესაც სისტემა მოთავსებულია "მოშორების" რეჟიმში, LED შუქდება მწვანე. როდესაც მოძრაობის სენსორის სახით გამოყენებული უჯრედი იშლება, შუქი წითლად ანათებს.
  • RGB LED- ის გაყვანილობა შეგიძლიათ იხილოთ SIK ექსპერიმენტის სახელმძღვანელოს მე –3 ექსპერიმენტში.

ნაბიჯი 5: ტემპერატურის სენსორი

  • ტემპერატურის სენსორი არის ჭკვიან სახლში ენერგიის დაზოგვის ძირითადი ნაწილი.
  • მაცხოვრებელს შეუძლია შეიყვანოს სასურველი ტემპერატურა მათი სახლისთვის, როდესაც ჭკვიანი სახლი გამოიყენება.
  • ტემპერატურის სენსორი არის ის, თუ როგორ იცის სისტემამ, რამდენად შორს არის ფაქტობრივი ტემპერატურა სასურველი ტემპერატურისგან.
  • ტემპერატურის სენსორის დაყენება შეგიძლიათ იხილოთ SIK ექსპერიმენტის სახელმძღვანელოს მე –9 ექსპერიმენტში.

ნაბიჯი 6: DAGU Gearmotor

DAGU Gearmotor
DAGU Gearmotor
  • ძრავა საშუალებას აძლევს ჭკვიან სახლს დაარეგულიროს ტემპერატურა სახლში სასურველი ტემპერატურისა და ტემპერატურის სენსორის მაჩვენებლების საფუძველზე.
  • სახლში მოქმედი როგორც AC ერთეული, ძრავა ბრუნავს სხვადასხვა სიჩქარით იმის მიხედვით, თუ რამდენად უფრო მაღალია ფაქტობრივი ტემპერატურა სასურველ ტემპერატურაზე. რაც უფრო მაღალია სხვაობა, ის უფრო სწრაფად ბრუნავს ძრავას.
  • ძრავის გაყვანილობა შეგიძლიათ იხილოთ ექსპერიმენტის გზამკვლევში 11 ექსპერიმენტის ქვეშ.

ნაბიჯი 7: კოდი

  • ჭკვიანი სახლის კოდი მოიცავს მრავალ მომხმარებლის ინტერფეისს, რაც საშუალებას აძლევს მაცხოვრებელს ადვილად გაიგოს როგორ მუშაობს და ადვილად შეცვალოს პარამეტრები.
  • ჭკვიანი სახლის სისტემით, რეზიდენტი მიიღებს და მიიღებს შეტყობინებას ელექტრონული ფოსტით, თუ მოძრაობის სენსორი გააქტიურებულია შორს ყოფნისას.
  • ერთადერთი ცვლილება, რაც უნდა განხორციელდეს, არის გამგზავნის ელ.ფოსტის და მიმღების ელ.ფოსტის ინფორმაციის ჩასმა.

გარკვევა a; ნათელი s; წმინდა მ; clc; დახურე ყველა; % სუფთა arduino და servo ცვლადები, რათა მათი ხელახალი განსაზღვრა მოხდეს ყოველ ჯერზე, ასე რომ კოდი ეფექტურად იმუშავებს ("ნათელი m" აუცილებელია ერთ -ერთი მარყუჟის სწორად ფუნქციონირებისთვის) a = arduino (); % Arduino ცვლადი

s = servo (a, 'D6'); % დააყენეთ servo ცვლადი

ინიციალიზაცია ელ ცვლადები უსაფრთხოების სისტემის გამაფრთხილებელი ელ

ელ.ფოსტა = {'ჩასვით მიმღების მისამართი'}; ელ.ფოსტის მასივი, რომელსაც უნდა გაეგზავნოს უსაფრთხოების ელ

% ელ.ფოსტის სასურველი პარამეტრები Gmail- ის გამოსაყენებლად წერილების გაგზავნისთვის

setpref ("ინტერნეტი", "E_mail", "გამგზავნის ელ.ფოსტის მისამართი");

setpref ("ინტერნეტი", "SMTP_Username", "გამგზავნის მომხმარებლის სახელი");

setpref ("ინტერნეტი", "SMTP_Password", "გამგზავნის პაროლი");

props = java.lang. System.getProperties;

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

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

% ელ.ფოსტის სათაური და ტექსტის ცვლადი

subj = 'გაფრთხილება თავდამსხმელთა სახლში';

text = 'გამარჯობა, ეს არის თქვენი Smart Home უსაფრთხოების სისტემა, რომელიც გაცნობებთ, რომ მოძრაობა გამოვლინდა თქვენი სახლის გარეთ. ჩვენ მივიღეთ საჭირო ზომები და დავუკავშირდით ხელისუფლებას თქვენთვის. დარჩი უსაფრთხოდ. ';

მართალია

მოთხოვნა = {'შეიყვანეთ სახლის სასურველი ტემპერატურა (65F- დან 85F- მდე):'}; % მოთხოვნა მომხმარებლის შეყვანის მენიუსთვის

dlgtitle = 'ტემპერატურის შერჩევა'; % სახელი მომხმარებლის შეყვანის მენიუსთვის

dims = [1 30]; % მომხმარებლის შეყვანის მენიუს ზომები

definput = {'72'}; % ნაგულისხმევი შეყვანა, რომელიც გამოჩნდება მენიუს პირველად გახსნისას

tempsel_array = inputdlg (მოთხოვნა, dlgtitle, dims, definput); % ამომხტარი მომხმარებლის შეყვანის მენიუ, რომელიც შეინახავს შეყვანილ ნომერს მასივში

if ~ isempty (tempsel_array) % თუ მასივი არ არის ცარიელი

tempsel_char = cell2mat (tempsel_array); მასივის გადაყვანა სიმბოლოთა სტრიქონად

tempsel = str2double (tempsel_char); % გადაიყვანეთ სიმბოლოების სტრიქონი ციფრებად

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % ჩაწერეთ არჩეული ტემპერატურა თქვენს ThingSpeak არხზე

შესვენება შესვენება ხოლო მარყუჟის ასე მენიუ არ pop -up რამდენჯერმე

else % თუ მომხმარებელი დააწკაპუნებს ტემპერატურის შეყვანის ნაცვლად გააუქმეთ

msg1 = msgbox ('ტემპერატურა არ არის არჩეული, ნაგულისხმევი 85F', 'გაფრთხილება!'); % შეტყობინება ნაჩვენებია მომხმარებელზე გაუქმების დაწკაპუნების შემდეგ

ლოდინი (msg1); % დაელოდეთ სანამ შეტყობინების ყუთი დაიხურება გაგრძელებამდე

ტემპსელი = 85; % დააყენეთ ტემპერატურა იმაზე, რაც წერია შეტყობინების ყუთში

thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % ჩაწერეთ არჩეული ტემპერატურა თქვენს ThingSpeak არხზე

შესვენება შესვენება ხოლო მარყუჟის ასე მენიუ არ pop -up რამდენჯერმე

დასასრული

დასასრული

მართალია

chID = 745517; % ThingSpeak არხის ID

writeKey = 'G9XOQTP8KOVSCT0N'; % ThingSpeak არხზე წვდომის გასაღები

% ინიციალიზაცია სენსორები მონაცემების მოსაპოვებლად

tempread = readVoltage (a, 'A3'); წაიკითხეთ ტემპერატურის სენსორის ძაბვა

lightl1 = readVoltage (a, 'A2'); სინათლის დონე ფოტორეზისტორისთვის, რომელიც მიდის წითელ LED- ზე

lightl2 = readVoltage (a, 'A5'); სინათლის დონე ფოტორეზისტორისთვის, რომელიც მიდის უსაფრთხოების სისტემაში

switchv = readVoltage (a, 'A0'); % გადართვის მნიშვნელობა

გადააქციეთ ტემპერატურის მონაცემები ძაბვიდან ფარენგეიტის გრადუსზე

tempC = (tempread - 0.5) * 100; გადააკეთეთ ძაბვა ტემპერატურაზე ცელსიუსში

tempF = (tempC * 9/5) + 32; გადააკეთეთ ტემპერატურა ცელსიუსში ფარენჰეიტში

ინიციალიზაცია pin ნომრები multicolor LED

redp = 'D9'; PIN წითელი შუქისთვის LED- დან

greenp = 'D10'; პინი მწვანე შუქისთვის LED- დან

bluep = 'D11'; პინ ლურჯი შუქისთვის LED- დან

თუ ტემპსელი <tempF % თუ არჩეული ტემპერატურა ოთახის ტემპერატურაზე მეტია

writePosition (s, 1); Servo დაიწყება გადაადგილება

პაუზა (10) % სერვო გააგრძელებს ტრიალს 10 წამის განმავლობაში იმის მანიშნებლად, რომ AC გამორთულია განსაზღვრული დროის შემდეგ

writePosition (s, 0); % გამორთეთ გულშემატკივარი კოდის გაგრძელების მიზნით, ვენტილატორის ჩართვის გარეშე

ტემპსელი = 150; % შეცვალეთ ტემპერატურის მნიშვნელობა მარყუჟის გასასვლელად ვენტილატორის გამორთვის შემდეგ, ისევ მხოლოდ კოდის გაგრძელების მიზნით

დასასრული

თუ lightl1 <= 3 % თუ პირველი ფოტორეზისტორი აღმოაჩენს დაბალ შუქს

writeDigitalPin (a, 'A1', 1); ჩართეთ წითელი LED, რომელიც წარმოადგენს გარე განათებებს

სხვა თუ განათების დონე კვლავ მაღალია

writeDigitalPin (a, 'A1', 0); გამორთეთ წითელი LED როდესაც სინათლის დონე კვლავ საკმარისად მაღალია

დასასრული

თუ switchv> 3 % თუ გადამრთველი ჩართულია

A = არსებობა ('m', 'var'); % შეამოწმეთ ცვლადი 'm' არსებობა, ეს იქნება მარყუჟის ინიციალიზაცია და მის გატეხვის საშუალებას მისცემს მენიუს ელემენტის არჩევისას (ამიტომაც უნდა მოხდეს მ -ის გარკვევა კოდის დასაწყისში)

ხოლო A == 0 % Loop შესრულდება მანამ, სანამ ცვლადი 'm' არ არსებობს

menutext = 'უსაფრთხოების რომელ რეჟიმში გსურთ შესვლა?'; % ტექსტი უსაფრთხოების ამომხტარი მენიუსთვის

არჩევანი = {'სახლში', 'მოშორებით'}; არჩევანი უსაფრთხოების ამომხტარი მენიუსთვის

m = მენიუ (მენიუტექსტი, არჩევანი); % Popup მენიუ უსაფრთხოების სისტემის რეჟიმებისთვის

break % უზრუნველყოფს, რომ while მარყუჟი გატეხილი იყოს და მენიუ რამდენჯერმე არ გამოჩნდეს

დასასრული

თუ m == 1 % თუ არჩეულია 'მთავარი' რეჟიმი

writeDigitalPin (a, bluep, 1); ჩართეთ მხოლოდ ლურჯი შუქი ფერის შეცვლის LED- ში

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

elseif m == 2 % თუ არჩეულია 'მოშორებით' რეჟიმი

writeDigitalPin (a, bluep, 0);

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 1); ჩართეთ მხოლოდ მწვანე შუქი ფერის შეცვლის LED- ში

თუ lightl2 <= 3 % თუ მეორე ფოტორეზისტორში სინათლის დონე დაბალია, წარმოადგენს უსაფრთხოების სისტემის მიერ გამოვლენილ მოძრაობას

sendmail (ელ.ფოსტა, subj, ტექსტი); % ელ.ფოსტის გაგზავნა ადრე განსაზღვრული ელ.ფოსტის თვისებებით writeDigitalPin (a, greenp, 0); Flash წითელი ფერი ჩართულია და გამორთულია 2 -ჯერ

writeDigitalPin (a, redp, 1);

პაუზა (0.3)

writeDigitalPin (a, redp, 0);

პაუზა (0.3)

writeDigitalPin (a, redp, 1);

პაუზა (0.3)

writeDigitalPin (a, redp, 0);

პაუზა (0.3)

writeDigitalPin (a, redp, 1); დაასრულეთ მყარი წითელი მოციმციმის შემდეგ, რათა ნახოთ არის მოძრაობა მანამ, სანამ სინათლის დონე არ დაბრუნდება

msg2 = msgbox ('უსაფრთხოების სისტემის მიერ შემორჩენილი თავდამსხმელი, სახლის მესაკუთრეებს გაუგზავნიათ ელ.წერილი მათ ინფორმირებისთვის.', 'გაფრთხილება!'); % შეტყობინებების ყუთი მოძრაობის მომხმარებლის ინფორმირებისთვის და გაგზავნილი ელ.ფოსტის ინფორმირებისთვის waitfor (msg2) % დაელოდეთ შეტყობინების ყუთის დახურვას გაგრძელებამდე

სხვა

writeDigitalPin (a, greenp, 1); მას შემდეგ, რაც სინათლის დონე კვლავ გაიზარდა, ის კვლავ მწვანე გახდება

დასასრული

დასასრული

elseif switchv <3.3 % თუ გადამრთველი გამორთულია

writeDigitalPin (a, bluep, 0); გამორთეთ LED მთლიანად რათა ნახოთ უსაფრთხოების სისტემა გამორთულია

writeDigitalPin (a, redp, 0);

writeDigitalPin (a, greenp, 0);

დასასრული

დასასრული

გირჩევთ: