Mündəricat:

IOT123 - I2C MQ2 Kərpic: 5 addım
IOT123 - I2C MQ2 Kərpic: 5 addım

Video: IOT123 - I2C MQ2 Kərpic: 5 addım

Video: IOT123 - I2C MQ2 Kərpic: 5 addım
Video: MQ-2 датчик газов и дыма подключаем к Arduino 2024, Iyul
Anonim
IOT123 - I2C MQ2 Kərpic
IOT123 - I2C MQ2 Kərpic
IOT123 - I2C MQ2 Kərpic
IOT123 - I2C MQ2 Kərpic
IOT123 - I2C MQ2 Kərpic
IOT123 - I2C MQ2 Kərpic
IOT123 - I2C MQ2 Kərpic
IOT123 - I2C MQ2 Kərpic

IOT123 BRICKS, bir düyünə funksionallıq və ya geyilə bilən digər IOT123 BRICKS ilə qarışdırıla bilən DIY modul qurğulardır. Onlar düymlük kvadrat, çuxurlardan bir-birinə bağlı olan iki tərəfli protoboardlara əsaslanır.

Bu BRICK -lərin bir çoxunun bir saytda birdən çox qovşaqda (Master MCU -lar - ESP8266 və ya ATTINY84) olması gözlənilir. MCU, sensorların məqsədi və ya proqram ehtiyacları haqqında əvvəlcədən məlumat tələb etmir. I2C qovşaqlarını tarar, sonra hər bir quldan bir mülk zibilliyi (sensor məlumatları) tələb edir. Bu BRICKs 5.0V, 3.3V və özelleştirilebilir başqa bir AUX xətti təmin edir.

Bu I2C MQ2 BRICK 3 xüsusiyyətini atır:

LPG (Milyon Parça), CO (PPM), DUMAN (PPM)

Bu Sensor maraqlı bir ssenari təqdim etdi: İstiləşmək üçün ən azı 2 dəqiqə (5 dəqiqəyə qədər) lazımdır, sonra istifadə etməzdən əvvəl 20 saniyə ərzində kalibr etməsi lazımdır. Ev sahibi MCU yalnız ad/dəyər cütləri (və davam mesajı) əldə etmək istədiyi üçün "HAZIRLA" xüsusiyyətini təqdim etdik. Davam mesajı "1" (daha çox gələcək) olduğu üçün, ev sahibi MCU hazır olana qədər BRICK -ı sorğu -sual etməyə davam edəcək. İstifadədən əvvəl MQ2-ni "yandırmaq" tövsiyə olunur, yəni 24 saat ərzində 5V dövrə bağlı olaraq buraxın.

Keyes tipli kərpiclər əvvəlcə vitaminlər (əlavə komponentlərə ehtiyac duyulur) daxil edildikləri və nisbətən cəlbedici olduqları üçün soyudulacaq (37 AUD üçün 37 almışam). Digər lövhələr/sxemlər I2C BRICKS ilə tanış olacaq.

ATTINY85-ə bitişik olan deliklər, DIP8 PCB-yə lehimlənərkən bir pogo pin proqramçısını işə salmaq üçün istifadə edilməmişdir.

D1M WIFI BLOCK hub -a qoşulan kiçik silindrlərdə BRICKS -in qablaşdırılması, dəyərlərin MQTT serverinə ötürülməsi ilə əlaqəli başqa bir abstraksiya hazırlanır.

Addım 1: Material və Alətlər

Alətlər və Materiallar
Alətlər və Materiallar
Alətlər və Materiallar
Alətlər və Materiallar
Alətlər və Materiallar
Alətlər və Materiallar

Tam bir material və qaynaq siyahısı var.

  1. MQ2 sensor kərpic (1)
  2. ATTINY85 20PU (1)
  3. 1 "İki tərəfli protoboard (1)
  4. Kişi Başlığı 90º (3P, 3P)
  5. Kişi Başlığı (2P, 2P)
  6. Jumper Şantı (1)
  7. Bağlama teli (~ 7)
  8. Lehim və Dəmir (1)

Addım 2: ATTINY85 hazırlayın

ATTINY85 hazırlayın
ATTINY85 hazırlayın
ATTINY85 hazırlayın
ATTINY85 hazırlayın
ATTINY85 hazırlayın
ATTINY85 hazırlayın
ATTINY85 hazırlayın
ATTINY85 hazırlayın

Şuralar Menecerindən AttinyCore tələb olunur. "EEPROM Saxlandı", "8mHZ Daxili" önyükleyici yazın (bütün konfiqurasiya yuxarıda göstərilmişdir).

Daxil olan mənbədən istifadə edin; ATtiny85 -ə tərtib edin və proqramlaşdırın.

GIST burada:

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

Bu təlimatlarda daha ətraflı məlumat tapa bilərsiniz:

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…

Davam etməzdən əvvəl çörək taxtası vasitəsilə test etmək daha yaxşıdır.

Mövcud ASSIMILATE SENSORS varsa, bir SENSOR/MCU Host kombinasiyasında qul ünvanının fərqli olduğundan əmin olun, yəni bir MCU/nodda yalnız bir Temperatur sensoru olduğu müddətdə bütün Temperatur sensörləri eyni ünvana sahib ola bilər.

Addım 3: Dövrə yığın

Dövrə yığın
Dövrə yığın
Dövrə yığın
Dövrə yığın
Dövrə yığın
Dövrə yığın
  1. Ön tərəfə komponentləri ATTINY85 (1), 3P 90deg kişi başlıqları (2) (3), 2P kişi başlıqları (4) (5) daxil edin və arxadan lehimləyin.
  2. Arxa tərəfdə, ORANGE1 -dən ORANGE2 -ə qədər narıncı bir tel izləyin və lehimləyin.
  3. Arxa tərəfdə, BLUE1 -dən BLUE2 -ə qədər mavi bir tel izləyin və lehimləyin.
  4. Arxa tərəfdə, GREEN1 -dən GREEN2 -ə qədər bir yaşıl tel izləyin və lehimləyin.
  5. Arxa tərəfdə, SILVER1 -dən SILVER2 -ə qədər olan çılpaq bir teli və lehimi izləyin.
  6. Arxa tərəfdə, SILVER3 -dən SILVER4 -ə qədər olan çılpaq bir teli və lehimi izləyin.
  7. Arxa tərəfdə, BLACK1 -dən BLACK2 -ə qədər qara teli və lehimi izləyin.
  8. Arxa tərəfdə, BLACK3 -dən BLACK4 -ə qədər qara tel və lehim izi çəkin.
  9. Arxa tərəfdə RED1 -dən RED2 -ə qədər qırmızı tel və lehim izi çəkin.
  10. Arxa tərəfdə, RED3 -dən RED4 -ə qədər qırmızı tel və lehim izi çəkin.
  11. Arxa tərəfdə, sarı teldən SARI2 -ə qədər sarı bir tel izləyin və lehimləyin.

İndi sensor birbaşa pinləri vasitəsilə PCB -yə və ya tellər vasitəsilə pin müqaviləsində göstərilən nöqtələrə qoşula bilər.

Addım 4: Test

Test
Test
Test
Test
Test
Test

Bu BRICK -lərin bir çoxunun bir mühitdə çoxlu qovşaqlarda (MCU -lar - ESP8266 və ya ATTINY84) olması gözlənilir. Bu vahid testdir: bütün məlumatlar atılana qədər UNO istəklərini/cavablarını yoxlayır, sonra I2C qulunu laqeyd edir.

  1. UNO kodunu UNO test qoşquya yükləyin. ADDRESS_SLAVE -nin BRICK -in I2C ünvanına uyğun olduğundan əmin olun.
  2. UNO üzərindəki 5.0V -ni BRICK üzərindəki VCC -yə qoşun.
  3. Bu pin üçün tullananların olduğundan əmin olun.
  4. UNO üzərindəki GND -ni BRICK üzərindəki GND -yə bağlayın.
  5. UNO üzərindəki A5 -i BRICK üzərindəki SCL -ə qoşun.
  6. UNO -da A4 -ü BRICK -də SDA -ya bağlayın.
  7. SDA-dan VCC-yə 4K7 çəkmə müqavimətini bağlayın.
  8. SCL-dən VCC-yə 4K7 çəkmə müqavimətini bağlayın.
  9. UNO'nuzu USB ilə Dev PC -yə qoşun.
  10. Arduino Konsolunu açın. 9600 baud seçin (UNO -nu yenidən başladın və lazım olduqda konsolu yenidən açın).
  11. Mülkiyyət Adları və dəyərləri, yuxu sözü təkrarlandıqdan sonra konsola yazılmalıdır.

"Quraşdırma" görürsünüzsə, 3 satır zibil təkrarlanırsa, SDA və SCL xətlərinizi ön tərəfə çevirə bilərsiniz.

I2C Master, I2C qulundan plotter/metadata dəstəyi ilə giriş

#daxil edin
#təyin ADDRESS_SLAVE10
bool _outputPlotterOnly = yalan;
bool _confirmedMetadata = yanlış;
int _packetSegment = 0;
bool _i2cNodeProcessed = yalan;
char _property [2] [24] = {"ad", "dəyər"};
voidsetup () {
Wire.begin (); // i2c avtobusuna qoşul (master üçün isteğe bağlı ünvan)
Serial.begin (9600); // çıxış üçün seriala başlayın
gecikmə (1000);
əgər (! _outputPlotterOnly) {
Serial.println ("quraşdırma");
Serial.println ();
}
}
voidloop () {
əgər (_i2cNodeProcessed) {
if (! _confirmedMetadata) {// sensora məlumat göndərməyə başlamağı qula bildirin
gecikmə (1);
Wire.beginTransmission (ADDRESS_SLAVE);
Wire.write (1);
Wire.endTransmission ();
gecikmə (100);
_confirmedMetadata = doğru;
}
_i2cNodeProcessed = yalan;
əgər (! _outputPlotterOnly) {
Serial.println ();
}
qayıtmaq;
}
Wire.requestFrom (ADDRESS_SLAVE, 16);
_packetSegment ++;
char paketi [16];
intindex = 0;
bool isContinueSegment = false; // ContinueSegment (the 3rd) 1 = more, 0 = last
while (Wire.available ()) {// kölə tələb olunandan az göndərə bilər
char c = Wire.read ();
paket [index] = int (c)> -1? c: ''; // etibarsız işarələri boşluqlarla əvəz edin
əgər (_packetSegment == 3) {
_packetSegment = 0;
isContinueSegment = doğru;
//Serial.println("------------- ");
//Serial.println(int(c));
//Serial.println("------------- ");
əgər (int (c) == 48 || int (c) == 86) {// 0 son xassədə
_i2cNodeProcessed = doğru;
// dəyərləri MQTT -ə göndərin
fasilə;
}
}
indeks ++;
}
if (! isContinueSegment) {
əgər (! _outputPlotterOnly) {
Serial.println (paket);
}
strcpy (_property [_packetSegment - 1], paket); // adı/dəyəri olan yerli var təyin edin
} başqa {
əgər (_outputPlotterOnly && _confirmedMetadata) {
əgər (_i2cNodeProcessed) {
Serial.println (_ mülkiyyət [1]);
} başqa {
Serial.print (_ mülkiyyət [1]);
Serial.print ("");
}
}
}
}

GitHub tərəfindən ❤ ilə ev sahibliyi edilən rawuno_i2c_generic_sensor_test_w_plotter_v2.ino

Addım 5: Növbəti addımlar

Proqramın dövrə və I2C qatının əsas düzeni bir çox fərqli sensora aiddir. Başlamaq üçün doğru olan əsas şey, ağa ilə qul arasındakı paket müqaviləsidir.

Bu çərçivəni istifadə edən və hissələr nəşr olunduqda əlaqələndirəcək (3D çaplı) paketlənmiş sensorlar şəbəkəsini planlaşdırdım/başladım.

Bu BLOK MQ2 ASSIMILATE SENSOR tərəfindən istifadə olunur.

Tövsiyə: