Mundarija:

IOT123 - I2C BRICK MASTER JIG: 4 qadam
IOT123 - I2C BRICK MASTER JIG: 4 qadam

Video: IOT123 - I2C BRICK MASTER JIG: 4 qadam

Video: IOT123 - I2C BRICK MASTER JIG: 4 qadam
Video: How LEGO Minifigures are made 2024, Iyul
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

ASSIMILAT SENSORLAR va AKTORLARNI ishlab chiqishda men ishlab chiqilgan prototiplarga adhoc I2C buyruqlarini yuborish uchun UNO -ni qo'limda tutaman. I2C BRICKS ning afzalliklaridan biri bu standartlashtirilgan pinouts. Har safar non taxtali simlarini ishlatishdan ko'ra (Fritzings-ga qarang) mustahkam texnologik qalqon ishlatiladi.

1 -qadam: Materiallar va asboblar

Materiallar va asboblar
Materiallar va asboblar
Materiallar va asboblar
Materiallar va asboblar
Materiallar va asboblar
Materiallar va asboblar
Materiallar va asboblar
Materiallar va asboblar
  1. 4 sm x 6 sm Uninersal tenglikni (1)
  2. Ulanish simlari (~ 6)
  3. 4K7 rezistorlar (2) 6
  4. Erkaklar sarlavhasi (12P, 8P)
  5. Ayol sarlavhasi (9P yoki 3P, 3P)
  6. Lehim va temir (1)

2 -qadam: yig'ish

O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish

Agar siz 1 ta yopiq 9P ayol sarlavhasi o'rniga 2 ta 3P 3 ta ayol sarlavhasidan foydalansangiz, ASSIMILATE SENSOR/ACTORS JIGga ularni demontaj qilmasdan joylashadi.

Kabellar yordamida uchlarini 10 mm gacha kesib oling va eng uchlarini qalaylang.

  1. PCB pastki qismiga erkak boshini (1) (2) joylashtiring va lehimni tepaga joylashtiring.
  2. PCBning yuqori qismiga, ayol boshini (3) joylashtiring va lehimni pastga qo'ying.
  3. Yuqorida RED1 va RED2 ga qizil sim o'tkaziladi.
  4. Pastki qismida, RED1 dan RED3gacha bo'lgan teshikli sim.
  5. Pastki qismida, RED2 dan RED5 gacha bo'lgan teshikli sim va lehim.
  6. Yuqorida, RED3 dan RED4 gacha bo'lgan teshikli sim va lehim.
  7. Yuqorida RED6 va RED7 ga qizil sim o'tkaziladi.
  8. Pastki qismida, RED6 dan RED8 gacha bo'lgan teshikli sim.
  9. Pastki qismida, RED7 dan RED10 gacha bo'lgan teshikli sim va lehim.
  10. Yuqorida, RED8 dan RED9 gacha bo'lgan teshikli sim va lehim.
  11. Yuqorida, qora sim bilan Qora va Qora 2 ga teshik oching.
  12. Pastki qismda, BLACK1 dan BLACK3 gacha bo'lgan teshikli sim.
  13. Pastki qismida, BLACK2 dan BLACK5 gacha bo'lgan teshikli sim va lehim.
  14. Yuqorida, BLACK3 dan BLACK4 gacha bo'lgan teshikli sim va lehim.
  15. Yuqorida, ko'k simni BLUE1 va BLUE2 ga o'tkazing.
  16. Pastki qismida, teshikli sim-BLUE1dan BLUE3gacha.
  17. Pastki qismida, teshikli sim-BLUE2 dan BLUE5gacha va lehim.
  18. Yuqorida, BLUE3 dan BLUE4 gacha bo'lgan teshikli sim va lehim.
  19. Yuqorida, GREEN1 va GREEN2 ga yashil sim o'tkaziladi.
  20. Pastki qismida, GREEN1 dan GREEN3gacha bo'lgan teshikli sim.
  21. Pastki qismida, GREEN2 dan GREEN5 gacha bo'lgan teshikli sim va lehim.
  22. Yuqorida, GREEN3 dan GREEN4 gacha bo'lgan teshikli sim va lehim.
  23. Yuqorida, teshikdan 4K7 rezistorli, SILVER3 va SILVER4.
  24. Pastki qismida, SILVER3 dan GREEN5 gacha bo'lgan teshikli sim va lehim.
  25. Pastki qismida, SILVER4 dan RED10 gacha bo'lgan teshikli sim va lehim.
  26. Yuqorida, teshikdan 4K7 rezistorli, SILVER1 va SILVER2.
  27. Pastki qismida, SILVER1 dan BLUE5 gacha bo'lgan teshikli sim va lehim.
  28. Pastki qismida, SILVER2 dan RED10 gacha bo'lgan teshikli sim va lehim.

3 -qadam: BMT uchun kod

BMT uchun kod
BMT uchun kod

Bu erda eskiz oddiy. Bu sizga UNO -ni I2C ATTINY85 BRICK -ga I2C xabarlarini yuborish uchun konsoli kiritish usulidan foydalanish imkonini beradi.

Qo'llab -quvvatlanadigan variantlar bilan birga, barcha ko'rsatmalar ekranga bosiladi.

UNO xo'jayinining qullari uchun I2C BRICK adhoc buyruqlari

#qo'shing
const bayt _num_chars = 32;
char _received_chars [_num_chars]; // olingan ma'lumotlarni saqlash uchun massiv
boolean _has_new_data = noto'g'ri;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println ("IOT ACTOR/SENSOR EEPROM EDITORINI ASSIMILASH");
Serial.println ("konsol oynasida yangi qator tanlanganligini ta'minlash");
Serial.println ();
Serial.println ("MANZIL 1 METADATA RECIPIPTI YO'Q (M2M uchun) tasdiqlang");
Serial.println ("MANZIL 2 AKTOR KOMANDASI");
Serial.println ();
Serial.println ("Avtobusdagi manzillar:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int device_count = 0;
uchun (bayt manzili = 8; manzil <127; manzil ++)
{
Wire.beginTransmission (manzil);
const bayt xatosi = Wire.endTransmission ();
agar (xato == 0)
{
Serial.println (manzil);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
statik bayt ndx = 0;
char end_marker = '\ n';
char rc;
while (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read ();
agar (rc! = end_marker) {
_received_chars [ndx] = rc;
ndx ++;
agar (ndx> = _num_chars) {
ndx = _num_chars - 1;
}
}
boshqa {
_received_chars [ndx] = '\ 0'; // qatorni tugatish
ndx = 0;
_has_new_data = rost;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const String qabul_string = String (_received_chars);
agar (_has_new_data == rost) {
int idx1 = qabul qilingan_string.indexOf ('');
String manzili = qabul qilingan_string.substring (0, idx1);
int address_int = address.toInt ();
agar (manzil_int <8 || manzil_int> 127) {
Serial.println ("ADRESS INVALID INPALID:");
Serial.println (manzil);
qaytish;
}
int idx2 = qabul qilingan_string.indexOf ('', idx1+1);
String kodi;
agar (idx2 == -1) {
kod = qabul qilingan_string.substring (idx1+1);
} boshqa {
kod = qabul qilingan_string.substring (idx1+1, idx2+1);
}
int code_int = code.toInt ();
agar (code_int <0 || code_int> 5) {
Serial.println ("YANGI KOD KIRISHI:");
Serial.println (kod);
qaytish;
}
bool has_parameter = idx2> -1;
String parametri;
agar (has_parametr) {
parametr = qabul qilingan_string.substring (idx2 + 1, idx2 + 17); // Maksimal 16 ta belgi
if (parametr.length () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = noto'g'ri;
qaytish;
}
} boshqa {
agar (kod_int> 1) {
Serial.println ("PARAMETR KERAK!");
_has_new_data = noto'g'ri;
qaytish;
}
}
Serial.println ();
Serial.print ("kirish orig =");
Serial.println (qabul qilingan_string);
Serial.print ("manzil =");
Serial.println (manzil);
Serial.print ("kod =");
Serial.println (kod);
Serial.print ("parametr =");
Serial.println (parametr);
// I2C orqali yuboring
Wire.beginTransmission (manzil_int);
Wire.write (code_int);
agar (has_parametr) {
parametr.trim ();
strcpy (param_buf, parameter.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Serial.println ();
Serial.println ("I2C VIA YUBORILDI!");
Serial.println ();
Serial.println ("");
_has_new_data = noto'g'ri;
}
}

rawuno_i2c_command_input.ino ni GitHub ❤ tomonidan joylashtirilganini ko'rish

4 -qadam: Keyingi qadamlar

Taqdim etilgan konstruktsiyalardan o'zingizning ASSIMILATE IOT TARMOQINI yaratish uchun harakatlanuvchi qismlar etarli.

Tugunlarning har bir alohida funktsiyalari (sensorlar va aktyorlar) markazlashtirilmagan usulda boshqarilishi mumkin, MCU ustasi qo'llab -quvvatlanadigan xususiyatlar to'g'risida ma'lumotga ega emas.

MQTT brokeriga ulangan har qanday dastur IOT tugunining har bir xususiyatini boshqarishi/kuzatishi mumkin. Bu M2M, veb -ilovalar, IFTTT va boshqalar. IOT dunyosiga nisbatan ancha sodda (yoki xohlasangiz boyroq) interfeyslar.

Tavsiya: