Mục lục:

IOT123 - I2C BRICK MASTER JIG: 4 bước
IOT123 - I2C BRICK MASTER JIG: 4 bước

Video: IOT123 - I2C BRICK MASTER JIG: 4 bước

Video: IOT123 - I2C BRICK MASTER JIG: 4 bước
Video: How LEGO Minifigures are made 2024, Tháng mười một
Anonim
IOT123 - I2C GẠCH MASTER JIG
IOT123 - I2C GẠCH MASTER JIG
IOT123 - I2C GẠCH MASTER JIG
IOT123 - I2C GẠCH MASTER JIG
IOT123 - I2C GẠCH MASTER JIG
IOT123 - I2C GẠCH MASTER JIG

Trong khi phát triển các CẢM BIẾN VÀ HÀNH ĐỘNG ASSIMILATE, tôi giữ một UNO tiện dụng để gửi các lệnh I2C adhoc tới các nguyên mẫu đang được phát triển. Một trong những lợi ích của GẠCH I2C là sơ đồ chân được tiêu chuẩn hóa. Thay vì sử dụng dây breadboard mỗi lần (xem Fritzings), một tấm chắn lo-tech chắc chắn được sử dụng.

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ụ
Vật liệu và Công cụ
Vật liệu và Công cụ
  1. 4cm x 6cm PCB đơn nhất (1)
  2. Dây móc (~ 6)
  3. Điện trở 4K7 (2) 6
  4. Tiêu đề nam (12P, 8P)
  5. Tiêu đề Nữ (9P hoặc 3P, 3P)
  6. Hàn và sắt (1)

Bước 2: Lắp ráp

cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp

Nếu bạn sử dụng 2 tiêu đề nữ 3P tắt thay vì tiêu đề nữ 1 ngoài 9P, CẢM BIẾN / ACTORS ASSIMILATE sẽ phù hợp trên JIG mà không cần tháo rời chúng.

Với hệ thống dây điện, hãy cắt bỏ tối đa 10mm ở các đầu và thiếc các đầu.

  1. Ở dưới cùng của PCB, hãy lắp tiêu đề đực (1) (2) và hàn trên đầu.
  2. Ở trên cùng của PCB, hãy chèn tiêu đề cái (3) và hàn ở dưới cùng.
  3. Trên cùng, xuyên qua một lỗ dây màu đỏ vào RED1 và RED2.
  4. Ở phía dưới, dây xuyên lỗ từ RED1 sang RED3.
  5. Ở phía dưới, dây xuyên lỗ từ RED2 sang RED5 và hàn.
  6. Ở trên cùng, dây xuyên lỗ từ RED3 sang RED4 và hàn.
  7. Ở trên cùng, xuyên qua một lỗ dây màu đỏ vào RED6 và RED7.
  8. Ở phía dưới, dây xuyên lỗ từ RED6 sang RED8.
  9. Ở phía dưới, dây xuyên lỗ từ RED7 sang RED10 và hàn.
  10. Ở trên cùng, dây xuyên lỗ từ RED8 sang RED9 và hàn.
  11. Trên cùng, xuyên qua lỗ một dây đen thành BLACK1 và BLACK2.
  12. Ở phía dưới, dây xuyên lỗ từ BLACK1 thành BLACK3.
  13. Ở phía dưới, dây xuyên lỗ từ BLACK2 thành BLACK5 và hàn.
  14. Ở trên cùng, dây xuyên lỗ từ BLACK3 thành BLACK4 và hàn.
  15. Trên cùng, xuyên qua lỗ một dây màu xanh lam vào BLUE1 và BLUE2.
  16. Ở phía dưới, dây xuyên lỗ từ BLUE1 thành BLUE3.
  17. Ở phía dưới, dây xuyên lỗ từ BLUE2 vào BLUE5 và hàn.
  18. Ở trên cùng, dây xuyên lỗ từ BLUE3 thành BLUE4 và hàn.
  19. Trên cùng, xuyên qua lỗ một dây màu xanh lá cây vào GREEN1 và GREEN2.
  20. Ở phía dưới, dây xuyên lỗ từ GREEN1 thành GREEN3.
  21. Ở phía dưới, dây xuyên lỗ từ GREEN2 sang GREEN5 và hàn.
  22. Ở phía trên, dây xuyên lỗ từ GREEN3 sang GREEN4 và hàn.
  23. Ở trên cùng, xuyên qua lỗ một điện trở 4K7 vào SILVER3 và SILVER4.
  24. Ở phía dưới, dây xuyên lỗ từ SILVER3 thành GREEN5 và hàn.
  25. Ở phía dưới, dây xuyên lỗ từ SILVER4 thành RED10 và hàn.
  26. Trên cùng, xuyên qua lỗ một điện trở 4K7 vào SILVER1 và SILVER2.
  27. Ở phía dưới, dây xuyên lỗ từ SILVER1 vào BLUE5 và hàn.
  28. Ở phía dưới, dây xuyên lỗ từ SILVER2 vào RED10 và hàn.

Bước 3: Mã cho UNO

Mã cho UNO
Mã cho UNO

Bản phác thảo ở đây là thô sơ. Nó cho phép bạn sử dụng Đầu vào Bảng điều khiển, để làm cho UNO gửi các bản tin I2C tới I2C ATTINY85 BRICK.

Tất cả các hướng dẫn được in ra màn hình, với các tùy chọn được hỗ trợ.

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 4: Các bước tiếp theo

Từ các bản dựng được trình bày, có đủ các bộ phận chuyển động để bạn xây dựng MẠNG LƯỚI LẠNH GIÁC của riêng mình.

Mỗi chức năng riêng lẻ của các nút (cảm biến và tác nhân) đều có thể điều khiển được theo cách phi tập trung, không phụ thuộc vào chủ MCU để có bất kỳ kiến thức nào về các tính năng được hỗ trợ.

Bất kỳ ứng dụng nào kết nối với nhà môi giới MQTT đều có thể kiểm soát / quan sát mọi tính năng của IOT Node. Đó là M2M, ứng dụng web, IFTTT, v.v. Đơn giản hơn nhiều (hoặc phong phú hơn nếu bạn thích) giao diện cho thế giới IOT của bạn.

Đề xuất: