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

IOT123 - I2C KY019 BRICK: 5 خطوات
IOT123 - I2C KY019 BRICK: 5 خطوات

فيديو: IOT123 - I2C KY019 BRICK: 5 خطوات

فيديو: IOT123 - I2C KY019 BRICK: 5 خطوات
فيديو: Keyboard PCB | Serial output | Alphabet Numbers Signs 2024, يوليو
Anonim
IOT123 - I2C KY019 بريك
IOT123 - I2C KY019 بريك
IOT123 - I2C KY019 بريك
IOT123 - I2C KY019 بريك

إن IOT123 BRICKS عبارة عن وحدات معيارية DIY يمكن مزجها مع IOT123 BRICKS الأخرى ، لإضافة وظائف إلى عقدة أو يمكن ارتداؤها. وهي تستند إلى ألواح أولية مربعة بوصة مربعة على الوجهين مترابطة من خلال الثقوب.

من المتوقع أن يكون عدد من هذه BRICKS على عقد متعددة (Master MCUs - ESP8266 أو ATTINY84) على الموقع. لا يحتاج MCU إلى معرفة مسبقة بالغرض من أجهزة الاستشعار أو احتياجات البرامج. يقوم بالمسح بحثًا عن عقد I2C ثم يطلب تفريغ الممتلكات (بيانات المستشعر) من كل تابع. توفر هذه الطابعات 5.0 فولت و 3.3 فولت وخط AUX آخر قابل للتخصيص.

هذا I2C KY019 BRICK هو الأول من الفاعلين ، ولديه خاصية قراءة / كتابة واحدة:

التبديل (صح / خطأ)

سيتم استخراج طوب المستشعرات من نوع Keyes أولاً لأنها تأتي مع فيتامينات (مكونات إضافية مطلوبة) ومضمونة نسبيًا (اشتريت 37 مقابل 10AUD). سيتم تقديم لوحات / دوائر أخرى إلى I2C BRICKS.

تم ترك الفتحات الموجودة في الفتحات المجاورة لـ ATTINY85 غير مستخدمة ، لتمكين مبرمج دبوس البوجو أثناء لحام DIP8 بـ PCB. يجري تطوير تجريد آخر ، يعبئ BRICKS في أسطوانات صغيرة يتم توصيلها بمحور D1M WIFI BLOCK ، لضخ القيم إلى خادم MQTT.

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

المواد والأدوات
المواد والأدوات
المواد والأدوات
المواد والأدوات
المواد والأدوات
المواد والأدوات

توجد قائمة كاملة بالمواد والمصادر.

  1. تتابع KY-019 (1)
  2. ATTINY85 20PU (1)
  3. 1 "لوح بروتوبورد مزدوج الجوانب (1)
  4. رأس ذكر 90º (3P ، 3P)
  5. سلك ربط (~ 7)
  6. جندى وحديد (1)

الخطوة 2: تحضير ATTINY85

جهز ATTINY85
جهز ATTINY85
جهز ATTINY85
جهز ATTINY85
جهز ATTINY85
جهز ATTINY85

ملاحظة: إذا كنت تنوي الحصول على تكامل كروتون ، يرجى استخدام المكتبة من هنا ، واستخدام المثال المثبت "attiny_ky019".

مطلوب AttinyCore من مدير المجالس. حرق محمل الإقلاع "EEPROM Retained" ، "8mHZ Internal" (كل التكوينات الموضحة أعلاه).

يمكن العثور على مستودع الكود هنا.

يمكن العثور على ملف ZIP للمكتبة هنا.

تعليمات "استيراد مكتبة مضغوطة" هنا.

بمجرد تثبيت المكتبة يمكنك فتح المثال "attiny_ky019".

لتحميل البرنامج الثابت إلى ATTINY85 ، قد تجد المزيد من التفاصيل في هذه التعليمات:

www.instructables.com/id/Programming-the-A…

www.instructables.com/id/How-to-Program-AT…

www.instructables.com/id/How-to-program-th…

www.instructables.com/id/Programming-the-A…

www.instructables.com/id/Programming-an-At…

من الأفضل اختباره عبر اللوح قبل المتابعة.

إذا كان لديك ASSIMILATE SENSORS ، فتأكد من أن عنوان الرقيق مختلف في مجموعة SENSOR / MCU Host ، أي أن جميع الجهات الفاعلة في Relay يمكن أن يكون لها نفس العنوان طالما أن لديك ممثل ترحيل واحد فقط على MCU / عقدة.

الخطوة 3: قم بتجميع الدائرة

اجمع الدائرة
اجمع الدائرة
اجمع الدائرة
اجمع الدائرة
اجمع الدائرة
اجمع الدائرة
اجمع الدائرة
اجمع الدائرة
  1. في المقدمة ، أدخل المكونات ATTINY85 (1) ، رؤوس الذكور 3P 90deg (2) (3) ، وقم بإيقاف اللحام في الخلف.
  2. في الخلف ، تتبع سلكًا أصفر من YELLOW1 إلى YELLOW2 ولحام.
  3. في الخلف ، تتبع سلكًا أزرق من BLUE1 إلى BLUE2 ولحام.
  4. في الخلف ، تتبع سلكًا أخضر من GREEN1 إلى GREEN2 ولحام.
  5. في الخلف ، تتبع سلكًا أسود من BLACK1 إلى BLACK2 ولحام.
  6. في الخلف ، تتبع سلكًا أسود من BLACK3 إلى BLACK4 ولحام.
  7. في الخلف ، تتبع سلكًا أحمر من RED1 إلى RED2 وجندى.
  8. في الخلف ، تتبع سلكًا أحمر من RED3 إلى RED4 ولحام.

يمكن الآن توصيل المرحل مباشرة عبر دبابيسه في PCB أو عبر الأسلاك ، إلى النقاط الموضحة في عقد الدبوس.

الخطوة 4: الاختبار

اختبارات
اختبارات
اختبارات
اختبارات
اختبارات
اختبارات

من المتوقع أن يكون عدد من هذه BRICKS على عقد متعددة (MCUs - ESP8266 أو ATTINY84) في بيئة. هذا اختبار وحدة: يرسل أوامر I2C من UNO إلى ATTINY الذي يفتح أو يغلق التتابع.

لقد قمنا سابقًا ببناء درع I2C لـ Arduino.

إذا كنت تريد لوحة التجارب بدلاً من ذلك:

  1. قم بتوصيل 5.0 فولت على UNO بـ VCC على BRICK.
  2. قم بتوصيل GND على UNO بـ GND على BRICK.
  3. قم بتوصيل A5 على UNO بـ SCL على BRICK.
  4. قم بتوصيل A4 على UNO بـ SDA على BRICK.
  5. قم بتوصيل مقاوم سحب 4K7 من SDA إلى VCC.
  6. قم بتوصيل مقاوم سحب 4K7 من SCL إلى VCC.

إجراء الاختبار

  1. قم بتوصيل UNO بجهاز الكمبيوتر Dev الخاص بك باستخدام USB.
  2. قم بتحميل الكود إلى UNO.
  3. افتح Arduino Console واختر 9600 باود (أعد تشغيل UNO وأعد فتح وحدة التحكم إذا كان عليك ذلك).
  4. سيتم طباعة عنوان العبد إلى وحدة التحكم.
  5. عندما ، أدخل في مربع الإرسال 2 1 (لذا 12 2 1) ، ويتم تشغيل التتابع.
  6. عندما ، أدخل في مربع الإرسال 2 0 (لذا 12 2 0) ، وينطفئ التتابع.

أوامر 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: KY019 الذي يستخدم هذا الطوب لديه تكوين تلقائي لـ Crouton عبر البيانات الوصفية المثبتة بالفعل في ATTINY85 هنا. يتم إرسال حزمة JSON المرسلة إلى Crouton عبر أحدث البرامج الثابتة لـ ICOS10. يمكنك القيام بإثبات مفهوم على ESP8266 عادي ، إذا كان البناء أكثر من اللازم في الوقت الحالي.

يحتوي مخطط UNO المستخدم في الاختبار على وظيفة لحفظ عنوان تابع جديد إلى EEPROM على ATTINY85 ، إذا كان لديك صدام على ناقل I2C المستهدف.

تمت إضافة بعض المخططات ، ولكن هناك طرقًا مختلفة لتوصيل دارة المصب وفقًا لما تريد تحقيقه ، لذلك سأترك ذلك لك:)

موصى به: