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

جهاز العميل / الجهاز التابع (المستشعر) من Arduino أحادي الأسلاك: 4 خطوات
جهاز العميل / الجهاز التابع (المستشعر) من Arduino أحادي الأسلاك: 4 خطوات

فيديو: جهاز العميل / الجهاز التابع (المستشعر) من Arduino أحادي الأسلاك: 4 خطوات

فيديو: جهاز العميل / الجهاز التابع (المستشعر) من Arduino أحادي الأسلاك: 4 خطوات
فيديو: طلعت معا اوبر ومشوارها نص ساعه وهيا وصول😭😭#shorts #ترند_السعودية #السعودية #tiktok 2024, شهر نوفمبر
Anonim
عميل / جهاز تابع لاردوينو بسلك واحد (مستشعر)
عميل / جهاز تابع لاردوينو بسلك واحد (مستشعر)

يرجى قراءة المقدمة والخطوة 2 من التعليمات الخاصة بي حول كيفية إنشاء عرض Arduino أحادي الأسلاك (144 حرفًا) من أجل الحصول على مزيد من المعلومات حول الموقف والمكتبات المتاحة. كما هو موضح هناك ، سنستخدم مكتبة OneWire-Hub (محاكي جهاز OneWire التابع) بواسطة orgua (انتبه إلى وجود شوكات أخرى حولها) من أجل بناء أجهزة عامة أحادية الأسلاك (مثل أجهزة الاستشعار) باستخدام Arduino.

الخطوة 1: البرمجيات

الشيء الأكثر أهمية هو إنشاء جهاز يمكنه إرجاع أي نوع من القيمة بطريقة بسيطة. بمعنى أنه يمكن استخدام البرنامج القياسي لقراءة جميع القيم مباشرة (لا حاجة إلى محادثة أو معالجة ثنائية). لذلك ، نحتاج إلى جهاز افتراضي بسيط للغاية بسلك واحد يمكنه إرجاع العوامات وهو مدعوم على نطاق واسع. الخيار الوحيد الذي أعرفه هو مقياس الحرارة DS18B20 (جهاز مراقبة البطارية DS2438 مثير للاهتمام ومفيد للغاية ولكنه معقد للغاية وبالتالي بطيء من بين العيوب الأخرى). تحتوي مكتبة OneWire-Hub على مثال يسمى DS18B20_asInterface يقوم بما نحتاج إليه بالضبط. إنه ينشئ مجموعة من DS18B20 يمثل كل منها قيمة تعويم واحدة نريد إرجاعها من أجهزة الاستشعار (المستشعرات) الخاصة بنا. القيود هنا هي الدقة ويجب أن تكون القيم في النطاق -55 ، 0 … 125 ، 0. يمكن تحقيق ذلك بسهولة - في أسوأ الحالات ، إعادة القياس - وهو في الواقع أفضل من القيم التي يمكن تمثيلها على سبيل المثال. قيم DS2438 (1.5 إلى 10 فولت). بدلاً من ذلك ، يمكن تعيين نطاق أكبر من القيم باستخدام:

setTemperatureRaw (static_cast (القيمة * 16.0f)) ؛

لكن قراءة هذه القيم ومعالجتها قد لا تدعمها جميع البرامج لأنها خارج المواصفات.

ما يجب أن تكون على دراية به هو أن الحد الأقصى لعدد العبيد في البداية يقتصر على 8 ولكن يمكن تغييره في "OneWireHub_config.h" عن طريق زيادة HUB_SLAVE_LIMIT حتى 32. كما يجب عليك التأكد من اعتماد ONEWIRE_TIME_MSG_HIGH_TIMEOUT إذا لزم الأمر شبكة بسلك واحد (على سبيل المثال x10) ، كما هو موضح في الخطوة 2 من Arduino 1-wire Display (144 حرفًا). ولاستخدام إصدار IDE> = 1.8.3 لتجميع وتحميل الكود إلى Arduino الخاص بك.

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

الخطوة 2: الأجهزة

المعدات
المعدات

في الأساس ، يمكن استخدام أي شيء يمكنك توصيله بـ Arduino باعتباره المستشعر الذي تختاره. القيد الوحيد هو أن قراءة المستشعر يجب أن تكون بأسرع ما يمكن من أجل توفير متسع من الوقت لإجراء الاتصال أحادي السلك (منح الخطوة 2 من التعليمات الخاصة بي حول Arduino 1-wire Display (144 حرفًا) بالترتيب للحصول على مثال).

مثال على الأجهزة المحتملة يمكن أن يكون محطة طقس مثل:

https://shop.boxtec.ch/wetter-messer-p-41289.html

بالإضافة إلى ذلك ، أو بدلاً من ذلك ، قد ترغب فقط في استخدام Arduino نفسه كمستشعر خاص بك. يمكنك قراءة المزيد عن ذلك في التعليمات الخاصة بي حول ميزات Arduino Lesser Known - القيم المحتملة هي جهد المصدر ودرجة الحرارة الداخلية.

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

الخطوة الثالثة: اختبر الجهاز

قم بتوصيله بشبكتك وتحقق من البرنامج الخاص بك للتأكد من وجود جميع معرّفات ROM والقيم التي ترجعها كدرجة حرارة.

الخطوة 4: الملحق: ATtiny85

الملحق: ATtiny85
الملحق: ATtiny85

يمكن أيضًا إجراء الأجهزة الفردية (تقييد الذاكرة) على ATtiny85. هذا يحتاج إلى بضع خطوات حيث نقوم ببرمجة ATtiny85 باستخدام Arduino Uno كمزود خدمة إنترنت بمساعدة Arduino IDE:

  • الروابط

    • https://playground.boxtec.ch/doku.php/arduino/att …
    • https://sebastian.expert/could-not-find-usbtiny-d…
    • https://learn.sparkfun.com/tutorials/tiny-avr-pro…
    • https://forum.arduino.cc/index.php؟topic=425532.0
    • https://forum.arduino.cc/index.php؟topic=128963.0
  1. استخدم Arduino IDE> = 1.8.3
  2. تثبيت خيار ATtiny إلى IDE

    1. ملف> التفضيلات> عناوين URL الإضافية لمدير اللوحات:
    2. أدوات> مجلس: ؟؟؟ > مدير المجالس …
    3. البحث عن: "صغيرة" وتثبيتها
  3. تحميل رسم ISP إلى Uno

    ملف> أمثلة> ArduinoISP> ArduinoISP

  4. أدخل ATtiny85 في مقبس البرمجة (بدون قوة) وقم بتوصيله:

    1. Arduino Pin MOSI D11 إلى ATtiny Pin 5
    2. Arduino Pin MISO D12 إلى ATtiny Pin 6
    3. Arduino Pin SCK D13 إلى ATtiny Pin 7
    4. إعادة تعيين دبوس Arduino D10 إلى ATtiny Pin 1
    5. Arduino Pin GND إلى ATtiny Pin 4
    6. Arduino Pin VCC إلى ATtiny Pin 8
    7. (> = قد تكون هناك حاجة إلى غطاء 10 فائق التوهج على دبوس إعادة تعيين Arduino Uno)
  5. حدد ATtiny85 (انظر الصورة):

    • اللوحة: "ATtiny25 / 45/85"
    • ساعة المؤقت 1: "CPU"
    • تاريخ الميلاد: "B. O. D. معطل"
    • LTO (1.6.11 + فقط): "معطل"
    • رقاقة: "ATtiny85"
    • الساعة: "8 ميجا هرتز (داخلية)" (متوافقة مع ATtiny85 و ATtiny84)
    • الساعة: "16 ميجا هرتز (PLL)" (الإعداد البديل لـ ATtiny85 فقط)
    • ميناء: ؟؟؟
  6. حدد مبرمج:

    أدوات> مبرمج: "Arduino as ISP" (وليس "ArduinoISP"!)

  7. ضبط إعدادات المصهر (ساعة ، إلخ):

    أدوات> حرق محمل الإقلاع

  8. قم بتحميل هذا الرمز (يجب إيقاف تشغيل مؤشر LED لخطأ المبرمج ، وإلا قم بإعادة تعيينه)
  9. تخطيط دبوس ATtinyX5 (ATtiny85):

    1. دبوس 1: PB5 (RST)
    2. السن 2: PB3 (A3) - متصل اختياريًا عبر 220 أوم إلى 1 <-TX
    3. السن 3: PB4 (A2) - متصل ببيانات من سلك واحد
    4. دبوس 4: GND - متصل بـ GND
    5. دبوس 5: PB0 (PWM) - متصل بمستشعر I2C SDA
    6. دبوس 6: PB1 (PWM) - متصل بـ LED بـ 4.7k إلى GND
    7. السن 7: PB2 (A1) - متصل بمستشعر I2C SCL
    8. السن 8: VCC - متصل بـ 5V

يحتاج العمل مع ATTiny85 إلى مزيد من العمل حيث تحتاج إلى الحصول على مكتبات إضافية لـ I2C comm (adafruit / TinyWireM) والإخراج التسلسلي (TinyDebugSerial). بالإضافة إلى ذلك ، نظرًا لأن الذاكرة محدودة جدًا ، فقد ترغب في العمل كثيرًا مع #define على سبيل المثال لإزالة التصحيح التسلسلي. في المثال يمكنك أن ترى كل هذا مرميًا معًا.

للاختبار ، فإن الخطوة الأولى هي التحقق مما إذا كان مصباح LED يومض بالتردد الصحيح ، 0.5 هرتز. ثم قم بتوصيله بحافلة 1wire وتحقق من الجهاز الجديد.

موصى به: