สารบัญ:
- ขั้นตอนที่ 1: LED ที่ไวต่อแสง
- ขั้นตอนที่ 2: สวิตช์ไฟขนาดเล็ก
- ขั้นตอนที่ 3: ตาแมวที่สอง
- ขั้นตอนที่ 4: LED RGB
- ขั้นตอนที่ 5: เซ็นเซอร์อุณหภูมิ
- ขั้นตอนที่ 6: DAGU Gearmotor
- ขั้นตอนที่ 7: รหัส
วีดีโอ: โครงการบ้านอัจฉริยะ EF230: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
ชิ้นส่วนและวัสดุที่จำเป็น:
- 1 Arduino MKR 1000
- 3 เขียงหั่นขนม
- โฟโตเซลล์ขนาดเล็ก 2 อัน
- 1 ทรานซิสเตอร์ NPN
- 1 สวิตช์ไฟขนาดเล็ก
- 1 LED – RGB (4 ขา)
- 1 LED (สีที่คุณเลือก)
- 1 ไดโอด 1N4148
- 1 ตัวต้านทาน 10K โอห์ม
- 5 ตัวต้านทาน 100 โอห์ม
- 1 เซ็นเซอร์อุณหภูมิ TMP36
- 1 DAGU 48:1 อัตราทดเกียร์มอเตอร์
- สายจัมเปอร์ 25 สาย
- สาย USB
- โปรแกรม MATLAB
-
คู่มือการทดลอง SIK สำหรับบอร์ด Arduino 101/Genuino 101 - SIK Experiment Guide Link
โครงการนี้มีรายละเอียดเกี่ยวกับการออกแบบแนวความคิดของระบบบ้านอัจฉริยะซึ่งจะใช้ข้อมูลเพื่อช่วยให้เจ้าของบ้านเพิ่มประสิทธิภาพการใช้พลังงานและความปลอดภัย ประกอบด้วยเซ็นเซอร์วัดแสงสำหรับเปิดไฟกลางแจ้งในเวลากลางคืน เซ็นเซอร์วัดแสงเพื่อความปลอดภัย เซ็นเซอร์อุณหภูมิและพัดลมสำหรับการควบคุมอุณหภูมิในร่ม
ขั้นตอนที่ 1: LED ที่ไวต่อแสง
- การตั้งค่า LED ที่ไวต่อแสงมีขึ้นเพื่อแสดงแสงกลางแจ้งที่บ้านที่เปิดขึ้นในเวลากลางคืน
- เมื่อโฟโตเซลล์ขนาดเล็กสัมผัสได้ถึงปริมาณแสงที่ลดลง ไฟ LED จะสว่างขึ้น
- สำหรับบ้านอัจฉริยะ สิ่งนี้มีผลกระทบต่อพลังงานและความปลอดภัย มันจะประหยัดพลังงานโดยการปิดไฟในระหว่างวันและจะเพิ่มความปลอดภัยในเวลากลางคืน
- การเดินสายและการตั้งค่าที่แน่นอนสำหรับส่วนนี้ของโครงการสามารถพบได้ในการทดลองที่ 7 ในคู่มือการทดสอบ SIK
ขั้นตอนที่ 2: สวิตช์ไฟขนาดเล็ก
- สวิตช์เป็นขั้นตอนแรกในกระบวนการรักษาความปลอดภัยของบ้านอัจฉริยะ
- เมื่อเปิดสวิตช์ สวิตช์จะเริ่มตอบกลับโดยถามผู้ใช้ว่าต้องการเข้าสู่โหมด "บ้าน" หรือโหมด "ไม่อยู่"
- หากเลือกโหมด 'Home' การรักษาความปลอดภัยจะถือว่าปลดอาวุธ แต่การเลือกโหมด 'ไม่อยู่' จะทำให้ระบบรักษาความปลอดภัยติดอาวุธ
- การเดินสายสำหรับส่วนนี้ของโครงการสามารถพบได้ในการทดลองที่ 6 ในคู่มือการทดลอง สำหรับวัตถุประสงค์ของบ้านอัจฉริยะ ไม่จำเป็นต้องรวม LED และสายเชื่อมต่อที่พบในการทดลองที่ 6
ขั้นตอนที่ 3: ตาแมวที่สอง
- ตาแมวที่สองทำหน้าที่เป็นเซ็นเซอร์ตรวจจับความเคลื่อนไหวสำหรับระบบรักษาความปลอดภัยของบ้านอัจฉริยะ
- เซ็นเซอร์จะใช้เฉพาะเมื่อระบบอยู่ในโหมด "ไม่อยู่" ตามที่อธิบายไว้ในขั้นตอนก่อนหน้า
- หากตาแมวประสบกับปริมาณแสงที่ได้รับลดลง ก็จะรับรู้ว่านี่เป็นการเคลื่อนไหวภายในบ้าน
- การตั้งค่าสำหรับส่วนนี้ของโครงการสามารถพบได้ในการทดลองที่ 7 ในคู่มือการทดสอบ SIK อย่างไรก็ตาม ต้องรวมเฉพาะโฟโตเซลล์และสายเชื่อมต่อไว้ในสายไฟเท่านั้น
ขั้นตอนที่ 4: LED RGB
- RGB LED ใช้ร่วมกับสวิตช์เปิดปิดขนาดเล็กและโฟโตเซลล์ตัวที่สองสำหรับระบบรักษาความปลอดภัยของบ้านอัจฉริยะ
- สามสีที่ต่างกันถูกใช้เป็นตัวบ่งชี้สำหรับผู้อยู่อาศัยในบ้านอัจฉริยะ
- เมื่อระบบอยู่ในโหมด 'Home' ไฟ LED จะเปลี่ยนเป็นสีน้ำเงิน เมื่อระบบอยู่ในโหมด "ไม่อยู่" ไฟ LED จะเปลี่ยนเป็นสีเขียว เมื่อตาแมวที่ใช้เป็นเซ็นเซอร์ตรวจจับความเคลื่อนไหวสะดุด ไฟจะกะพริบเป็นสีแดง
- การเดินสายไฟสำหรับ RGB LED สามารถพบได้ในการทดลองที่ 3 ของ SIK Experiment Guide
ขั้นตอนที่ 5: เซ็นเซอร์อุณหภูมิ
- เซ็นเซอร์อุณหภูมิเป็นส่วนสำคัญในการประหยัดพลังงานในบ้านอัจฉริยะ
- ผู้อยู่อาศัยสามารถป้อนอุณหภูมิที่ต้องการสำหรับบ้านของตนได้เมื่อมีการใช้งานบ้านอัจฉริยะ
- เซ็นเซอร์อุณหภูมิเป็นวิธีที่ระบบรู้ว่าอุณหภูมิจริงอยู่ห่างจากอุณหภูมิที่ต้องการเท่าใด
- การตั้งค่าเซ็นเซอร์อุณหภูมิสามารถพบได้ในการทดลองที่ 9 ของคู่มือการทดสอบ SIK
ขั้นตอนที่ 6: DAGU Gearmotor
- มอเตอร์ช่วยให้บ้านอัจฉริยะควบคุมอุณหภูมิในบ้านตามอุณหภูมิที่ต้องการและการอ่านค่าของเซ็นเซอร์อุณหภูมิ
- ทำหน้าที่เป็นหน่วยไฟฟ้ากระแสสลับในบ้าน มอเตอร์จะหมุนด้วยความเร็วที่แตกต่างกัน ขึ้นอยู่กับอุณหภูมิจริงที่สูงกว่าอุณหภูมิที่ต้องการมากน้อยเพียงใด ยิ่งความแตกต่างสูงเท่าไหร่ เขาก็ยิ่งหมุนมอเตอร์เร็วขึ้น
- การเดินสายไฟสำหรับมอเตอร์มีอยู่ในคู่มือการทดลองภายใต้การทดลองที่ 11
ขั้นตอนที่ 7: รหัส
- รหัสสำหรับบ้านอัจฉริยะประกอบด้วยอินเทอร์เฟซผู้ใช้หลายแบบที่ช่วยให้ผู้อยู่อาศัยเข้าใจวิธีการทำงานและเปลี่ยนการตั้งค่าได้อย่างง่ายดาย
- ด้วยระบบสมาร์ทโฮม ผู้อยู่อาศัยจะได้รับและอีเมลแจ้งเตือนหากเซ็นเซอร์ตรวจจับความเคลื่อนไหวถูกตั้งค่าไว้ขณะที่ไม่อยู่
- การเปลี่ยนแปลงเพียงอย่างเดียวที่ต้องทำคือการแทรกข้อมูลสำหรับอีเมลของผู้ส่งและที่อยู่อีเมลของผู้รับ
ล้าง; ชัดเจน s; ชัดเจน ม.; ซีแอลซี; ปิดทั้งหมด; % ล้างตัวแปร arduino และ servo เพื่อให้สามารถกำหนดใหม่ได้ในแต่ละครั้งเพื่อให้โค้ดทำงานได้อย่างมีประสิทธิภาพ ("clear m" จำเป็นสำหรับหนึ่งใน while loops เพื่อให้ทำงานได้อย่างถูกต้อง)a = arduino(); % ตั้งค่าตัวแปร Arduino
s = เซอร์โว (a, 'D6'); % ตั้งค่าตัวแปรเซอร์โว
% เริ่มต้นตัวแปรอีเมลสำหรับอีเมลแจ้งเตือนระบบความปลอดภัย
อีเมล = {'ใส่ที่อยู่ผู้รับ'}; % อาร์เรย์ของอีเมลที่จะให้ส่งอีเมลความปลอดภัยไปที่
% การตั้งค่ากำหนดอีเมลที่จำเป็นสำหรับการใช้ Gmail เพื่อส่งอีเมลจาก
setpref('อินเทอร์เน็ต', 'อีเมล', 'ที่อยู่อีเมลของผู้ส่ง');
setpref('อินเทอร์เน็ต', 'SMTP_Username', 'ชื่อผู้ใช้ของผู้ส่ง');
setpref('อินเทอร์เน็ต', 'SMTP_Password', 'รหัสผ่านของผู้ส่ง');
อุปกรณ์ประกอบฉาก = 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 ของคุณเพื่อแจ้งให้คุณทราบว่ามีการตรวจจับการเคลื่อนไหวนอกบ้านของคุณ เราได้ดำเนินการตามมาตรการที่จำเป็นและติดต่อเจ้าหน้าที่เพื่อคุณแล้ว อยู่อย่างปลอดภัย.';
ในขณะที่จริง
prompt = {'ป้อนอุณหภูมิบ้านที่ต้องการ (ระหว่าง 65F ถึง 85F):'}; % แจ้งให้ผู้ใช้ป้อนเมนู
dlgtitle = 'เลือกอุณหภูมิ'; % ชื่อเมนูอินพุตของผู้ใช้
หรี่แสง = [1 30]; % ขนาดสำหรับเมนูป้อนข้อมูลของผู้ใช้
กำหนด = {'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 ของคุณ
แยก % ออกจากวง while เพื่อไม่ให้เมนูปรากฏขึ้นหลายครั้ง
อื่น% หากผู้ใช้คลิกยกเลิกแทนที่จะป้อนอุณหภูมิ
msg1 = msgbox('ไม่ได้เลือกอุณหภูมิ, ค่าเริ่มต้นเป็น 85F', 'คำเตือน!'); % ข้อความที่แสดงต่อผู้ใช้หลังจากคลิกยกเลิก
รอ(msg1); % รอให้กล่องข้อความปิดก่อนดำเนินการต่อ
เทมเซล = 85; % ตั้งอุณหภูมิตามที่ระบุไว้ในกล่องข้อความ
thingSpeakWrite (chID, tempsel, 'WriteKey', writeKey, 'Fields', 1); % เขียนอุณหภูมิที่เลือกไปยังช่อง ThingSpeak ของคุณ
แยก % ออกจากวง while เพื่อไม่ให้เมนูปรากฏขึ้นหลายครั้ง
จบ
จบ
ในขณะที่จริง
ชิด = 745517; % ID ช่องของ ThingSpeak
writeKey = 'G9XOQTP8KOVSCT0N'; % คีย์สำหรับการเข้าถึงช่อง ThingSpeak
% เริ่มต้นเซ็นเซอร์เพื่อดึงข้อมูล
tempread = readVoltage (a, 'A3'); % อ่านแรงดันไฟฟ้าของเซ็นเซอร์อุณหภูมิ
lightl1 = readVoltage (a, 'A2'); % ระดับแสงสำหรับโฟโตรีซีสเตอร์ไปที่ LED สีแดง
lightl2 = readVoltage (a, 'A5'); % ระดับแสงสำหรับโฟโตรีซีสเตอร์ที่ไปยังระบบรักษาความปลอดภัย
switchv = readVoltage (a, 'A0'); % ค่าของสวิตช์
% แปลงข้อมูลอุณหภูมิจากแรงดันไฟฟ้าเป็นองศาฟาเรนไฮต์
tempC = (ชั่วคราว - 0.5) * 100; % แปลงแรงดันไฟฟ้าเป็นอุณหภูมิในเซลเซียส
tempF = (tempC * 9/5) + 32; % แปลงอุณหภูมิในเซลเซียสเป็นอุณหภูมิในฟาเรนไฮต์
% เริ่มต้นหมายเลขพินสำหรับ LED หลากสี
redp = 'D9'; % พินไฟแดงจาก LED
กรีนพี = 'D10'; % พินไฟเขียวจาก LED
bluep = 'D11'; % พินสำหรับแสงสีน้ำเงินจาก LED
if tempsel < tempF % หากอุณหภูมิที่เลือกมากกว่าอุณหภูมิห้อง
writePosition(s, 1); % เซอร์โวจะเริ่มเคลื่อนที่
หยุดชั่วคราว(10) % เซอร์โวจะหมุนต่อไปเป็นเวลา 10 วินาทีเพื่อแสดงว่า AC จะปิดหลังจากเวลาที่กำหนด
writePosition(s, 0); % ปิดพัดลมเพื่อรหัสต่อโดยไม่เปิดพัดลม
เทมเซล = 150; % เปลี่ยนค่าอุณหภูมิเพื่อแยกออกจากลูปหลังจากปิดพัดลมอีกครั้งเพียงเพื่อจุดประสงค์ในการดำเนินการต่อรหัส
จบ
ถ้า lightl1 <= 3% ถ้า photoresistor ตัวแรกตรวจพบระดับแสงน้อย
writeDigitalPin(a, 'A1', 1); % เปิดไฟ LED สีแดงที่แสดงไฟภายนอกอาคาร
อื่น% หากระดับแสงสูงอีกครั้ง
writeDigitalPin(a, 'A1', 0); % ปิดไฟ LED สีแดงเมื่อระดับแสงสูงเพียงพออีกครั้ง
จบ
ถ้า switchv > 3% ถ้าสวิตช์เปิดอยู่
A = มีอยู่ ('m', 'var'); % ตรวจสอบการมีอยู่ของตัวแปร 'm' ซึ่งจะเริ่มต้นสำหรับลูป while และอนุญาตให้ใช้งานไม่ได้เมื่อเลือกรายการเมนู (นี่คือสาเหตุที่ต้องล้าง m ที่จุดเริ่มต้นของโค้ด)
ในขณะที่ A==0 % วนรอบจะดำเนินการจนกว่าจะมีตัวแปร 'm' อยู่
menutext = 'คุณต้องการเข้าสู่โหมดความปลอดภัยใด'; % ข้อความสำหรับเมนูป๊อปอัปความปลอดภัย
ตัวเลือก = {'Home', 'Away'}; % ตัวเลือกสำหรับเมนูป๊อปอัปความปลอดภัย
m = เมนู(เมนู, ตัวเลือก); % เมนูป๊อปอัปสำหรับโหมดระบบความปลอดภัย
break% ตรวจสอบให้แน่ใจว่าวง while เสียดังนั้นเมนูจะไม่ปรากฏขึ้นหลายครั้ง
จบ
ถ้า m == 1% หากเลือกโหมด 'Home' ไว้
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(อีเมล, หัวข้อ, ข้อความ); % ส่งอีเมลพร้อมคุณสมบัติอีเมลที่กำหนดไว้ก่อนหน้านี้ writeDigitalPin(a, greenp, 0); % เปิดปิดแฟลชสีแดง 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);
จบ
จบ
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง