สารบัญ:

Arduino LCD ระบบเตือนความปลอดภัยจากอัคคีภัย: 9 ขั้นตอน
Arduino LCD ระบบเตือนความปลอดภัยจากอัคคีภัย: 9 ขั้นตอน

วีดีโอ: Arduino LCD ระบบเตือนความปลอดภัยจากอัคคีภัย: 9 ขั้นตอน

วีดีโอ: Arduino LCD ระบบเตือนความปลอดภัยจากอัคคีภัย: 9 ขั้นตอน
วีดีโอ: How to make smoke detector alarm | Fire detector alarm 2024, พฤศจิกายน
Anonim
Arduino LCD ระบบเตือนความปลอดภัยจากอัคคีภัย
Arduino LCD ระบบเตือนความปลอดภัยจากอัคคีภัย
Arduino LCD ระบบเตือนความปลอดภัยจากอัคคีภัย
Arduino LCD ระบบเตือนความปลอดภัยจากอัคคีภัย
Arduino LCD ระบบเตือนความปลอดภัยจากอัคคีภัย
Arduino LCD ระบบเตือนความปลอดภัยจากอัคคีภัย

โปรเจ็กต์นี้เป็นโครงงานที่นักเรียนสร้างขึ้นซึ่งรวมเอาฟังก์ชันต่างๆ ของหน้าจอ LCD, Buzzer, RGB และเซ็นเซอร์อุณหภูมิ DHT

อุณหภูมิโดยรอบปัจจุบันจะแสดงและปรับปรุงบนหน้าจอ LCD

ข้อความที่พิมพ์บนหน้าจอ LCD จะแจ้งให้ผู้ใช้ทราบถึงระดับ "อันตรายจากไฟไหม้"

หน้าจอจะหรี่ลงและกะพริบเพื่อเตือนผู้ใช้ถึงอันตราย

ออดจะดังขึ้นและเร็วขึ้นเพื่อเตือนผู้ใช้ถึงอันตรายขึ้นอยู่กับระดับของความเสี่ยงในปัจจุบัน

RGB เปลี่ยนสีเขียว เหลือง ส้ม และแดง ขึ้นอยู่กับระดับความเสี่ยงในปัจจุบัน

สามารถใส่ลงในกล่องพิมพ์ 3 มิติเพื่อให้ดูเป็นมืออาชีพมากขึ้น

นี้แก้ปัญหาโลกความจริงของคนไม่รู้ว่าเมื่อไรจะเสี่ยงไฟจนจะสายเกินไป

ขั้นตอนที่ 1: รวบรวมวัสดุ

รวบรวมวัสดุ
รวบรวมวัสดุ
รวบรวมวัสดุ
รวบรวมวัสดุ
รวบรวมวัสดุ
รวบรวมวัสดุ

วัสดุที่ใช้ในโครงการนี้:

1x LCD แสดงผล

1x DHT_11 เซนเซอร์วัดอุณหภูมิ

1x RGB

1x Piezo Passive Buzzer 1.0v

2x เขียงหั่นขนมขนาดเล็ก

3x ตัวต้านทานมาตรฐาน

1x เขียงหั่นขนมขนาดปกติ

1x Arduino UNO

Bluetack เพื่อล็อคสายไฟให้เข้าที่

ลวดเชื่อม แบบปลายเปิดและปลายเดี่ยว มีให้เลือกหลายแบบ

อุปกรณ์สำหรับรันโค้ด

เข้าถึงเครื่องพิมพ์ 3D หากคุณต้องการเปลือกนอกและรูปลักษณ์ที่สวยงามยิ่งขึ้น

ขั้นตอนที่ 2: การตั้งค่าเขียงหั่นขนม

การตั้งค่าเขียงหั่นขนม
การตั้งค่าเขียงหั่นขนม
การตั้งค่าเขียงหั่นขนม
การตั้งค่าเขียงหั่นขนม

1. เชื่อมต่อสายสีส้มจากพินที่ระบุว่า "GND" บนบอร์ด Arduino และเชื่อมต่อกับด้านลบ (สีน้ำเงิน) ของเขียงหั่นขนม จากจุดนี้เป็นต้นไป หากเราจำเป็นต้องใช้ GND สำหรับอุปกรณ์ภายนอกใดๆ เราจะใส่ไว้ในคอลัมน์เดียวกันกับบอร์ดนี้บนเขียงหั่นขนม

2. เชื่อมต่อสายสีแดงจากพินที่ระบุว่า "5V" บนบอร์ด Arduino และเชื่อมต่อกับด้านบวก (สีแดง) ของเขียงหั่นขนม จากจุดนี้เป็นต้นไป หากเราต้องการใช้ 5V สำหรับอุปกรณ์ภายนอกใดๆ เราจะใส่มันลงในคอลัมน์เดียวกันกับบอร์ดนี้บนเขียงหั่นขนม

ขั้นตอนที่ 3: การตั้งค่าจอ LCD

การตั้งค่าจอ LCD
การตั้งค่าจอ LCD
การตั้งค่าจอ LCD
การตั้งค่าจอ LCD
การตั้งค่าจอ LCD
การตั้งค่าจอ LCD

1. พลิกกระดานให้คว่ำโดยให้หมุดทั้งหมดอยู่ทางด้านซ้าย

2. ต่อสาย 5 จากด้านบนซ้ายบนแถวบนของพินและเชื่อมต่อกับพินหมายเลข 4 บน Arduino UNO

3. ต่อสาย 6 จากด้านบนซ้ายบนแถวบนของพินแล้วเชื่อมต่อกับพินหมายเลข 5 บน Arduino UNO

4. เชื่อมต่อสาย 7 จากด้านบนซ้ายบนแถวบนของพิน และเชื่อมต่อกับพินหมายเลข 6 บน Arduino UNO

5. เชื่อมต่อสาย 8 จากด้านบนซ้ายบนแถวบนของพินและเชื่อมต่อกับพินหมายเลข 7 บน Arduino UNO

6. เชื่อมต่อสาย 9 จากด้านบนซ้ายบนแถวบนของพินและเชื่อมต่อกับพินหมายเลข 8 บน Arduino UNO

7. ต่อสาย 10 จากด้านบนซ้ายบนแถวบนของพินแล้วเชื่อมต่อกับพินหมายเลข 9 บน Arduino UNO

8. ต่อสาย 3 จากด้านล่างขวาและเชื่อมต่อกับแถว 5V บนเขียงหั่นขนม

9. ต่อสาย 4 จากด้านล่างขวาและเชื่อมต่อกับแถว GND บนเขียงหั่นขนม

ดูภาพตามแผนภาพวงจรแสดง LCD ที่แตกต่างกัน

ขั้นตอนที่ 4: การตั้งค่า Piezo Buzzer

การตั้งค่า Piezo Buzzer
การตั้งค่า Piezo Buzzer
การตั้งค่า Piezo Buzzer
การตั้งค่า Piezo Buzzer
การตั้งค่า Piezo Buzzer
การตั้งค่า Piezo Buzzer
การตั้งค่า Piezo Buzzer
การตั้งค่า Piezo Buzzer

1. ต่อสายไฟจากพิน GND บนออดกับคอลัมน์ GND (สีน้ำเงิน) บนเขียงหั่นขนม

2. ต่อสายไฟจากพิน VCC บนออดกับคอลัมน์ 5V (สีแดง) บนเขียงหั่นขนม

3. ต่อสายไฟจากพิน SIG บนออดกับพินหมายเลข "10" บนบอร์ด Arduino UNO

ดูภาพด้านบนตามแผนภาพวงจรแสดงออดที่แตกต่างกัน

ขั้นตอนที่ 5: การตั้งค่าเซ็นเซอร์อุณหภูมิ DHT

การตั้งค่าเซ็นเซอร์อุณหภูมิ DHT
การตั้งค่าเซ็นเซอร์อุณหภูมิ DHT
การตั้งค่าเซ็นเซอร์อุณหภูมิ DHT
การตั้งค่าเซ็นเซอร์อุณหภูมิ DHT
การตั้งค่าเซ็นเซอร์อุณหภูมิ DHT
การตั้งค่าเซ็นเซอร์อุณหภูมิ DHT
การตั้งค่าเซ็นเซอร์อุณหภูมิ DHT
การตั้งค่าเซ็นเซอร์อุณหภูมิ DHT

1. ตั้งค่าเซ็นเซอร์ DHT ในเขียงหั่นขนมตามที่แสดงด้านบน

2. เชื่อมต่อพินแรกทางด้านซ้ายของเซ็นเซอร์ DHT (ที่มีป้ายกำกับว่า VCC ในแผนภาพชิ้นส่วน) กับคอลัมน์ 5V (สีแดง) บนเขียงหั่นขนม

3. เชื่อมต่อพินที่สองทางด้านซ้ายของเซ็นเซอร์ DHT (Labelled DATA ในแผนภาพชิ้นส่วน) เข้ากับพอร์ต A0 บน Arduino UNO

4. เชื่อมต่อพินแรกทางด้านขวาของเซ็นเซอร์ DHT (ติดป้าย GND ในแผนภาพชิ้นส่วน) กับคอลัมน์ GND (สีน้ำเงิน) บนเขียงหั่นขนม

5. ดูบทช่วยสอนและเพิ่ม dht.h Library ที่ส่วนท้ายของคำสั่ง Arduino (นี่เป็นข้อบังคับ)

ขั้นตอนที่ 6: การตั้งค่า RGB

การตั้งค่า RGB
การตั้งค่า RGB
การตั้งค่า RGB
การตั้งค่า RGB
การตั้งค่า RGB
การตั้งค่า RGB
การตั้งค่า RGB
การตั้งค่า RGB

1. วาง RGB ในเขียงหั่นขนมขนาดเล็กดังที่แสดงด้านบนโดยเน้นที่ขาที่สองจากด้านซ้ายของ RGB เป็นหนึ่งช่องที่ใกล้กว่าอีกสามช่อง

2. วางตัวต้านทานมาตรฐานบนพินที่หนึ่ง สาม และสี่ เว้นที่ว่างไว้สำหรับลวดอีกอย่างน้อยหนึ่งเส้น (ตามที่แสดงด้านบน)

3. ต่อสายไฟจากด้านหลังตัวต้านทานบนพินด้านซ้ายของ RGB เข้ากับพิน Labeled 2 บน Arduino UNO

4. ต่อสายไฟจากด้านหลังเส้นที่สองจากพินซ้ายของ RGB เข้ากับคอลัมน์ GND (สีน้ำเงิน) ของเขียงหั่นขนม

5. ต่อสายไฟจากด้านหลังตัวต้านทานบนตัวที่สองจากพินขวาของ RGB ไปยังพินที่ติดป้าย 1 บน Arduino UNO

6. ต่อสายไฟจากด้านหลังตัวต้านทานบนพินด้านขวาของ RGB เข้ากับพิน Labeled 3 บน Arduino UNO

ขั้นตอนที่ 7: ตัวเลือกการรองรับการพิมพ์ 3 มิติ

ตัวเลือกการพิมพ์ 3D ที่อยู่อาศัย
ตัวเลือกการพิมพ์ 3D ที่อยู่อาศัย
ตัวเลือกการพิมพ์ 3D ที่อยู่อาศัย
ตัวเลือกการพิมพ์ 3D ที่อยู่อาศัย
ตัวเลือกการพิมพ์ 3D ที่อยู่อาศัย
ตัวเลือกการพิมพ์ 3D ที่อยู่อาศัย

1. ค้นหาบทช่วยสอนเกี่ยวกับวิธีการพิมพ์ 3 มิติ

2. พิมพ์การออกแบบที่แนบมาด้านล่างซึ่งสร้างขึ้นบน Autodesk Fusion 360 (ไฟล์.stl)

3. ขูดวัสดุ 3D ส่วนเกินออกแล้วเกลี่ยให้เรียบ

4. ดูภาพด้านบนเพื่อเป็นแนวทางในการวางชิ้นส่วน Arduino

ขั้นตอนที่ 8: รหัสและไฟล์

รหัสและไฟล์
รหัสและไฟล์

- แนบไลบรารี DHT.h (UNZIP)

-The Code พร้อมความคิดเห็นโดยละเอียดถูกแนบมา แต่ยังอยู่ในขั้นตอนต่อไป

-แนบไฟล์.stl สำหรับเคส 3 มิติ

- มีการแนบแผนภาพวงจรอีกครั้ง ตรวจสอบให้แน่ใจว่าได้อ้างอิงถึงขั้นตอนจริงสำหรับหน้าจอ LCD และ Piezo Buzzer เนื่องจากมีการใช้ส่วนประกอบต่างๆ

ขั้นตอนที่ 9: รหัส Arduino

รหัส Arduino
รหัส Arduino
รหัส Arduino
รหัส Arduino

//LCD FIRE WARNING SYSTEM//อ่านอินพุตจาก DHT Temperature Pin และเปลี่ยน rgb และลำโพงเพื่อระบุว่าผู้ใช้มีอันตรายจากไฟไหม้หรือไม่ ทั้งนี้ขึ้นอยู่กับว่าร้อนหรือไม่ //แสดงอุณหภูมิบนหน้าจอ LCD ด้วย

// DHT SETUP

#include // รวมไลบรารี DHT

#define dht_dpin A0 // บอกบอร์ดว่าพิน DHT อยู่ในอินพุตอนาล็อก 0

ดีเอชที ดีเอชที; // dht = DHT

// การตั้งค่าคริสตัลเหลว

#include // รวมไลบรารี Liquid Crystal

LiquidCrystal LCD (8, 9, 4, 5, 6, 7); //ย่อให้เหลือ LCD / บอก Arduino ว่าพอร์ตใดที่ LCD ใช้

// กำหนด RGB + BUZZER

#define redpin 1 // กำหนด redpin ของ RGB ในพอร์ต 1

#define greenpin 2 // กำหนด greenpin ของ RGB ในพอร์ต 2

#define bluepin 3 // กำหนด bluepin ของ RGB ในพอร์ต 3

#define buzzerpin 10 // กำหนด buzzerpin ในพอร์ต 10

// ตัวแปร/S

int temp = analogRead (DHT.temperature); // สร้างจำนวนเต็ม "temp" ซึ่งเป็นค่าจากคำสั่ง DHT.temperature

การตั้งค่าเป็นโมฆะ () {

// เอาท์พุท/อินพุต

analogWrite (หมุดสีแดง, เอาต์พุต); // ประกาศ/กำหนด redpin เป็น Output

analogWrite (กรีนพิน, เอาต์พุต); // ประกาศ/กำหนดกรีนพินเป็นเอาต์พุต

analogWrite (บลูพิน, เอาต์พุต); // ประกาศ/กำหนด bluepin เป็น Output

โหมดพิน (buzzerpin, OUTPUT); // ประกาศ/กำหนด buzzerpin เป็น Output

// หน้าจอ LCD

lcd.begin (16, 2); // กำหนดหน้าจอ LCD เป็น 16 คอลัมน์และ 2 แถว }

วงเป็นโมฆะ () {

// รหัส LCD โดยไม่มีตัวแปร

DHT.read11(dht_dpin); // อ่านอินพุตจาก dht_dpin ด้วย (A0)

lcd.setCursor(0, 0); //ตั้งค่าเคอร์เซอร์เป็นคอลัมน์ 0, แถว 0

lcd.print("มันคือ"); //เขียนว่า "It's" บนหน้าจอ LCD

lcd.print(DHT.อุณหภูมิ); // พิมพ์ค่า DHT.temperature จากพิน DHT บนคอลัมน์ 0, แถว 0

lcd.print(" "); // พิมพ์ช่องว่างหลังอุณหภูมิ

lcd.print((ถ่าน)223); // พิมพ์เครื่องหมายองศาหลังอุณหภูมิ

lcd.print ("C"); // พิมพ์ "c" หลังเครื่องหมายองศาเพื่อเป็นสัญลักษณ์ของเซลเซียส

// LCD กระพริบ

lcd.setCursor(0, 1); // ตั้งค่าเคอร์เซอร์เป็นคอลัมน์ 0, แถว 1

lcd.noDisplay();

lcd.print("ไม่มีอันตรายจากไฟไหม้"); // พิมพ์ว่า "No Chance of Fire"

lcd.noDisplay(); // ปิดจอแสดงผล LCD (ส่วนหนึ่งของแฟลช)

ล่าช้า(1000);// หยุดนิ่งเป็นเวลา 1 วินาที

lcd.display(); // เปิดจอ LCD อีกครั้ง

ล่าช้า(1000);// เปิดค้างไว้ 1 วินาที

// RGB + BUZZER CODE

analogWrite (หมุดสีแดง, 0); // ไม่มีเอาต์พุตจากหมุดสีแดง

analogWrite (กรีนพิน 255); // 255 เอาต์พุตจาก greenpin (ทำให้ RGB เป็นสีเขียว)

analogWrite (สีน้ำเงิน, 0); // ไม่มีเอาต์พุตจากพินสีน้ำเงิน

โทนเสียง(Buzzerpin, 20, 20); // // ปล่อยความถี่ 20 เฮิรตซ์เป็นเวลา 0.02 วินาทีจากออด

// ถ้าอุณหภูมิ 25-30

ถ้า ((int (DHT.temperature) >= 25.00) && (int (DHT.temperature) <= 30.00)) {

lcd.clear(); //ล้างหน้าจอ LCD

lcd.setCursor(0, 1); //ตั้งค่าเคอร์เซอร์เป็นคอลัมน์ 0, แถว 1

lcd.print("การแจ้งเตือนขนาดเล็ก"); // พิมพ์ "Small Alert" ในคอลัมน์ 0, แถว 1

lcd.noDisplay(); // ปิดจอแสดงผล LCD (ส่วนหนึ่งของแฟลช)

ล่าช้า(1000);// หยุดนิ่งเป็นเวลา 1 วินาที

lcd.display(); // เปิดจอ LCD อีกครั้ง

ล่าช้า(1000);// เปิดค้างไว้ 1 วินาที

analogWrite (หมุดสีแดง 255); // 255 เอาต์พุตจาก redpin (ทำให้ RGB เป็นสีเหลือง)

analogWrite (กรีนพิน 255); // 255 เอาต์พุตจากหมุดสีเขียว (ทำให้ RGB เป็นสีเหลือง)

analogWrite (สีน้ำเงิน, 0); // ไม่มีเอาต์พุตจากพินสีน้ำเงิน

โทนเสียง(Buzzerpin, 200, 100); // ปล่อยความถี่ 200 เฮิรตซ์เป็นเวลา 0.1 วินาทีจากออด

ล่าช้า (300); //.3 วินาทีล่าช้า

} // IF TEMP เป็น 31-37 อย่างอื่น if ((int(DHT.temperature) = 37.00)) {

lcd.clear(); //ล้างหน้าจอ LCD

lcd.setCursor(0, 1); //ตั้งค่าเคอร์เซอร์เป็นคอลัมน์ 0, แถว 1

lcd.print("การแจ้งเตือนระดับกลาง"); // พิมพ์ "Medium Alert" ในคอลัมน์ 0, แถว 1

lcd.noDisplay(); // ปิดจอแสดงผล LCD (ส่วนหนึ่งของแฟลช)

ล่าช้า(500);// หยุดทำงานเป็นเวลา 0.5 วินาที

lcd.display(); // เปิดจอ LCD อีกครั้ง

ล่าช้า(500);// เปิดค้างไว้ 0.5 วินาที

analogWrite (หมุดสีแดง 255); // 255 เอาต์พุตจาก redpin (ทำให้ RGB เป็นสีส้ม)

analogWrite (กรีนพิน 165); // เอาต์พุต 165 จากหมุดสีเขียว (ทำให้ RGB เป็นสีส้ม)

analogWrite (สีน้ำเงิน, 0); // ไม่มีเอาต์พุตจาก bluepin

โทนเสียง(buzzerpin, 500, 900); // ปล่อยความถี่ 500 เฮิรตซ์เป็นเวลา 0.9 วินาทีจากออด

ล่าช้า (300); //.3 วินาทีล่าช้า

} // ถ้าอุณหภูมิเป็น 38-100

อื่นถ้า ((int (DHT.temperature) = 100.00)) {

lcd.clear(); //ล้างหน้าจอ LCD

lcd.setCursor(0, 1); //ตั้งค่าเคอร์เซอร์เป็นคอลัมน์ 0, แถว 1

lcd.print("โทร 000"); // พิมพ์ "Call 000" ในคอลัมน์ 0, แถว 1

lcd.noDisplay(); // ปิดจอแสดงผล LCD (ส่วนหนึ่งของแฟลช)

ล่าช้า(250);// หยุดทำงานเป็นเวลา 0.25 วินาที

lcd.display(); // เปิดจอ LCD อีกครั้ง

ล่าช้า (250); // เปิดค้างไว้ 0.25 วินาที

analogWrite (หมุดสีแดง 255); // 255 เอาต์พุตจาก redpin (ทำให้ RGB เป็นสีแดง)

analogWrite (กรีนพิน, 0); // ไม่มีเอาต์พุตจาก greenpin

analogWrite (สีน้ำเงิน, 0); // ไม่มีเอาต์พุตจาก bluepin

โทนเสียง(buzzerpin, 1000, 900); // ปล่อยความถี่ 1,000 เฮิรตซ์เป็นเวลา 0.9 วินาทีจากออด

ล่าช้า (300); //.3 วินาทีล่าช้า

}}

แนะนำ: