Mục lục:

Tự động hóa tại nhà với Raspberry Pi sử dụng bảng chuyển tiếp: 7 bước
Tự động hóa tại nhà với Raspberry Pi sử dụng bảng chuyển tiếp: 7 bước

Video: Tự động hóa tại nhà với Raspberry Pi sử dụng bảng chuyển tiếp: 7 bước

Video: Tự động hóa tại nhà với Raspberry Pi sử dụng bảng chuyển tiếp: 7 bước
Video: 5 Dự Án Nổi Bật với Raspberry Pi trong năm 2023 2024, Tháng mười một
Anonim
Tự động hóa gia đình với Raspberry Pi sử dụng bảng chuyển tiếp
Tự động hóa gia đình với Raspberry Pi sử dụng bảng chuyển tiếp

Một số lượng lớn mọi người muốn thoải mái tuyệt vời nhưng giá cả hợp lý. Chúng ta cảm thấy lười sáng nhà vào mỗi buổi tối khi mặt trời lặn và sáng hôm sau, lại tắt đèn Hoặc bật / tắt Điều hòa / Quạt / Máy sưởi như thời tiết hoặc nhiệt độ phòng.

Một giải pháp rẻ tiền để tránh phải tắt các thiết bị khi cần thiết là ở đây. Nó là để tự động hóa ngôi nhà của bạn với chi phí tương đối rất ít bằng cách sử dụng các sản phẩm cắm và chạy đơn giản. Nó hoạt động như khi nhiệt độ tăng hoặc giảm, nó sẽ bật Máy điều hòa không khí hoặc máy sưởi tương ứng. Ngoài ra, khi cần thiết, nó sẽ giúp bật hoặc đèn trong nhà của bạn mà không cần bật chúng theo cách thủ công. Và nhiều thiết bị khác có thể được kiểm soát. Hãy để chúng tôi bắt đầu ngôi nhà của bạn.

Bước 1: Yêu cầu phần cứng

Yêu cầu phần cứng
Yêu cầu phần cứng
Yêu cầu phần cứng
Yêu cầu phần cứng
Yêu cầu phần cứng
Yêu cầu phần cứng

Chúng tôi sẽ sử dụng:

Raspberry Pi

Raspberry Pi là một máy tính chạy hệ điều hành Linux. Chiếc PC nhỏ bé này đóng vai trò quan trọng trong việc đăng ký sức mạnh, được sử dụng như một phần của các bài tập điện tử và các hoạt động của PC như bảng tính, xử lý văn bản, lướt web, email và trò chơi

I2C Shield hoặc I2C Header

INPI2 (bộ điều hợp I2C) cung cấp cho Raspberry Pi 2/3 cổng I²C để sử dụng với nhiều thiết bị I2C

Bộ điều khiển chuyển tiếp I2C MCP23008

MCP23008 từ Microchip là một bộ mở rộng cổng tích hợp điều khiển tám rơle thông qua bus I²C. Bạn có thể thêm nhiều rơ le, I / O kỹ thuật số, bộ chuyển đổi tương tự sang kỹ thuật số, cảm biến và các thiết bị khác bằng cách sử dụng cổng mở rộng I²C tích hợp

Cảm biến nhiệt độ MCP9808

MCP9808 là cảm biến nhiệt độ có độ chính xác cao cung cấp các tín hiệu cảm biến tuyến tính, đã được hiệu chuẩn ở định dạng kỹ thuật số, I²C

Cảm biến độ sáng TCS34903

TCS34903 là sản phẩm thuộc họ cảm biến màu cung cấp giá trị của thành phần RGB của ánh sáng và màu sắc

Cáp kết nối I2C

Cáp kết nối I2C là cáp 4 dây dùng để giao tiếp I2C giữa hai thiết bị I2C được kết nối qua nó

Bộ chuyển đổi micro USB

Để tăng sức mạnh cho Raspberry Pi, chúng ta cần có cáp Micro USB

Bộ đổi nguồn 12V cho bảng Relay

MCP23008 Bộ điều khiển rơ le hoạt động trên nguồn ngoài 12V và điều này có thể được cung cấp bằng Bộ chuyển đổi nguồn 12V

Bạn có thể mua sản phẩm bằng cách nhấp vào chúng. Ngoài ra, bạn có thể tìm thấy nhiều tài liệu tuyệt vời hơn tại Dcube Store.

Bước 2: Kết nối phần cứng

Kết nối phần cứng
Kết nối phần cứng
Kết nối phần cứng
Kết nối phần cứng
Kết nối phần cứng
Kết nối phần cứng
Kết nối phần cứng
Kết nối phần cứng

Các kết nối cần thiết (tham khảo hình ảnh) như sau:

  1. Điều này sẽ hoạt động trên I2C. Lấy một tấm chắn I2C cho Raspberry pi và nhẹ nhàng kết nối nó với các chân GPIO của Raspberry Pi.
  2. Kết nối một đầu của cáp I2C với cổng trong của TCS34903 và đầu kia với tấm chắn I2C.
  3. Kết nối đầu ra của cảm biến MCP9808 với đầu ra của TCS34903 bằng cáp I2C.
  4. Kết nối đầu trong của MCP23008 với đầu ra của cảm biến MCP9808 bằng cáp I2C.
  5. Ngoài ra, hãy kết nối cáp Ethernet với Raspberry Pi. Bộ định tuyến Wi-Fi cũng có thể được sử dụng cho tương tự.
  6. Sau đó, cấp nguồn cho Raspberry Pi bằng bộ chuyển đổi Micro USB và bảng tiếp điện MCP23008 bằng bộ chuyển đổi 12V.
  7. Cuối cùng, kết nối đèn với rơ le thứ nhất và quạt hoặc lò sưởi với rơ le thứ hai. Bạn có thể mở rộng mô-đun hoặc có thể kết nối nhiều thiết bị hơn với các rơ le.

Bước 3: Giao tiếp bằng Giao thức I2C

Để bật Raspberry Pi I2C, hãy tiến hành như đã đề cập bên dưới:

  1. Trong terminal, gõ lệnh sau để mở cài đặt cấu hình: sudo raspi-config
  2. Chọn “Tùy chọn nâng cao” tại đây.
  3. Chọn “I2C” và nhấp vào “Có”.
  4. Khởi động lại hệ thống để thiết lập nó theo các thay đổi được thực hiện bằng lệnh khởi động lại.

Bước 4: Lập trình mô-đun

Phần thưởng của việc sử dụng Raspberry Pi là cung cấp cho bạn sự linh hoạt trong việc chọn ngôn ngữ lập trình mà bạn muốn lập trình để giao diện thiết bị cảm biến với Raspberry Pi. Khai thác lợi thế này của Raspberry Pi, chúng tôi đang trình diễn ở đây khả năng lập trình của nó trong Java.

Để thiết lập môi trường Java, hãy cài đặt “pi4j libraryby” từ https://pi4j.com/1.2/index.html Pi4j là Thư viện đầu vào / đầu ra của Java cho Raspberry Pi. Một phương pháp dễ dàng và được ưu tiên nhất để cài đặt “pi4j thư viện”là thực thi lệnh được đề cập trực tiếp trong Raspberry Pi của bạn:

curl -s get.pi4j.com | sudo bash

HOẶC

curl -s get.pi4j.com

nhập com.pi4j.io.i2c. I2CBus; nhập com.pi4j.io.i2c. I2CDevice; nhập com.pi4j.io.i2c. I2CFactory; nhập java.io. IOException; class MCP23008 {public static void main (String args ) ném Exception {int status, value, value1 = 0x00; // Tạo I2C bus I2CBus bus = I2CFactory.getInstance (I2CBus. BUS_1); // Lấy thiết bị I2C, MCP23008 địa chỉ I2C là 0x20 (32) I2CDevice device = bus.getDevice (0x20); // Lấy thiết bị I2C, MCP9808 Địa chỉ I2C là 0x18 (24) I2CDevice MCP9808 = bus.getDevice (0x18); // Lấy thiết bị I2C, TCS34903 Địa chỉ I2C là 0x39 (55) I2CDevice TCS34903 = bus.getDevice (0x39); // Đặt thanh ghi thời gian chờ = 0xff (255), thời gian chờ = 2,78 ms TCS34903.write (0x83, (byte) 0xFF); // Cho phép Truy cập kênh IR TCS34903.write (0xC0, (byte) 0x80); // Đặt thanh ghi Atime thành 0x00 (0), số đếm tối đa = 65535 TCS34903.write (0x81, (byte) 0x00); // BẬT nguồn, bật ADC, Bật chờ đã bật TCS34903.write (0x80, (byte) 0x0B); Thread.sleep (250); // Đọc 8 byte dữ liệu với dữ liệu clear / ir LSB byte đầu tiên data1 = new byte [8]; // Đọc dữ liệu nhiệt độ byte data = new byte [2]; status = device.read (0x09); // Đã cấu hình tất cả các chân là OUTPUT device.write (0x00, (byte) 0x00); Thread.sleep (500); while (true) {MCP9808.read (0x05, data, 0, 2); // Chuyển đổi dữ liệu int temp = ((data [0] & 0x1F) * 256 + (data [1] & 0xFF)); if (temp> 4096) {temp - = 8192; } double cTemp = temp * 0,0625; System.out.printf (“Nhiệt độ theo độ C là:%.2f C% n”, cTemp); TCS34903.read (0x94, data1, 0, 8); double ir = ((data1 [1] & 0xFF) * 256) + (data1 [0] & 0xFF) * 1.00; double red = ((data1 [3] & 0xFF) * 256) + (data1 [2] & 0xFF) * 1.00; đôi màu xanh lá cây = ((data1 [5] & 0xFF) * 256) + (data1 [4] & 0xFF) * 1.00; double blue = ((data1 [7] & 0xFF) * 256) + (data1 [6] & 0xFF) * 1.00; // Tính độ rọi kép độ rọi = (-0.32466) * (red) + (1.57837) * (green) + (-0.73191) * (blue); System.out.printf ("Độ rọi là:%.2f lux% n", độ rọi); if (độ rọi 30) {value = value1 | (0x01); } else {value = value1 & (0x02); } device.write (giá trị 0x09, (byte)); Thread.sleep (300); }}}

Bước 5: Tạo tệp và chạy mã

  1. Để tạo một tệp mới có thể viết / sao chép mã, lệnh sau sẽ được sử dụng: sudo nano FILE_NAME.javaEg. sudo nano MCP23008.java
  2. Sau khi tạo tệp, chúng ta có thể nhập mã vào đây.
  3. Sao chép mã được cung cấp ở bước trước và dán nó vào cửa sổ tại đây.
  4. Nhấn Ctrl + X rồi nhấn "y" để thoát.
  5. Sau đó, biên dịch mã bằng lệnh sau: pi4j FILE_NAME.javaEg. pi4j MCP23008.java
  6. Nếu không có lỗi, hãy chạy chương trình bằng lệnh được đề cập dưới đây: pi4j FILE_NAMEEg. pi4j MCP23008.java

Bước 6: Ứng dụng

Hệ thống này cho phép bạn điều khiển các thiết bị mà không cần đến các công tắc trên tường. Điều này có khả năng mở rộng vì thời gian bật hoặc tắt thiết bị được lên lịch tự động. Có một số ứng dụng của mô-đun này từ nhà ở đến công nghiệp, bệnh viện, nhà ga và nhiều nơi khác có thể được tự động hóa một cách dễ dàng và giá cả phải chăng bằng các thành phần plug-and-play của nó.

Bước 7: Tài nguyên

Để biết thêm thông tin về TSL34903, Bộ điều khiển rơ le MCP9808 MCP23008, hãy xem các liên kết dưới đây:

  • Bảng dữ liệu TSL34903
  • Bảng dữ liệu MCP9808
  • Bảng dữ liệu MCP23008

Đề xuất: