สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: ทำความรู้จักกับ DockerPi Series 4 Channel Relay Board
- ขั้นตอนที่ 2: คุณสมบัติ
- ขั้นตอนที่ 3: แผนที่ที่อยู่อุปกรณ์
- ขั้นตอนที่ 4: เชื่อมต่อรีเลย์กับที่ยึดหลอดไฟที่ขับเคลื่อนด้วยแหล่งจ่ายไฟหลัก
- ขั้นตอนที่ 5: การกำหนดค่า I2C (Raspberry Pi)
- ขั้นตอนที่ 6: การควบคุมโดยตรงโดยไม่ต้องเขียนโปรแกรม (Raspberry Pi)
- ขั้นตอนที่ 7: โปรแกรมในภาษา C (Raspberry Pi)
- ขั้นตอนที่ 8: โปรแกรมใน Python (Raspberry Pi)
- ขั้นตอนที่ 9: โปรแกรมใน Java (Raspberry Pi)
วีดีโอ: ระบบควบคุมไฟ: 9 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
เมื่อเร็ว ๆ นี้ฉันกำลังทำงานเพื่อทำความเข้าใจไมโครคอนโทรลเลอร์และอุปกรณ์ที่ใช้ IOT เพื่อการวิจัยด้านความปลอดภัย ดังนั้นฉันจึงคิดที่จะสร้างระบบโฮมออโตเมชั่นขนาดเล็กสำหรับฝึกซ้อม ฉันยังทำสิ่งนี้ไม่เสร็จ แต่สำหรับการเริ่มต้นฉันจะแบ่งปันวิธีการใช้ Raspberry Pi 2 และอุปกรณ์ไฟฟ้าอื่น ๆ เพื่อควบคุมแสงในห้องของฉันในโพสต์นี้ นอกจากนี้ ฉันจะไม่พูดถึงการตั้งค่าเริ่มต้นสำหรับ Raspberry ที่นี่ คุณอาจพบบทช่วยสอนต่างๆ สำหรับสิ่งนั้น
แต่ในโปรเจ็กต์นี้ ฉันจะแนะนำผลิตภัณฑ์ docker pi series ให้กับคุณ
เสบียง
รายการส่วนประกอบ:
- 1 x Raspberry Pi 3B+/3B/ศูนย์/ศูนย์ W/4B/
- การ์ด TF คลาส 10 ขนาด 1 x 16GB
- 1 x DockerPi series 4 ช่องรีเลย์บอร์ด (HAT)
- แหล่งจ่ายไฟ 1 x [email protected] ซึ่งมาจาก 52Pi
- 4 x แถบไฟ
- 1 x ขั้วต่อ DC
- แหล่งจ่ายไฟ 1 x 12V สำหรับแถบไฟ
- หลายสาย
ขั้นตอนที่ 1: ทำความรู้จักกับ DockerPi Series 4 Channel Relay Board
DockerPi 4 Channel Relay เป็นสมาชิกของ DockerPi Series ซึ่งมักใช้ในแอปพลิเคชัน IOT
DockerPi 4 Channel Relay สามารถถ่ายทอด AC/DC แทนสวิตช์แบบเดิม เพื่อให้ได้แนวคิดที่มากขึ้น DockerPi 4 Channel Relay สามารถซ้อนกันได้ถึง 4 ช่อง และสามารถวางซ้อนกับบอร์ดขยาย DockerPi อื่นๆ ได้ หากคุณต้องการใช้งานเป็นเวลานาน เราขอแนะนำให้คุณใช้บอร์ดขยาย DockerPi Power เพื่อให้มีพลังงานมากขึ้น
ข้อควรระวัง ก่อนที่เราจะดำเนินการต่อ ฉันต้องการเตือนคุณเกี่ยวกับอันตรายของการทดลองกับ "ไฟฟ้าหลัก" หากมีอะไรผิดพลาด ผลลัพธ์ที่เลวร้ายที่สุดอาจเป็นความตายหรืออย่างน้อยก็เผาบ้านของคุณเอง ดังนั้น โปรดอย่าพยายามดำเนินการใดๆ ที่กล่าวถึงในบทความนี้ หากคุณไม่เข้าใจว่าคุณกำลังทำอะไรอยู่ หรือควรขอความช่วยเหลือจากช่างไฟฟ้าที่มีประสบการณ์ มาเริ่มกันเลย.
ขั้นตอนที่ 2: คุณสมบัติ
- DockerPi Series
- ตั้งโปรแกรมได้
- ควบคุมโดยตรง (โดยไม่ต้องตั้งโปรแกรม)
- ขยายพิน GPIO
- รีเลย์ 4 ช่อง
- รองรับ 4 Alt I2C Addr
- รองรับไฟ LED แสดงสถานะรีเลย์
- รองรับ 3A 250V AC
- 3A 30V DC
- สามารถสแต็คกับบอร์ดสแต็คอื่น ๆ ได้โดยไม่ขึ้นกับฮาร์ดแวร์ของเมนบอร์ด (ต้องการการสนับสนุน I2C)
ขั้นตอนที่ 3: แผนที่ที่อยู่อุปกรณ์
บอร์ดนี้มีที่อยู่ลงทะเบียนแยกต่างหาก และคุณสามารถควบคุมแต่ละรีเลย์ได้ด้วยคำสั่งเดียว
ข้อกำหนดอื่นๆ:
ความเข้าใจพื้นฐานเกี่ยวกับ Python หรือ C หรือเชลล์หรือ Java หรือภาษาอื่นๆ (ฉันจะใช้ C, python, shell และ java)
- ความเข้าใจพื้นฐานของระบบลีนุกซ์
- การแสดงตนของจิตใจ
ก่อนดำเนินการต่อ คุณจะต้องเข้าใจส่วนประกอบไฟฟ้าที่เราจะใช้:
1. รีเลย์:
รีเลย์เป็นอุปกรณ์ไฟฟ้าที่ใช้โดยทั่วไปในการควบคุมแรงดันไฟฟ้าสูงโดยใช้แรงดันไฟฟ้าต่ำมากเป็นอินพุต ประกอบด้วยขดลวดพันรอบเสาและแผ่นโลหะขนาดเล็กสองแผ่น (โหนด) ที่ใช้ปิดวงจร โหนดหนึ่งได้รับการแก้ไขและอีกโหนดหนึ่งสามารถเคลื่อนย้ายได้ เมื่อใดก็ตามที่กระแสไฟฟ้าไหลผ่านขดลวด มันจะสร้างสนามแม่เหล็กและดึงดูดโหนดที่เคลื่อนที่เข้าหาโหนดคงที่และวงจรจะเสร็จสมบูรณ์ ดังนั้น เพียงแค่ใช้แรงดันไฟฟ้าเพียงเล็กน้อยในการจ่ายไฟให้กับคอยล์ เราก็สามารถทำให้วงจรไฟฟ้าแรงสูงเดินทางได้จริง นอกจากนี้ เนื่องจากโหนดคงที่ไม่ได้เชื่อมต่อทางกายภาพกับคอยล์ จึงมีโอกาสน้อยมากที่ไมโครคอนโทรลเลอร์ที่จ่ายไฟให้กับคอยล์จะเสียหายหากมีสิ่งผิดปกติเกิดขึ้น
ขั้นตอนที่ 4: เชื่อมต่อรีเลย์กับที่ยึดหลอดไฟที่ขับเคลื่อนด้วยแหล่งจ่ายไฟหลัก
ในส่วนที่ยุ่งยาก เราจะเชื่อมต่อรีเลย์กับตัวยึดหลอดไฟที่ขับเคลื่อนด้วยแหล่งจ่ายไฟหลัก แต่ก่อนอื่น ฉันต้องการให้คุณมีความคิดสั้น ๆ เกี่ยวกับวิธีการเปิดและปิดไฟผ่านแหล่งจ่ายไฟตรง
ตอนนี้ เมื่อหลอดไฟเชื่อมต่อกับแหล่งจ่ายไฟหลัก เรามักจะทำเช่นนี้โดยเชื่อมต่อสายไฟสองเส้นเข้ากับหลอดไฟ สายไฟเส้นหนึ่งเป็นสาย "เป็นกลาง" และอีกสายหนึ่งเป็นสาย "เชิงลบ" ซึ่งนำกระแสไฟจริงมาใช้ นอกจากนี้ยังมีสวิตช์ที่เพิ่มเข้าไปในวงจรทั้งหมดเพื่อควบคุมกลไกการเปิดและปิด ดังนั้น เมื่อต่อสวิทซ์แล้ว (หรือเปิด) กระแสจะไหลผ่านหลอดไฟและสายกลาง เพื่อทำให้วงจรสมบูรณ์ สิ่งนี้จะเปิดหลอดไฟ เมื่อสวิตช์ถูกเปิด มันจะตัดวงจรและหลอดไฟจะดับลง นี่คือแผนภาพวงจรขนาดเล็กเพื่ออธิบายสิ่งนี้:
สำหรับการทดลองของเรา เราจะต้องทำให้ "Negative Wire" ผ่านรีเลย์ของเราเพื่อตัดวงจรและควบคุมกระแสไฟโดยใช้สวิตช์ของรีเลย์ ดังนั้นเมื่อรีเลย์เปิดขึ้นก็ควรทำให้วงจรสมบูรณ์และหลอดไฟควรเปิดและในทางกลับกัน ดูแผนภาพด้านล่างสำหรับวงจรเต็ม
ขั้นตอนที่ 5: การกำหนดค่า I2C (Raspberry Pi)
เรียกใช้ sudo raspi-config และปฏิบัติตามคำแนะนำเพื่อติดตั้งการรองรับ i2c สำหรับแกน ARM และเคอร์เนล linux
ไปที่ตัวเลือกการเชื่อมต่อ
ขั้นตอนที่ 6: การควบคุมโดยตรงโดยไม่ต้องเขียนโปรแกรม (Raspberry Pi)
เปิดช่องหมายเลข 1 รีเลย์
i2cset -y 1 0x10 0x01 0xFF
ปิดรีเลย์ช่องที่ 1
i2cset -y 1 0x10 0x01 0x00
เปิดช่องหมายเลข 2 รีเลย์
i2cset -y 1 0x10 0x02 0xFF
ปิดรีเลย์ช่องหมายเลข 2
i2cset -y 1 0x10 0x02 0x00
เปิดช่อง3รีเลย์
i2cset -y 1 0x10 0x03 0xFF
ปิดรีเลย์ช่อง 3
i2cset -y 1 0x10 0x03 0x00
เปิดช่องหมายเลข 4 รีเลย์
i2cset -y 1 0x10 0x04 0xFF
ปิดรีเลย์ช่อง 4
i2cset -y 1 0x10 0x04 0x00
ขั้นตอนที่ 7: โปรแกรมในภาษา C (Raspberry Pi)
สร้างซอร์สโค้ดและตั้งชื่อว่า "relay.c"
#รวม
#รวม
#รวม
#define DEVCIE_ADDR 0x10
#define RELAY1 0x01
#define RELAY2 0x02
#define RELAY3 0x03
#define RELAY4 0x04
#define บน 0xFF
#define ปิด 0x00
int หลัก (เป็นโมฆะ)
{
printf("เปิดรีเลย์ใน C\n");
int fd;
int ผม = 0;
fd = การเดินสายPiI2CSetup (DEVICE_ADDR);
สำหรับ(;;){
สำหรับ (i=1; i<=4; i++)
{
printf("เปิดรีเลย์ No.$d", i);
WirePiI2CWriteReg8 (fd, i, ON);
นอนหลับ(200);
printf("ปิดรีเลย์ No.$d", i);
WirePiI2CWriteReg8 (fd, i, OFF);
นอนหลับ(200);
}
}
กลับ 0;
}
รวบรวมมัน
gcc relay.c -lwiringPi -o รีเลย์
เอ็กเซ็ค อิท
./รีเลย์
ขั้นตอนที่ 8: โปรแกรมใน Python (Raspberry Pi)
แนะนำให้ใช้โค้ดต่อไปนี้โดยใช้ Python 3 และติดตั้งไลบรารี smbus:
สร้างไฟล์ชื่อ: "relay.py" และวางโค้ดต่อไปนี้:
นำเข้าเวลาเป็น t
นำเข้า smbus
นำเข้าsys
DEVICE_BUS = 1
DEVICE_ADDR = 0x10
บัส = smbus. SMBus(DEVICE_BUS)
ในขณะที่จริง:
ลอง:
สำหรับฉันอยู่ในช่วง (1, 5):
bus.write_byte_data(DEVICE_ADDR, ผม, 0xFF)
t.นอน(1)
bus.write_byte_data(DEVICE_ADDR, ผม, 0x00)
t.นอน(1)
ยกเว้น KeyboardInterrupt เป็น e:
พิมพ์ ("ออกจากลูป")
sys.exit()
* บันทึกแล้วเรียกใช้เป็น python3:
python3 relay.py
ขั้นตอนที่ 9: โปรแกรมใน Java (Raspberry Pi)
สร้างไฟล์ใหม่ชื่อ: I2CRelay.java และวางโค้ดต่อไปนี้:
นำเข้า java.io. IOException;
นำเข้า java.util. Arrays;
นำเข้า com.pi4j.io.i2c. I2CBus;
นำเข้า com.pi4j.io.i2c. I2CDevice;
นำเข้า com.pi4j.io.i2c. I2CFactory;
นำเข้า com.pi4j.io.i2c. I2CFactory. UnsupportedBusNumberException;
นำเข้า com.pi4j.platform. PlatformAlreadyAssignedException;
นำเข้า com.pi4j.util. Console;
I2CRelay คลาสสาธารณะ {
// ที่อยู่ลงทะเบียนของรีเลย์
สาธารณะ int สุดท้ายคงที่ DOCKER_PI_RELAY_ADDR = 0x10;
//ช่องรีเลย์.
ไบต์สุดท้ายแบบคงที่สาธารณะ DOCKER_PI_RELAY_1 = (ไบต์)0x01;
ไบต์สุดท้ายแบบคงที่สาธารณะ DOCKER_PI_RELAY_2 = (ไบต์)0x02;
ไบต์สุดท้ายแบบคงที่สาธารณะ DOCKER_PI_RELAY_3 = (ไบต์)0x03;
ไบต์สุดท้ายแบบคงที่สาธารณะ DOCKER_PI_RELAY_4 = (ไบต์)0x04;
// สถานะรีเลย์
ไบต์สุดท้ายแบบคงที่สาธารณะ DOCKER_PI_RELAY_ON = (ไบต์)0xFF;
ไบต์สุดท้ายแบบคงที่สาธารณะ DOCKER_PI_RELAY_OFF = (ไบต์)0x00;
โมฆะคงที่สาธารณะหลัก (สตริง args) พ่น InterruptedException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {
คอนโซลคอนโซลสุดท้าย = คอนโซลใหม่ ();
I2CBus i2c = I2CFactory.getInstance(I2CBus. BUS_1);
อุปกรณ์ I2CDevice = i2c.getDevice (DOCKER_PI_RELAY_ADDR);
console.println("เปิดรีเลย์!");
อุปกรณ์.write(DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);
เธรดการนอนหลับ (500);
console.println("ปิดรีเลย์!");
อุปกรณ์.write(DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);
}
}
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง