সুচিপত্র:

IOT123 - I2C ব্রিক মাস্টার জিগ: 4 টি ধাপ
IOT123 - I2C ব্রিক মাস্টার জিগ: 4 টি ধাপ

ভিডিও: IOT123 - I2C ব্রিক মাস্টার জিগ: 4 টি ধাপ

ভিডিও: IOT123 - I2C ব্রিক মাস্টার জিগ: 4 টি ধাপ
ভিডিও: IOT123 - ICOS10: STRUCTURE 2024, নভেম্বর
Anonim
IOT123 - I2C ব্রিক মাস্টার জিআইজি
IOT123 - I2C ব্রিক মাস্টার জিআইজি
IOT123 - I2C ব্রিক মাস্টার জিআইজি
IOT123 - I2C ব্রিক মাস্টার জিআইজি
IOT123 - I2C ব্রিক মাস্টার জিআইজি
IOT123 - I2C ব্রিক মাস্টার জিআইজি

ASSIMILATE SENSORS এবং ACTORS ডেভেলপ করার সময়, আমি প্রোটোটাইপ তৈরির জন্য অ্যাডহক I2C কমান্ড পাঠানোর জন্য একটি UNO কে ব্যবহার করি। I2C BRICKS- এর অন্যতম সুবিধা হল মানসম্মত পিনআউট। প্রতিবার ব্রেডবোর্ডের তারের (ফ্রিজিংস দেখুন) ব্যবহার করার পরিবর্তে, একটি শক্ত লো-টেক shাল ব্যবহার করা হয়।

ধাপ 1: উপকরণ এবং সরঞ্জাম

উপকরণ এবং সরঞ্জাম
উপকরণ এবং সরঞ্জাম
উপকরণ এবং সরঞ্জাম
উপকরণ এবং সরঞ্জাম
উপকরণ এবং সরঞ্জাম
উপকরণ এবং সরঞ্জাম
উপকরণ এবং সরঞ্জাম
উপকরণ এবং সরঞ্জাম
  1. 4cm x 6cm Uninersal PCB (1)
  2. হুকআপ ওয়্যার (~ 6)
  3. 4K7 প্রতিরোধক (2) 6
  4. পুরুষ শিরোলেখ (12 পি, 8 পি)
  5. মহিলা হেডার (9P, বা 3P, 3P)
  6. ঝাল এবং লোহা (1)

ধাপ 2: সমাবেশ

সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ

যদি আপনি 1 অফ 9P মহিলা হেডারের পরিবর্তে 2 টি 3P মহিলা হেডার ব্যবহার করেন, তাহলে অ্যাসিমিলেট সেন্সর/অ্যাক্টরগুলি তাদের আলাদা না করে JIG- এ ফিট হবে।

তারের সাথে, প্রান্তে 10 মিমি পর্যন্ত স্ট্রিপ করুন এবং খুব শেষের টিন করুন।

  1. PCB এর নীচে, পুরুষ হেডার (1) (2) soldোকান এবং উপরে ঝাল বন্ধ করুন।
  2. পিসিবির শীর্ষে, মহিলা হেডার (3) সন্নিবেশ করান এবং নীচে ঝাল বন্ধ করুন।
  3. শীর্ষে, RED1 এবং RED2 এর মধ্যে একটি লাল তারের ছিদ্র।
  4. নীচে, RED1 থেকে RED3 তে গর্তের তারের মাধ্যমে।
  5. নীচে, RED2 থেকে RED5, এবং ঝালাইয়ের মাধ্যমে ছিদ্রযুক্ত তার।
  6. উপরে, RED3 থেকে RED4, এবং ঝালাইয়ের মধ্য দিয়ে ছিদ্রযুক্ত তার।
  7. উপরে, RED6 এবং RED7 এর মধ্যে একটি লাল তারের ছিদ্র।
  8. নিচের দিকে, RED6 থেকে RED8 পর্যন্ত ছিদ্রযুক্ত তার।
  9. নীচে, RED7 থেকে RED10, এবং ঝালাইয়ের মাধ্যমে ছিদ্রযুক্ত তার।
  10. শীর্ষে, RED8 থেকে RED9, এবং ঝালাইয়ের মাধ্যমে ছিদ্রযুক্ত তার।
  11. শীর্ষে, ব্ল্যাক 1 এবং ব্ল্যাক 2 এর মধ্যে একটি কালো তারের মাধ্যমে।
  12. নীচে, BLACK1 থেকে BLACK3 পর্যন্ত গর্তের তারের মাধ্যমে।
  13. নীচে, BLACK2 থেকে BLACK5, এবং ঝাল মধ্যে থ্রু-হোল তার।
  14. উপরে, BLACK3 থেকে BLACK4, এবং ঝালাইয়ের মধ্য দিয়ে ছিদ্রযুক্ত তার।
  15. উপরে, ব্লু 1 এবং ব্লু 2 এর মধ্যে একটি নীল তারের মাধ্যমে ছিদ্র করুন।
  16. নীচে, BLUE1 থেকে BLUE3 এ গর্তের তারের মাধ্যমে।
  17. নীচে, BLUE2 থেকে BLUE5, এবং ঝালাইয়ের মাধ্যমে ছিদ্রযুক্ত তার।
  18. উপরে, BLUE3 থেকে BLUE4, এবং ঝালাইয়ের মধ্য দিয়ে ছিদ্রযুক্ত তার।
  19. উপরে, GREEN1 এবং GREEN2 এর মধ্যে একটি সবুজ তারের মাধ্যমে ছিদ্র করুন।
  20. নিচের দিকে, GREEN1 থেকে GREEN3 পর্যন্ত গর্তের তারের মাধ্যমে।
  21. নীচে, GREEN2 থেকে GREEN5, এবং ঝালাইয়ের মাধ্যমে ছিদ্রযুক্ত তার।
  22. উপরে, GREEN3 থেকে GREEN4, এবং ঝালাইয়ের মধ্য দিয়ে ছিদ্রযুক্ত তার।
  23. শীর্ষে, সিলভার 3 এবং সিলভার 4-এ 4K7 রোধকারী ছিদ্র করে।
  24. নীচে, SILVER3 থেকে GREEN5, এবং ঝালাইয়ের মাধ্যমে ছিদ্রযুক্ত তার।
  25. নীচে, SILVER4 থেকে RED10, এবং ঝালাইয়ের মাধ্যমে ছিদ্রযুক্ত তার।
  26. শীর্ষে, সিলভার 1 এবং সিলভার 2 এর মধ্যে 4K7 রোধকারী ছিদ্র করে।
  27. নীচে, SILVER1 থেকে BLUE5, এবং ঝাল মধ্যে থ্রু-হোল তার।
  28. নীচে, 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 এম, ওয়েব অ্যাপ্লিকেশন, আইএফটিটিটি এবং আরও অনেক কিছু। আপনার আইওটি জগতের ইন্টারফেসগুলি অনেক সহজ (অথবা যদি আপনি পছন্দ করেন)।

প্রস্তাবিত: