جدول المحتويات:

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 الرقصة
IOT123 - I2C BRICK MASTER الرقصة
IOT123 - I2C BRICK MASTER الرقصة
IOT123 - I2C BRICK MASTER الرقصة
IOT123 - I2C BRICK MASTER الرقصة
IOT123 - I2C BRICK MASTER الرقصة

أثناء تطوير أجهزة الاستشعار والجهات الفاعلة ، أبقي UNO في متناول يدي لإرسال أوامر I2C المخصصة إلى النماذج الأولية التي يتم تطويرها. إحدى مزايا I2C BRICKS هي الدبابيس الموحدة. بدلاً من استخدام أسلاك اللوح في كل مرة (انظر فريتزينجس) ، يتم استخدام درع قوي ذو تقنية منخفضة.

الخطوة 1: المواد والأدوات

المواد والأدوات
المواد والأدوات
المواد والأدوات
المواد والأدوات
المواد والأدوات
المواد والأدوات
المواد والأدوات
المواد والأدوات
  1. 4 سم × 6 سم ثنائي الفينيل متعدد الكلور أحادي (1)
  2. سلك ربط (~ 6)
  3. مقاومات 4K7 (2) 6
  4. رأس ذكر (12P ، 8P)
  5. رأس أنثى (9P أو 3P أو 3P)
  6. جندى وحديد (1)

الخطوة 2: التجميع

المجسم
المجسم
المجسم
المجسم
المجسم
المجسم

إذا كنت تستخدم رأسي أنثى من 3P بدلاً من رأس أنثى 1 من 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.

تتم طباعة جميع التعليمات على الشاشة ، مع الخيارات المدعومة.

أوامر I2C BRICK الخاصة بالعبيد من UNO master

#يشمل
بايت const _num_chars = 32 ؛
char _received_chars [_num_chars] ؛ // مجموعة لتخزين البيانات المستلمة
قيمة منطقية _has_new_data = خطأ ؛
الإعداد باطل() {
Serial.begin (9600) ؛
Serial.println () ،
Serial.println ("ASSIMILATE IOT ACTOR / SENSOR EEPROM Editor") ؛
Serial.println ("تأكد من تحديد سطر جديد في نافذة وحدة التحكم") ؛
Serial.println () ،
Serial.println ("إيصال تأكيد العنوان 1 للبيانات الوصفية غير متوفر (لـ 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 ؛
لـ (عنوان بايت = 8 ؛ العنوان <127 ؛ العنوان ++)
{
Wire.beginTransmission (العنوان) ؛
خطأ في البايت الثابت = Wire.endTransmission () ؛
إذا (خطأ == 0)
{
Serial.println (العنوان) ؛
}
}
}
حلقة فارغة() {
recv_with_end_marker () ،
send_to_i2c () ،
}
voidrecv_with_end_marker () {
البايت الثابت ndx = 0 ؛
char end_marker = '\ n'؛
شار RC
while (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read () ،
إذا (rc! = end_marker) {
_received_chars [ndx] = rc ؛
ndx ++ ؛
إذا (ndx> = _num_chars) {
ndx = _num_chars - 1 ؛
}
}
آخر {
_received_chars [ndx] = '0' ؛ // إنهاء السلسلة
ndx = 0 ؛
_has_new_data = صحيح ؛
}
}
}
voidsend_to_i2c () {
char param_buf [16] ؛
سلسلة const Received_string = String (_received_chars) ؛
إذا (_has_new_data == صحيح) {
int idx1 = Received_string.indexOf ('') ؛
عنوان السلسلة = Received_string.substring (0، idx1) ؛
int address_int = address.toInt () ؛
إذا (address_int <8 || address_int> 127) {
Serial.println ("INVALID ADDRESS INPUT:") ؛
Serial.println (العنوان) ؛
إرجاع؛
}
int idx2 = Received_string.indexOf (''، idx1 + 1) ؛
كود السلسلة
إذا (idx2 == -1) {
الكود = Received_string.substring (idx1 + 1) ؛
}آخر{
الكود = Received_string.substring (idx1 + 1، idx2 + 1) ؛
}
int code_int = code.toInt () ؛
إذا (code_int <0 || code_int> 5) {
Serial.println ("إدخال رمز غير صالح:") ؛
Serial.println (كود) ؛
إرجاع؛
}
منطقي has_parameter = idx2> -1 ؛
معلمة السلسلة ؛
إذا (has_parameter) {
المعلمة = Received_string.substring (idx2 + 1، idx2 + 17) ؛ // 16 حرفًا كحد أقصى
إذا كان (parameter.length () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1") ؛
_has_new_data = خطأ ؛
إرجاع؛
}
}آخر{
إذا (code_int> 1) {
Serial.println ("مطلوب معلمة!") ؛
_has_new_data = خطأ ؛
إرجاع؛
}
}
Serial.println () ،
Serial.print ("input Orig =") ؛
Serial.println (Received_string) ؛
Serial.print ("العنوان =") ؛
Serial.println (العنوان) ؛
Serial.print ("code =") ؛
Serial.println (كود) ؛
Serial.print ("المعلمة =") ؛
Serial.println (معلمة) ؛
// إرسال عبر I2C
Wire.beginTransmission (address_int) ؛
Wire.write (code_int) ؛
إذا (has_parameter) {
معلمة تريم () ؛
strcpy (param_buf، parameter.c_str ()) ،
Wire.write (param_buf) ؛
}
Wire.endTransmission () ؛
Serial.println () ،
Serial.println ("SENT VIA I2C!") ؛
Serial.println () ،
Serial.println ("") ؛
_has_new_data = خطأ ؛
}
}

عرض rawuno_i2c_command_input.ino مستضاف مع ❤ بواسطة GitHub

الخطوة 4: الخطوات التالية

من البنيات المقدمة ، هناك أجزاء متحركة كافية لك لبناء شبكة IOT ASSIMILATE الخاصة بك.

يمكن التحكم في كل وظيفة من الوظائف الفردية للعقد (أجهزة الاستشعار والممثلين) بطريقة لامركزية ، ولا تعتمد على سيد MCU للحصول على أي معرفة بالميزات المدعومة.

يمكن لأي تطبيق متصل بالوسيط MQTT التحكم / مراقبة كل ميزة من ميزات عقدة IOT. Thats M2M وتطبيقات الويب و IFTTT وما إلى ذلك. واجهات أبسط بكثير (أو أكثر ثراءً إذا أردت) لعالم إنترنت الأشياء الخاص بك.

موصى به: