সুচিপত্র:

আরডুইনো 1-ওয়্যার জেনেরিক ক্লায়েন্ট/স্লেভ ডিভাইস (সেন্সর): 4 টি ধাপ
আরডুইনো 1-ওয়্যার জেনেরিক ক্লায়েন্ট/স্লেভ ডিভাইস (সেন্সর): 4 টি ধাপ

ভিডিও: আরডুইনো 1-ওয়্যার জেনেরিক ক্লায়েন্ট/স্লেভ ডিভাইস (সেন্সর): 4 টি ধাপ

ভিডিও: আরডুইনো 1-ওয়্যার জেনেরিক ক্লায়েন্ট/স্লেভ ডিভাইস (সেন্সর): 4 টি ধাপ
ভিডিও: ESP8266 ESP01 WIFI-UART | এলডিমাইক্রো-রোবোরেমো প্রোগ্রামিং 2024, নভেম্বর
Anonim
Arduino 1-তারের জেনেরিক ক্লায়েন্ট/স্লেভ ডিভাইস (সেন্সর)
Arduino 1-তারের জেনেরিক ক্লায়েন্ট/স্লেভ ডিভাইস (সেন্সর)

পরিস্থিতি এবং লাইব্রেরি সম্পর্কে আরও তথ্য পেতে কিভাবে একটি Arduino 1-wire Display (144 Chars) তৈরি করতে হয় সে সম্পর্কে আমার নির্দেশের ভূমিকা এবং ধাপ 2 পড়ুন। যেমন ব্যাখ্যা করা হয়েছে সেখানে আমরা Arduino ব্যবহার করে জেনেরিক 1-ওয়্যার ডিভাইস (উদা সেন্সর) তৈরির জন্য Orgua (OneWire স্লেভ ডিভাইস এমুলেটর) ব্যবহার করে Orgua (OneWire স্লেভ ডিভাইস এমুলেটর) ব্যবহার করব।

ধাপ 1: সফটওয়্যার

সবচেয়ে গুরুত্বপূর্ণ বিষয় হচ্ছে এমন একটি ডিভাইস তৈরি করা যা মূলত যে কোন ধরনের মূল্য সহজ পদ্ধতিতে ফেরত দিতে পারে। এর মানে হল যে সমস্ত সফ্টওয়্যারগুলি সরাসরি পড়ার জন্য স্ট্যান্ডার্ড সফ্টওয়্যার ব্যবহার করা যেতে পারে (কোনও কথোপকথন বা বাইনারি ম্যানিপুলেশনের প্রয়োজন নেই)। এর জন্য আমাদের একটি খুব সহজ ডিফল্ট 1-ওয়্যার ডিভাইস দরকার যা ভাসমান ফিরিয়ে দিতে পারে এবং ব্যাপকভাবে সমর্থিত। DS18B20 থার্মোমিটার (DS2438 ব্যাটারি মনিটর আকর্ষণীয় এবং দরকারী কিন্তু বেশ জটিল এবং এইভাবে অন্যান্য অপূর্ণতার মধ্যে ধীর) ওয়ানওয়্যার-হাব লাইব্রেরিতে DS18B20_asInterface নামে একটি উদাহরণ রয়েছে যা আমাদের যা প্রয়োজন ঠিক তাই করে। এটি DS18B20 এর একটি গুচ্ছ তৈরি করে যার প্রত্যেকটি একটি ভাসমান মানকে প্রতিনিধিত্ব করে যা আমরা আমাদের সেন্সর (গুলি) থেকে ফিরিয়ে আনতে চাই। এখানে নিষেধাজ্ঞাগুলি হল রেজোলিউশন এবং মানগুলি -55, 0… 125, 0. এর মধ্যে থাকতে হবে। এটি সহজেই অর্জন করা যায় - সবচেয়ে খারাপ ক্ষেত্রে পুনরুদ্ধার করা হতে পারে - এবং প্রকৃতপক্ষে যে মানগুলি দ্বারা প্রতিনিধিত্ব করা যায় তার চেয়ে ভাল। DS2438 মান (1.5 থেকে 10V)। বিকল্পভাবে একটি বড় পরিসরের মান ব্যবহার করে সেট করা যেতে পারে:

setTemperatureRaw (static_cast (মান * 16.0f));

কিন্তু এই মানগুলি পড়া এবং প্রক্রিয়াকরণ সমস্ত সফ্টওয়্যার দ্বারা সমর্থিত নাও হতে পারে কারণ এটি স্পেক্সের বাইরে।

আপনাকে যা সচেতন হতে হবে তা হল প্রাথমিকভাবে সর্বাধিক সংখ্যক দাসের সংখ্যা 8 পর্যন্ত সীমাবদ্ধ কিন্তু HUB_SLAVE_LIMIT 32 পর্যন্ত বাড়িয়ে "OneWireHub_config.h" এ পরিবর্তন করা যেতে পারে। এছাড়াও আপনার প্রয়োজন হলে ONEWIRE_TIME_MSG_HIGH_TIMEOUT গ্রহণ করতে ভুলবেন না 1-ওয়্যার নেটওয়ার্ক (যেমন x10), যেমন Arduino 1-wire Display (144 Chars) এর ধাপ 2 এ ব্যাখ্যা করা হয়েছে। এবং আপনার Arduino এ কোডটি কম্পাইল এবং আপলোড করতে IDE সংস্করণ> = 1.8.3 ব্যবহার করতে।

এখানে একটি উদাহরণ হিসাবে ডিভাইসের কোড আমি খুব সম্প্রতি তৈরি করেছি। যেহেতু আমি ধরে নিচ্ছি যে আপনি সেন্সরের একই সংমিশ্রণটি ব্যবহার করবেন না যা আমি করি আমি এখানে বিস্তারিত বিবরণে যাব না, কোডটি পরীক্ষা করুন এবং যদি আপনার সাহায্যের প্রয়োজন হয় তবে প্রশ্ন জিজ্ঞাসা করুন।

ধাপ 2: হার্ডওয়্যার

হার্ডওয়্যার
হার্ডওয়্যার

মূলত আপনি একটি Arduino এর সাথে সংযোগ করতে পারেন যে কোন কিছু আপনার পছন্দের সেন্সর হিসাবে ব্যবহার করা যেতে পারে। একমাত্র সীমাবদ্ধতা হল যে 1-তারের যোগাযোগের জন্য প্রচুর সময় বাকি থাকার জন্য সেন্সরটি পড়া যত দ্রুত সম্ভব হওয়া উচিত (অর্ডুইনো 1-ওয়্যার ডিসপ্লে (144 অক্ষর) সম্পর্কে আমার নির্দেশের ধাপ 2 প্রদান করুন একটি উদাহরণ পেতে)।

সম্ভাব্য হার্ডওয়্যারের একটি উদাহরণ একটি আবহাওয়া স্টেশন হতে পারে যেমন:

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

অতিরিক্তভাবে বা আপনার পরিবর্তে আপনি কেবল আপনার সেন্সর হিসাবে Arduino ব্যবহার করতে চাইতে পারেন। আপনি Arduino কম পরিচিত বৈশিষ্ট্য সম্পর্কে আমার নির্দেশে এটি সম্পর্কে আরও পড়তে পারেন - সম্ভাব্য মান হল উৎস ভোল্টেজ এবং অভ্যন্তরীণ তাপমাত্রা।

এখানে একটি উদাহরণ হিসাবে ডিভাইসের একটি ছবি যা আমি খুব সম্প্রতি তৈরি করেছি। যেহেতু আমি ধরে নিচ্ছি যে আপনি সেন্সরের একই সংমিশ্রণটি ব্যবহার করবেন না যা আমি করি আমি এখানে বিস্তারিত বিবরণে যাব না, কোডটি পরীক্ষা করুন এবং যদি আপনার সাহায্যের প্রয়োজন হয় তবে প্রশ্ন জিজ্ঞাসা করুন।

ধাপ 3: ডিভাইসটি পরীক্ষা করুন

এটিকে আপনার নেটওয়ার্কে সংযুক্ত করুন এবং আপনার সফটওয়্যারটি পরীক্ষা করুন যাতে সমস্ত রম আইডি উপস্থিত থাকে এবং তাপমাত্রা হিসাবে তারা যে মানগুলি প্রদান করে।

ধাপ 4: পরিশিষ্ট: ATtiny85

পরিশিষ্ট: ATtiny85
পরিশিষ্ট: ATtiny85

একক ডিভাইস (মেমরির সীমাবদ্ধতা) একটি ATtiny85 তেও করা যেতে পারে। আরডুইনো আইডিই এর সাহায্যে আইএসপি হিসাবে আরডুইনো ইউনো ব্যবহার করে ATtiny85 প্রোগ্রাম করার জন্য এটির কয়েকটি ধাপ প্রয়োজন:

  • লিঙ্ক

    • 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. IDE তে ATtiny অপশন ইনস্টল করুন

    1. ফাইল> পছন্দ> অতিরিক্ত বোর্ড ম্যানেজার ইউআরএল:
    2. সরঞ্জাম> বোর্ড: ??? > বোর্ড ম্যানেজার…
    3. এর জন্য অনুসন্ধান করুন: "ক্ষুদ্র" এবং ইনস্টল করুন
  3. একটি ইউএনওতে আইএসপি স্কেচ আপলোড করুন

    ফাইল> উদাহরণ> ArduinoISP> ArduinoISP

  4. ATtiny85 প্রোগ্রামিং (জিরো-ফোর্স) সকেটে wireোকান এবং তারে লাগান:

    1. Arduino পিন MOSI D11 থেকে ATtiny পিন 5
    2. Arduino পিন MISO D12 থেকে ATtiny পিন 6
    3. Arduino পিন SCK D13 থেকে ATtiny পিন 7
    4. Arduino পিন D10 থেকে ATtiny পিন রিসেট করুন
    5. Arduino Pin GND থেকে ATtiny Pin 4
    6. Arduino Pin VCC থেকে ATtiny Pin 8
    7. (> = 10uF Arduino Uno RESET পিনে ক্যাপ প্রয়োজন হতে পারে)
  5. ATtiny85 নির্বাচন করুন (ছবি দেখুন):

    • বোর্ড: "ATtiny25/45/85"
    • টাইমার 1 ঘড়ি: "CPU"
    • বিওডি: "বিওডি অক্ষম"
    • LTO (1.6.11 + শুধুমাত্র): "অক্ষম"
    • চিপ: "ATtiny85"
    • ঘড়ি: "8 MHz (অভ্যন্তরীণ)" (ATtiny85 এবং ATtiny84 সামঞ্জস্যপূর্ণ)
    • ঘড়ি: "16 MHz (PLL)" (শুধুমাত্র ATtiny85 এর জন্য বিকল্প সেটিং)
    • বন্দর: ???
  6. প্রোগ্রামার নির্বাচন করুন:

    সরঞ্জাম> প্রোগ্রামার: "Arduino as ISP" (না "ArduinoISP"!)

  7. ফিউজ সেটিংস সেট করুন (ঘড়ি, ইত্যাদি):

    সরঞ্জাম> বার্ন বুটলোডার

  8. এই কোডটি আপলোড করুন (প্রোগ্রামার ত্রুটি LED বন্ধ করা প্রয়োজন, অন্যথায় এটি পুনরায় সেট করুন)
  9. ATtinyX5 পিন লেআউট (ATtiny85):

    1. পিন 1: PB5 (RST)
    2. পিন 2: PB3 (A3) - allyচ্ছিকভাবে 220ohm এর মাধ্যমে 1 <-TX এর সাথে সংযুক্ত
    3. পিন 3: PB4 (A2) - 1 -ওয়্যার ডেটার সাথে সংযুক্ত
    4. পিন 4: GND - GND এর সাথে সংযুক্ত
    5. পিন 5: PB0 (PWM) - I2C SDA সেন্সরের সাথে সংযুক্ত
    6. পিন 6: PB1 (PWM) - 4.7k থেকে GND এর সাথে LED এর সাথে সংযুক্ত
    7. পিন 7: PB2 (A1) - I2C SCL সেন্সরের সাথে সংযুক্ত
    8. পিন 8: VCC - 5V এর সাথে সংযুক্ত

ATTiny85 এর সাথে কাজ করার জন্য একটু বেশি কাজ প্রয়োজন কারণ আপনাকে I2C comm (adafruit/TinyWireM) এবং সিরিয়াল আউটপুট (TinyDebugSerial) এর জন্য অতিরিক্ত লাইব্রেরি পেতে হবে। উপরন্তু মেমরিটি বেশ সীমিত হওয়ায় আপনি হয়তো #define দিয়ে অনেক কাজ করতে চান। সিরিয়াল ডিবাগিং অপসারণ করতে। উদাহরণে আপনি এই সব একসঙ্গে নিক্ষিপ্ত দেখতে পারেন।

প্রথম ধাপটি পরীক্ষা করার জন্য LED টি সঠিক ফ্রিকোয়েন্সি, 0.5Hz এর সাথে জ্বলছে কিনা তা পরীক্ষা করা। তারপর এটি 1wire বাসে সংযুক্ত করুন এবং নতুন ডিভাইসটি পরীক্ষা করুন।

প্রস্তাবিত: