جدول المحتويات:
- الخطوة 1: المواد والأدوات
- الخطوة 2: تحضير ATTINY85
- الخطوة 3: قم بتجميع الدائرة
- الخطوة 4: الاختبار
- الخطوة 5: الخطوات التالية
فيديو: IOT123 - I2C MQ2 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 MQ2 BRICK مقالب 3 خصائص:
غاز البترول المسال (أجزاء في المليون) ، أول أكسيد الكربون (جزء في المليون) ، الدخان (جزء في المليون)
قدم هذا المستشعر سيناريو مثيرًا للاهتمام: يحتاج إلى دقيقتين على الأقل (حتى 5 دقائق) للإحماء ، ثم يحتاج إلى المعايرة لمدة 20 ثانية قبل الاستخدام. نظرًا لأن المضيف MCU مصمم فقط في الحصول على أزواج الاسم / القيمة (ورسالة متابعة) ، فقد قدمنا خاصية "PREPARE". نظرًا لأن رسالتها المستمرة هي "1" (المزيد في المستقبل) ، ستستمر Host MCU في استقصاء BRICK حتى تصبح جاهزة. يوصى أيضًا بـ "حرق" MQ2 قبل الاستخدام ، أي اتركها متصلة بدائرة 5 فولت لمدة 24 ساعة.
سيتم استخراج طوب المستشعرات من نوع Keyes أولاً لأنها تأتي مع فيتامينات (مكونات إضافية مطلوبة) ومضمونة نسبيًا (اشتريت 37 مقابل 10AUD). سيتم تقديم لوحات / دوائر أخرى إلى I2C BRICKS.
تم ترك الفتحات الموجودة في الفتحات المجاورة لـ ATTINY85 غير مستخدمة ، لتمكين مبرمج دبوس البوجو أثناء لحام DIP8 بـ PCB.
يجري تطوير تجريد آخر ، يعبئ BRICKS في أسطوانات صغيرة يتم توصيلها بمحور D1M WIFI BLOCK ، لضخ القيم إلى خادم MQTT.
الخطوة 1: المواد والأدوات
توجد قائمة كاملة بالمواد والمصادر.
- طوب استشعار MQ2 (1)
- ATTINY85 20PU (1)
- 1 "لوح بروتوبورد مزدوج الجوانب (1)
- رأس ذكر 90º (3P ، 3P)
- رأس ذكر (2P ، 2P)
- جمبر شانت (1)
- سلك ربط (~ 7)
- جندى وحديد (1)
الخطوة 2: تحضير ATTINY85
مطلوب AttinyCore من مدير المجالس. حرق محمل الإقلاع "EEPROM Retained" ، "8mHZ Internal" (كل التكوينات الموضحة أعلاه).
استخدم المصدر المضمن ؛ تجميع وبرمجة ATtiny85.
GIST هنا:
gist.github.com/IOT-123/4c501046d365d01a60 …
قد تجد المزيد من التفاصيل في هذه التعليمات:
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 ، أي أن جميع مستشعرات درجة الحرارة يمكن أن يكون لها نفس العنوان طالما أن لديك مستشعر درجة حرارة واحد فقط على MCU / عقدة.
الخطوة 3: قم بتجميع الدائرة
- في المقدمة ، أدخل المكونات ATTINY85 (1) ، رؤوس الذكور 3P 90deg (2) (3) ، رؤوس الذكور 2P (4) (5) ، وقم بإيقاف اللحام على الظهر.
- في الخلف ، تتبع سلكًا برتقاليًا من ORANGE1 إلى ORANGE2 وجندى.
- في الخلف ، تتبع سلكًا أزرق من BLUE1 إلى BLUE2 ولحام.
- في الخلف ، تتبع سلكًا أخضر من GREEN1 إلى GREEN2 ولحام.
- في الخلف ، تتبع سلكًا مكشوفًا من SILVER1 إلى SILVER2 ولحام.
- في الخلف ، تتبع سلكًا مكشوفًا من SILVER3 إلى SILVER4 ولحام.
- في الخلف ، تتبع سلكًا أسود من BLACK1 إلى BLACK2 ولحام.
- في الخلف ، تتبع سلكًا أسود من BLACK3 إلى BLACK4 ولحام.
- في الخلف ، تتبع سلكًا أحمر من RED1 إلى RED2 وجندى.
- في الخلف ، تتبع سلكًا أحمر من RED3 إلى RED4 ولحام.
- في الخلف ، تتبع سلكًا أصفر من YELLOW1 إلى YELLOW2 ولحام.
يمكن الآن توصيل المستشعر مباشرة عبر دبابيسه إلى PCB أو عبر الأسلاك ، إلى النقاط الموضحة في عقد الدبوس.
الخطوة 4: الاختبار
من المتوقع أن يكون عدد من هذه BRICKS على عقد متعددة (MCUs - ESP8266 أو ATTINY84) في بيئة. هذا اختبار وحدة: يتحقق من طلبات / استجابات UNO حتى يتم إغراق جميع البيانات ، ثم يتجاهل I2C التابع.
- قم بتحميل كود UNO على حزام اختبار UNO الخاص بك. تأكد من تطابق ADDRESS_SLAVE مع عنوان BRICK الخاص بـ I2C.
- قم بتوصيل 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.
- افتح Arduino Console واختر 9600 باود (أعد تشغيل UNO وأعد فتح وحدة التحكم إذا كان عليك ذلك).
- يجب طباعة أسماء وقيم الخصائص على وحدة التحكم مرة واحدة ثم يتم تكرار كلمة سكون.
إذا رأيت "الإعداد" ، فحينئذٍ تتكرر 3 سطور من القمامة ، فقد يكون لديك خطوط SDA و SCL للخلف إلى الأمام.
I2C Master logging من I2C slave مع دعم الراسمة / البيانات الوصفية
#يشمل |
# تعريف ADDRESS_SLAVE10 |
bool _outputPlotterOnly = خطأ ؛ |
bool _confirmedMetadata = خطأ ؛ |
int _packetSegment = 0 ؛ |
bool _i2cNodeProcessed = خطأ ؛ |
char _property [2] [24] = {"name"، "value"}؛ |
الإعداد باطل() { |
Wire.begin () ؛ // انضم إلى ناقل i2c (العنوان اختياري للماجستير) |
Serial.begin (9600) ؛ // بدء المسلسل للإخراج |
تأخير (1000) ؛ |
إذا (! _outputPlotterOnly) { |
Serial.println ("الإعداد") ؛ |
Serial.println () ، |
} |
} |
حلقة فارغة() { |
إذا (_i2cNodeProcessed) { |
if (! _confirmedMetadata) {// دع العبد يعرف لبدء إرسال بيانات المستشعر |
تأخير (1) ؛ |
Wire.beginTransmission (ADDRESS_SLAVE) ؛ |
Wire.write (1) ؛ |
Wire.endTransmission () ؛ |
تأخير (100) ؛ |
_confirmedMetadata = صحيح ؛ |
} |
_i2cNodeProcessed = خطأ ؛ |
إذا (! _outputPlotterOnly) { |
Serial.println () ، |
} |
إرجاع؛ |
} |
Wire.request From (ADDRESS_SLAVE، 16) ، |
_packetSegment ++ ؛ |
حزمة شار [16] ؛ |
intindex = 0 ؛ |
منطقية isContinueSegment = false ؛ // continueSegment (الثالث) 1 = أكثر ، 0 = أخيرًا |
while (Wire.available ()) {// قد يرسل التابع أقل من المطلوب |
char c = Wire.read () ؛ |
packet [index] = int (c)> -1؟ c: '' ؛ // استبدل الأحرف غير الصالحة بمسافات |
إذا (_packetSegment == 3) { |
_packetSegment = 0 ؛ |
isContinueSegment = صحيح ، |
//Serial.println("------------- ") ؛ |
//Serial.println(int(c)) ؛ |
//Serial.println("------------- ") ؛ |
if (int (c) == 48 || int (c) == 86) {// 0 في الخاصية الأخيرة |
_i2cNodeProcessed = صحيح ؛ |
// إرسال القيم إلى MQTT |
استراحة؛ |
} |
} |
فهرس ++ ؛ |
} |
إذا (! isContinueSegment) { |
إذا (! _outputPlotterOnly) { |
Serial.println (حزمة) ؛ |
} |
strcpy (_property [_packetSegment - 1] ، حزمة) ؛ // تعيين var محلي بالاسم / القيمة |
}آخر{ |
إذا (_outputPlotterOnly && _confirmedMetadata) { |
إذا (_i2cNodeProcessed) { |
Serial.println (_property [1]) ، |
}آخر{ |
Serial.print (_property [1]) ؛ |
Serial.print ("") ؛ |
} |
} |
} |
} |
عرض rawuno_i2c_generic_sensor_test_w_plotter_v2.ino مستضاف مع ❤ بواسطة GitHub
الخطوة 5: الخطوات التالية
يرتبط التصميم الأساسي للدائرة وطبقة I2C للبرنامج بالعديد من أجهزة الاستشعار المختلفة. الشيء الرئيسي الذي يجب البدء به هو عقد الحزمة بين السيد والعبد.
لقد حددت / بدأت شبكة (مطبوعة ثلاثية الأبعاد) من المستشعرات التي تستخدم هذا الإطار وسوف ترتبط به عند نشر الأجزاء.
يتم استخدام هذا الحظر بواسطة مستشعر MQ2 ASSIMILATE.
موصى به:
IOT123 - D1M BLOCK - تجميع 2xAMUX: 7 خطوات (بالصور)
IOT123 - D1M BLOCK - 2xAMUX Assembly: D1M BLOCKS تضيف حالات اللمس ، والملصقات ، وأدلة القطبية والكسر لـ Wemos D1 Mini SOC / Shields / Clones الشهيرة. إحدى المشكلات المتعلقة بشريحة ESP8266 هي أن لديها دبوس إدخال تناظري واحد فقط متاح. يوضح هذا التوجيه كيفية تجميع 2xA
IOT123 - مستشعر متماثل: MQ2: 4 خطوات
IOT123 - ASSIMILATE SENSOR: MQ2: ASSIMILATE SENSORS عبارة عن مستشعرات بيئة تحتوي على طبقة تجريد إضافية للأجهزة والبرامج ، مما يجعل من الممكن إضافة أنواع جديدة تمامًا إلى ASSIMILATE SENSOR HUB وضخ القراءات إلى خادم MQTT بدون إضافة كود
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