Mundarija:

IOT123 - I2C MQ2 G'isht: 5 qadam
IOT123 - I2C MQ2 G'isht: 5 qadam

Video: IOT123 - I2C MQ2 G'isht: 5 qadam

Video: IOT123 - I2C MQ2 G'isht: 5 qadam
Video: MQ-2 датчик газов и дыма подключаем к Arduino 2024, Iyul
Anonim
IOT123 - I2C MQ2 G'isht
IOT123 - I2C MQ2 G'isht
IOT123 - I2C MQ2 G'isht
IOT123 - I2C MQ2 G'isht
IOT123 - I2C MQ2 G'isht
IOT123 - I2C MQ2 G'isht
IOT123 - I2C MQ2 G'isht
IOT123 - I2C MQ2 G'isht

IOT123 BRICKS - bu modulli DIY birliklari bo'lib, ularni boshqa IOT123 BRICKS bilan maydalash mumkin, bu tugunga funksionallik qo'shish yoki taqish mumkin. Ular dyuymli kvadrat, teshiklari orqali o'zaro bog'langan ikki tomonlama protoboardlarga asoslangan.

Bir qator BRICKS saytdagi bir nechta tugunlarda bo'lishi kerak (Master MCU - ESP8266 yoki ATTINY84). MCU datchiklarning maqsadi yoki dasturiy ta'minot ehtiyojlari haqida oldindan bilishga muhtoj emas. U I2C tugunlarini skanerlaydi, so'ngra har bir quldan xususiyatli dampingni (sensor ma'lumotlarini) so'raydi. Bu BRICKlar 5.0V, 3.3V va sozlanishi boshqa AUX liniyasini etkazib beradi.

Bu I2C MQ2 BRICK 3 ta xususiyatni o'z ichiga oladi:

LPG (millionga to'g'ri keladigan qismlar), CO (PPM), tutun (PPM)

Bu Sensor qiziqarli stsenariyni taqdim etdi: Isitish uchun kamida 2 daqiqa (5 minutgacha) kerak, keyin ishlatishdan oldin 20 soniya davomida kalibrlanishi kerak. MCU xosti faqat ism/qiymat juftligini (va davomli xabarni) olishni maqsad qilgani uchun biz "PREPARE" xususiyatini taqdim etdik. Uning davomiy xabari "1" bo'lgani uchun (yana ko'p), Xost MCU tayyor bo'lgunga qadar BRICK so'rovini davom ettiradi. Bundan tashqari, ishlatishdan oldin MQ2-ni "yoqish" tavsiya etiladi, ya'ni 24 soat davomida 5V zanjiriga ulangan holda qoldiring.

Keyes tipidagi sensorli g'ishtlar birinchi navbatda abstraktsiya qilinadi, chunki ular vitaminlar bilan ta'minlanadi (qo'shimcha komponentlar kerak) va ular nisbatan chayqaladi (men 37 AUDga sotib oldim). Boshqa taxtalar/sxemalar I2C BRICKS bilan tanishtiriladi.

ATTINY85-ga ulashgan teshiklar ishlatilmay qoldi, shuning uchun DIP8 PCBga lehimli bo'lsa, pogo pinli dasturchini yoqish mumkin.

D1M WIFI BLOCK uyasiga ulanadigan, MQTT serveriga yuklaydigan kichik tsilindrlarga BRICKSni qadoqlashning yana bir mavhumligi ishlab chiqilmoqda.

1 -qadam: Materiallar va asboblar

Materiallar va asboblar
Materiallar va asboblar
Materiallar va asboblar
Materiallar va asboblar
Materiallar va asboblar
Materiallar va asboblar

Materiallar va manbalar ro'yxatining to'liq ro'yxati mavjud.

  1. MQ2 sensorli g'isht (1)
  2. ATTINY85 20PU (1)
  3. 1 "Ikki tomonlama protoboard (1)
  4. Erkaklar sarlavhasi 90º (3P, 3P)
  5. Erkaklar sarlavhasi (2P, 2P)
  6. Jumper shanti (1)
  7. Ulanish simlari (~ 7)
  8. Lehim va temir (1)

2 -qadam: ATTINY85 ni tayyorlang

ATTINY85 ni tayyorlang
ATTINY85 ni tayyorlang
ATTINY85 ni tayyorlang
ATTINY85 ni tayyorlang
ATTINY85 ni tayyorlang
ATTINY85 ni tayyorlang
ATTINY85 ni tayyorlang
ATTINY85 ni tayyorlang

Kengashlar menejeridan AttinyCore kerak. Bootloader "EEPROM Retained", "8mHZ Internal" yozing (hamma konfiguratsiya yuqorida ko'rsatilgan).

Kiritilgan manbadan foydalaning; kompilyatsiya qilish va ATtiny85 -ga dasturlash.

GIST bu erda:

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

Batafsil ma'lumotni ushbu ko'rsatmalarni topishingiz mumkin:

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…

Davom etishdan oldin non paneli orqali test qilish yaxshiroqdir.

Agar sizda ASSIMILATE SENSORS mavjud bo'lsa, SENSOR/MCU Xost kombinatsiyasida xizmat ko'rsatuvchi manzili boshqacha ekanligiga ishonch hosil qiling, ya'ni MCU/tugunida faqat bitta harorat sensori bo'lsa, barcha harorat sensori bir xil manzilga ega bo'lishi mumkin.

3 -qadam: O'chirish sxemasini yig'ing

Davrani yig'ing
Davrani yig'ing
Davrani yig'ing
Davrani yig'ing
Davrani yig'ing
Davrani yig'ing
  1. Old tomonga ATTINY85 (1), 3P 90 darajali erkaklar sarlavhalari (2) (3), 2P erkaklar sarlavhalari (4) (5) va orqa tarafdagi lehimlarni joylashtiring.
  2. Orqa tomondan, ORANGE1 dan ORANGE2 gacha bo'lgan to'q sariq simni va lehimni izlang.
  3. Orqa tomonda, ko'k simni BLUE1dan BLUE2gacha va lehimni izlang.
  4. Orqa tomonda, GREEN1dan GREEN2gacha bo'lgan yashil simni va lehimni izlang.
  5. Orqa tomondan, SILVER1 dan SILVER2 gacha bo'lgan yalang'och simni va lehimni izlang.
  6. Orqa tomondan, SILVER3 dan SILVER4gacha bo'lgan lehim simini payvandlang.
  7. Orqa tomonda, qora simni BLACK1 dan BLACK2 gacha va lehimni izlang.
  8. Orqa tomondan, BLACK3 dan BLACK4 gacha qora simni va lehimni izlang.
  9. Orqa tomonda RED1 dan RED2 gacha bo'lgan qizil simni va lehimni izlang.
  10. Orqa tomonda RED3 dan RED4 gacha bo'lgan qizil simni va lehimni izlang.
  11. Orqa tomonda sariq telni YELLOW1dan SARI2gacha va lehimni izlang.

Sensor endi o'z pinlari orqali tenglikka yoki simlar orqali, pin shartnomasida ko'rsatilgan nuqtalarga ulanishi mumkin.

4 -qadam: Sinov

Sinov
Sinov
Sinov
Sinov
Sinov
Sinov

Bir qator BRICKS muhitda bir nechta tugunlarda (MCU - ESP8266 yoki ATTINY84) bo'lishi kutilmoqda. Bu birlik testi: barcha ma'lumotlar tashlanmaguncha UNO so'rovlari/javoblarini tekshiradi, keyin I2C qulini e'tiborsiz qoldiradi.

  1. UNO kodini UNO sinov uskunasiga yuklang. ADDRESS_SLAVE BRICK I2C manziliga mos kelishiga ishonch hosil qiling.
  2. UNO -dagi 5.0V -ni BRICK -dagi VCC -ga ulang.
  3. Bu pin uchun o'tish moslamasi yoqilganligiga ishonch hosil qiling.
  4. UNO -dagi GND -ni BRICK -dagi GND -ga ulang.
  5. UNO -dagi A5 -ni BRICK -dagi SCL -ga ulang.
  6. A4 -ni UNO -da, BRICK -dagi SDA -ga ulang.
  7. SDA-dan VCC-ga 4K7 tortish qarshiligini ulang.
  8. SCL-dan VCC-ga 4K7 tortish qarshiligini ulang.
  9. UNO -ni shaxsiy kompyuteringizga USB orqali ulang.
  10. Arduino konsolini oching, 9600 bodni tanlang (UNOni qayta ishga tushiring va agar kerak bo'lsa, konsolni qayta oching).
  11. Xususiyat nomlari va qiymatlari konsolda bir marta chop etilishi kerak, keyin uyqu so'zi takrorlanadi.

Agar siz "sozlash" ni ko'rsangiz, u holda 3 qatorli axlat takrorlanadi, sizda SDA va SCL chiziqlari oldinga qaytarilishi mumkin.

I2C Master I2C qulidan plotter/metadata yordamida qo'llab -quvvatlash

#qo'shing
#identifikatsiya ADDRESS_SLAVE10
bool _outputPlotterOnly = noto'g'ri;
bool _confirmedMetadata = noto'g'ri;
int _packetSegment = 0;
bool _i2cNodeProcessed = noto'g'ri;
char _property [2] [24] = {"ism", "qiymat"};
voidsetup () {
Wire.begin (); // i2c avtobusiga qo'shilish (master uchun ixtiyoriy)
Serial.begin (9600); // chiqish uchun ketma -ketlikni boshlang
kechikish (1000);
agar (! _outputPlotterOnly) {
Serial.println ("sozlash");
Serial.println ();
}
}
voidloop () {
agar (_i2cNodeProcessed) {
if (! _confirmedMetadata) {// qulga sensor ma'lumotlarini yuborishni boshlashini bildiring
kechikish (1);
Wire.beginTransmission (ADDRESS_SLAVE);
Wire.write (1);
Wire.endTransmission ();
kechikish (100);
_confirmedMetadata = to'g'ri;
}
_i2cNodeProcessed = noto'g'ri;
agar (! _outputPlotterOnly) {
Serial.println ();
}
qaytish;
}
Wire.requestFrom (ADDRESS_SLAVE, 16);
_packetSegment ++;
char to'plami [16];
intindex = 0;
bool isContinueSegment = false; // ContinueSegment (3 -chi) 1 = ko'proq, 0 = oxirgi
while (Wire.available ()) {// qul so'ralganidan kamroq yuborishi mumkin
char c = Wire.read ();
paket [indeks] = int (c)> -1? c: ''; // yaroqsiz belgilarni bo'shliqlar bilan almashtiring
agar (_packetSegment == 3) {
_packetSegment = 0;
isContinueSegment = rost;
//Serial.println("------------- ");
//Serial.println(int(c));
//Serial.println("------------- ");
agar (int (c) == 48 || int (c) == 86) {// 0 oxirgi xususiyat bo'yicha
_i2cNodeProcessed = rost;
// qiymatlarni MQTT ga yuborish
tanaffus;
}
}
indeks ++;
}
agar (! isContinueSegment) {
agar (! _outputPlotterOnly) {
Serial.println (paket);
}
strcpy (_property [_packetSegment - 1], paket); // ism/qiymat bilan mahalliy varni o'rnating
} boshqa {
agar (_outputPlotterOnly && _confirmedMetadata) {
agar (_i2cNodeProcessed) {
Serial.println (_ mulk [1]);
} boshqa {
Serial.print (_ mulk [1]);
Serial.print ("");
}
}
}
}

rawuno_i2c_generic_sensor_test_w_plotter_v2.ino ni GitHub ❤ tomonidan joylashtirilganini ko'rish

5 -qadam: Keyingi qadamlar

Dasturning sxemasi va I2C qatlamining asosiy sxemasi turli xil sensorlar bilan bog'liq. To'g'ri boshlash kerak bo'lgan asosiy narsa - xo'jayin va qul o'rtasidagi paketli shartnoma.

Men ushbu o'lchamdan foydalanadigan (3D bosilgan) qadoqlangan datchiklar tarmog'ini rejalashtirdim/ishga tushirdim va uning qismlari nashr etilganda unga bog'lanaman.

Bu BLOK MQ2 ASSIMILATE SENSOR tomonidan ishlatiladi.

Tavsiya: