Mục lục:

IOT123 - I2C 2CH RELAY BRICK: 5 bước (có hình ảnh)
IOT123 - I2C 2CH RELAY BRICK: 5 bước (có hình ảnh)

Video: IOT123 - I2C 2CH RELAY BRICK: 5 bước (có hình ảnh)

Video: IOT123 - I2C 2CH RELAY BRICK: 5 bước (có hình ảnh)
Video: IOT123 - ICOS10: STRUCTURE 2024, Tháng sáu
Anonim
IOT123 - I2C GẠCH CHẠY 2CH
IOT123 - I2C GẠCH CHẠY 2CH
IOT123 - I2C GẠCH CHẠY 2CH
IOT123 - I2C GẠCH CHẠY 2CH
IOT123 - I2C GẠCH CHẠY 2CH
IOT123 - I2C GẠCH CHẠY 2CH
IOT123 - I2C GẠCH CHẠY 2CH
IOT123 - I2C GẠCH CHẠY 2CH

IOT123 BRICKS là các đơn vị mô-đun DIY có thể kết hợp với các GẠCH IOT123 khác, để thêm chức năng cho một nút hoặc thiết bị đeo được. Chúng được dựa trên các tấm ván hình vuông inch, hai mặt với kết nối với nhau thông qua các lỗ.

Một số GẠCH này dự kiến sẽ nằm trên nhiều nút (MCU chính - ESP8266 hoặc ATTINY84) trên một trang web. MCU không cần biết trước về mục đích của cảm biến hoặc nhu cầu phần mềm. Nó quét các nút I2C sau đó yêu cầu kết xuất thuộc tính (dữ liệu cảm biến) từ mỗi nô lệ. Các GẠCH này cung cấp 5.0V, 3.3V và một dòng AUX khác có thể tùy chỉnh.

GẠCH RELAY I2C 2CH này mở rộng chức năng của GẠCH I2C KY019 và có hai thuộc tính đọc / ghi:

2CH RELAYS [0] (đúng / sai)

2CH RELAYS [1] (đúng / sai)

Các lỗ thông gần với ATTINY85 đã không được sử dụng, để kích hoạt một bộ lập trình chân pogo trong khi DIP8 được hàn vào PCB. Một phần trừu tượng hơn nữa, đóng gói GẠCH trong các hình trụ nhỏ cắm vào trung tâm D1M WIFI BLOCK, bơm các giá trị đến máy chủ MQTT, đang được phát triển.

Bước 1: Vật liệu và công cụ

Vật liệu và Công cụ
Vật liệu và Công cụ
Vật liệu và Công cụ
Vật liệu và Công cụ
Vật liệu và Công cụ
Vật liệu và Công cụ

Có đầy đủ Bill of Material and Sourcing list.

  1. Chuyển tiếp 2 kênh (1)
  2. ATTINY85 20PU (1)
  3. Protoboard 1 "hai mặt (1)
  4. Tiêu đề nam 90º (3P, 3P)
  5. Tiêu đề nam (2P, 2P)
  6. Jumper Shunt (1)
  7. Dây móc (~ 7)
  8. Hàn và sắt (1)

Bước 2: Chuẩn bị ATTINY85

Chuẩn bị ATTINY85
Chuẩn bị ATTINY85
Chuẩn bị ATTINY85
Chuẩn bị ATTINY85
Chuẩn bị ATTINY85
Chuẩn bị ATTINY85

LƯU Ý: Nếu có ý định tích hợp Crouton, vui lòng sử dụng thư viện từ đây và sử dụng ví dụ được cài đặt "attiny_2ch_relay".

AttinyCore từ Trình quản lý hội đồng là cần thiết. Ghi bộ nạp khởi động "EEPROM Retained", "8mHZ Internal" (tất cả cấu hình hiển thị ở trên).

Kho mã có thể được tìm thấy ở đây.

Bạn có thể tìm thấy mã ZIP của thư viện tại đây.

Hướng dẫn "Nhập thư viện ZIP" tại đây.

Sau khi thư viện được cài đặt, bạn có thể mở ví dụ "attiny_2ch_relay".

Để tải chương trình cơ sở lên ATTINY85, bạn có thể tìm thêm chi tiết trong các hướng dẫn sau:

www.instructables.com/id/How-to-Program-A…

www.instructables.com/id/Programming-the-…

www.instructables.com/id/Programming-the-…

www.instructables.com/id/Programming-the-…

Tốt nhất hãy kiểm tra qua breadboard trước khi tiếp tục.

Nếu bạn hiện có CÁC CẢM BIẾN LẮP RÁP, hãy đảm bảo địa chỉ phụ khác nhau trên tổ hợp Máy chủ SENSOR / MCU, tức là tất cả các tác nhân Chuyển tiếp có thể có cùng một địa chỉ miễn là bạn chỉ có một tác nhân Chuyển tiếp trên MCU / nút.

Bước 3: Lắp ráp mạch

Lắp ráp mạch
Lắp ráp mạch
Lắp ráp mạch
Lắp ráp mạch
Lắp ráp mạch
Lắp ráp mạch
  1. Ở mặt trước, lắp các thành phần ATTINY85 (1), tiêu đề nam 3P 90deg (2) (3), tiêu đề nam 3P (4) (5) và hàn ở mặt sau.
  2. Ở phía sau, vạch một dây màu vàng từ YELLOW1 đến YELLOW2 và hàn.
  3. Ở phía sau, vạch một dây màu cam từ ORANGE1 đến ORANGE2 và hàn.
  4. Ở phía sau, vạch một dây màu xanh lam từ BLUE1 đến BLUE2 và hàn.
  5. Ở phía sau, vạch một dây màu xanh lá cây từ GREEN1 đến GREEN2 và hàn.
  6. Ở phía sau, vạch một dây đen từ BLACK1 đến BLACK2 và hàn.
  7. Ở phía sau, vạch một dây đen từ BLACK3 đến BLACK4 và hàn.
  8. Ở phía sau, vạch một dây màu đỏ từ RED1 đến RED2 và hàn.
  9. Ở phía sau, vạch một dây trần từ RED3 đến RED4 và hàn.
  10. Ở phía sau, vạch một dây trần từ SILVER1 đến SILVER2 và hàn.
  11. Thêm một jumper trên đường 5V hoặc 3V3.

Giờ đây, rơ le có thể được kết nối trực tiếp qua các chân của nó với PCB hoặc qua dây dẫn, đến các điểm được hiển thị trong hợp đồng chân.

Bước 4: Kiểm tra

Thử nghiệm
Thử nghiệm
Thử nghiệm
Thử nghiệm
Thử nghiệm
Thử nghiệm
Thử nghiệm
Thử nghiệm

Một số GẠCH này dự kiến sẽ nằm trên nhiều nút (MCU - ESP8266 hoặc ATTINY84) trong một môi trường. Đây là một bài kiểm tra đơn vị: gửi các lệnh I2C từ UNO đến ATTINY để mở hoặc đóng các rơle.

Trước đây chúng tôi đã xây dựng I2C SHIELD cho Arduino.

Nếu bạn muốn breadboard nó thay vào đó:

  1. Kết nối 5.0V trên UNO với VCC trên BRICK.
  2. Kết nối GND trên UNO với GND trên BRICK.
  3. Kết nối A5 trên UNO với SCL trên BRICK.
  4. Kết nối A4 trên UNO với SDA trên BRICK.
  5. Kết nối một điện trở kéo lên 4K7 từ SDA đến VCC.
  6. Kết nối một điện trở kéo lên 4K7 từ SCL đến VCC.

Đang chạy thử nghiệm

  1. Kết nối UNO của bạn với PC Dev của bạn bằng USB.
  2. Tải mã lên UNO.
  3. Mở Bảng điều khiển Arduino.
  4. Chọn 9600 baud (khởi động lại UNO và mở lại bảng điều khiển nếu bạn phải làm như vậy).
  5. Địa chỉ của nô lệ sẽ được in ra bảng điều khiển.
  6. Khi, nhập vào hộp gửi 2 0: 1 (so 15 2 0: 1), và rơle CH1 bật.

  7. Khi, nhập vào hộp gửi 2 0: 0 (so 15 2 0: 0), và rơle CH1 tắt.
  8. Khi nào, hãy nhập vào hộp gửi 2 1: 1 (vì vậy 15 2 1: 1) và rơle CH2 bật.
  9. Khi, nhập vào hộp gửi 2 1: 0 (so 15 2 0: 0), và rơ le CH2 sẽ tắt.

Các lệnh adhoc I2C BRICK cho các nô lệ từ UNO chính

#bao gồm
const byte _num_chars = 32;
char _reiled_chars [_num_chars]; // một mảng để lưu trữ dữ liệu đã nhận
boolean _has_new_data = false;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println ("ASSIMILATE IOT ACTOR / SENSOR EEPROM EDITOR");
Serial.println ("đảm bảo chọn dòng mới trong cửa sổ giao diện điều khiển");
Serial.println ();
Serial.println ("ĐỊA CHỈ 1 XÁC NHẬN METADATA N / A (CHO M2M)");
Serial.println ("ĐỊA CHỈ 2 ACTOR LỆNH");
Serial.println ();
Serial.println ("CÁC ĐỊA CHỈ TRÊN XE BUÝT:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int device_count = 0;
for (địa chỉ byte = 8; địa chỉ <127; địa chỉ ++)
{
Wire.beginTransmission (địa chỉ);
const byte error = Wire.endTransmission ();
nếu (lỗi == 0)
{
Serial.println (địa chỉ);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
byte tĩnh ndx = 0;
char end_marker = '\ n';
char rc;
while (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read ();
nếu (rc! = end_marker) {
_receive_chars [ndx] = rc;
ndx ++;
if (ndx> = _num_chars) {
ndx = _num_chars - 1;
}
}
khác {
_reiled_chars [ndx] = '\ 0'; // kết thúc chuỗi
ndx = 0;
_has_new_data = true;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const String accept_string = String (_receive_chars);
if (_has_new_data == true) {
int idx1 = got_string.indexOf ('');
Địa chỉ chuỗi = got_string.substring (0, idx1);
int address_int = address.toInt ();
if (address_int <8 || address_int> 127) {
Serial.println ("ĐẦU VÀO ĐỊA CHỈ KHÔNG HỢP LỆ:");
Serial.println (địa chỉ);
trở lại;
}
int idx2 = got_string.indexOf ('', idx1 + 1);
Mã chuỗi;
if (idx2 == -1) {
code = got_string.substring (idx1 + 1);
}khác{
code = got_string.substring (idx1 + 1, idx2 + 1);
}
int code_int = code.toInt ();
if (code_int <0 || code_int> 5) {
Serial.println ("ĐẦU VÀO MÃ KHÔNG HỢP LỆ:");
Serial.println (mã);
trở lại;
}
bool has_parameter = idx2> -1;
Tham số chuỗi;
if (has_parameter) {
tham số = accept_string.substring (idx2 + 1, idx2 + 17); // tối đa 16 ký tự
if (tham số.length () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = false;
trở lại;
}
}khác{
if (code_int> 1) {
Serial.println ("BẮT BUỘC THAM SỐ!");
_has_new_data = false;
trở lại;
}
}
Serial.println ();
Serial.print ("đầu vào orig =");
Serial.println (chuỗi_nhận_được);
Serial.print ("address =");
Serial.println (địa chỉ);
Serial.print ("code =");
Serial.println (mã);
Serial.print ("tham số =");
Serial.println (tham số);
// GỬI QUA I2C
Wire.beginTransmission (address_int);
Wire.write (mã_int);
if (has_parameter) {
tham số.trim ();
strcpy (param_buf, tham số.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Serial.println ();
Serial.println ("SENT VIA I2C!");
Serial.println ();
Serial.println ("");
_has_new_data = false;
}
}

xem rawuno_i2c_command_input.ino được lưu trữ với ❤ bởi GitHub

Bước 5: Các bước tiếp theo

Bước tiếp theo
Bước tiếp theo
Bước tiếp theo
Bước tiếp theo
Bước tiếp theo
Bước tiếp theo
Bước tiếp theo
Bước tiếp theo

ASSIMILATE ACTOR tiếp theo: 2CH RELAY sử dụng khối hình này có cấu hình tự động cho Crouton thông qua siêu dữ liệu đã được cài đặt trong ATTINY85 tại đây. Gói JSON được gửi đến Crouton được gửi qua phần sụn mới nhất cho ICOS10. Bạn có thể thực hiện Proof-of-concept trên một ESP8266 thông thường, nếu bản dựng hiện tại là quá nhiều.

Bản phác thảo UNO được sử dụng trong Thử nghiệm có chức năng lưu địa chỉ phụ mới vào EEPROM trên ATTINY85, nếu bạn có xung đột trên bus I2C mục tiêu của mình. Một số sơ đồ đã được thêm vào, nhưng có nhiều cách khác nhau để nối mạch hạ lưu tùy thuộc vào những gì bạn muốn đạt được, vì vậy tôi sẽ để lại điều đó cho bạn:)

Đề xuất: