সুচিপত্র:
ভিডিও: IOT123 - I2C ব্রিক মাস্টার জিগ: 4 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:02
ASSIMILATE SENSORS এবং ACTORS ডেভেলপ করার সময়, আমি প্রোটোটাইপ তৈরির জন্য অ্যাডহক I2C কমান্ড পাঠানোর জন্য একটি UNO কে ব্যবহার করি। I2C BRICKS- এর অন্যতম সুবিধা হল মানসম্মত পিনআউট। প্রতিবার ব্রেডবোর্ডের তারের (ফ্রিজিংস দেখুন) ব্যবহার করার পরিবর্তে, একটি শক্ত লো-টেক shাল ব্যবহার করা হয়।
ধাপ 1: উপকরণ এবং সরঞ্জাম
- 4cm x 6cm Uninersal PCB (1)
- হুকআপ ওয়্যার (~ 6)
- 4K7 প্রতিরোধক (2) 6
- পুরুষ শিরোলেখ (12 পি, 8 পি)
- মহিলা হেডার (9P, বা 3P, 3P)
- ঝাল এবং লোহা (1)
ধাপ 2: সমাবেশ
যদি আপনি 1 অফ 9P মহিলা হেডারের পরিবর্তে 2 টি 3P মহিলা হেডার ব্যবহার করেন, তাহলে অ্যাসিমিলেট সেন্সর/অ্যাক্টরগুলি তাদের আলাদা না করে JIG- এ ফিট হবে।
তারের সাথে, প্রান্তে 10 মিমি পর্যন্ত স্ট্রিপ করুন এবং খুব শেষের টিন করুন।
- PCB এর নীচে, পুরুষ হেডার (1) (2) soldোকান এবং উপরে ঝাল বন্ধ করুন।
- পিসিবির শীর্ষে, মহিলা হেডার (3) সন্নিবেশ করান এবং নীচে ঝাল বন্ধ করুন।
- শীর্ষে, RED1 এবং RED2 এর মধ্যে একটি লাল তারের ছিদ্র।
- নীচে, RED1 থেকে RED3 তে গর্তের তারের মাধ্যমে।
- নীচে, RED2 থেকে RED5, এবং ঝালাইয়ের মাধ্যমে ছিদ্রযুক্ত তার।
- উপরে, RED3 থেকে RED4, এবং ঝালাইয়ের মধ্য দিয়ে ছিদ্রযুক্ত তার।
- উপরে, RED6 এবং RED7 এর মধ্যে একটি লাল তারের ছিদ্র।
- নিচের দিকে, RED6 থেকে RED8 পর্যন্ত ছিদ্রযুক্ত তার।
- নীচে, RED7 থেকে RED10, এবং ঝালাইয়ের মাধ্যমে ছিদ্রযুক্ত তার।
- শীর্ষে, RED8 থেকে RED9, এবং ঝালাইয়ের মাধ্যমে ছিদ্রযুক্ত তার।
- শীর্ষে, ব্ল্যাক 1 এবং ব্ল্যাক 2 এর মধ্যে একটি কালো তারের মাধ্যমে।
- নীচে, BLACK1 থেকে BLACK3 পর্যন্ত গর্তের তারের মাধ্যমে।
- নীচে, BLACK2 থেকে BLACK5, এবং ঝাল মধ্যে থ্রু-হোল তার।
- উপরে, BLACK3 থেকে BLACK4, এবং ঝালাইয়ের মধ্য দিয়ে ছিদ্রযুক্ত তার।
- উপরে, ব্লু 1 এবং ব্লু 2 এর মধ্যে একটি নীল তারের মাধ্যমে ছিদ্র করুন।
- নীচে, BLUE1 থেকে BLUE3 এ গর্তের তারের মাধ্যমে।
- নীচে, BLUE2 থেকে BLUE5, এবং ঝালাইয়ের মাধ্যমে ছিদ্রযুক্ত তার।
- উপরে, BLUE3 থেকে BLUE4, এবং ঝালাইয়ের মধ্য দিয়ে ছিদ্রযুক্ত তার।
- উপরে, GREEN1 এবং GREEN2 এর মধ্যে একটি সবুজ তারের মাধ্যমে ছিদ্র করুন।
- নিচের দিকে, GREEN1 থেকে GREEN3 পর্যন্ত গর্তের তারের মাধ্যমে।
- নীচে, GREEN2 থেকে GREEN5, এবং ঝালাইয়ের মাধ্যমে ছিদ্রযুক্ত তার।
- উপরে, GREEN3 থেকে GREEN4, এবং ঝালাইয়ের মধ্য দিয়ে ছিদ্রযুক্ত তার।
- শীর্ষে, সিলভার 3 এবং সিলভার 4-এ 4K7 রোধকারী ছিদ্র করে।
- নীচে, SILVER3 থেকে GREEN5, এবং ঝালাইয়ের মাধ্যমে ছিদ্রযুক্ত তার।
- নীচে, SILVER4 থেকে RED10, এবং ঝালাইয়ের মাধ্যমে ছিদ্রযুক্ত তার।
- শীর্ষে, সিলভার 1 এবং সিলভার 2 এর মধ্যে 4K7 রোধকারী ছিদ্র করে।
- নীচে, SILVER1 থেকে BLUE5, এবং ঝাল মধ্যে থ্রু-হোল তার।
- নীচে, SILVER2 থেকে RED10, এবং ঝালাইয়ের মাধ্যমে ছিদ্রযুক্ত তার।
ধাপ 3: ইউএনও এর জন্য কোড
এখানে স্কেচটি প্রাথমিক। এটি আপনাকে কনসোল ইনপুট ব্যবহার করতে দেয়, যাতে ইউএনও I2C ATTINY85 ব্রিকের কাছে I2C বার্তা পাঠায়।
সমস্ত নির্দেশাবলী সমর্থিত বিকল্প সহ পর্দায় মুদ্রিত হয়।
ইউএনও মাস্টারের দাসদের জন্য আই 2 সি ব্রিক অ্যাডহক কমান্ড।
#অন্তর্ভুক্ত |
const বাইট _num_chars = 32; |
char _received_chars [_num_chars]; // প্রাপ্ত ডেটা সংরক্ষণ করার জন্য একটি অ্যারে |
বুলিয়ান _has_new_data = মিথ্যা; |
অকার্যকর সেটআপ() { |
Serial.begin (9600); |
Serial.println (); |
Serial.println ("ASIMILATE 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 (ঠিকানা); |
const বাইট ত্রুটি = Wire.endTransmission (); |
যদি (ত্রুটি == 0) |
{ |
Serial.println (ঠিকানা); |
} |
} |
} |
voidloop () { |
recv_with_end_marker (); |
send_to_i2c (); |
} |
voidrecv_with_end_marker () { |
স্ট্যাটিক বাইট ndx = 0; |
char end_marker = '\ n'; |
char 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_chars); |
যদি (_has_new_data == সত্য) { |
int idx1 = receive_string.indexOf (''); |
স্ট্রিং ঠিকানা = প্রাপ্ত_স্ট্রিং। সাবস্ট্রিং (0, idx1); |
int address_int = address.toInt (); |
যদি (address_int <8 || address_int> 127) { |
Serial.println ("অবৈধ ঠিকানা ইনপুট:"); |
Serial.println (ঠিকানা); |
প্রত্যাবর্তন; |
} |
int idx2 = receive_string.indexOf ('', idx1+1); |
স্ট্রিং কোড; |
যদি (idx2 == -1) { |
কোড = receive_string.substring (idx1+1); |
} অন্য { |
কোড = receive_string.substring (idx1+1, idx2+1); |
} |
int code_int = code.toInt (); |
if (code_int <0 || code_int> 5) { |
Serial.println ("ইনভ্যালিড কোড ইনপুট:"); |
Serial.println (কোড); |
প্রত্যাবর্তন; |
} |
bool has_parameter = idx2> -1; |
স্ট্রিং প্যারামিটার; |
যদি (has_parameter) { |
প্যারামিটার = প্রাপ্ত_স্ট্রিং.সাবস্ট্রিং (idx2 + 1, idx2 + 17); // 16 অক্ষর সর্বোচ্চ |
যদি (parameter.length () <1) { |
Serial.println ("অংশীদার মিনিট। দৈর্ঘ্য 1"); |
_has_new_data = মিথ্যা; |
প্রত্যাবর্তন; |
} |
} অন্য { |
যদি (code_int> 1) { |
Serial.println ("প্যারামিটার প্রয়োজন!"); |
_has_new_data = মিথ্যা; |
প্রত্যাবর্তন; |
} |
} |
Serial.println (); |
সিরিয়াল.প্রিন্ট ("ইনপুট অরিজ ="); |
Serial.println (প্রাপ্ত_স্ট্রিং); |
সিরিয়াল.প্রিন্ট ("ঠিকানা ="); |
Serial.println (ঠিকানা); |
সিরিয়াল.প্রিন্ট ("কোড ="); |
Serial.println (কোড); |
সিরিয়াল.প্রিন্ট ("প্যারামিটার ="); |
Serial.println (প্যারামিটার); |
// I2C এর মাধ্যমে পাঠান |
Wire.beginTransmission (address_int); |
Wire.write (code_int); |
যদি (has_parameter) { |
parameter.trim (); |
strcpy (param_buf, parameter.c_str ()); |
Wire.write (param_buf); |
} |
Wire.endTransmission (); |
Serial.println (); |
Serial.println ("S2 VIA I2C!"); |
Serial.println (); |
Serial.println (""); |
_has_new_data = মিথ্যা; |
} |
} |
GitHub দ্বারা raw দিয়ে হোস্ট করা rawuno_i2c_command_input.ino দেখুন
ধাপ 4: পরবর্তী পদক্ষেপ
উপস্থাপিত বিল্ডগুলি থেকে, আপনার নিজের এসিমিলিয়েট আইওটি নেটওয়ার্ক তৈরি করার জন্য আপনার জন্য যথেষ্ট চলমান অংশ রয়েছে।
নোডগুলির প্রতিটি স্বতন্ত্র কাজ (সেন্সর এবং অভিনেতা) বিকেন্দ্রীভূত পদ্ধতিতে নিয়ন্ত্রিত হয়, এমসিইউ মাস্টারের উপর নির্ভর না করে সমর্থিত বৈশিষ্ট্যগুলির কোন জ্ঞান থাকতে হবে।
এমকিউটিটি ব্রোকারের সাথে সংযুক্ত যেকোনো অ্যাপ আইওটি নোডের প্রতিটি বৈশিষ্ট্য নিয়ন্ত্রণ/পর্যবেক্ষণ করতে পারে। এটি এম 2 এম, ওয়েব অ্যাপ্লিকেশন, আইএফটিটিটি এবং আরও অনেক কিছু। আপনার আইওটি জগতের ইন্টারফেসগুলি অনেক সহজ (অথবা যদি আপনি পছন্দ করেন)।
প্রস্তাবিত:
SMD টেস্টিং জিগ: 3 ধাপ
এসএমডি টেস্টিং জিগ: এসএমডিগুলি একবার আপনি তাদের অভ্যস্ত হয়ে গেলে, কিন্তু তাদের ক্ষুদ্র আকার তাদের পরীক্ষা করা কঠিন করে তোলে আমি কয়েক বছর আগে পুরানো সার্কিট বোর্ড থেকে ব্যবহৃত এসএমডি সংগ্রহ করা শুরু করেছি। বিনামূল্যে উপাদান, হ্যাঁ! কিন্তু তারপর তাদের বাছাই এবং খুঁজে পেতে সমস্যা আছে
IOT123 - ATTINY85 অনবোর্ড প্রোগ্রামিং জিগ: 3 ধাপ
IOT123 - ATTINY85 অনবোর্ড প্রোগ্রামিং জিআইজি: ব্রিক ডিজাইনে, আমি উল্লেখ করেছি ATTINY85 সংলগ্ন থ্রু -হোলগুলি অব্যবহৃত রেখে দেওয়া হয়েছে, যাতে একটি Pogo পিন প্রোগ্রামার চালু করা যায় যখন DIP8 PCB- এর কাছে বিক্রি হয়। এটি সেই পোগো পিন প্রোগ্রামার। এটি সত্যিই একটি অ্যাডাপ্টার সীসা থেকে
IOT123 - LIR2032 ব্যাটারি ব্রিক: 4 টি ধাপ
IOT123 - LIR2032 ব্যাটারি ব্রিক: IOT123 BRICKS হল DIY মডুলার ইউনিট যা অন্যান্য IOT123 BRICKS এর সাথে মেশানো যায়, যাতে নোড বা পরিধেয় কার্যকারিতা যোগ করা যায়। তারা ইঞ্চি বর্গক্ষেত্রের উপর ভিত্তি করে, গর্তের মধ্য দিয়ে পরস্পর সংযুক্ত ডবল পার্শ্বযুক্ত প্রোটোবোর্ড। যদিও নির্দেশনা
IOT123 - 3.3V পাওয়ার ব্রিক: 4 টি ধাপ
IOT123 - 3.3V পাওয়ার ব্রিক: IOT123 BRICKS হল DIY মডুলার ইউনিট যা অন্যান্য IOT123 BRICKS এর সাথে মেশানো যায়, যাতে নোড বা পরিধানযোগ্য কার্যকারিতা যোগ করা যায়। তারা ইঞ্চি বর্গক্ষেত্রের উপর ভিত্তি করে, গর্তের মধ্য দিয়ে পরস্পর সংযুক্ত ডবল পার্শ্বযুক্ত প্রোটোবোর্ড। যদিও নির্দেশনা
IOT123 - 5PIN ATTINY85 NRF24L01 ব্রিক: 4 টি ধাপ
IOT123 - 5PIN ATTINY85 NRF24L01 ব্রিক: আপডেট: এই সেটআপটি মূলত একাডেমিক বা সফটওয়্যার/পাওয়ার সাপ্লাই পরীক্ষার ভিত্তি। এমনকি যখন PB5 রিসেট হিসাবে নিষ্ক্রিয় করা হয়, এটি এনালগ রিড ব্যবহার করে সঠিকভাবে মানগুলি পড়ে না: সেন্সর রিডিংগুলির জন্য প্রধান ব্যবহারের ক্ষেত্রে। ATTINY84 সেটআপের দিকে নজর দেবে