สารบัญ:

เครื่องตรวจจับอุณหภูมิทางรถไฟในทะเลทรายและเคาน์เตอร์ผู้โดยสาร: 5 ขั้นตอน
เครื่องตรวจจับอุณหภูมิทางรถไฟในทะเลทรายและเคาน์เตอร์ผู้โดยสาร: 5 ขั้นตอน

วีดีโอ: เครื่องตรวจจับอุณหภูมิทางรถไฟในทะเลทรายและเคาน์เตอร์ผู้โดยสาร: 5 ขั้นตอน

วีดีโอ: เครื่องตรวจจับอุณหภูมิทางรถไฟในทะเลทรายและเคาน์เตอร์ผู้โดยสาร: 5 ขั้นตอน
วีดีโอ: ขั้นตอนขึ้นเครื่องบิน สำหรับมือใหม่ | Turkey Tips 2 2024, กรกฎาคม
Anonim
เครื่องตรวจจับอุณหภูมิทางรถไฟในทะเลทราย & เคาน์เตอร์ผู้โดยสาร
เครื่องตรวจจับอุณหภูมิทางรถไฟในทะเลทราย & เคาน์เตอร์ผู้โดยสาร

วัตถุประสงค์:

อุณหภูมิ: คำแนะนำนี้จะสอนวิธีตั้งค่าและตั้งโปรแกรม Arduino RedBoard (โดยใช้ MATLAB) เพื่อตรวจจับอุณหภูมิของทางรถไฟ เมื่อถึงอุณหภูมิที่ไม่ปลอดภัยสำหรับผู้โดยสาร ข้อความเตือนจะดังขึ้น เสียงกริ่งดังขึ้น และสัญญาณเตือนจะสว่างขึ้น

เคาน์เตอร์ผู้โดยสาร: ส่วนนี้จะสอนวิธีใช้ปุ่มเพื่อนับจำนวนผู้โดยสารและส่งเสียงเตือนเมื่อถึงความจุสูงสุด

คุณสมบัติ:

  • ใช้ปุ่มนับจำนวนผู้โดยสารที่ขึ้นรถไฟ
  • ใช้ TMP36 (เซ็นเซอร์อุณหภูมิ) เพื่อตรวจจับอุณหภูมิของรางรถไฟ
  • ใช้ไฟ LED สีแดงเตือนสถานีรถไฟ
  • ใช้ออดส่งเสียงปลุก
  • ส่งอีเมลแจ้งเตือนพร้อมพล็อตอุณหภูมิเทียบกับเวลา
  • ข้อความเตือนป๊อปอัปบน MATLAB

ขั้นตอนที่ 1: วัสดุและวัสดุสิ้นเปลือง

วัสดุและวัสดุสิ้นเปลือง
วัสดุและวัสดุสิ้นเปลือง
  • 1 แล็ปท็อป
  • MATLAB 2017
  • ดาวน์โหลดกล่องเครื่องมือ Arduino
  • Sparkfun RedBoard
  • สายไฟ 1 เส้น
  • เขียงหั่นขนม
  • 14 สาย
  • 1 Piezo Buzzer
  • 1 ปุ่มกด
  • ตัวต้านทาน 2 10k ohm
  • 1 TMP36 เซ็นเซอร์
  • ไฟ LED สีแดง
  • ป้ายพิมพ์ 3 มิติ (ไม่จำเป็น)

ขั้นตอนที่ 2: การตั้งค่าบอร์ด

การตั้งค่าบอร์ด
การตั้งค่าบอร์ด

ทำตามการตั้งค่าด้านบน

ขั้นตอนที่ 3: การเขียนโค้ด

ในขณะที่วนรอบ: เพื่อให้แน่ใจว่าโค้ดยังคงทดสอบอุณหภูมิและสัมผัสสถานะของปุ่ม (กดหรือไม่ได้กด) เราวางโค้ดในลูป while สำหรับช่วงเวลาที่ระบุ

การใช้ TMP36: เรากำหนดอุณหภูมิโดยการอ่านแรงดันไฟฟ้าและแปลงเป็นองศาฟาเรนไฮต์ โดยใช้ปัจจัยการแปลง จากนั้นเราใช้คำสั่ง if เพื่อเล่นเสียงและเสียง/ส่งการแจ้งเตือนหากอุณหภูมิมากกว่าหรือเท่ากับอุณหภูมิสูงสุดที่ตั้งไว้

การใช้ปุ่ม: ด้วยคำสั่ง if เราสามารถทดสอบว่ามีการกดปุ่มโดยใช้ readDigitalPin หรือไม่ คำสั่งนี้จะส่งคืนบูลีน (1 หรือ 0) หากการตอบกลับเป็น 0 แสดงว่ามีการกดปุ่มและตัวนับผู้โดยสารจะเพิ่มขึ้นและแสดงข้อความต้อนรับ จากนั้นเมื่อถึงความจุสูงสุด จะมีข้อความเตือนดังขึ้น

ขั้นตอนที่ 4: คัดลอกรหัส

%อินพุต: กดปุ่ม, เซ็นเซอร์อุณหภูมิ

%เอาต์พุต: ไฟ, ออด, เสียงเตือน, อีเมล, กราฟ

วัตถุประสงค์: ผลิตภัณฑ์นี้ได้รับการออกแบบมาเพื่อช่วยให้มั่นใจในความปลอดภัยและความสะดวกสบายของผู้โดยสารที่เดินทางโดยรถไฟผ่านทะเลทราย

%การใช้งาน: ตรวจจับจำนวนผู้โดยสารโดยใช้ปุ่มกด และ %ตรวจจับความร้อนโดยใช้เซ็นเซอร์อุณหภูมิ และทำกราฟและส่งทั้ง %หมายเลขผู้โดยสารและกราฟอุณหภูมิไปยังสถานีรถไฟ

กำหนดค่าพิน (a, 'D2', 'pullup'); % ในรุ่นต่อๆ ไป ใช้ configurationPin

เวลา = 200;

อี=0;

x=0

ในขณะที่เวลา > 0

button_status = readDigitalPin (a, 'D2'); % เท่ากับศูนย์เมื่อกดปุ่ม ไม่เช่นนั้นจะเท่ากับ 1

แรงดันไฟฟ้า = readVoltage(a, 'A0');%pin ขึ้นอยู่กับตำแหน่งที่เราวางไว้

tempCelcius = (แรงดัน*100)-50; % ระบุไว้ในคู่มือเซ็นเซอร์

tempF(time) = (tempCelcius*1.8)+32 % สูตรการแปลงที่ทราบ

สูงสุด = 120; % องศา F

writeDigitalPin(a, 'D11', 1);

rem=mod(e, 2);

ถ้า tempF(time)>=max

writeDigitalPin(a, 'D11', 0);

writeDigitalPin(a, 'D9', 1);

playTone (a, 'D9', 2400,.5)

หยุดชั่วคราว(.5)

writeDigitalPin(a, 'D6', 1)

playTone (a, 'D6', 1000,.5)

หยุดชั่วคราว(.5)

writeDigitalPin(a, 'D9', 1);

playTone (a, 'D9', 2400,.5)

หยุดชั่วคราว(.5)

writeDigitalPin(a, 'D6', 1)

playTone(a, 'D6', 1000,.5) % เล่น "ไซเรน"

z='ร้อนมากเกินไป.m4a'; %สิ่งนี้ทำให้ไฟล์เสียงเป็นตัวแปร

[ข้อมูล, ความถี่]=การอ่านเสียง(z); %โหลดข้อมูลจากไฟล์เสียง

o=audioplayer(ข้อมูล, ความถี่); %สร้างวัตถุเพื่อควบคุมการเล่นไฟล์เสียง

o.play() % เล่นไฟล์เสียง

o.playblocking() %Plays file และรอให้มันเสร็จสิ้น

จบ

ถ้า button_status == 0 && rem==0

e=e+1

msgbox('ยินดีต้อนรับสู่!');

elseif button_status == 0 && rem==1

e=e+1

msgbox('Bienvenido a bordo!');

จบ

ถ้า e==5

writeDigitalPin(a, 'D11', 0);

ถ้า x==0

playTone(a, 'D6', 600, 1);

s='Warning_EF.m4a'; %สิ่งนี้ทำให้ไฟล์เสียงเป็นตัวแปร

[ข้อมูล, ความถี่]=การอ่านเสียง; %โหลดข้อมูลจากไฟล์เสียง

o=audioplayer(ข้อมูล, ความถี่); %สร้างวัตถุเพื่อควบคุมการเล่นไฟล์เสียง

% o.play() % เล่นไฟล์เสียง

o.playblocking() %Plays file และรอให้มันเสร็จสิ้น

msgbox('ความจุสูงสุด')

x=x+1

จบ

elseif e>=6

playTone (a, 'D6', 2400, 0);

จบ

เวลา = เวลา - 1;

% หยุดชั่วคราว (0.1);

% ถ้า e==5 && max(tempF)>=120

% เวลา=0

% จบ

จบ

ee=num2str(จ)

t=[1:200];

tempF2=fliplr(tempF);

พล็อต(t, tempF2);

title('เวลาเทียบกับอุณหภูมิ')

ylabel('อุณหภูมิ(F)')

xlabel('เวลา')

saveas(gcf, 'tempplot.jpg')

mail= '[email protected]'

รหัสผ่าน='Srsora123#'

host='smtp.gmail.com'

setpref('อินเทอร์เน็ต', 'SMTP_Server', โฮสต์);

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');

sendmail(mail, 'สวัสดีสถานีรถไฟ! มีผู้โดยสารจำนวนมากในรถไฟ', ee, 'tempplot.jpg')

ขั้นตอนที่ 5: ผลลัพธ์

แนะนำ: