สารบัญ:

ระบบอัตโนมัติภายในบ้านด้วย Raspberry Pi โดยใช้บอร์ดรีเลย์: 7 ขั้นตอน
ระบบอัตโนมัติภายในบ้านด้วย Raspberry Pi โดยใช้บอร์ดรีเลย์: 7 ขั้นตอน

วีดีโอ: ระบบอัตโนมัติภายในบ้านด้วย Raspberry Pi โดยใช้บอร์ดรีเลย์: 7 ขั้นตอน

วีดีโอ: ระบบอัตโนมัติภายในบ้านด้วย Raspberry Pi โดยใช้บอร์ดรีเลย์: 7 ขั้นตอน
วีดีโอ: Raspberry Pi Automation #1: Mains Relay HAT 2024, พฤศจิกายน
Anonim
ระบบอัตโนมัติภายในบ้านด้วย Raspberry Pi โดยใช้บอร์ดรีเลย์
ระบบอัตโนมัติภายในบ้านด้วย Raspberry Pi โดยใช้บอร์ดรีเลย์

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

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

ขั้นตอนที่ 1: ต้องใช้ฮาร์ดแวร์

ฮาร์ดแวร์ที่จำเป็น
ฮาร์ดแวร์ที่จำเป็น
ฮาร์ดแวร์ที่จำเป็น
ฮาร์ดแวร์ที่จำเป็น
ฮาร์ดแวร์ที่จำเป็น
ฮาร์ดแวร์ที่จำเป็น

เราจะใช้:

ราสเบอร์รี่ปี่

Raspberry Pi เป็นพีซีที่ใช้ Linux แบบกระดานเดี่ยว พีซีขนาดเล็กเครื่องนี้อัดแน่นไปด้วยพลังการลงทะเบียน ใช้เป็นชิ้นส่วนของแบบฝึกหัดอิเล็กทรอนิกส์ และการทำงานของพีซี เช่น สเปรดชีต การประมวลผลคำ การท่องเว็บ อีเมล และเกม

โล่ I2C หรือส่วนหัว I2C

INPI2 (อะแดปเตอร์ I2C) มีพอร์ต I²C ของ Raspberry Pi 2/3 สำหรับใช้กับอุปกรณ์ I2C หลายเครื่อง

ตัวควบคุมรีเลย์ I2C MCP23008

MCP23008 จาก Microchip คือตัวขยายพอร์ตในตัวที่ควบคุมรีเลย์แปดตัวผ่านบัสI²C คุณสามารถเพิ่มรีเลย์, I/O ดิจิตอล, ตัวแปลงอนาล็อกเป็นดิจิตอล, เซ็นเซอร์ และอุปกรณ์อื่นๆ โดยใช้พอร์ตขยาย I²C ในตัว

MCP9808 เซ็นเซอร์อุณหภูมิ

MCP9808 เป็นเซ็นเซอร์อุณหภูมิที่มีความแม่นยำสูง ซึ่งให้สัญญาณเซ็นเซอร์เชิงเส้นที่ปรับเทียบแล้วในรูปแบบ I²C แบบดิจิตอล

เซ็นเซอร์วัดความส่องสว่าง TCS34903

TCS34903 เป็นผลิตภัณฑ์ตระกูลเซ็นเซอร์สีที่ให้ค่าองค์ประกอบ RGB ของแสงและสี

สายต่อ I2C

สายต่อ I2C เป็นสายแบบ 4 สายซึ่งมีไว้สำหรับการสื่อสารแบบ I2C ระหว่างอุปกรณ์ I2C สองเครื่องที่เชื่อมต่อผ่านสายดังกล่าว

อะแดปเตอร์ไมโคร USB

ในการเปิดเครื่อง Raspberry Pi เราจำเป็นต้องมีสายไมโคร USB

อะแดปเตอร์ไฟ 12V สำหรับบอร์ดรีเลย์

MCP23008 รีเลย์คอนโทรลเลอร์ทำงานโดยใช้ไฟภายนอก 12V และสามารถจ่ายไฟได้โดยใช้อะแดปเตอร์ไฟ 12V

คุณสามารถซื้อสินค้าโดยคลิกที่พวกเขา นอกจากนี้คุณยังสามารถหาเนื้อหาดีๆ เพิ่มเติมได้ที่ Dcube Store

ขั้นตอนที่ 2: การเชื่อมต่อฮาร์ดแวร์

การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อฮาร์ดแวร์

การเชื่อมต่อที่จำเป็น (ดูภาพ) มีดังนี้:

  1. สิ่งนี้จะทำงานบน I2C ใช้เกราะป้องกัน I2C สำหรับ Raspberry pi และค่อยๆ เชื่อมต่อกับหมุด GPIO ของ Raspberry Pi
  2. เชื่อมต่อปลายสาย I2C ด้านหนึ่งเข้ากับพอร์ต TCS34903 และปลายอีกด้านหนึ่งเข้ากับแผงป้องกัน I2C
  3. เชื่อมต่อ in-pot ของเซ็นเซอร์ MCP9808 กับ TCS34903 ที่เอาต์พุตโดยใช้สายเคเบิล I2C
  4. เชื่อมต่อ in-pot ของ MCP23008 กับเซ็นเซอร์ MCP9808 โดยใช้สายเคเบิล I2C
  5. เชื่อมต่อสายอีเทอร์เน็ตกับ Raspberry Pi เราเตอร์ Wi-Fi ยังสามารถใช้สำหรับสิ่งเดียวกัน
  6. จากนั้นจ่ายไฟให้กับ Raspberry Pi โดยใช้อะแดปเตอร์ Micro USB และบอร์ดรีเลย์ MCP23008 โดยใช้อะแดปเตอร์ 12V
  7. สุดท้ายให้เชื่อมต่อไฟกับรีเลย์ตัวแรกและพัดลมหรือตัวทำความร้อนกับรีเลย์ตัวที่สอง คุณสามารถขยายโมดูลหรือเชื่อมต่ออุปกรณ์เพิ่มเติมกับรีเลย์ได้

ขั้นตอนที่ 3: การสื่อสารโดยใช้โปรโตคอล I2C

หากต้องการเปิดใช้งาน Raspberry Pi I2C ให้ดำเนินการตามที่ระบุไว้ด้านล่าง:

  1. ในเทอร์มินัล พิมพ์คำสั่งต่อไปนี้เพื่อเปิดการตั้งค่าการกำหนดค่า: sudo raspi-config
  2. เลือก "ตัวเลือกขั้นสูง" ที่นี่
  3. เลือก "I2C" และคลิก "ใช่"
  4. รีบูตระบบเพื่อตั้งค่าตามการเปลี่ยนแปลงที่ทำโดยใช้คำสั่งรีบูต

ขั้นตอนที่ 4: การเขียนโปรแกรมโมดูล

รางวัลของการใช้ Raspberry Pi คือ ให้ความยืดหยุ่นแก่คุณในการเลือกภาษาการเขียนโปรแกรมที่คุณต้องการตั้งโปรแกรมเพื่อเชื่อมต่ออุปกรณ์ตรวจจับกับ Raspberry Pi ใช้ประโยชน์จากข้อดีของ Raspberry Pi นี้ เรากำลังสาธิตการเขียนโปรแกรมใน Java

ในการตั้งค่าสภาพแวดล้อม Java ให้ติดตั้ง “pi4j libraby” จาก https://pi4j.com/1.2/index.html Pi4j คือ Java Input/Output Library สำหรับ Raspberry Pi วิธีที่ง่ายและเป็นที่นิยมมากที่สุดในการติดตั้ง “pi4j ไลบรารี” คือการดำเนินการคำสั่งที่กล่าวถึงโดยตรงใน Raspberry Pi ของคุณ:

curl -s get.pi4j.com | sudo bash

หรือ

curl -s get.pi4j.com

นำเข้า com.pi4j.io.i2c. I2CBus;นำเข้า com.pi4j.io.i2c. I2CDevice; นำเข้า com.pi4j.io.i2c. I2CFactory; นำเข้า java.io. IOException; คลาส MCP23008 { โมฆะคงที่สาธารณะหลัก (สตริง args ) พ่นข้อยกเว้น { สถานะ int ค่า value1 = 0x00; // สร้างบัส I2C บัส I2CBus = I2CFactory.getInstance(I2CBus. BUS_1); // รับอุปกรณ์ I2C ที่อยู่ MCP23008 I2C คือ 0x20 (32) อุปกรณ์ I2CDevice = bus.getDevice(0x20); // รับอุปกรณ์ I2C ที่อยู่ MCP9808 I2C คือ 0x18(24) I2CDevice MCP9808 = bus.getDevice(0x18); // รับอุปกรณ์ I2C ที่อยู่ TCS34903 I2C คือ 0x39(55) I2CDevice TCS34903 = bus.getDevice(0x39); // ตั้งค่าการลงทะเบียนเวลารอ = 0xff (255), เวลารอ = 2.78 ms TCS34903.write(0x83, (ไบต์)0xFF); // เปิดใช้งานการเข้าถึงช่อง IR TCS34903.write(0xC0, (ไบต์)0x80); // ตั้งค่า Atime register เป็น 0x00 (0) จำนวนสูงสุด = 65535 TCS34903.write(0x81, (byte)0x00); // เปิดเครื่อง เปิดใช้งาน ADC รอเปิดใช้งาน TCS34903.write(0x80, (ไบต์)0x0B); เธรดการนอนหลับ (250); // อ่านข้อมูล 8 ไบต์พร้อมล้างข้อมูล/ir LSB ไบต์แรก data1 = ไบต์ใหม่[8]; // อ่านข้อมูลอุณหภูมิ ไบต์ data = ไบต์ใหม่[2]; สถานะ = อุปกรณ์อ่าน (0x09); // กำหนดค่าพินทั้งหมดเป็น OUTPUT device.write(0x00, (byte)0x00); เธรดการนอนหลับ (500); ในขณะที่ (จริง) { MCP9808.read (0x05, ข้อมูล, 0, 2); // แปลง data int temp = ((data[0] & 0x1F) * 256 + (data[1] & 0xFF)); ถ้า (อุณหภูมิ > 4096) { อุณหภูมิ -= 8192; } cTemp สองเท่า = อุณหภูมิ * 0.0625; System.out.printf("อุณหภูมิในเซลเซียสคือ: %.2f C %n", cTemp); TCS34903.read(0x94, data1, 0, 8); double ir = ((data1[1] & 0xFF) * 256) + (data1[0] & 0xFF) * 1.00; สีแดงคู่ = ((data1[3] & 0xFF) * 256) + (data1[2] & 0xFF) * 1.00; สีเขียวสองเท่า = ((data1[5] & 0xFF) * 256) + (data1[4] & 0xFF) * 1.00; ดับเบิ้ลบลู = ((data1[7] & 0xFF) * 256) + (data1[6] & 0xFF) * 1.00; // คำนวณความส่องสว่างสองเท่า = (-0.32466) * (สีแดง) + (1.57837) * (สีเขียว) + (-0.73191) * (สีน้ำเงิน); System.out.printf("ความสว่างคือ: %.2f lux%n ", ความสว่าง); ถ้า (ความสว่าง 30) { ค่า = ค่า 1 | (0x01); } อื่น ๆ { ค่า = ค่า 1 & (0x02); } ค่า device.write(0x09, (ไบต์)); เธรดการนอนหลับ (300); } } }

ขั้นตอนที่ 5: การสร้างไฟล์และเรียกใช้โค้ด

  1. ในการสร้างไฟล์ใหม่ที่สามารถเขียน/คัดลอกโค้ดได้ จะใช้คำสั่งต่อไปนี้: sudo nano FILE_NAME.javaEg sudo nano MCP23008.java
  2. หลังจากสร้างไฟล์แล้ว เราสามารถใส่รหัสได้ที่นี่
  3. คัดลอกโค้ดที่ระบุในขั้นตอนก่อนหน้าแล้ววางลงในหน้าต่างที่นี่
  4. กด Ctrl+X จากนั้นกด "y" เพื่อออก
  5. จากนั้นคอมไพล์โค้ดโดยใช้คำสั่งต่อไปนี้: pi4j FILE_NAME.javaEg pi4j MCP23008.java
  6. หากไม่มีข้อผิดพลาด ให้รันโปรแกรมโดยใช้คำสั่งที่กล่าวถึง: pi4j FILE_NAMEEg pi4j MCP23008.java

ขั้นตอนที่ 6: แอปพลิเคชัน

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

ขั้นตอนที่ 7: ทรัพยากร

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ TSL34903, MCP9808 MCP23008 Relay Controller โปรดดูที่ลิงค์ด้านล่าง:

  • เอกสารข้อมูล TSL34903
  • MCP9808 เอกสารข้อมูลสินค้า
  • MCP23008 เอกสารข้อมูลสินค้า

แนะนำ: