فهرست مطالب:

آردوینو 1 سیم عمومی مشتری/دستگاه برده (سنسور): 4 مرحله
آردوینو 1 سیم عمومی مشتری/دستگاه برده (سنسور): 4 مرحله

تصویری: آردوینو 1 سیم عمومی مشتری/دستگاه برده (سنسور): 4 مرحله

تصویری: آردوینو 1 سیم عمومی مشتری/دستگاه برده (سنسور): 4 مرحله
تصویری: 50 مبتکرانه ترین حمل و نقل شخصی 2021 - 2022 2024, نوامبر
Anonim
Arduino 1-wire Generic Client/Slave Device (Sensor)
Arduino 1-wire Generic Client/Slave Device (Sensor)

لطفاً برای آشنایی بیشتر با وضعیت و کتابخانه های موجود ، مقدمه و مرحله 2 آموزش من در مورد نحوه ساخت صفحه نمایش 1 سیم آردوینو (144 کاراکتر) را مطالعه کنید. همانطور که در آنجا توضیح داده شد ، ما از کتابخانه OneWire-Hub (شبیه ساز دستگاه برده OneWire) توسط orgua استفاده می کنیم (توجه داشته باشید که چنگال های دیگری نیز در اطراف وجود دارد) به منظور ساختن دستگاه های 1 سیم عمومی (به عنوان مثال سنسورها) با استفاده از آردوینو.

مرحله 1: نرم افزار

مهمترین چیز این است که دستگاهی بسازید که اساساً بتواند هر نوع ارزش را به روشی ساده بازگرداند. به این معنی که می توان از نرم افزار استاندارد برای خواندن همه مقادیر به طور مستقیم استفاده کرد (نیازی به مکالمه یا دستکاری دودویی نیست). برای این کار ما به یک دستگاه پیش فرض بسیار ساده 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 را انتخاب کنید. شبکه 1 سیم (به عنوان مثال x10) ، همانطور که در مرحله 2 صفحه نمایش 1 سیم آردوینو (144 کاراکتر) توضیح داده شده است. و برای استفاده از نسخه IDE> = 1.8.3 برای کامپایل و بارگذاری کد در Arduino خود.

در اینجا به عنوان نمونه کد دستگاهی که اخیراً ساخته ام. همانطور که من فرض می کنم از همان سنسورهایی که من استفاده می کنم استفاده نکنید ، در اینجا بیشتر وارد جزئیات نمی شوم ، در صورت نیاز به کمک ، کد را بررسی کنید و س askالات خود را مطرح کنید.

مرحله 2: سخت افزار

سخت افزار
سخت افزار

اساساً هر چیزی که می توانید به آردوینو متصل کنید می تواند به عنوان سنسور انتخابی شما استفاده شود. تنها محدودیت این است که خواندن سنسور باید تا آنجا که ممکن است سریع باشد تا زمان زیادی برای برقراری ارتباط 1 سیم باقی بماند (به ترتیب مرحله 2 دستورالعمل من را در مورد صفحه نمایش 1 سیم آردوینو (144 کاراکتر) ارائه دهید برای گرفتن مثال)

یک نمونه از سخت افزارهای احتمالی می تواند یک ایستگاه هواشناسی باشد مانند:

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

علاوه بر این یا به جای شما فقط ممکن است بخواهید از خود آردوینو به عنوان سنسور خود استفاده کنید. شما می توانید در مورد دستورالعمل های من در مورد ویژگی های کمتر شناخته شده Arduino در مورد آن بیشتر بخوانید - مقادیر احتمالی ولتاژ منبع و دمای داخلی است.

در اینجا به عنوان نمونه تصویری از دستگاهی که اخیراً ساخته ام. همانطور که من فرض می کنم از همان سنسورهایی که من استفاده می کنم استفاده نکنید ، در اینجا بیشتر وارد جزئیات نمی شوم ، در صورت نیاز به کمک ، کد را بررسی کنید و س askالات خود را مطرح کنید.

مرحله 3: دستگاه را آزمایش کنید

آن را به شبکه خود وصل کنید و نرم افزار خود را بررسی کنید تا همه شناسه های ROM وجود داشته باشند و مقادیر آنها به عنوان دما برمی گردند.

مرحله 4: ضمیمه: ATtiny85

ضمیمه: ATtiny85
ضمیمه: ATtiny85

دستگاه های تکی (محدودیت حافظه) نیز می توانند در ATtiny85 انجام شوند. این کار به چند مرحله نیاز دارد زیرا ما ATtiny85 را با استفاده از Arduino Uno به عنوان ISP و با کمک 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. فایل> تنظیمات برگزیده> نشانی های اینترنتی مدیران هیئت های اضافی:
    2. ابزارها> تخته: ؟؟؟ > مدیر هیئت مدیره…
    3. عبارت "tiny" را جستجو و نصب کنید
  3. طرح ISP را در Uno بارگذاری کنید

    فایل> مثالها> ArduinoISP> ArduinoISP

  4. ATtiny85 را به سوکت برنامه نویسی (نیروی صفر) وارد کنید و آن را سیم کشی کنید:

    1. پین آردوینو MOSI D11 به ATtiny Pin 5
    2. پین آردوینو MISO D12 به ATtiny Pin 6
    3. Arduino Pin SCK D13 به ATtiny Pin 7
    4. پین آردوینو D10 را به ATtiny Pin 1 بازنشانی می کند
    5. پین آردوینو GND به ATtiny Pin 4
    6. Arduino Pin VCC به ATtiny Pin 8
    7. (> ممکن است درپوش 10uF روی پین Arduino Uno RESET لازم باشد)
  5. ATtiny85 را انتخاب کنید (تصویر را ببینید):

    • تخته: "ATtiny25/45/85"
    • تایمر 1 ساعت: "CPU"
    • B. O. D.: "B. O. D. معلول نیست"
    • LTO (فقط 1.6.11 +): "غیرفعال"
    • تراشه: "ATtiny85"
    • ساعت: "8 مگاهرتز (داخلی)" (سازگار با ATtiny85 و ATtiny84)
    • ساعت: "16 مگاهرتز (PLL)" (تنظیم جایگزین فقط برای ATtiny85)
    • بندر: ؟؟؟
  6. برنامه نویس را انتخاب کنید:

    ابزارها> برنامه نویس: "Arduino به عنوان ISP" (نه "ArduinoISP"!)

  7. تنظیمات فیوز (ساعت و غیره):

    Tools> Burn Bootloader

  8. این کد را بارگذاری کنید (خطای برنامه نویس LED باید خاموش باشد ، در غیر این صورت آن را بازنشانی کنید)
  9. طرح پین ATtinyX5 (ATtiny85):

    1. پین 1: PB5 (RST)
    2. پین 2: PB3 (A3) - اختیاری از طریق 220 اهم به 1 <-TX متصل می شود
    3. پین 3: PB4 (A2) - متصل به DATA 1 سیم
    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 - متصل به 5 ولت

کار با ATTiny85 کمی بیشتر کار می کند زیرا شما نیاز به دریافت کتابخانه های اضافی برای I2C comm (adafruit/TinyWireM) و خروجی سریال (TinyDebugSerial) دارید. علاوه بر این ، زیرا حافظه بسیار محدود است ، ممکن است بخواهید با #تعریف مثالهای زیادی کار کنید. برای حذف اشکال زدایی سریال در مثال می توانید همه اینها را با هم مشاهده کنید.

برای آزمایش اولین قدم بررسی این است که آیا LED با فرکانس صحیح ، 0.5 هرتز چشمک می زند یا خیر. سپس آن را به گذرگاه 1wire متصل کرده و دستگاه جدید را بررسی کنید.

توصیه شده: