Агуулгын хүснэгт:

IOT123 - I2C BRICK MASTER JIG: 4 алхам
IOT123 - I2C BRICK MASTER JIG: 4 алхам

Видео: IOT123 - I2C BRICK MASTER JIG: 4 алхам

Видео: IOT123 - I2C BRICK MASTER JIG: 4 алхам
Видео: How LEGO Minifigures are made 2024, Долдугаар сарын
Anonim
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG

ASSIMILATE SENSORS and ACTORS -ийг боловсруулж байхдаа би боловсруулсан прототипүүдэд adhoc I2C командыг илгээх UNO -г гартаа хадгалдаг. I2C BRICKS -ийн давуу талуудын нэг бол стандарт зүү юм. Талхны хавтангийн утсыг байнга ашиглахаас илүүтэйгээр (Fritzings-ийг үзнэ үү) бат бөх лог технологийг ашигладаг.

Алхам 1: Материал ба багаж хэрэгсэл

Материал ба багаж хэрэгсэл
Материал ба багаж хэрэгсэл
Материал ба багаж хэрэгсэл
Материал ба багаж хэрэгсэл
Материал ба багаж хэрэгсэл
Материал ба багаж хэрэгсэл
Материал ба багаж хэрэгсэл
Материал ба багаж хэрэгсэл
  1. 4см х 6см Uninersal ПХБ (1)
  2. Холбох утас (~ 6)
  3. 4K7 эсэргүүцэл (2) 6
  4. Эрэгтэй толгой (12P, 8P)
  5. Эмэгтэй толгой (9P, эсвэл 3P, 3P)
  6. Гагнуур ба төмөр (1)

Алхам 2: угсрах

Чуулган
Чуулган
Чуулган
Чуулган
Чуулган
Чуулган

Хэрэв та 1 унтраах 9P эмэгтэй толгойн оронд 2 унтраах 3P эмэгтэй толгойг ашиглавал ASSIMILATE SENSOR/ACTORS нь JIG дээр задлахгүйгээр байрлана.

Утасны тусламжтайгаар үзүүрийг нь 10 мм хүртэл хуулж, хамгийн төгсгөлийг нь боож өгнө.

  1. ПХБ -ийн доод талд эрэгтэй толгойг (1) (2) оруулаад дээрээс нь гагнана.
  2. ПХБ -ийн дээд талд, эмэгтэй толгой (3) ба гагнуурыг доод талд оруулна.
  3. Дээд талд нь улаан утсыг RED1 ба RED2 болгоно.
  4. Доод талд нь RED1-ээс RED3 хүртэлх нүхний утас.
  5. Доод талд нь RED2-ээс RED5 хүртэлх нүхтэй утас, гагнуур.
  6. Дээд талд, RED3-аас RED4 хүртэлх нүхтэй утас, гагнуур.
  7. Дээд талд нь улаан утсыг RED6 ба RED7 руу оруулна.
  8. Доод талд нь RED6-аас RED8 хүртэлх нүхний утас.
  9. Доод талд нь RED7-аас RED10 хүртэлх нүхтэй утас, гагнуур.
  10. Дээд талд, RED8-аас RED9 хүртэлх нүхтэй утас, гагнуур.
  11. Дээд талд нь хар утсыг BLACK1 ба BLACK2 болгоно.
  12. Доод талд, BLACK1-ээс BLACK3 руу нүх дамжуулах утас.
  13. Доод талд, BLACK2-аас BLACK5 хүртэлх нүхний утас, гагнуур.
  14. Дээд талд, BLACK3-аас BLACK4 хүртэлх нүхний утас, гагнуур.
  15. Дээд талд цэнхэр утсыг BLUE1 ба BLUE2 болгоно.
  16. Доод талд нь BLUE1-ээс BLUE3 хүртэлх нүхний утас.
  17. Доод талд, BLUE2-ээс BLUE5 хүртэлх нүхний утас, гагнуур.
  18. Дээд талд, BLUE3-аас BLUE4 хүртэлх нүхний утас, гагнуур.
  19. Дээд талд нь ногоон утсыг GREEN1 ба GREEN2 болгоно.
  20. Доод талд нь GREEN1-ээс GREEN3 хүртэлх нүхний утас.
  21. Доод талд нь GREEN2-аас GREEN5 хүртэлх нүхний утас, гагнуур.
  22. Дээд талд, GREEN3-аас GREEN4 хүртэлх нүхний утас, гагнуур.
  23. Дээд талд нь 4K7 резисторыг SILVER3 ба SILVER4 болгоно.
  24. Доод талд нь SILVER3-аас GREEN5 хүртэлх нүхний утас, гагнуур.
  25. Доод талд нь SILVER4-ээс RED10 хүртэлх нүхний утас, гагнуур.
  26. Дээд талд нь 4K7 резисторыг SILVER1 ба SILVER2 болгоно.
  27. Доод талд нь SILVER1-ээс цэнхэр 5 хүртэлх нүхтэй утас, гагнуур.
  28. Доод талд нь SILVER2-ээс RED10 хүртэлх нүхний утас, гагнуур.

Алхам 3: НҮБ -ын код

НҮБ -ын код
НҮБ -ын код

Энд байгаа ноорог нь энгийн зүйл юм. Энэ нь НҮБ -аас I2C ATTINY85 BRICK руу I2C мессеж илгээх боломжийг олгохын тулд консол оролтыг ашиглах боломжийг танд олгоно.

Бүх зааврыг дэмжигдсэн сонголтуудын хамт дэлгэц дээр хэвлэнэ.

I2C BRICK НҮБ -ын мастераас гаргасан боолуудад зориулсан adhoc командууд

#оруулах
const байт _num_chars = 32;
char _ хүлээн авсан_чар [_нум_чарс]; // хүлээн авсан өгөгдлийг хадгалах массив
boolean _has_new_data = худал;
voidsetup () {
Цуваа эхлэх (9600);
Serial.println ();
Serial.println ("IOT ACTOR/SENSOR EEPROM EDITOR ASSIMILATE");
Serial.println ("консолын цонхонд шинэ мөрийг сонгосон эсэхийг баталгаажуулах");
Serial.println ();
Serial.println ("ADDRESS 1 METADATA RECEIPT N/A (M2M -ийн хувьд) хүлээн зөвшөөрч байна");
Serial.println ("ADDRESS 2 ACTOR COMMAND");
Serial.println ();
Serial.println ("АВТОБУСАНД ХАЯГ:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int device_count = 0;
for (байт хаяг = 8; хаяг <127; хаяг ++)
{
Wire.beginTransmission (хаяг);
const байтын алдаа = Wire.endTransmission ();
хэрэв (алдаа == 0)
{
Serial.println (хаяг);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
статик байт ndx = 0;
char end_marker = '\ n';
char rc;
while (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read ();
хэрэв (rc! = end_marker) {
_ хүлээн авсан_чарс [ndx] = rc;
ndx ++;
хэрэв (ndx> = _num_chars) {
ndx = _num_chars - 1;
}
}
өөр {
_ хүлээн авсан_чарс [ndx] = '\ 0'; // мөрийг зогсоох
ndx = 0;
_has_new_data = үнэн;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const String хүлээн авсан_ мөр = String (хүлээн авсан_чарс);
хэрэв (_has_new_data == үнэн) {
int idx1 = хүлээн авсан_стринг.indexOf ('');
String хаяг = хүлээн авсан_мөр.субстринг (0, idx1);
int address_int = address.toInt ();
if (address_int <8 || address_int> 127) {
Serial.println ("ХҮРГҮЙ ХАЯГЫН ОРОЛЦОО:");
Serial.println (хаяг);
буцах;
}
int idx2 = хүлээн авсан_стринг.indexOf ('', idx1+1);
String код;
хэрэв (idx2 == -1) {
код = хүлээн авсан_мөр.субстринг (idx1+1);
} өөр {
код = хүлээн авсан_мөр.субстринг (idx1+1, idx2+1);
}
int code_int = code.toInt ();
if (code_int <0 || code_int> 5) {
Serial.println ("Хүчингүй код оруулах:");
Serial.println (код);
буцах;
}
bool has_parameter = idx2> -1;
String параметр;
if (has_parameter) {
параметр = хүлээн авсан_мөр.субстринг (idx2 + 1, idx2 + 17); // хамгийн ихдээ 16 тэмдэгт
if (parameter.length () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = худал;
буцах;
}
} өөр {
хэрэв (code_int> 1) {
Serial.println ("PARAMETER REUUIRED!");
_has_new_data = худал;
буцах;
}
}
Serial.println ();
Serial.print ("оролтын ориг =");
Serial.println (хүлээн авсан_ мөр);
Serial.print ("хаяг =");
Serial.println (хаяг);
Serial.print ("код =");
Serial.println (код);
Serial.print ("параметр =");
Serial.println (параметр);
// I2C -ээр илгээх
Wire.beginTransmission (address_int);
Wire.write (code_int);
if (has_parameter) {
параметр.trim ();
strcpy (param_buf, parameter.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Serial.println ();
Serial.println ("I2C -ээр илгээгдсэн!");
Serial.println ();
Serial.println ("");
_has_new_data = худал;
}
}

GitHub -ийн ❤ дээр зохион байгуулагдсан rawuno_i2c_command_input.ino -г үзэх

Алхам 4: Дараагийн алхамууд

Танилцуулсан бүтээн байгуулалтаас харахад та өөрийн ASSIMILATE IOT сүлжээг бий болгоход хангалттай хөдлөх хэсгүүд байна.

Зангилааны бие даасан функц (мэдрэгч ба жүжигчид) тус бүрийг дэмжигдсэн шинж чанаруудын талаар мэдлэгтэй байхын тулд MCU -ийн мастераас хамааралгүйгээр төвлөрсөн бус байдлаар удирддаг.

MQTT брокертой холбогдсон аливаа програм нь IOT зангилааны бүх онцлогийг хянах/ажиглах боломжтой. Энэ бол M2M, вэб програмууд, IFTTT гэх мэт. Илүү энгийн (хэрэв та хүсвэл илүү баялаг) интерфейс нь таны IOT ертөнцөд интерфэйс болно.

Зөвлөмж болгож буй: