جدول المحتويات:
فيديو: IOT123 - I2C BRICK MASTER JIG: 4 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
أثناء تطوير أجهزة الاستشعار والجهات الفاعلة ، أبقي UNO في متناول يدي لإرسال أوامر I2C المخصصة إلى النماذج الأولية التي يتم تطويرها. إحدى مزايا I2C BRICKS هي الدبابيس الموحدة. بدلاً من استخدام أسلاك اللوح في كل مرة (انظر فريتزينجس) ، يتم استخدام درع قوي ذو تقنية منخفضة.
الخطوة 1: المواد والأدوات
- 4 سم × 6 سم ثنائي الفينيل متعدد الكلور أحادي (1)
- سلك ربط (~ 6)
- مقاومات 4K7 (2) 6
- رأس ذكر (12P ، 8P)
- رأس أنثى (9P أو 3P أو 3P)
- جندى وحديد (1)
الخطوة 2: التجميع
إذا كنت تستخدم رأسي أنثى من 3P بدلاً من رأس أنثى 1 من 9P ، فإن ASSIMILATE SENSOR / ACTORS سوف يتلاءم مع JIG دون تفكيكها.
باستخدام الأسلاك ، قم بفصل ما يصل إلى 10 مم على الأطراف وصفيح الأطراف.
- في الجزء السفلي من PCB ، أدخل رأس الذكر (1) (2) وقم بإيقاف اللحام من الأعلى.
- في الجزء العلوي من PCB ، أدخل الرأس الأنثوي (3) وقم بإيقاف اللحام في الأسفل.
- في الجزء العلوي ، من خلال ثقب سلك أحمر في RED1 و RED2.
- في الجزء السفلي ، سلك عبر الفتحة من RED1 إلى RED3.
- في الجزء السفلي ، سلك عبر الفتحة من RED2 إلى RED5 ، ولحام.
- في الجزء العلوي ، سلك عبر الفتحة من RED3 إلى RED4 ، ولحام.
- في الجزء العلوي ، من خلال ثقب السلك الأحمر في RED6 و RED7.
- في الجزء السفلي ، سلك عبر الفتحة من RED6 إلى RED8.
- في الجزء السفلي ، سلك عبر الفتحة من RED7 إلى RED10 ، ولحام.
- في الجزء العلوي ، سلك عبر الفتحة من RED8 إلى RED9 ، ولحام.
- في الجزء العلوي ، قم بثقب سلك أسود في BLACK1 و BLACK2.
- في الجزء السفلي ، سلك عبر الفتحة من BLACK1 إلى BLACK3.
- في الجزء السفلي ، سلك عبر الفتحة من BLACK2 إلى BLACK5 ، ولحام.
- في الأعلى ، سلك عبر الفتحة من BLACK3 إلى BLACK4 ، ولحام.
- في الجزء العلوي ، من خلال ثقب السلك الأزرق في BLUE1 و BLUE2.
- في الجزء السفلي ، سلك عبر الفتحة من BLUE1 إلى BLUE3.
- في الجزء السفلي ، سلك عبر الفتحة من BLUE2 إلى BLUE5 ، ولحام.
- في الأعلى ، سلك عبر الفتحة من BLUE3 إلى BLUE4 ، ولحام.
- في الجزء العلوي ، من خلال ثقب سلك أخضر في GREEN1 و GREEN2.
- في الجزء السفلي ، سلك عبر الفتحة من GREEN1 إلى GREEN3.
- في الجزء السفلي ، سلك عبر الفتحة من GREEN2 إلى GREEN5 ، ولحام.
- في الجزء العلوي ، سلك عبر الفتحة من GREEN3 إلى GREEN4 ، ولحام.
- في الجزء العلوي ، من خلال ثقب مقاوم 4K7 إلى SILVER3 و SILVER4.
- في الجزء السفلي ، سلك عبر الفتحة من SILVER3 إلى GREEN5 ، ولحام.
- في الجزء السفلي ، سلك عبر الفتحة من SILVER4 إلى RED10 ، ولحام.
- في الجزء العلوي ، قم بثقب المقاوم 4K7 إلى SILVER1 و SILVER2.
- في الجزء السفلي ، سلك عبر الفتحة من SILVER1 إلى BLUE5 ، ولحام.
- في الجزء السفلي ، سلك عبر الفتحة من SILVER2 إلى RED10 ، ولحام.
الخطوة 3: رمز 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 وما إلى ذلك. واجهات أبسط بكثير (أو أكثر ثراءً إذا أردت) لعالم إنترنت الأشياء الخاص بك.
موصى به:
IOT123 - ATTINY85 ONBOARD PROGRAMMING JIG: 3 خطوات
IOT123 - ATTINY85 ONBOARD PROGRAMMING JIG: في تصميمات BRICK ، أشرت إلى أن الفتحات البينية المجاورة لـ ATTINY85 تُركت غير مستخدمة ، لتمكين مبرمج دبوس البوجو بينما يكون DIP8 ملحومًا بـ PCB. هذا هو مبرمج دبوس البوجو. هذا في الحقيقة مجرد محول من الأمام
IOT123 - LIR2032 BATTERY BRICK: 4 خطوات
IOT123 - LIR2032 BATTERY BRICK: إن IOT123 BRICKS عبارة عن وحدات معيارية DIY يمكن مزجها مع IOT123 BRICKS الأخرى ، لإضافة وظائف إلى عقدة أو يمكن ارتداؤها. وهي تستند إلى ألواح أولية مربعة بوصة مربعة ذات وجهين مترابطة من خلال الثقوب. على الرغم من أن التعليمات
IOT123 - 3.3V POWER BRICK: 4 خطوات
IOT123 - 3.3V POWER BRICK: إن IOT123 BRICKS عبارة عن وحدات معيارية DIY يمكن مزجها مع IOT123 BRICKS الأخرى ، لإضافة وظائف إلى عقدة أو يمكن ارتداؤها. وهي تستند إلى ألواح أولية مربعة بوصة مربعة ذات وجهين مترابطة من خلال الثقوب. على الرغم من أن التعليمات
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 خطوات
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: UPDATE: هذا الإعداد أكاديمي إلى حد كبير أو أساس لاختبار البرامج / مزود الطاقة. حتى عندما يتم تعطيل PB5 باعتباره RESET ، فإنه لا يقرأ القيم بدقة باستخدام analogRead: حالة الاستخدام الرئيسية لقراءات المستشعر. سننظر في إعداد ATTINY84
IOT123 - ATTINY85 SOFTWARE SERIAL JIG Assembly: 4 خطوات
IOT123 - ATTINY85 SOFTWARE SERIAL JIG Assembly: لقد كنت أستخدم ATTINY85's لمزج أجهزة الاستشعار منخفضة الطاقة. في الأصل اعتقدت أنه لا توجد طريقة لتصحيح أخطاء هذه الرقائق باستخدام وحدة تحكم واستخدمت بعض & quot؛ هناك & quot؛ طرق لإلقاء نظرة خاطفة على ما يحدث وقت التشغيل. ثم جئت عبر SoftwareSeria