สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
Adrien Green, Huy Tran, Jody Walker
การใช้คอมพิวเตอร์ Raspberry Pi และ Matlab เป็นวิธีที่ง่ายและมีประสิทธิภาพในการช่วยให้เจ้าของบ้านลดการใช้พลังงานลง ส่วนที่ดีที่สุดเกี่ยวกับ Energy Saver 3000 คือการตั้งค่าและใช้งานง่ายมาก จุดประสงค์หลักของ Energy Saver 3000 คือเพื่อให้เจ้าของบ้านสามารถติดตามค่าพลังงานของพวกเขาเพื่อดูว่าพวกเขาใช้จ่ายไปเท่าใด และเพื่อให้เจ้าของบ้านสามารถปิดไฟในบ้านจากระยะไกลได้ด้วยการกดปุ่มเพียงปุ่มเดียว
ขั้นตอนที่ 1: อะไหล่ที่ใช้
1: คอมพิวเตอร์ Raspberry Pi
2: เขียงหั่นขนม
3: สายจัมเปอร์
4: ปุ่มกด
5: ไฟ LED ขนาดเล็ก
6: 330 โอห์ม 10 Kohm และตัวต้านทาน 300 โอห์ม
7: สายเคเบิลอีเธอร์เน็ต
8: ตาแมวแสง
ขั้นตอนที่ 2: คำชี้แจงปัญหา
โครงการของเราคือการออกแบบเครื่องประหยัดพลังงานที่บ้านโดยใช้คอมพิวเตอร์ Raspberry Pi และ MATLAB เป้าหมายของเราคือการสร้างระบบที่อนุญาตให้ผู้ใช้ติดตามค่าพลังงานเพื่อดูว่าสามารถลดการใช้พลังงานได้หรือไม่ นอกจากนี้เรายังต้องการให้ผู้ใช้สามารถปิดไฟในขณะที่ไม่อยู่ได้ด้วยการกดปุ่ม ในการทำเช่นนี้ เราได้ต่อโฟโตเซลล์เพื่อตรวจจับเมื่อเปิดไฟ หากไฟสว่าง โปรแกรม MATLAB จะคำนวณว่าเปิดไฟมานานแค่ไหน และใช้พลังงานและเงินไปเท่าใดตั้งแต่เปิดเครื่อง
ขั้นตอนที่ 3: ตั้งค่า
ต่อสายเขียงหั่นขนมตามที่แสดงในภาพด้านบน
ขั้นตอนที่ 4: รหัส MATLAB สำหรับควบคุมโฟโตเซลล์
ฟังก์ชั่น control_light()rpi = raspi();
เขียนDigitalPin(rpi, 12, 1)
เวลา = 0
ผลรวม = 0
เวลา = 0
ราคา = 0
หลอดไฟ = 100/1000;% กิโลวัตต์
สำหรับผม = 1:2
tic
ในขณะที่จริง
x = readDigitalPin(rpi, 13)
ถ้า x == 1
เขียนDigitalPin(rpi, 19, 1)
elseif x == 0
เขียนDigitalPin(rpi, 19, 0)
ทอค;
เวลา = เวลา + toc
kWh = toc * bulb
ดอลลาร์ = 0.101
ราคา = kWh * ดอลลาร์
ต้นทุนรวม = ต้นทุนรวม + ต้นทุน
X = linspace(เวลา, เวลา, 10)
Y = linspace(ต้นทุน ผลรวม 10)
เวลา = เวลา
ต้นทุน = ผลรวม
disp(['เปิดไฟสำหรับ ', num2str(toc), ' ชั่วโมง ค่าใช้จ่าย = $', num2str(cost)])
พล็อต (X, Y, 'b') ชื่อ ('ค่าใช้จ่ายเมื่อเวลาผ่านไป')
xlabel('เวลา (ชั่วโมง)')
ylabel('ต้นทุน ($Dollars)')
เดี๋ยว
หยุดพัก
จบ
จบ
หยุดชั่วคราว(5)
tic
ในขณะที่จริง
x = readDigitalPin(rpi, 13)
ถ้า x == 1
เขียนDigitalPin(rpi, 19, 1)
elseif x == 0
เขียนDigitalPin(rpi, 19, 0)
ทอค;
เวลา = เวลา + toc
kWh = toc * bulb
ดอลลาร์ = 0.101
ราคา = kWh * ดอลลาร์
sumcost = ต้นทุน + ต้นทุน
X = linspace(เวลา, เวลา, 10)
Y = linspace(ต้นทุน ผลรวม 10)
เวลา = เวลา
ต้นทุน = ผลรวม
disp(['เปิดไฟสำหรับ ', num2str(toc), ' ชั่วโมง ค่าใช้จ่าย = $', num2str(cost)])
พล็อต (X, Y, 'g')
title('ต้นทุนเมื่อเวลาผ่านไป')
xlabel('เวลา (ชั่วโมง)')
ylabel('ต้นทุน ($Dollars)')
เดี๋ยว
หยุดพัก
จบ
จบ
หยุดชั่วคราว(5)
จบ
ขั้นตอนที่ 5: รหัส MATLAB สำหรับปิดไฟ
ฟังก์ชั่น button_controlv1()
rpi = raspi();
คอนดิ = 1;
ในขณะที่ % จริงจะสร้างลูปไม่สิ้นสุดเพื่อให้โค้ดทำงานต่อไป
ปุ่ม = readDigitalPin(rpi, 6); % อ่านค่าการกดปุ่มบนพิน 6
ถ้าปุ่ม == 0
condi = condi + 1
จบ
ถ้า mod(condi, 2) == 0
เขียนDigitalPin(rpi, 17, 0)
h = msgbox('คุณปิดไฟ:)') waitfor(h);
หยุดพัก
จบ
ถ้า mod(condi, 2) == 1
เขียนDigitalPin(rpi, 17, 1)
จบ
จบ
ขั้นตอนที่ 6: รหัส MATLAB สำหรับเปิดไฟ
ฟังก์ชั่น button_controlv2()
rpi = raspi();
คอนดิ = 2;
ในขณะที่ % จริงจะสร้างลูปไม่สิ้นสุดเพื่อให้โค้ดทำงานต่อไป
ปุ่ม = readDigitalPin(rpi, 6); % อ่านค่าการกดปุ่มบนพิน 6
ถ้าปุ่ม == 0
condi = condi + 1
จบ
ถ้า mod(condi, 2) == 0
เขียนDigitalPin(rpi, 17, 0)
จบ
ถ้า mod(condi, 2) == 1
เขียนDigitalPin(rpi, 17, 1)
h = msgbox('คุณเปิดไฟแล้ว:(')
รอ (h);
หยุดชั่วคราว(10)
หยุดพัก
จบ
จบ
ขั้นตอนที่ 7: รหัส MATLAB สำหรับ GUI
ฟังก์ชัน EnergySaver3000()
imgurl='https://clipart-library.com/images/pc585dj9i.jpg';
imgfile='Lightbulb.jpg'; urlwrite (imgurl, imgfile);
imgdata= imread (imgfile);
h=msgbox('ยินดีต้อนรับสู่ Energy Saver 3000!', '', 'กำหนดเอง', imgdata);
รอ (h);
ล้าง h;
ในขณะที่จริง
iprogram=menu('คุณต้องการเรียกใช้โปรแกรมใด', 'เครื่องคิดเลขบิล', 'การควบคุมแสง');
ถ้า iprogram==1
control_light() h=msgbox('เสร็จสิ้น!!!')
ปิดทั้งหมด
Elseif
iprogram==2
จบ
ล้าง h;
ichoice=menu('การควบคุมแสง', 'เปิด', 'ปิด', 'ไม่เป็นไร');
ถ้า ichoice == 1
button_controlv2()
h=msgbox('เสร็จแล้ว!!!')
elseif ichoice ==2
button_controlv1()
h=msgbox('เสร็จแล้ว!!!')
elseif ichoice==3
h=msgbox('คุณไม่ได้ทำอะไรเลย:(') waitfor(h);
h=msgbox('เสร็จแล้ว!!!')
จบ
รอ (h);
จบ
จบ