فهرست مطالب:

IOT123 - I2C BRICK MASTER JIG: 4 مرحله
IOT123 - I2C BRICK MASTER JIG: 4 مرحله

تصویری: IOT123 - I2C BRICK MASTER JIG: 4 مرحله

تصویری: IOT123 - I2C BRICK MASTER JIG: 4 مرحله
تصویری: Тива C, эксперимент 17 — I2C 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 ، من UNO را برای ارسال دستورات adhoc I2C به نمونه های در حال توسعه مفید نگه می دارم. یکی از مزایای آجر I2C پین های استاندارد است. به جای استفاده از سیم های ورق در هر بار (به Fritzings مراجعه کنید) ، از یک سپر قوی فناوری استفاده می شود.

مرحله 1: مواد و ابزارها

مواد و ابزار
مواد و ابزار
مواد و ابزار
مواد و ابزار
مواد و ابزار
مواد و ابزار
مواد و ابزار
مواد و ابزار
  1. 4cm x 6cm PCB Uninersal (1)
  2. سیم اتصال (6 پوند)
  3. مقاومت 4K7 (2) 6
  4. سربرگ مرد (12P ، 8P)
  5. سرصفحه زن (9P ، یا 3P ، 3P)
  6. لحیم و آهن (1)

مرحله 2: مونتاژ

مونتاژ
مونتاژ
مونتاژ
مونتاژ
مونتاژ
مونتاژ

اگر از 2 سربرگ زن 3P به جای هدر زن 1P 9P استفاده کنید ، ASSIMILATE SENSOR/ACTORS بدون جدا کردن آنها روی JIG قرار می گیرد.

با سیم کشی ، انتهای آن را تا 10 میلی متر بردارید و انتهای آن را قلع کنید.

  1. در پایین PCB ، هدر نر (1) (2) را وارد کرده و در بالای آن لحیم کنید.
  2. در بالای PCB ، هدر زنانه (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 به BLUE5 ، و لحیم کنید.
  28. در پایین ، سیم از سوراخ SILVER2 به RED10 ، و لحیم کنید.

مرحله 3: کد UNO

کد UNO
کد UNO

طرح اینجا ابتدایی است. این به شما امکان می دهد از ورودی کنسول استفاده کنید تا UNO پیام های I2C را به I2C ATTINY85 BRICK ارسال کند.

همه دستورالعمل ها با گزینه های پشتیبانی شده روی صفحه چاپ می شوند.

دستورات adhoc I2C BRICK برای برده ها از UNO master

#عبارتند از
const byte _num_chars = 32؛
char _rechaived_chars [_num_chars]؛ // آرایه ای برای ذخیره داده های دریافتی
boolean _has_new_data = false؛
voidsetup () {
Serial.begin (9600)؛
Serial.println ()؛
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR") ؛
Serial.println ("اطمینان از انتخاب خط جدید در پنجره کنسول") ؛
Serial.println ()؛
Serial.println ("ADDRESS 1 CONFIRM METADATA RECEIPT N/A (FOR 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.begin انتقال (آدرس) ؛
const byte error = Wire.endTransmission ()؛
if (خطا == 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 ()؛
if (rc! = end_marker) {
_received_chars [ndx] = rc؛
ndx ++ ؛
if (ndx> = _num_chars) {
ndx = _num_chars - 1؛
}
}
دیگری {
_received_chars [ndx] = '\ 0'؛ // خاتمه رشته
ndx = 0 ؛
_has_new_data = true؛
}
}
}
voidsend_to_i2c () {
char param_buf [16]؛
const رشته دریافت شده_سترینگ = رشته (_received_chars)؛
if (_has_new_data == true) {
int idx1 = دریافت_string.indexOf ('')؛
آدرس رشته = rece_string.substring (0 ، idx1) ؛
int address_int = address.toInt ()؛
if (address_int <8 || address_int> 127) {
Serial.println ("ورودی آدرس نامعتبر:") ؛
Serial.println (آدرس) ؛
برگشت؛
}
int idx2 = دریافت_string.indexOf (''، idx1+1)؛
کد رشته ؛
if (idx2 == -1) {
کد = rece_string.substring (idx1+1) ؛
} دیگری {
کد = rece_string.substring (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؛
پارامتر رشته ؛
if (has_parameter) {
پارامتر = rece_string.substring (idx2 + 1 ، idx2 + 17) ؛ // حداکثر 16 حرف
if (parameter.length () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1")؛
_has_new_data = false؛
برگشت؛
}
} دیگری {
if (code_int> 1) {
Serial.println ("پارامتر مورد نیاز است!")؛
_has_new_data = false؛
برگشت؛
}
}
Serial.println ()؛
Serial.print ("input orig =")؛
Serial.println (رشته_ دریافتی) ؛
Serial.print ("آدرس =")؛
Serial.println (آدرس) ؛
Serial.print ("code =")؛
Serial.println (کد) ؛
Serial.print ("parameter =")؛
Serial.println (پارامتر) ؛
// ارسال از طریق I2C
Wire.beginTransmission (address_int) ؛
Wire.write (code_int) ؛
if (has_parameter) {
parameter.trim ()؛
strcpy (param_buf ، parameter.c_str ()) ؛
Wire.write (param_buf) ؛
}
Wire.endTransmission ()؛
Serial.println ()؛
Serial.println ("SIA VIA I2C!") ؛
Serial.println ()؛
Serial.println ("")؛
_has_new_data = false؛
}
}

مشاهده rawuno_i2c_command_input.ino میزبان با ❤ توسط GitHub

مرحله 4: مراحل بعدی

از ساختارهای ارائه شده ، قطعات متحرک کافی برای ساختن شبکه ASOTIMILATE IOT NETWORK وجود دارد.

هر یک از عملکردهای جداگانه گره ها (سنسورها و بازیگران) به صورت غیر متمرکز قابل کنترل هستند ، بستگی به این ندارد که استاد MCU هرگونه آگاهی از ویژگی های پشتیبانی شده داشته باشد.

هر برنامه ای که به کارگزار MQTT متصل می شود می تواند همه ویژگی های گره IOT را کنترل/مشاهده کند. این M2M ، برنامه های وب ، IFTTT و غیره است. رابط های بسیار ساده تر (یا غنی تر اگر دوست دارید) به دنیای IOT شما.

توصیه شده: