সুচিপত্র:

IOT123 - I2C MQ2 ব্রিক: 5 টি ধাপ
IOT123 - I2C MQ2 ব্রিক: 5 টি ধাপ

ভিডিও: IOT123 - I2C MQ2 ব্রিক: 5 টি ধাপ

ভিডিও: IOT123 - I2C MQ2 ব্রিক: 5 টি ধাপ
ভিডিও: MQ-2 датчик газов и дыма подключаем к Arduino 2024, নভেম্বর
Anonim
IOT123 - I2C MQ2 ব্রিক
IOT123 - I2C MQ2 ব্রিক
IOT123 - I2C MQ2 ব্রিক
IOT123 - I2C MQ2 ব্রিক
IOT123 - I2C MQ2 ব্রিক
IOT123 - I2C MQ2 ব্রিক
IOT123 - I2C MQ2 ব্রিক
IOT123 - I2C MQ2 ব্রিক

IOT123 BRICKS হল DIY মডুলার ইউনিট যা অন্যান্য IOT123 BRICKS এর সাথে মেশানো যায়, যাতে নোড বা পরিধেয় কার্যকারিতা যোগ করা যায়। তারা ইঞ্চি বর্গক্ষেত্রের উপর ভিত্তি করে, গর্তের মাধ্যমে আন্তconসংযোগযুক্ত ডবল পার্শ্বযুক্ত প্রোটোবোর্ড।

এই ব্রিকগুলির একটি সংখ্যা একাধিক নোডের (মাস্টার MCUs - ESP8266 বা ATTINY84) একটি সাইটে থাকতে পারে বলে আশা করা হচ্ছে। এমসিইউর সেন্সর উদ্দেশ্য বা সফটওয়্যারের প্রয়োজনের পূর্বের জ্ঞানের প্রয়োজন নেই। এটি I2C নোডের জন্য স্ক্যান করে তারপর প্রতিটি ক্রীতদাস থেকে একটি সম্পত্তি ডাম্প (সেন্সর ডেটা) অনুরোধ করে। এই ব্রিকগুলি 5.0V, 3.3V এবং অন্য AUX লাইন সরবরাহ করে যা কাস্টমাইজযোগ্য।

এই I2C MQ2 ব্রিক 3 টি বৈশিষ্ট্য ডাম্প করে:

এলপিজি (পার্টস পার মিলিয়ন), সিও (পিপিএম), স্মোক (পিপিএম)।

এই সেন্সরটি একটি আকর্ষণীয় দৃশ্যপট সরবরাহ করেছে: এটি গরম করার জন্য কমপক্ষে 2 মিনিট (5 মিনিট পর্যন্ত) প্রয়োজন, তারপর ব্যবহারের আগে এটি 20 সেকেন্ডের জন্য ক্রমাঙ্কন করতে হবে। যেহেতু হোস্ট MCU শুধুমাত্র নাম/মান জোড়া (এবং একটি অবিরত বার্তা) পেতে আগ্রহী, আমরা একটি "প্রস্তুত" সম্পত্তি চালু করেছি। যেহেতু তার অব্যাহত বার্তাটি "1" (আরও আসতে হবে), হোস্ট এমসিইউ ব্রিক প্রস্তুত না হওয়া পর্যন্ত ভোট দেবে। এছাড়াও ব্যবহারের আগে MQ2 "বার্ন-ইন" করার পরামর্শ দেওয়া হয় অর্থাৎ আপনার 5V সার্কিটের সাথে 24 ঘন্টার জন্য সংযুক্ত থাকুন।

Keyes টাইপ সেন্সর ইটগুলি প্রথমে বিমূর্ত হবে কারণ তারা ভিটামিন (অতিরিক্ত উপাদান প্রয়োজন) সহ অন্তর্ভুক্ত এবং অপেক্ষাকৃত চিপ (আমি 10AUD এর জন্য 37 কিনেছি)। অন্যান্য বোর্ড/সার্কিটগুলি I2C BRICKS- এ চালু করা হবে।

ATPINY85 সংলগ্ন থ্রু-হোলগুলি অব্যবহৃত রেখে দেওয়া হয়েছে, যাতে একটি পোগো পিন প্রোগ্রামার সক্ষম হয়, যখন DIP8 PCB- এর কাছে বিক্রি হয়।

আরও একটি বিমূর্ততা, ব্রিক্সগুলিকে ছোট সিলিন্ডারে প্যাকেজ করা যা একটি D1M WIFI BLOCK হাবের মধ্যে প্লাগ করে, একটি MQTT সার্ভারে মানগুলি পাম্প করে তৈরি করা হচ্ছে।

ধাপ 1: উপাদান এবং সরঞ্জাম

উপাদান এবং সরঞ্জাম
উপাদান এবং সরঞ্জাম
উপাদান এবং সরঞ্জাম
উপাদান এবং সরঞ্জাম
উপাদান এবং সরঞ্জাম
উপাদান এবং সরঞ্জাম

একটি সম্পূর্ণ বিল উপাদান এবং সোর্সিং তালিকা আছে।

  1. MQ2 সেন্সর ইট (1)
  2. ATTINY85 20PU (1)
  3. 1 "ডবল পার্শ্বযুক্ত প্রোটোবোর্ড (1)
  4. পুরুষ শিরোলেখ 90º (3P, 3P)
  5. পুরুষ শিরোলেখ (2P, 2P)
  6. জাম্পার শান্ট (1)
  7. হুকআপ ওয়্যার (~ 7)
  8. ঝাল এবং লোহা (1)

ধাপ 2: ATTINY85 প্রস্তুত করুন

ATTINY85 প্রস্তুত করুন
ATTINY85 প্রস্তুত করুন
ATTINY85 প্রস্তুত করুন
ATTINY85 প্রস্তুত করুন
ATTINY85 প্রস্তুত করুন
ATTINY85 প্রস্তুত করুন
ATTINY85 প্রস্তুত করুন
ATTINY85 প্রস্তুত করুন

বোর্ড ম্যানেজার থেকে AttinyCore প্রয়োজন। বার্ন বুটলোডার "EEPROM রিটেনড", "8mHZ ইন্টারনাল" (উপরে দেখানো সব কনফিগারেশন)।

অন্তর্ভুক্ত উৎস ব্যবহার করুন; ATtiny85 এ কম্পাইল এবং প্রোগ্রাম করুন।

GIST এখানে:

gist.github.com/IOT-123/4c501046d365d01a60…

আপনি এই নির্দেশাবলীতে আরও বিস্তারিত জানতে পারেন:

www.instructables.com/id/Programming-the-A…

www.instructables.com/id/How-to-Program-AT…

www.instructables.com/id/How-to-program-th…

www.instructables.com/id/Programming-the-A…

www.instructables.com/id/Programming-an-At…

চালিয়ে যাওয়ার আগে ব্রেডবোর্ডের মাধ্যমে পরীক্ষা করা ভাল।

যদি আপনার বিদ্যমান এসিমিলিয়েট সেন্সর থাকে, তাহলে নিশ্চিত করুন যে সেন্সর/এমসিইউ হোস্ট কম্বিনেশনে স্লেভ অ্যাড্রেস আলাদা, অর্থাৎ সমস্ত তাপমাত্রা সেন্সরের একই ঠিকানা থাকতে পারে যতক্ষণ আপনার একটি এমসিইউ/নোডে একটি মাত্র তাপমাত্রা সেন্সর থাকে।

ধাপ 3: সার্কিট একত্রিত করুন

সার্কিট একত্রিত করুন
সার্কিট একত্রিত করুন
সার্কিট একত্রিত করুন
সার্কিট একত্রিত করুন
সার্কিট একত্রিত করুন
সার্কিট একত্রিত করুন
  1. সামনে, ATTINY85 (1), 3P 90deg পুরুষ হেডার (2) (3), 2P পুরুষ হেডার (4) (5), এবং পিছনে ঝাল বন্ধ উপাদানগুলি সন্নিবেশ করান।
  2. পিছনে, ORANGE1 থেকে ORANGE2 এবং সোল্ডারে একটি কমলা তারের সন্ধান করুন।
  3. পিছনে, BLUE1 থেকে BLUE2 এবং সোল্ডারে একটি নীল তারের সন্ধান করুন।
  4. পিছনে, GREEN1 থেকে GREEN2 এবং সোল্ডারে একটি সবুজ তারের সন্ধান করুন।
  5. পিছনে, সিলভার 1 থেকে সিলভার 2 এবং সোল্ডারের একটি খালি তারের সন্ধান করুন।
  6. পিছনে, সিলভার 3 থেকে সিলভার 4 এবং সোল্ডারের একটি খালি তারের সন্ধান করুন।
  7. পিছনে, BLACK1 থেকে BLACK2 এবং সোল্ডার পর্যন্ত একটি কালো তারের সন্ধান করুন।
  8. পিছনে, BLACK3 থেকে BLACK4 এবং সোল্ডারে একটি কালো তারের সন্ধান করুন।
  9. পিছনে, RED1 থেকে RED2 এবং সোল্ডারে একটি লাল তারের সন্ধান করুন।
  10. পিছনে, RED3 থেকে RED4 এবং সোল্ডারে একটি লাল তারের সন্ধান করুন।
  11. পিছনে, YELLOW1 থেকে YELLOW2 এবং সোল্ডারের একটি হলুদ তারের সন্ধান করুন।

সেন্সরটি এখন তার পিনের মাধ্যমে সরাসরি পিসিবি বা তারের মাধ্যমে পিন চুক্তিতে দেখানো পয়েন্টের সাথে সংযুক্ত হতে পারে।

ধাপ 4: পরীক্ষা

পরীক্ষামূলক
পরীক্ষামূলক
পরীক্ষামূলক
পরীক্ষামূলক
পরীক্ষামূলক
পরীক্ষামূলক

এই ব্রিকগুলির একটি সংখ্যা একটি পরিবেশে একাধিক নোডে (MCUs - ESP8266 বা ATTINY84) থাকবে বলে আশা করা হচ্ছে। এটি একটি ইউনিট পরীক্ষা: ইউএনও অনুরোধ/প্রতিক্রিয়া পরীক্ষা করে যতক্ষণ না সমস্ত ডেটা ফেলে দেওয়া হয়, তারপর I2C স্লেভকে অবহেলা করে।

  1. ইউএনও কোড আপনার ইউএনও টেস্ট হারনেসে আপলোড করুন। নিশ্চিত করুন ADDRESS_SLAVE ব্রিকের I2C ঠিকানার সাথে মেলে।
  2. UNO- এ 5.0V ব্রিকের VCC- এর সাথে সংযুক্ত করুন।
  3. নিশ্চিত করুন যে পিনের জন্য জাম্পার চালু আছে।
  4. UNO- তে GND- কে BRID- তে GND -এ সংযুক্ত করুন।
  5. ইউএনও -তে A5 কে BRIC- এ এসসিএল -এ সংযুক্ত করুন।
  6. ইউএনও -তে A4 কে ব্রিকের SDA- এর সাথে সংযুক্ত করুন।
  7. এসডিএ থেকে ভিসিসিতে একটি 4K7 পুল-আপ প্রতিরোধক সংযুক্ত করুন।
  8. এসসিএল থেকে ভিসিসিতে একটি 4K7 পুল-আপ প্রতিরোধক সংযুক্ত করুন।
  9. ইউএসবি দিয়ে আপনার ইউএনওকে আপনার দেব পিসির সাথে সংযুক্ত করুন।
  10. আরডুইনো কনসোল খুলুন 9600 বড চয়ন করুন (ইউএনও পুনরায় চালু করুন এবং যদি আপনার প্রয়োজন হয় তবে কনসোলটি আবার খুলুন)।
  11. সম্পত্তির নাম এবং মানগুলি কনসোলে একবার মুদ্রণ করা উচিত তারপর ঘুম শব্দটি পুনরাবৃত্তি হয়।

যদি আপনি "সেটআপ" দেখতে পান তবে 3 টি আবর্জনার পুনরাবৃত্তি আপনার সামনে আপনার SDA এবং SC লাইন থাকতে পারে।

I2C মাস্টার লগিং I2C স্লেভ থেকে প্লটার/মেটাডেটা সাপোর্ট সহ।

#অন্তর্ভুক্ত
#defineADDRESS_SLAVE10
bool _outputPlotterOnly = মিথ্যা;
bool _confirmedMetadata = মিথ্যা;
int _packetSegment = 0;
bool _i2cNodeProcessed = মিথ্যা;
char _property [2] [24] = {"name", "value"};
অকার্যকর সেটআপ() {
Wire.begin (); // যোগ দিন i2c বাসে (মাস্টারের জন্য optionচ্ছিক ঠিকানা)
Serial.begin (9600); // আউটপুটের জন্য সিরিয়াল শুরু করুন
বিলম্ব (1000);
যদি (! _outputPlotterOnly) {
Serial.println ("সেটআপ");
Serial.println ();
}
}
voidloop () {
যদি (_i2cNodeProcessed) {
if (! _confirmedMetadata) {// ক্রীতদাসকে সেন্সর ডেটা পাঠানো শুরু করতে দিন
বিলম্ব (1);
Wire.beginTransmission (ADDRESS_SLAVE);
Wire.write (1);
Wire.endTransmission ();
বিলম্ব (100);
_confirmedMetadata = সত্য;
}
_i2cNodeProcessed = মিথ্যা;
যদি (! _outputPlotterOnly) {
Serial.println ();
}
প্রত্যাবর্তন;
}
Wire.requestFrom (ADDRESS_SLAVE, 16);
_packetSegment ++;
চার প্যাকেট [16];
intindex = 0;
bool isContinueSegment = false; // continueSegment (3rd) 1 = more, 0 = last
যখন (Wire.available ()) {// স্লেভ অনুরোধের চেয়ে কম পাঠাতে পারে
char c = Wire.read ();
প্যাকেট [সূচক] = int (c)> -1? c: ''; // স্পেস দিয়ে অবৈধ অক্ষর প্রতিস্থাপন করুন
যদি (_packetSegment == 3) {
_packetSegment = 0;
isContinueSegment = true;
//Serial.println("------------- ");
// সিরিয়াল.প্রিন্টলিন
//Serial.println("------------- ");
যদি (int (c) == 48 || int (c) == 86) {// 0 শেষ সম্পত্তিতে
_i2cNodeProcessed = সত্য;
// এমকিউটিটিতে মান পাঠান
বিরতি;
}
}
সূচক ++;
}
যদি (! isContinueSegment) {
যদি (! _outputPlotterOnly) {
Serial.println (প্যাকেট);
}
strcpy (_property [_packetSegment - 1], প্যাকেট); // নাম/মান সহ স্থানীয় var সেট করুন
} অন্য {
যদি (_outputPlotterOnly && _confirmedMetadata) {
যদি (_i2cNodeProcessed) {
Serial.println (_property [1]);
} অন্য {
Serial.print (_property [1]);
সিরিয়াল.প্রিন্ট ("");
}
}
}
}

GitHub দ্বারা raw দিয়ে হোস্ট করা rawuno_i2c_generic_sensor_test_w_plotter_v2.ino দেখুন

ধাপ 5: পরবর্তী পদক্ষেপ

সার্কিটের মৌলিক বিন্যাস এবং সফটওয়্যারের I2C স্তরটি বিভিন্ন সেন্সরের সাথে সম্পর্কিত। শুরু করার জন্য প্রধান জিনিস, মাস্টার এবং ক্রীতদাসের মধ্যে প্যাকেট চুক্তি।

আমি সেন্সরগুলির একটি (3 ডি প্রিন্টেড) প্যাকেজড নেটওয়ার্ক চালু করেছি/শুরু করেছি যা এই কাঠামোটি ব্যবহার করে এবং অংশগুলি প্রকাশিত হওয়ার সাথে সাথে এটির সাথে সংযুক্ত হবে।

এই ব্লকটি MQ2 ASSIMILATE SENSOR দ্বারা ব্যবহৃত হয়।

প্রস্তাবিত: