Სარჩევი:

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 აგური არის წვრილმანი მოდულური ერთეული, რომლის შეზავება შესაძლებელია სხვა IOT123 აგურებთან ერთად, რათა დაამატოთ ფუნქციონირება კვანძზე ან ტარებადი. ისინი დაფუძნებულია დუიმიან კვადრატზე, ორმხრივ პროტო დაფაზე, ერთმანეთთან დაკავშირებული ხვრელებით.

მოსალოდნელია, რომ ამ აგურის რიგი იქნება რამდენიმე კვანძზე (Master MCUs - ESP8266 ან ATTINY84) საიტზე. MCU– ს არ სჭირდება წინასწარი ცოდნა სენსორების დანიშნულების ან პროგრამული უზრუნველყოფის საჭიროებების შესახებ. ის იკვლევს I2C კვანძებს, შემდეგ ითხოვს ქონების ნაგავსაყრელს (სენსორის მონაცემებს) თითოეული მონადან. ეს აგური ამარაგებს 5.0V, 3.3V და სხვა AUX ხაზს, რომლის მორგებაც შესაძლებელია.

ეს I2C MQ2 BRICK აგდებს 3 თვისებას:

LPG (ნაწილები მილიონზე), CO (PPM), SMOKE (PPM)

ამ სენსორმა წარმოადგინა საინტერესო სცენარი: მას სჭირდება მინიმუმ 2 წუთი (5 წუთამდე) გასათბობად, შემდეგ გამოყენებამდე უნდა დაკალიბრდეს 20 წამის განმავლობაში. მასპინძელი MCU მხოლოდ სახელის/მნიშვნელობის წყვილების (და შეტყობინების გაგრძელების) მიღებით არის დაინტერესებული, ჩვენ შემოვიღეთ "PREPARE" თვისება. მას შემდეგ, რაც მისი შეტყობინება არის "1" (უფრო მეტიც), მასპინძელი MCU გააგრძელებს აგურის გამოკითხვას, სანამ ის მზად არ იქნება. ასევე მიზანშეწონილია MQ2- ის "დამწვრობა" გამოყენებამდე, ანუ დატოვეთ თქვენი 5V მიკროსქემთან დაკავშირებული 24 საათის განმავლობაში.

კეისის ტიპის სენსორული აგური პირველად იქნება ამოღებული, რადგან მათ აქვთ ვიტამინები (დამატებითი კომპონენტებია საჭირო) და შედარებით იაფია (37 ვიყიდე 10 AUD– ში). სხვა დაფები/სქემები გაეცნობა I2C აგურს.

ATTINY85– ის მიმდებარე ხვრელები გამოუყენებელი დარჩა, რათა ჩართოს pogo pin პროგრამისტი, ხოლო 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…

გაგრძელებამდე უმჯობესია შეამოწმოთ პურის დაფის საშუალებით.

თუ თქვენ გაქვთ ASIMIMATE SENSORS, დარწმუნდით, რომ მონა მისამართი განსხვავებულია SENSOR/MCU მასპინძლის კომბინაციაში, ანუ ტემპერატურის ყველა სენსორს შეიძლება ჰქონდეს იგივე მისამართი, თუ თქვენ გაქვთ მხოლოდ ერთი ტემპერატურის სენსორი MCU/კვანძზე.

ნაბიჯი 3: შეიკრიბეთ წრე

შეიკრიბეთ წრე
შეიკრიბეთ წრე
შეიკრიბეთ წრე
შეიკრიბეთ წრე
შეიკრიბეთ წრე
შეიკრიბეთ წრე
  1. წინა მხარეს ჩადეთ კომპონენტები ATTINY85 (1), 3P 90deg მამრობითი სათაურები (2) (3), 2P მამრობითი სათაურები (4) (5) და შედგით უკანა მხარეს.
  2. უკანა მხარეს მიაკვლიეთ ფორთოხლის მავთულს ORANGE1– დან ORANGE2– მდე და შეაერთეთ.
  3. უკანა მხარეს, მიჰყევით ლურჯ მავთულს BLUE1– დან BLUE2– მდე და შეაერთეთ.
  4. უკანა მხარეს მიაკვლიეთ მწვანე მავთულს GREEN1– დან GREEN2– მდე და შეაერთეთ.
  5. უკანა მხარეს მიაკვლიეთ შიშველ მავთულს SILVER1– დან SILVER2– მდე და შეაერთეთ.
  6. უკანა მხარეს, მიჰყევით შიშველ მავთულს SILVER3– დან SILVER4– მდე და შეაერთეთ.
  7. უკანა მხარეს, მიჰყევით შავ მავთულს BLACK1– დან BLACK2– მდე და შედუღეთ.
  8. უკანა მხარეს, მიჰყევით შავ მავთულს BLACK3- დან BLACK4- მდე და შედუღეთ.
  9. უკანა მხარეს მიაკვლიეთ წითელ მავთულს RED1– დან RED2– მდე და შეაერთეთ.
  10. უკანა მხარეს მიაკვლიეთ წითელ მავთულს RED3- დან RED4- მდე და შეაერთეთ.
  11. უკანა მხარეს, მიჰყევით ყვითელ მავთულს YELLOW1– დან YELLOW2– მდე და შედუღეთ.

ახლა სენსორი შეიძლება უშუალოდ დაუკავშირდეს PCB– ს პინების საშუალებით ან მავთულის საშუალებით, პინ კონტრაქტში ნაჩვენებ წერტილებს.

ნაბიჯი 4: ტესტირება

ტესტირება
ტესტირება
ტესტირება
ტესტირება
ტესტირება
ტესტირება

ამ აგურის რიგი მოსალოდნელია იყოს მრავალ კვანძზე (MCUs - ESP8266 ან ATTINY84) გარემოში. ეს არის ერთეულის ტესტი: ამოწმებს გაეროს მოთხოვნებს/პასუხებს, სანამ ყველა მონაცემი არ იქნება გადაყრილი, შემდეგ იგნორირებას უკეთებს I2C მონას.

  1. ატვირთეთ გაეროს კოდი თქვენს გაეროს საცდელ აღკაზმულობაში. დარწმუნდით, რომ ADDRESS_SLAVE ემთხვევა BRICK- ის I2C მისამართს.
  2. შეაერთეთ 5.0V UNO– სთან VCC– ზე BRICK– ზე.
  3. დარწმუნდით, რომ jumper რომ pin არის ჩართული.
  4. შეაერთეთ GND UNO– ს GND– თან აგურზე.
  5. შეაერთეთ A5 UNO– ზე SCL– ზე აგურზე.
  6. შეაერთეთ A4 UNO– ს SDA– ს BRICK– ზე.
  7. შეაერთეთ 4K7 გამყვანი რეზისტორი SDA– დან VCC– სთან.
  8. შეაერთეთ 4K7 გამყვანი რეზისტორი SCL– დან VCC– ზე.
  9. შეაერთეთ თქვენი UNO თქვენს Dev კომპიუტერთან USB- ით.
  10. გახსენით Arduino კონსოლი. შეარჩიეთ 9600 baud (გადატვირთეთ UNO და გახსენით კონსოლი, თუ მოგიწევთ).
  11. თვისებების სახელები და მნიშვნელობები უნდა დაიბეჭდოს კონსოლზე ერთხელ და შემდეგ სიტყვა ძილი მეორდება.

თუ ხედავთ "კონფიგურაციას", ნაგვის 3 ხაზი მეორდება, თქვენ შეიძლება გქონდეთ SDA და SCL ხაზები წინა მხარეს.

I2C სამაგისტრო შესვლა I2C მონადიდან პლოტერის/მეტამონაცემების მხარდაჭერით

#ჩართეთ
#defineADDRESS_SLAVE10
bool _outputPlotterOnly = false;
bool _confippedMetadata = false;
int _packetSegment = 0;
bool _i2cNodeProcessed = false;
char _property [2] [24] = {"სახელი", "მნიშვნელობა"};
voidsetup () {
Wire.begin (); // შეუერთდით i2c ავტობუსს (მისამართი არჩევითია სამაგისტროდ)
სერიული.დაწყება (9600); // გამოშვებისთვის სერიალის დაწყება
დაგვიანება (1000);
თუ (! _outputPlotterOnly) {
Serial.println ("კონფიგურაცია");
Serial.println ();
}
}
voidloop () {
თუ (_i2cNodeProcessed) {
თუ (! _confippedMetadata) {// აცნობეთ მონას სენსორის მონაცემების გაგზავნის დასაწყებად
დაგვიანება (1);
Wire.beginTransmission (ADDRESS_SLAVE);
Wire.write (1);
Wire.endTransmission ();
დაგვიანება (100);
_confippedMetadata = ჭეშმარიტი;
}
_i2cNodeProcessed = ყალბი;
თუ (! _outputPlotterOnly) {
Serial.println ();
}
დაბრუნების;
}
მავთული. მოთხოვნა (ADDRESS_SLAVE, 16);
_packetSegment ++;
char პაკეტი [16];
ინდექსი = 0;
bool isContinueSegment = false; // continueSegment (მე -3) 1 = მეტი, 0 = ბოლო
ხოლო (Wire.available ()) {// მონას შეუძლია გამოაგზავნოს მოთხოვნაზე ნაკლები
char c = Wire.read ();
პაკეტი [ინდექსი] = int (გ)> -1? გ: ''; // შეცვალეთ არასწორი სიმბოლოები სივრცეებით
თუ (_packetSegment == 3) {
_packetSegment = 0;
isContinueSegment = ჭეშმარიტი;
//Serial.println("------------- ");
//Serial.println(int(c));
//Serial.println("------------- ");
if (int (c) == 48 || int (c) == 86) {// 0 ბოლო თვისებაზე
_i2cNodeProcessed = ჭეშმარიტი;
// ღირებულებების გაგზავნა MQTT– ში
შესვენება;
}
}
ინდექსი ++;
}
თუ (! isContinueSegment) {
თუ (! _outputPlotterOnly) {
Serial.println (პაკეტი);
}
strcpy (_property [_packetSegment - 1], პაკეტი); // დააყენეთ ადგილობრივი var სახელით/მნიშვნელობით
} სხვა {
if (_outputPlotterOnly && _confippedMetadata) {
თუ (_i2cNodeProcessed) {
Serial.println (_ ქონება [1]);
} სხვა {
Serial.print (_ ქონება [1]);
Serial.print ("");
}
}
}
}

rawuno_i2c_generic_sensor_test_w_plotter_v2.ino ნახვა hosted with GitHub

ნაბიჯი 5: შემდეგი ნაბიჯები

მიკროსქემის ძირითადი განლაგება და პროგრამული უზრუნველყოფის I2C ფენა დაკავშირებულია მრავალ სხვადასხვა სენსორთან. მთავარია, რომ დავიწყოთ თავიდან, არის პაკეტის კონტრაქტი ბატონსა და მონას შორის.

მე შევადგინე/დავიწყე სენსორების (3D ბეჭდვით) შეფუთული ქსელი, რომელიც იყენებს ამ ჩარჩოს და უკავშირდება მას ნაწილების გამოქვეყნებისთანავე.

ეს ბლოკი გამოიყენება MQ2 ASSIMILATE SENSOR– ის მიერ.

გირჩევთ: