สารบัญ:
- ขั้นตอนที่ 1: ต้องใช้ฮาร์ดแวร์
- ขั้นตอนที่ 2: การเชื่อมต่อฮาร์ดแวร์
- ขั้นตอนที่ 3: การสื่อสารโดยใช้โปรโตคอล I2C
- ขั้นตอนที่ 4: การเขียนโปรแกรมโมดูล
- ขั้นตอนที่ 5: การสร้างไฟล์และเรียกใช้โค้ด
- ขั้นตอนที่ 6: แอปพลิเคชัน
- ขั้นตอนที่ 7: ทรัพยากร
วีดีโอ: ระบบอัตโนมัติภายในบ้านด้วย Raspberry Pi โดยใช้บอร์ดรีเลย์: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ผู้คนจำนวนมากต้องการความสะดวกสบายที่ดีแต่ในราคาที่เหมาะสม เรารู้สึกขี้เกียจที่จะเปิดไฟบ้านทุกเย็นเมื่อพระอาทิตย์ตกดิน และเช้าวันรุ่งขึ้นก็ปิดไฟอีกครั้ง หรือจะเปิด/ปิดเครื่องปรับอากาศ/พัดลม/เครื่องทำความร้อนตามสภาพอากาศหรืออุณหภูมิห้อง
วิธีแก้ปัญหาที่ไม่แพงเพื่อหลีกเลี่ยงการทำงานพิเศษนี้ในการปิดเครื่องเมื่อจำเป็นอยู่ที่นี่ เป็นการทำให้บ้านของคุณเป็นระบบอัตโนมัติด้วยต้นทุนที่ค่อนข้างต่ำโดยใช้ผลิตภัณฑ์แบบพลักแอนด์เพลย์ที่เรียบง่าย ทำงานเหมือนเมื่ออุณหภูมิสูงขึ้นหรือต่ำลง เครื่องจะเปิดแอร์หรือฮีตเตอร์ตามลำดับ นอกจากนี้ เมื่อจำเป็น การเปิดหรือไฟบ้านของคุณจะช่วยให้เปิดได้โดยไม่ต้องเปิดเอง และเครื่องใช้ไฟฟ้าอีกมากมายสามารถควบคุมได้ ทำให้โลกเป็นอัตโนมัติ ให้เราเริ่มต้นที่บ้านของคุณ
ขั้นตอนที่ 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: การเชื่อมต่อฮาร์ดแวร์
การเชื่อมต่อที่จำเป็น (ดูภาพ) มีดังนี้:
- สิ่งนี้จะทำงานบน I2C ใช้เกราะป้องกัน I2C สำหรับ Raspberry pi และค่อยๆ เชื่อมต่อกับหมุด GPIO ของ Raspberry Pi
- เชื่อมต่อปลายสาย I2C ด้านหนึ่งเข้ากับพอร์ต TCS34903 และปลายอีกด้านหนึ่งเข้ากับแผงป้องกัน I2C
- เชื่อมต่อ in-pot ของเซ็นเซอร์ MCP9808 กับ TCS34903 ที่เอาต์พุตโดยใช้สายเคเบิล I2C
- เชื่อมต่อ in-pot ของ MCP23008 กับเซ็นเซอร์ MCP9808 โดยใช้สายเคเบิล I2C
- เชื่อมต่อสายอีเทอร์เน็ตกับ Raspberry Pi เราเตอร์ Wi-Fi ยังสามารถใช้สำหรับสิ่งเดียวกัน
- จากนั้นจ่ายไฟให้กับ Raspberry Pi โดยใช้อะแดปเตอร์ Micro USB และบอร์ดรีเลย์ MCP23008 โดยใช้อะแดปเตอร์ 12V
- สุดท้ายให้เชื่อมต่อไฟกับรีเลย์ตัวแรกและพัดลมหรือตัวทำความร้อนกับรีเลย์ตัวที่สอง คุณสามารถขยายโมดูลหรือเชื่อมต่ออุปกรณ์เพิ่มเติมกับรีเลย์ได้
ขั้นตอนที่ 3: การสื่อสารโดยใช้โปรโตคอล I2C
หากต้องการเปิดใช้งาน Raspberry Pi I2C ให้ดำเนินการตามที่ระบุไว้ด้านล่าง:
- ในเทอร์มินัล พิมพ์คำสั่งต่อไปนี้เพื่อเปิดการตั้งค่าการกำหนดค่า: sudo raspi-config
- เลือก "ตัวเลือกขั้นสูง" ที่นี่
- เลือก "I2C" และคลิก "ใช่"
- รีบูตระบบเพื่อตั้งค่าตามการเปลี่ยนแปลงที่ทำโดยใช้คำสั่งรีบูต
ขั้นตอนที่ 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: การสร้างไฟล์และเรียกใช้โค้ด
- ในการสร้างไฟล์ใหม่ที่สามารถเขียน/คัดลอกโค้ดได้ จะใช้คำสั่งต่อไปนี้: sudo nano FILE_NAME.javaEg sudo nano MCP23008.java
- หลังจากสร้างไฟล์แล้ว เราสามารถใส่รหัสได้ที่นี่
- คัดลอกโค้ดที่ระบุในขั้นตอนก่อนหน้าแล้ววางลงในหน้าต่างที่นี่
- กด Ctrl+X จากนั้นกด "y" เพื่อออก
- จากนั้นคอมไพล์โค้ดโดยใช้คำสั่งต่อไปนี้: pi4j FILE_NAME.javaEg pi4j MCP23008.java
- หากไม่มีข้อผิดพลาด ให้รันโปรแกรมโดยใช้คำสั่งที่กล่าวถึง: pi4j FILE_NAMEEg pi4j MCP23008.java
ขั้นตอนที่ 6: แอปพลิเคชัน
ระบบนี้ช่วยให้คุณควบคุมอุปกรณ์ได้โดยไม่ต้องไปที่สวิตช์ที่ผนัง ซึ่งมีความสามารถมากมาย เนื่องจากเวลาในการเปิดหรือปิดอุปกรณ์จะถูกตั้งเวลาอัตโนมัติ โมดูลนี้มีการใช้งานจำนวนหนึ่งตั้งแต่บ้านไปจนถึงอุตสาหกรรม โรงพยาบาล สถานีรถไฟ และสถานที่อื่นๆ อีกมากมายที่สามารถทำให้เป็นแบบอัตโนมัติได้ในราคาประหยัดและง่ายดายด้วยส่วนประกอบแบบเสียบปลั๊กแล้วเล่น
ขั้นตอนที่ 7: ทรัพยากร
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ TSL34903, MCP9808 MCP23008 Relay Controller โปรดดูที่ลิงค์ด้านล่าง:
- เอกสารข้อมูล TSL34903
- MCP9808 เอกสารข้อมูลสินค้า
- MCP23008 เอกสารข้อมูลสินค้า
แนะนำ:
ระบบอัตโนมัติภายในบ้านด้วย NodeMCU Touch Sensor LDR รีเลย์ควบคุมอุณหภูมิ: 16 ขั้นตอน
ระบบอัตโนมัติภายในบ้านด้วย NodeMCU Touch Sensor LDR Temperature Control Relay: ในโครงการ NodeMCU ที่ผ่านมาของฉัน ฉันได้ควบคุมเครื่องใช้ภายในบ้านสองเครื่องจาก Blynk App ฉันได้รับความคิดเห็นและข้อความมากมายให้อัปเกรดโปรเจ็กต์ด้วยการควบคุมด้วยตนเองและเพิ่มคุณสมบัติเพิ่มเติม ดังนั้นฉันจึงออกแบบกล่องขยายบ้านอัจฉริยะนี้ใน IoT
ระบบอัตโนมัติภายในบ้านด้วย ESP8266 WiFi โดยไม่ต้องใช้ Blynk!: 24 ขั้นตอน (พร้อมรูปภาพ)
ระบบอัตโนมัติภายในบ้านด้วย ESP8266 WiFi โดยไม่ต้องใช้ Blynk!: ประการแรก ผมอยากขอบคุณทุกคนที่ทำให้ผมเป็นผู้ชนะในการประกวดการทำงานอัตโนมัติ 2016 สำหรับคำแนะนำนี้ ตามที่ได้สัญญาไว้ นี่คือคำแนะนำสำหรับการควบคุมเครื่องใช้ภายในบ้านด้วยโมดูล ESP8266 WiFi
ระบบอัตโนมัติภายในบ้านด้วย NodeMCU, HomeAssistant & MQTT: 6 ขั้นตอน
ระบบอัตโนมัติภายในบ้านด้วย NodeMCU, HomeAssistant & MQTT: คุณต้องการเริ่มเปลี่ยนบ้านของคุณในบ้านอัจฉริยะหรือไม่และต้องทำในราคาถูกด้วยหรือไม่ NodeMCU และ HomeAssistant พร้อมให้ความช่วยเหลือในเรื่องนั้น ฉันแนะนำให้คุณดูวิดีโอนี้ บางทีมันอาจจะง่ายกว่าสำหรับคุณที่จะติดตาม มิฉะนั้น ให้ทำตามขั้นตอนด้านล่าง
ระบบอัตโนมัติภายในบ้านด้วย Arduino: 6 ขั้นตอน
ระบบอัตโนมัติภายในบ้านด้วย Arduino: HISTORYI เริ่มโครงการนี้เป็นโครงการของโรงเรียน อันที่จริงผมอยากสร้างสิ่งที่เป็นประโยชน์ต่อสังคม ดังนั้นฉันจึงเริ่มตรวจสอบว่าปัญหาต่าง ๆ ที่เกิดขึ้นในโลกที่สามารถแก้ไขได้คืออะไร จากนั้นฉันก็พบว่า
ระบบอัตโนมัติภายในบ้านด้วย Arduino: 4 ขั้นตอน
ระบบอัตโนมัติในบ้านกับ Arduino: ผลิตภัณฑ์สำเร็จรูปนี้รวมส่วนสัญญาณเตือน สภาพอากาศ นาฬิกาไร้สาย การประกอบและการตัดชิ้นส่วนที่ผลิตด้วยการตัดด้วยเลเซอร์ ฉันเลือกวัตถุ 3 ชิ้นที่มีขนาดค่อนข้างเล็กเพื่ออำนวยความสะดวกในการฝังในสถานที่แห่งชีวิต ตัวเลือกของฉันลดลงเมื่อ