جدول المحتويات:
- الخطوة 1: المواد والأدوات
- الخطوة 2: تحضير ATTINY85
- الخطوة 3: قم بتجميع الدائرة
- الخطوة 4: الاختبار
- الخطوة 5: الخطوات التالية
فيديو: IOT123 - I2C 2CH RELAY BRICK: 5 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
إن IOT123 BRICKS عبارة عن وحدات معيارية DIY يمكن مزجها مع IOT123 BRICKS الأخرى ، لإضافة وظائف إلى عقدة أو يمكن ارتداؤها. وهي تستند إلى ألواح أولية مربعة بوصة مربعة على الوجهين مترابطة من خلال الثقوب.
من المتوقع أن يكون عدد من هذه BRICKS على عقد متعددة (Master MCUs - ESP8266 أو ATTINY84) على الموقع. لا يحتاج MCU إلى معرفة مسبقة بالغرض من أجهزة الاستشعار أو احتياجات البرامج. يقوم بالمسح بحثًا عن عقد I2C ثم يطلب تفريغ الممتلكات (بيانات المستشعر) من كل تابع. توفر هذه الطابعات 5.0 فولت و 3.3 فولت وخط AUX آخر قابل للتخصيص.
يوسع I2C 2CH RELAY BRICK وظائف I2C KY019 BRICK ، وله خاصيتان للقراءة / الكتابة:
2CH RELAYS [0] (صح / خطأ)
2CH RELAYS [1] (صح / خطأ)
تم ترك الفتحات الموجودة في الفتحات المجاورة لـ ATTINY85 غير مستخدمة ، لتمكين مبرمج دبوس البوجو أثناء لحام DIP8 بـ PCB. يجري تطوير تجريد آخر ، يعبئ BRICKS في أسطوانات صغيرة يتم توصيلها بمحور D1M WIFI BLOCK ، لضخ القيم إلى خادم MQTT.
الخطوة 1: المواد والأدوات
توجد قائمة كاملة بالمواد والمصادر.
- 2 قناة تتابع (1)
- ATTINY85 20PU (1)
- 1 "لوح بروتوبورد مزدوج الجوانب (1)
- رأس ذكر 90º (3P ، 3P)
- رأس ذكر (2P ، 2P)
- جمبر شانت (1)
- سلك ربط (~ 7)
- جندى وحديد (1)
الخطوة 2: تحضير ATTINY85
ملاحظة: إذا كنت تنوي الحصول على تكامل كروتون ، فالرجاء استخدام المكتبة من هنا ، واستخدام المثال المثبت "attiny_2ch_relay".
مطلوب AttinyCore من مدير المجالس. حرق محمل الإقلاع "EEPROM Retained" ، "8mHZ Internal" (كل التكوينات الموضحة أعلاه).
يمكن العثور على مستودع الكود هنا.
يمكن العثور على ملف ZIP للمكتبة هنا.
تعليمات "استيراد مكتبة مضغوطة" هنا.
بمجرد تثبيت المكتبة يمكنك فتح المثال "attiny_2ch_relay".
لتحميل البرنامج الثابت إلى ATTINY85 ، قد تجد المزيد من التفاصيل في هذه التعليمات:
www.instructables.com/id/How-to-Program-A…
www.instructables.com/id/Programming-the-…
www.instructables.com/id/Programming-the-…
www.instructables.com/id/Programming-the-…
من الأفضل اختباره عبر اللوح قبل المتابعة.
إذا كان لديك ASSIMILATE SENSORS ، فتأكد من أن عنوان الرقيق مختلف في مجموعة SENSOR / MCU Host ، أي أن جميع الجهات الفاعلة في Relay يمكن أن يكون لها نفس العنوان طالما أن لديك ممثل ترحيل واحد فقط على MCU / عقدة.
الخطوة 3: قم بتجميع الدائرة
- في المقدمة ، أدخل المكونات ATTINY85 (1) ، رؤوس الذكور 3P 90deg (2) (3) ، رؤوس الذكور 3P (4) (5) وقم بإيقاف اللحام في الخلف.
- في الخلف ، تتبع سلكًا أصفر من YELLOW1 إلى YELLOW2 ولحام.
- في الخلف ، تتبع سلكًا برتقاليًا من ORANGE1 إلى ORANGE2 وجندى.
- في الخلف ، تتبع سلكًا أزرق من BLUE1 إلى BLUE2 ولحام.
- في الخلف ، تتبع سلكًا أخضر من GREEN1 إلى GREEN2 ولحام.
- في الخلف ، تتبع سلكًا أسود من BLACK1 إلى BLACK2 ولحام.
- في الخلف ، تتبع سلكًا أسود من BLACK3 إلى BLACK4 ولحام.
- في الخلف ، تتبع سلكًا أحمر من RED1 إلى RED2 وجندى.
- في الخلف ، تتبع سلكًا مكشوفًا من RED3 إلى RED4 وجندى.
- في الخلف ، تتبع سلكًا مكشوفًا من SILVER1 إلى SILVER2 ولحام.
- أضف وصلة مرور على خط 5V أو 3V3.
يمكن الآن توصيل المرحل مباشرة عبر دبابيسه في PCB أو عبر الأسلاك ، إلى النقاط الموضحة في عقد الدبوس.
الخطوة 4: الاختبار
من المتوقع أن يكون عدد من هذه BRICKS على عقد متعددة (MCUs - ESP8266 أو ATTINY84) في بيئة. هذا اختبار وحدة: يرسل أوامر I2C من UNO إلى ATTINY الذي يفتح أو يغلق المرحلات.
لقد قمنا سابقًا ببناء درع I2C لـ Arduino.
إذا كنت تريد لوحة التجارب بدلاً من ذلك:
- قم بتوصيل 5.0 فولت على UNO بـ VCC على BRICK.
- قم بتوصيل GND على UNO بـ GND على BRICK.
- قم بتوصيل A5 على UNO بـ SCL على BRICK.
- قم بتوصيل A4 على UNO بـ SDA على BRICK.
- قم بتوصيل مقاوم سحب 4K7 من SDA إلى VCC.
- قم بتوصيل مقاوم سحب 4K7 من SCL إلى VCC.
إجراء الاختبار
- قم بتوصيل UNO بجهاز الكمبيوتر Dev الخاص بك باستخدام USB.
- قم بتحميل الكود إلى UNO.
- افتح وحدة تحكم Arduino.
- اختر 9600 باود (أعد تشغيل UNO وأعد فتح وحدة التحكم إذا كان عليك ذلك).
- سيتم طباعة عنوان العبد على وحدة التحكم.
-
عندما ، أدخل في مربع الإرسال 2 0: 1 (لذا 15 2 0: 1) ، ويتم تشغيل مرحل CH1.
- عندما ، أدخل في مربع الإرسال 2 0: 0 (لذلك 15 2 0: 0) ، ويتم إيقاف تشغيل مرحل CH1.
- عندما ، أدخل في مربع الإرسال 2 1: 1 (لذلك 15 2 1: 1) ، ويتم تشغيل مرحل CH2.
- عندما ، أدخل في مربع الإرسال 2 1: 0 (لذلك 15 2 0: 0) ، ويتم إيقاف تشغيل مرحل CH2.
أوامر 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
الخطوة 5: الخطوات التالية
المتابعة ASSIMILATE ACTOR: 2CH RELAY الذي يستخدم هذا الطوب لديه تكوين تلقائي لـ Crouton عبر البيانات الوصفية المثبتة بالفعل في ATTINY85 هنا. يتم إرسال حزمة JSON المرسلة إلى Crouton عبر أحدث البرامج الثابتة لـ ICOS10. يمكنك القيام بإثبات مفهوم على ESP8266 عادي ، إذا كان البناء أكثر من اللازم في الوقت الحالي.
يحتوي مخطط UNO المستخدم في الاختبار على وظيفة لحفظ عنوان تابع جديد إلى EEPROM على ATTINY85 ، إذا كان لديك صدام على ناقل I2C المستهدف. تمت إضافة بعض المخططات ، ولكن هناك طرقًا مختلفة لتوصيل دارة المصب وفقًا لما تريد تحقيقه ، لذلك سأترك ذلك لك:)
موصى به:
IOT123 - D1M BLOCK - تجميع 2xAMUX: 7 خطوات (بالصور)
IOT123 - D1M BLOCK - 2xAMUX Assembly: D1M BLOCKS تضيف حالات اللمس ، والملصقات ، وأدلة القطبية والكسر لـ Wemos D1 Mini SOC / Shields / Clones الشهيرة. إحدى المشكلات المتعلقة بشريحة ESP8266 هي أن لديها دبوس إدخال تناظري واحد فقط متاح. يوضح هذا التوجيه كيفية تجميع 2xA
IOT123 - D1M BLOCK - مجموعة كاميرا ACAM2: 8 خطوات (بالصور)
IOT123 - D1M BLOCK - ACAM2 Camera Assembly: D1M BLOCKS تضيف حالات اللمس ، والملصقات ، وأدلة القطبية والكسر لـ Wemos D1 Mini SOC / Shields / Clones الشهيرة. تسمح كاميرا ArduCam 2MP بالتقاط الصور / الفيديو المرن باستخدام شريحة ESP8266 (التي تعتمد عليها D1M BLOCKS)
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