สารบัญ:
- ขั้นตอนที่ 1: เริ่มต้น: วัสดุ
- ขั้นตอนที่ 2: ขั้นตอนที่ 2: เข้าใกล้ปัญหาเพื่อแก้ไข
- ขั้นตอนที่ 3: ขั้นตอนที่ 3: กำหนดค่า GUI และรหัสพื้นฐาน Flow
- ขั้นตอนที่ 4: ขั้นตอนที่ 3: การตั้งค่าระบบควบคุมอุณหภูมิ
- ขั้นตอนที่ 5: ขั้นตอนที่ 4: การตั้งค่าระบบประตู
- ขั้นตอนที่ 6: ขั้นตอนที่ 6: การตั้งค่าระบบไฟน้ำท่วม
- ขั้นตอนที่ 7: บทสรุป
วีดีโอ: ระบบบ้านอัจฉริยะ Arduino: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
ในคำแนะนำนี้ เราจะแสดงวิธีสร้างระบบบ้านอัจฉริยะของคุณเองด้วย App Designer ของ MATLAB พร้อมกระดาน Sparkfun Red คำแนะนำนี้สามารถใช้เพื่อช่วยเพิ่มความเข้าใจพื้นฐานเกี่ยวกับ App Designer ของ MATLAB ตลอดจนการใช้โฟโตรีซีสเตอร์ เซอร์โวมอเตอร์ และเซ็นเซอร์ตรวจจับความเคลื่อนไหว PIR
ขั้นตอนที่ 1: เริ่มต้น: วัสดุ
โครงการนี้ต้องการวัสดุดังต่อไปนี้:
- Arduino Uno (สำหรับโครงการนี้เราใช้กระดาน Sparkfun Red)
- โฟโตรีซีสเตอร์หนึ่งตัว
- มอเตอร์เซอร์โวขนาดเล็กหนึ่งตัว
- เซอร์โวมอเตอร์ต่อเนื่องหนึ่งตัว
- เซ็นเซอร์ตรวจจับความเคลื่อนไหว PIR หนึ่งตัว
- เซ็นเซอร์อุณหภูมิหนึ่งตัว
- ไฟ LED 2 ดวง
- สายไฟและตัวต้านทานตามต้องการ
ขั้นตอนที่ 2: ขั้นตอนที่ 2: เข้าใกล้ปัญหาเพื่อแก้ไข
เป้าหมายหลักของโครงการนี้คือการสร้างระบบบ้านอัจฉริยะที่ใช้งานง่ายโดยการเข้ารหัสบอร์ด Arduino Uno ด้วย MATLAB ตอนแรกเราคิดแค่ว่าจะทำงานกับเซ็นเซอร์อุณหภูมิและความชื้น แต่ถ้าเราใช้เซ็นเซอร์สองตัวนี้ ระบบบ้านอัจฉริยะของเราจะขายได้ไม่ง่ายสำหรับผู้ชมทั่วไป เราตัดสินใจว่าเราต้องการสร้างระบบพลังงานในบ้านอัจฉริยะโดยรวมที่จะทำงานเป็นเทอร์โมสแตทและระบบรักษาความปลอดภัยอัจฉริยะ สุดท้าย เราต้องการทำงานร่วมกับ AppDesigner ของ MATLAB เพื่อให้ผู้ใช้สามารถปรับเปลี่ยนบ้านอัจฉริยะได้อย่างง่ายดายตามต้องการ
ขั้นตอนที่ 3: ขั้นตอนที่ 3: กำหนดค่า GUI และรหัสพื้นฐาน Flow
ในการเริ่มต้น คุณจะต้องเปิด MATLAB AppDesigner และวางสิ่งต่อไปนี้:
ช่องแก้ไขตัวเลขสองช่องสำหรับการป้อนข้อมูลขีดจำกัดแบบร้อนและแบบเย็น
ปุ่มปลดล็อคประตู
และไฟสัญญาณสี่ดวงสำหรับเตาผิง ประตู พัดลม และไฟน้ำท่วม
สองป้ายเพื่อสื่อสารกับผู้ใช้
สำหรับโครงการนี้ เราพบว่าการทำงานกับตัวแปรส่วนกลางและฟังก์ชันเริ่มต้นภายในตัวออกแบบทำได้ง่ายขึ้น คุณจะต้องใช้ตัวแปรเหล่านี้ภายในฟังก์ชันเริ่มต้น:
ทั่วโลก
a = arduino ('COM3', 'uno', 'Libraries', 'Servo'); global s global p global hotUI global coldUI global ปลดล็อค global temp global curr_temp global int_light
ตอนนี้เรามีเพียงการมอบหมายสำหรับตัวแปรเพื่อให้คอมพิวเตอร์ของคุณสามารถอ่าน Arduino ได้ COM3 อาจแตกต่างกันไปขึ้นอยู่กับพอร์ตที่คอมพิวเตอร์ของคุณอาจใช้
เมื่อคุณรันโค้ด โค้ดจะเริ่มต้นภายในฟังก์ชันการเริ่มต้นสร้างตัวแปรส่วนกลางและปรับเทียบระบบ ที่ส่วนท้ายของฟังก์ชันนี้ จะมีฟังก์ชันตัวจับเวลาที่เรียกใช้คุณสมบัติที่เราตั้งชื่อว่าตัวจับเวลา ภายในคุณสมบัติ Timer นี้ เราใส่รหัสที่รันระบบโฮม ดังนั้นตัวจับเวลาจะไม่เรียกใช้รหัสการปรับเทียบซ้ำ
หมายเหตุ: เราไม่ได้ให้คำแนะนำในการเดินสายใดๆ สำหรับระบบ เราอ้างอิงถึงคู่มือที่มาพร้อมกับกระดาน SparkFun Red
ขั้นตอนที่ 4: ขั้นตอนที่ 3: การตั้งค่าระบบควบคุมอุณหภูมิ
ฟังก์ชันสำหรับเทอร์โมสตัททำงานดังต่อไปนี้:
ผู้ใช้จะป้อนอุณหภูมิที่คิดว่าร้อนหรือเย็นเกินไป เมื่อเทอร์โมมิเตอร์อ่านค่าได้ หากบ้านเย็นเกินไป "เตาผิง" (ไฟ LED สีแดง) จะเปิดขึ้นและทำให้บ้านร้อน หากบ้านร้อนเกินไป "พัดลม" (เซอร์โวมอเตอร์แบบต่อเนื่อง) จะเปิดการระบายความร้อนให้กับบ้าน
ในการโค้ดระบบเทอร์โมสตัท:
เราจะเริ่มภายในฟังก์ชันการเริ่มต้นเพื่อแสดงอุณหภูมิปัจจุบันและให้ผู้ใช้ป้อนเกณฑ์ที่เย็นและร้อน
p = 'A0' %Photoresistor พิน
โวลต์ = อ่านแรงดันไฟฟ้า (a, อุณหภูมิ); celc = (โวลต์-0.5).*100; curr_temp = celc*9/5+32; app. Label_4. Text = num2str(curr_temp); %หมายเลขฉลากสามารถเปลี่ยนการหยุดชั่วคราว(10); %อาจต้องการเปลี่ยน!!!!!
จากนั้นเราจะทำระบบเทอร์โมสตัทให้สมบูรณ์ภายในคุณสมบัติตัวจับเวลา
โลกcurr_temp
global coldUI global เป็น global hotUI ถ้าแอป curr_temp hotUI. FanStateLamp. Color = [0.47 0.67 0.19]; % เปลี่ยนไฟ GUI เป็นสีเขียว writePWMDutyCycle(a, 'D11',.9) %โค้ดสามบรรทัดถัดไปเรียกใช้พัดลมเซอร์โวหยุดชั่วคราว (10) writePWMDutyCycle(a, 'D11',.0) อื่น app. FireplaceStateLamp. Color = [0.90 0.90 0.90]; นี้จะปิดทั้งหมดโคมไฟ GUI และ app. FanStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin(a, 'D13', 0); จบ
ขั้นตอนที่ 5: ขั้นตอนที่ 4: การตั้งค่าระบบประตู
ฟังก์ชั่นสำหรับประตูทำงานดังต่อไปนี้:
เมื่อคุณรันโค้ด MATLAB เป็นครั้งแรก แอปจะขอให้คุณเปิดประตูเพื่อให้โฟโตรีซีสเตอร์สามารถอ่านค่าแสงเริ่มต้นได้ เมื่อเสร็จแล้ว ตัวจับเวลาจะเปิดใช้งานและโฟโตรีซีสเตอร์จะอ่านค่าแสงรอง หากการอ่านค่าแสงรองนั้นเบากว่าค่าเริ่มต้น เซอร์โวมอเตอร์จะล็อคประตู หากผู้ใช้ต้องการปลดล็อคประตู ก็สามารถกดปุ่มบนแอพที่จะปลดล็อคประตูได้
ในการกำหนดค่าเซอร์โวมอเตอร์และโฟโตรีซีสเตอร์:
รหัสระบบประตู:
เราจะเริ่มภายในฟังก์ชันเริ่มต้นเพื่ออ่านค่าแสงเริ่มต้น
s = เซอร์โว (a, 'D9') % พินอาจเปลี่ยนแปลงตามการเดินสาย
app. Label_4. Text='โปรดเปิดประตูเพื่อปรับเทียบระบบ'; หยุดชั่วคราว(15); นี้ให้เวลาสำหรับผู้ใช้ในการเปิดประตู int_light = readVoltage(a, p); app. Label_4. Text = 'คุณสามารถเอานิ้วออกได้';
ต่อไปเราจะกรอกรหัสภายในคุณสมบัติตัวจับเวลา
ปลดล็อคทั่วโลก
global int_light global s global a % รับการอ่านแสงปัจจุบันเพื่อเปรียบเทียบ curr_light = readVoltage(a, p); % -- ล็อคประตู -- ถ้า int_light<curr_light writePosition(s, 1) % ตำแหน่งเซอร์โวอาจแตกต่างกันในแต่ละมอเตอร์หยุด (0.5); app. DoorStateLamp. Color = [0.47 0.67 0.19]; สิ้นสุด % - ปลดล็อกประตู - หากปลดล็อก == 1234 หยุดชั่วคราว (0.5); แอป writePosition(s,.52) DoorStateLamp. Color = [0.85 0.33 0.10]; จบ
ในที่สุดเราจะสร้างการโทรกลับปุ่มปลดล็อค เมื่อผู้ใช้กดปุ่มปลดล็อค การปลดล็อคตัวแปรส่วนกลางจะได้รับหมายเลขซึ่งสามารถกรอกคำสั่ง if ในคุณสมบัติตัวจับเวลาได้
ปลดล็อคทั่วโลก
ปลดล็อค = 1234;
ขั้นตอนที่ 6: ขั้นตอนที่ 6: การตั้งค่าระบบไฟน้ำท่วม
ฟังก์ชันสำหรับไฟฟลัดไลท์ทำงานดังต่อไปนี้:
เมื่อคุณเริ่มรหัส MATLAB เซ็นเซอร์ตรวจจับความเคลื่อนไหว PIR จะเริ่มตรวจจับการเคลื่อนไหว เมื่อตรวจพบการเคลื่อนไหวบางประเภทแล้ว มันจะตัดสัญญาณไฟ เมื่อตัดสัญญาณแล้ว ไฟน้ำท่วมก็จะเปิดออกนอกบ้าน
ในการกำหนดค่าระบบไฟน้ำท่วม:
รหัสระบบไฟน้ำท่วม:
คราวนี้เราสามารถข้ามไปที่คุณสมบัติ Timer ได้เพราะเราไม่ต้องเขียนตัวแปรเพิ่มเติมใดๆ
human_detected = readDigitalPin (a, 'D2'); % พินอาจเปลี่ยนแปลงตามการกำหนดค่าหาก human_detected == 0 writeDigitalPin(a, 'D7', 1) %Pin อาจเปลี่ยน app. FloodLightStateLamp. Color = [0.47 0.67 0.19]; elseif human_detected == 1 app. FloodLightStateLamp. Color = [0.9 0.9 0.9]; writeDigitalPin(a, 'D7', 0) สิ้นสุด
ขั้นตอนที่ 7: บทสรุป
ตอนนี้คุณมี GUI แบบร่างกับ App Designer และโค้ดของคุณสำหรับ Arduino แล้ว คุณก็พร้อมที่จะทำการแก้ไขของคุณเองหรือเสียบ Arduino แล้วไปได้เลย!
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
ระบบบ้านอัจฉริยะ: 6 ขั้นตอน
ระบบสมาร์ทโฮม: คำแนะนำนี้จะช่วยอธิบายวิธีตั้งค่าและใช้ระบบสมาร์ทโฮมของเราโดยใช้ซอฟต์แวร์ Matlab และฮาร์ดแวร์ Raspberry Pi ในตอนท้ายของคำแนะนำนี้ คุณควรจะสามารถใช้ผลิตภัณฑ์ของเราอย่างเต็มที่ได้อย่างง่ายดาย
Arduino ที่ถูกที่สุด -- Arduino ที่เล็กที่สุด -- Arduino Pro Mini -- การเขียนโปรแกรม -- Arduino Neno: 6 ขั้นตอน (พร้อมรูปภาพ)
Arduino ที่ถูกที่สุด || Arduino ที่เล็กที่สุด || Arduino Pro Mini || การเขียนโปรแกรม || Arduino Neno:…………………………… โปรดสมัครสมาชิกช่อง YouTube ของฉันสำหรับวิดีโอเพิ่มเติม……. โปรเจ็กต์นี้เกี่ยวกับวิธีเชื่อมต่อ Arduino ที่เล็กที่สุดและถูกที่สุดเท่าที่เคยมีมา Arduino ที่เล็กที่สุดและถูกที่สุดคือ arduino pro mini คล้ายกับ Arduino