Mục lục:

Hệ thống điều khiển đèn: 9 bước
Hệ thống điều khiển đèn: 9 bước

Video: Hệ thống điều khiển đèn: 9 bước

Video: Hệ thống điều khiển đèn: 9 bước
Video: Hướng Dẫn Sử Dụng Các Tính Năng Cơ Bản Trên Xe Ô Tô | Phần 2: Công Tắc Đèn, Gạt Mưa ... | Auto World 2024, Tháng mười một
Anonim
Hệ thống điều khiển đèn
Hệ thống điều khiển đèn

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

Biết về Bảng chuyển tiếp kênh DockerPi Series 4
Biết về Bảng chuyển tiếp kênh DockerPi Series 4
Biết về Bảng chuyển tiếp kênh DockerPi Series 4
Biết về Bảng chuyển tiếp kênh DockerPi Series 4
Biết về Bảng chuyển tiếp kênh DockerPi Series 4
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

Đặc trưng
Đặc trưng
Đặc trưng
Đặc trưng
Đặc trưng
Đặc trư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ản đồ địa chỉ thiết bị
Bản đồ địa chỉ thiết bị
Bản đồ địa chỉ thiết bị
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

Kết nối Rơ le với Giá đỡ bóng đèn được cung cấp bởi Nguồn điện chính
Kết nối Rơ le với Giá đỡ bóng đèn được cung cấp bởi Nguồn điện chính
Kết nối Rơ le với Giá đỡ bóng đèn được cung cấp bởi Nguồn điện chính
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)

Cấu hình I2C (Raspberry Pi)
Cấu hình I2C (Raspberry Pi)
Cấu hình I2C (Raspberry Pi)
Cấu hình I2C (Raspberry Pi)
Cấu hình I2C (Raspberry Pi)
Cấu hình I2C (Raspberry Pi)
Cấu hình I2C (Raspberry Pi)
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: