Mục lục:
- Quân nhu
- Bước 1: Biết về Bảng chuyển tiếp kênh DockerPi Series 4
- Bước 2: Tính năng
- Bước 3: Bản đồ địa chỉ thiết bị
- Bước 4: Kết nối Rơ le với Giá đỡ bóng đèn được cung cấp bởi Nguồn điện chính
- Bước 5: Định cấu hình I2C (Raspberry Pi)
- Bước 6: Điều khiển trực tiếp mà không cần lập trình (Raspberry Pi)
- Bước 7: Chương trình bằng ngôn ngữ C (Raspberry Pi)
- Bước 8: Chương trình bằng Python (Raspberry Pi)
- Bước 9: Chương trình trong Java (Raspberry Pi)
Video: Hệ thống điều khiển đèn: 9 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Gần đây, tôi đã tìm hiểu về Bộ vi điều khiển và các thiết bị dựa trên IOT cho mục đích Nghiên cứu bảo mật. Vì vậy, tôi nghĩ đến việc xây dựng một hệ thống tự động hóa nhỏ tại nhà để thực hành. Tôi vẫn chưa hoàn thành việc này, nhưng để khởi động, tôi sẽ chia sẻ cách tôi sử dụng Raspberry Pi 2 và một số thành phần điện khác để điều khiển ánh sáng trong phòng của mình trong bài đăng này. Ngoài ra, tôi sẽ không nói về Thiết lập ban đầu cho Raspberry ở đây, bạn có thể tìm thấy nhiều hướng dẫn khác nhau cho điều đó.
Nhưng trong dự án này, mình sẽ giới thiệu đến các bạn sản phẩm docker pi series này.
Quân nhu
Danh sách thành phần:
- 1 x Raspberry Pi 3B + / 3B / Zero / Zero W / 4B /
- 1 x 16 GB thẻ TF loại 10
- 1 x Bảng chuyển tiếp kênh 4 kênh DockerPi (HAT)
- Nguồn điện 1 x [email protected] từ 52Pi
- 4 x dải ánh sáng
- 1 x đầu nối DC
- Nguồn điện 1 x 12V cho các dải đèn.
- một số dây.
Bước 1: Biết về Bảng chuyển tiếp kênh DockerPi Series 4
DockerPi 4 Channel Relay là một thành viên của DockerPi Series, được sử dụng phổ biến hơn trong các ứng dụng IOT.
DockerPi 4 Channel Relay có thể chuyển tiếp AC / DC, thay vì các công tắc truyền thống, để đạt được nhiều ý tưởng hơn. DockerPi 4 Channel Relay có thể xếp chồng lên đến 4 và có thể xếp chồng lên nhau với bảng mở rộng DockerPi khác. Nếu bạn cần chạy trong thời gian dài, chúng tôi cũng khuyên bạn nên sử dụng bảng mở rộng DockerPi Power của chúng tôi để cung cấp thêm năng lượng.
LƯU Ý THẬN TRỌNG Trước khi tiếp tục, tôi muốn CẢNH BÁO cho bạn về SỰ NGUY HIỂM khi thử nghiệm với “Điện chính”. Vì vậy, vui lòng KHÔNG CHẤP NHẬN làm bất cứ điều gì được đề cập trong bài viết này nếu bạn không hiểu mình đang làm gì hoặc tốt hơn là nhờ sự trợ giúp của một số thợ điện có kinh nghiệm. Bắt đầu nào.
Bước 2: Tính năng
- Dòng DockerPi
- Có thể lập trình
- Kiểm soát trực tiếp (không cần lập trình)
- Mở rộng các Ghim GPIO
- 4 kênh chuyển tiếp
- 4 Hỗ trợ trình bổ sung thay thế I2C
- Hỗ trợ đèn LED trạng thái chuyển tiếp
- Hỗ trợ 3A 250V AC
- 3A 30V DC
- Có thể xếp chồng với bảng xếp chồng khác Độc lập với phần cứng của bo mạch chủ (yêu cầu hỗ trợ I2C)
Bước 3: Bản đồ địa chỉ thiết bị
Bảng này có địa chỉ thanh ghi riêng biệt và bạn chỉ có thể điều khiển từng rơle bằng một lệnh.
Những yêu cầu khác:
Hiểu biết cơ bản về Python hoặc C hoặc shell hoặc Java hoặc bất kỳ ngôn ngữ nào khác (Tôi sẽ sử dụng C, python, shell và java)
- Hiểu biết cơ bản về hệ thống Linux
- Sự hiện diện của Tâm trí
Bây giờ, trước khi tiếp tục, bạn cần hiểu các thành phần điện mà chúng tôi sẽ sử dụng:
1. Tiếp sức:
Rơ le là một thiết bị điện thường được sử dụng để điều khiển điện áp cao sử dụng điện áp rất thấp làm Đầu vào. Điều này bao gồm một cuộn dây quấn quanh một cực và hai nắp kim loại nhỏ (nút) được sử dụng để đóng mạch. Một trong những nút là cố định và nút khác có thể di chuyển được. Bất cứ khi nào một dòng điện đi qua cuộn dây, nó sẽ tạo ra một từ trường và thu hút nút chuyển động về phía nút tĩnh và mạch hoàn thành. Vì vậy, chỉ bằng cách đặt điện áp nhỏ để cấp nguồn cho cuộn dây, chúng ta có thể thực sự hoàn thành mạch cho điện áp cao đi qua. Ngoài ra, vì nút tĩnh không được kết nối vật lý với cuộn dây nên rất ít khả năng Bộ vi điều khiển cấp nguồn cho cuộn dây bị hỏng nếu có sự cố.
Bước 4: Kết nối Rơ le với Giá đỡ bóng đèn được cung cấp bởi Nguồn điện chính
Bây giờ đến phần khó, Chúng tôi sẽ kết nối rơ le với giá đỡ Bóng đèn được cung cấp bởi nguồn điện Chính. Tuy nhiên, trước tiên tôi muốn cung cấp cho bạn một ý tưởng ngắn gọn về cách các đèn được BẬT và TẮT thông qua nguồn điện trực tiếp.
Bây giờ, khi bóng đèn được kết nối với nguồn cung cấp chính, chúng ta thường làm điều này bằng cách nối hai dây vào bóng đèn. một trong các dây là dây “Trung tính” và dây còn lại là dây “Âm” thực sự mang dòng điện, cũng có một công tắc được thêm vào toàn mạch để điều khiển cơ chế BẬT và TẮT. Vì vậy, khi kết nối swith (Hoặc BẬT), dòng điện chạy qua bóng đèn và dây trung tính, hoàn thành mạch. Thao tác này sẽ BẬT bóng đèn. Khi bật công tắc, nó sẽ ngắt mạch và bóng đèn TẮT. Dưới đây là một sơ đồ mạch nhỏ để giải thích điều này:
Bây giờ, đối với thử nghiệm của chúng tôi, chúng tôi sẽ cần làm cho "Dây âm" đi qua rơ-le của chúng tôi để ngắt mạch và điều khiển dòng điện bằng cách sử dụng chuyển mạch của rơ-le. Vì vậy, khi rơ le BẬT, nó sẽ hoàn thành mạch và Bóng đèn sẽ BẬT và ngược lại. Tham khảo sơ đồ dưới đây cho toàn mạch.
Bước 5: Định cấu hình I2C (Raspberry Pi)
Chạy sudo raspi-config và làm theo lời nhắc để cài đặt hỗ trợ i2c cho nhân ARM và nhân linux
Đi tới Tùy chọn giao diện
Bước 6: Điều khiển trực tiếp mà không cần lập trình (Raspberry Pi)
Bật chuyển tiếp kênh số 1
i2cset -y 1 0x10 0x01 0xFF
Tắt chuyển tiếp kênh số 1
i2cset -y 1 0x10 0x01 0x00
Bật rơ le kênh số 2
i2cset -y 1 0x10 0x02 0xFF
Tắt chuyển tiếp kênh số 2
i2cset -y 1 0x10 0x02 0x00
Bật rơ le kênh số 3
i2cset -y 1 0x10 0x03 0xFF
Tắt chuyển tiếp kênh số 3
i2cset -y 1 0x10 0x03 0x00
Bật rơ le kênh số 4
i2cset -y 1 0x10 0x04 0xFF
Tắt chuyển tiếp kênh số 4
i2cset -y 1 0x10 0x04 0x00
Bước 7: Chương trình bằng ngôn ngữ C (Raspberry Pi)
Tạo mã nguồn và đặt tên là "relay.c"
#bao gồm
#bao gồm
#bao gồm
#define DEVCIE_ADDR 0x10
#define RELAY1 0x01
#define RELAY2 0x02
#define RELAY3 0x03
#define RELAY4 0x04
#define ON 0xFF
#define TẮT 0x00
int main (void)
{
printf ("Bật Rơle trong C / n");
int fd;
int i = 0;
fd = wiringPiI2CSetup (DEVICE_ADDR);
vì(;;){
cho (i = 1; i <= 4; i ++)
{
printf ("bật relay số $ d", i);
wiringPiI2CWriteReg8 (fd, i, ON);
ngủ (200);
printf ("tắt rơ le số $ d", i);
wiringPiI2CWriteReg8 (fd, i, OFF);
ngủ (200);
}
}
trả về 0;
}
Biên dịch nó
gcc relay.c -lwiringPi -o relay
Thực thi nó
./relay
Bước 8: Chương trình bằng Python (Raspberry Pi)
Đoạn mã sau được khuyến nghị thực thi bằng Python 3 và cài đặt thư viện smbus:
Tạo một tệp có tên là: "relay.py" và dán mã sau:
thời gian nhập khẩu là t
nhập khẩu smbus
nhập hệ thống
DEVICE_BUS = 1
DEVICE_ADDR = 0x10
bus = smbus. SMBus (DEVICE_BUS)
trong khi Đúng:
cố gắng:
cho tôi trong phạm vi (1, 5):
bus.write_byte_data (DEVICE_ADDR, i, 0xFF)
t.sleep (1)
bus.write_byte_data (DEVICE_ADDR, i, 0x00)
t.sleep (1)
ngoại trừ KeyboardInterrupt as e:
print ("Thoát vòng lặp")
sys.exit ()
* Lưu nó và sau đó chạy dưới dạng python3:
python3 relay.py
Bước 9: Chương trình trong Java (Raspberry Pi)
Tạo một tệp mới có tên: I2CRelay.java và dán mã sau:
nhập java.io. IOException;
nhập java.util. Arrays;
nhập com.pi4j.io.i2c. I2CBus;
nhập com.pi4j.io.i2c. I2CDevice;
nhập com.pi4j.io.i2c. I2CFactory;
nhập com.pi4j.io.i2c. I2CFactory. UnsupportedBusNumberException;
nhập com.pi4j.platform. PlatformAlreadyAssignedException;
nhập com.pi4j.util. Console;
lớp công khai I2CRelay {
// địa chỉ thanh ghi của relay.
public static final int DOCKER_PI_RELAY_ADDR = 0x10;
// kênh của rơ le.
byte cuối cùng tĩnh công khai DOCKER_PI_RELAY_1 = (byte) 0x01;
byte cuối cùng tĩnh công khai DOCKER_PI_RELAY_2 = (byte) 0x02;
byte cuối cùng tĩnh công khai DOCKER_PI_RELAY_3 = (byte) 0x03;
public static byte cuối cùng DOCKER_PI_RELAY_4 = (byte) 0x04;
// Trạng thái chuyển tiếp
public static byte cuối cùng DOCKER_PI_RELAY_ON = (byte) 0xFF;
public static byte cuối cùng DOCKER_PI_RELAY_OFF = (byte) 0x00;
public static void main (String args) ném InterruptException, PlatformAlreadyAssignedException, IOException, UnsupportedBusNumberException {
bàn điều khiển cuối cùng Console = new Console ();
I2CBus i2c = I2CFactory.getInstance (I2CBus. BUS_1);
I2CDevice device = i2c.getDevice (DOCKER_PI_RELAY_ADDR);
console.println ("Bật Relay!");
device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_ON);
Thread.sleep (500);
console.println ("Tắt Relay!");
device.write (DOCKER_PI_RELAY_1, DOCKER_PI_RELAY_OFF);
}
}
Đề xuất:
Ô tô được điều khiển từ xa - Được điều khiển bằng Bộ điều khiển Xbox 360 không dây: 5 bước
Ô tô được điều khiển từ xa - Được điều khiển bằng Bộ điều khiển Xbox 360 không dây: Đây là các hướng dẫn để tạo ô tô được điều khiển từ xa của riêng bạn, được điều khiển bằng bộ điều khiển Xbox 360 không dây
ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước
ESP8266 RGB LED STRIP Điều khiển WIFI | NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi | Điều khiển bằng điện thoại thông minh RGB LED STRIP: Xin chào các bạn trong hướng dẫn này, chúng ta sẽ học cách sử dụng gật đầu hoặc esp8266 làm điều khiển từ xa IR để điều khiển dải LED RGB và Nodemcu sẽ được điều khiển bằng điện thoại thông minh qua wifi. Vì vậy, về cơ bản bạn có thể điều khiển DÂY CHUYỀN LED RGB bằng điện thoại thông minh của mình
Tự làm bộ điều khiển bay điều khiển đa hệ điều khiển Arduino: 7 bước (có hình ảnh)
Tự làm bộ điều khiển máy bay đa năng điều khiển Arduino: Dự án này là tạo ra một bảng logic máy bay không người lái đa năng linh hoạt nhưng tùy chỉnh dựa trên Arduino và Multiwii
Bộ điều khiển kỹ thuật số cho hệ thống treo khí bằng Arduino và Điều khiển từ xa trên điện thoại thông minh: 7 bước (có hình ảnh)
Bộ điều khiển kỹ thuật số cho hệ thống treo khí bằng Arduino và Điều khiển từ xa trên điện thoại thông minh: Xin chào tất cả mọi người. đây cũng là lần hướng dẫn đầu tiên của tôi nên gấu w
Bộ điều khiển đèn giao thông Arduino W / Điều khiển từ xa: 10 bước
Bộ điều khiển đèn giao thông Arduino W / Điều khiển từ xa: Tôi có một đèn giao thông mà tôi đang sửa lại. Việc duy nhất cần làm là xây dựng bộ điều khiển cho các mẫu tín hiệu của đèn. Để tạo ra sự thay đổi, tôi đã kết hợp một điều khiển từ xa. Đây cũng là cơ hội hoàn hảo để tôi t