สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
คำแนะนำนี้จะช่วยอธิบายวิธีตั้งค่าและใช้ระบบสมาร์ทโฮมของเราโดยใช้ซอฟต์แวร์ Matlab และฮาร์ดแวร์ Raspberry Pi ในตอนท้ายของคำแนะนำนี้ คุณควรจะสามารถใช้ผลิตภัณฑ์ของเราอย่างเต็มที่ได้อย่างง่ายดาย!
ขั้นตอนที่ 1: ขั้นตอนที่ 1: ชิ้นส่วนและวัสดุที่จำเป็น
- ราสเบอร์รี่ปี่
- เขียงหั่นขนม (x2)
- เซ็นเซอร์ตรวจจับความเคลื่อนไหว PIR
- โมดูล LCD
- ไฟ LED
- ตัวเก็บประจุ
- กล้อง Raspberry Pi
- ไมโครเซอร์โวมอเตอร์
- สายไฟคู่ (20)
ขั้นตอนที่ 2: ขั้นตอนที่ 2: คำชี้แจงปัญหา
ปัญหาที่ผลิตภัณฑ์ของเราพยายามแก้ไข ได้แก่ การควบคุมแสงด้วยตนเอง การควบคุมอุณหภูมิภายในอาคาร และประสิทธิภาพการใช้พลังงาน เรามุ่งเน้นที่ปริมาณพลังงานที่คนในบ้านใช้โดยเฉลี่ย และเราต้องการหาวิธีลดการใช้พลังงาน ไฟถูกเปิดทิ้งไว้และอุณหภูมิเทอร์โมสตัทที่ไม่จำเป็นทำให้มีการใช้พลังงานที่ไม่จำเป็นสูงมาก แสงจะเคลื่อนไหวไปยังตำแหน่งที่ปิดเมื่อห้องว่าง และตัวควบคุมอุณหภูมิจะปรับอุณหภูมิให้เป็นมิตรกับสิ่งแวดล้อมโดยพิจารณาจากการอ่านอุณหภูมิภายนอกอาคาร
ขั้นตอนที่ 3: ขั้นตอนที่ 3: การกำหนดค่า Motion Sensor
เซ็นเซอร์ตรวจจับความเคลื่อนไหวเชื่อมต่อกับพินไฟ 3.3V, พินกราวด์ และพินดิจิทัลที่คุณเลือก พวกเขาเชื่อมต่อกับพอร์ต VCC, GND และ OUT บนเซ็นเซอร์ตรวจจับความเคลื่อนไหวตามลำดับ เซ็นเซอร์ตรวจจับความเคลื่อนไหวจะตรวจจับเมื่อมีคนอยู่ใกล้และเปิดใช้งาน LED เพื่อระบุว่าไฟเปิดอยู่ เมื่อตรวจไม่พบการเคลื่อนไหวอีกต่อไป ไฟ LED จะดับเอง รหัสมีดังนี้:
ในขณะที่จริง
motionDetected = readDigitalPin(rpi, 3);
ถ้าตรวจจับการเคลื่อนไหว == 1
เขียนDigitalPin(rpi, 16, 1)
อื่น
เขียนDigitalPin(rpi, 16, 0)
จบ
จบ
ขั้นตอนที่ 4: ขั้นตอนที่ 4: จอแสดงผลโมดูล LCD
จอ LCD นำข้อมูลอุณหภูมิจากข้อมูลสภาพอากาศสดที่ได้รับจากอินเทอร์เน็ต โมดูล LCD จะแสดงการอ่านอุณหภูมิปัจจุบัน ใน Matlab อุณหภูมิจะอ่านแล้วผ่านวงจร if เพื่อกำหนดว่าต้องปรับการตั้งค่าอุณหภูมิในบ้านมากน้อยเพียงใด รหัสมีดังนี้:
url='https://forecast.weather.gov/MapClick.php?lat=35.9606&lon=-83.9207&FcstType=json';
ข้อมูล = เว็บอ่าน (url);
a = data.currentobservation. Temp;
fprintf('อุณหภูมิภายนอกคือ %s\n', a)
x = str2num(a);
ถ้า x > 80
fprintf('ลดอุณหภูมิลง 15 องศา')
writeDigitalPin(rpi, 26, 1) % เปิดไฟ
elseif x > 75 && x < 80
fprintf('ปิดตัวควบคุมอุณหภูมิ \n')
writeDigitalPin(rpi, 26, 1) % เปิดไฟ
elseif x 55
fprintf('เปิดเครื่องควบคุมอุณหภูมิขึ้น 10 องศา \n')
writeDigitalPin(rpi, 26, 0) %ปิดไฟ
elseif x 45
fprintf('เปิดเครื่องควบคุมอุณหภูมิขึ้น 20 องศา \n')
writeDigitalPin(rpi, 26, 0) %ปิดไฟ
elseif x 40
fprintf('เปิดเครื่องควบคุมอุณหภูมิขึ้น 25 องศา \n')
writeDigitalPin(rpi, 26, 0) %ปิดไฟ
elseif x 30
fprintf('เปิดเครื่องควบคุมอุณหภูมิขึ้น 35 องศา \n')
อื่น
fprintf('ปรับอุณหภูมิสูงสุด 65 องศา \n')
จบ
ขั้นตอนที่ 5: ขั้นตอนที่ 5: โมดูลเซอร์โวมอเตอร์
Motor Servo Module คือการแสดงความสามารถในการเปิดและปิดมู่ลี่ เมื่อบ้านต้องการความเย็น มู่ลี่จะปิดเพื่อให้ความร้อนเข้ามาน้อยลง เมื่อบ้านต้องการความอบอุ่น มู่ลี่จะเปิดขึ้นเพื่อให้อบอุ่นเร็วขึ้น เซอร์โวตัดสินใจว่าจะทำอย่างไรโดยรับอินพุตจากผู้ใช้โต้ตอบกับเมนูตัวเลือก รหัสสำหรับมอเตอร์มีดังนี้:
s = เซอร์โว (rpi, 3)
เขียนDigitalPin(rpi, 4, 1)
ตำแหน่งการเขียน 45
temp_sys = menu('คุณรู้สึกอย่างไร') % ตัวปรับอุณหภูมิ
ถ้า temp_sys == 1 %hot
writeDigitalPin(rpi, 26, 1) % เปิดไฟ
writePosition(s, 0) %เปลี่ยนมอเตอร์ CW/CCW
ปิดม่านปิดไฟ
elseif temp_sys == 2 % เย็น
writeDigitalPin(rpi, 26, 0) %ปิดไฟ
writePosition(s, 180) %เปลี่ยนมอเตอร์ CCW/CW
เปิดม่านเปิดไฟ
elseif temp_sys == 3 % ถูกต้อง
fprintf('การรักษาสถานะอุณหภูมิ\n')
จบ
ขั้นตอนที่ 6: ขั้นตอนที่ 6: กล้องตรวจจับความเคลื่อนไหว
กล้องตรวจจับความเคลื่อนไหวจะถ่ายภาพผู้ที่เข้าหรือออกจากห้อง เราเลือกสิ่งนี้เป็นคุณสมบัติความปลอดภัยเพิ่มเติมสำหรับผู้ที่อยากรู้ว่าใครอยู่ในบ้านของพวกเขา เมื่อเซ็นเซอร์ตรวจจับความเคลื่อนไหวตรวจพบการเคลื่อนไหว รหัส Matlab จะบอกให้กล้องถ่ายภาพและแสดงภาพนั้น รหัสมีดังนี้:
ผม=0
กล้องใส
กล้อง = กระดานกล้อง (rpi);
ในขณะที่ i==0
สแนปชอต (ลูกเบี้ยว); %ล้างบัฟเฟอร์ภาพ
img = สแน็ปช็อต (กล้อง);
ภาพ (img);
จบ