Агуулгын хүснэгт:

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 бол зангилаа эсвэл өмсөж зүүх боломжтой функцийг нэмэгдүүлэхийн тулд бусад IOT123 тоосгоны хамт нухаж хийх боломжтой DIY модульчлагдсан нэгж юм. Эдгээр нь нүхээр хоорондоо холбогдсон инчийн дөрвөлжин, хоёр талт протобор дээр суурилдаг.

Эдгээр тоосгоны хэд хэдэн сайт дээр олон зангилаа (Master MCUs - ESP8266 эсвэл ATTINY84) дээр байх төлөвтэй байна. MCU нь мэдрэгчийн зорилго, програм хангамжийн талаар урьдчилсан мэдлэг шаардагддаггүй. Энэ нь I2C зангилааг хайж, дараа нь боол бүрээс үл хөдлөх хөрөнгийн демпинг (мэдрэгчийн өгөгдөл) авахыг хүсдэг. Эдгээр BRICKs нь 5.0V, 3.3V болон өөр AUX шугамыг өөрчилж болно.

Энэхүү I2C MQ2 BRICK нь 3 шинж чанарыг хаядаг.

LPG (саяд ногдох хэсэг), CO (PPM), утаа (PPM)

Энэхүү мэдрэгч нь сонирхолтой хувилбарыг өгсөн: Дулаарахад дор хаяж 2 минут (5 хүртэл минут) шаардагдах бөгөөд дараа нь ашиглахаасаа өмнө 20 секундын турш шалгалт тохируулга хийх шаардлагатай болно. Хүлээн авагч MCU нь зөвхөн нэр/утгын хосыг авах зорилготой байдаг (мөн үргэлжлүүлэх зурвас), бид "БЭЛТГЭХ" шинж чанарыг танилцууллаа. Үргэлжлүүлэх мессеж нь "1" (цаашид гарах болно) тул Host MCU нь BRICK -ийг бэлэн болтол нь үргэлжлүүлэн саналаа өгөх болно. Мөн ашиглахаасаа өмнө MQ2-ийг "шатаах" -ыг зөвлөж байна, өөрөөр хэлбэл 5В-ийн хэлхээндээ 24 цагийн турш үлдээгээрэй.

Keyes төрлийн мэдрэгч тоосго нь витамин (нэмэлт бүрэлдэхүүн хэсгүүд) агуулсан, харьцангуй цэвэрхэн байдаг тул эхлээд хийсвэрлэх болно (би 37 AUD худалдаж авсан). Бусад самбар/хэлхээг I2C BRICKS -т танилцуулна.

ATTINY85-ийн хажуугийн нүхийг ашиглаагүй тул DIP8-ийг ПХБ-д гагнах үед пого пин програмистыг идэвхжүүлнэ.

Дараагийн хийсвэрлэл, D1M WIFI BLOCK төвд холбогдсон жижиг цилиндрт BRICKS -ийг савлаж, утгыг 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…

Үргэлжлүүлэхээсээ өмнө талхны самбараар туршиж үзэх нь дээр.

Хэрэв танд одоо байгаа ASSIMILATE 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 хүртэл хайчилж, гагнана.

Одоо мэдрэгчийг зүүгээрээ ПХБ эсвэл утсаар холбож, зүү гэрээнд заасан цэгүүдэд холбож болно.

Алхам 4: Туршилт

Туршилт
Туршилт
Туршилт
Туршилт
Туршилт
Туршилт

Эдгээр хэд хэдэн тоосго нь олон зангилаа (MCUs - ESP8266 эсвэл ATTINY84) дээр байх төлөвтэй байна. Энэ бол нэгжийн туршилт юм: бүх өгөгдлийг хаях хүртэл НҮБ -ын хүсэлт/хариултыг шалгаж, дараа нь I2C боолыг үл тоомсорлодог.

  1. НҮБ -ын кодоо НҮБ -ын туршилтын бүсэд байршуулна уу. ADDRESS_SLAVE нь BRICK -ийн I2C хаягтай таарч байгаа эсэхийг шалгаарай.
  2. UNO дээрх 5.0V -ийг BRICK дээрх VCC холбоно уу.
  3. Энэ зүү холбогч асаалттай байгаа эсэхийг шалгаарай.
  4. UNO дээрх GND -ийг BRICK дээр GND -тэй холбоно уу.
  5. UNO дээрх A5 -ийг BRICK дээрх SCL руу холбоно уу.
  6. UNO дээрх A4 -ийг BRICK дээрх SDA -тай холбоно уу.
  7. SDA-аас VCC руу 4K7 татах эсэргүүцлийг холбоно уу.
  8. SCL-ээс VCC руу 4K7 татах эсэргүүцлийг холбоно уу.
  9. НҮБ -аа USB төхөөрөмжөөрөө Dev компьютерт холбоно уу.
  10. Arduino консолыг нээнэ үү. 9600 Baud -ийг сонгоно уу (НҮБ -ыг дахин эхлүүлж, шаардлагатай бол консолыг дахин нээнэ үү).
  11. Үл хөдлөх хөрөнгийн нэр ба утгыг консол дээр хэвлэсний дараа унтах гэсэн үгийг давтана.

Хэрэв та "тохиргоо" -г харвал 3 мөр хог давтагдсан тохиолдолд та SDA болон SCL шугамаа урд талд нь байрлуулж болно.

I2C мастер I2C боолоос плоттер/мета өгөгдлийн дэмжлэгтэйгээр бүртгэдэг

#оруулах
#defineADDRESS_SLAVE10
bool _outputPlotterOnly = худал;
bool _confirmedMetadata = худал;
int _packetSegment = 0;
bool _i2cNodeProcessed = худал;
char _property [2] [24] = {"нэр", "утга"};
voidsetup () {
Wire.begin (); // i2c автобусанд нэгдэх (хаяг нь мастерын хувьд заавал биш)
Цуваа эхлэх (9600); // гаралтанд зориулж цуваа эхлүүлэх
саатал (1000);
хэрэв (! _outputPlotterOnly) {
Serial.println ("тохиргоо");
Serial.println ();
}
}
voidloop () {
хэрэв (_i2cNodeProcessed) {
if (! _confirmedMetadata) {// мэдрэгчийн өгөгдлийг илгээж эхлэхийг боолд мэдэгдээрэй
саатал (1);
Wire.beginTransmission (ADDRESS_SLAVE);
Утас. бичих (1);
Wire.endTransmission ();
саатал (100);
_confirmedMetadata = үнэн;
}
_i2cNodeProcessed = худал;
хэрэв (! _outputPlotterOnly) {
Serial.println ();
}
буцах;
}
Wire.requestFrom (ADDRESS_SLAVE, 16);
_packetSegment ++;
char пакет [16];
intindex = 0;
bool isContinueSegment = false; // ContinueSegment (the 3rd) 1 = more, 0 = last
while (Wire.available ()) {// боол хүссэн хэмжээнээс бага хэмжээгээр илгээж болно
char c = Wire.read ();
пакет [индекс] = int (c)> -1? c: ''; // хүчингүй тэмдэгтүүдийг хоосон зайгаар солих
хэрэв (_packetSegment == 3) {
_packetSegment = 0;
isContinueSegment = үнэн;
//Serial.println("------------- ");
//Serial.println(int(c));
//Serial.println("------------- ");
if (int (c) == 48 || int (c) == 86) {// 0 нь сүүлийн өмч дээр
_i2cNodeProcessed = үнэн;
// утгыг MQTT руу илгээх
завсарлага;
}
}
индекс ++;
}
if (! isContinueSegment) {
хэрэв (! _outputPlotterOnly) {
Serial.println (пакет);
}
strcpy (_property [_packetSegment - 1], пакет); // нэр/утгатай локал var тохируулах
} өөр {
хэрэв (_outputPlotterOnly && _confirmedMetadata) {
хэрэв (_i2cNodeProcessed) {
Serial.println (_ өмч [1]);
} өөр {
Цуваа.хэвлэх (_ өмч [1]);
Serial.print ("");
}
}
}
}

rawuno_i2c_generic_sensor_test_w_plotter_v2.ino -г GitHub -аас ❤ -аар зохион байгуулсныг үзэх

Алхам 5: Дараагийн алхамууд

Програм хангамжийн хэлхээ ба I2C давхаргын үндсэн зохион байгуулалт нь олон төрлийн мэдрэгчтэй холбоотой байдаг. Эхлэхийн тулд хийх ёстой гол зүйл бол эзэн ба боолын хооронд байгуулсан пакет гэрээ юм.

Би энэ хүрээг ашигладаг (3D хэвлэсэн) багцалсан мэдрэгч бүхий сүлжээг эхлүүлсэн/эхлүүлсэн бөгөөд хэсгүүдийг нийтлэх үед үүнийг холбох болно.

Энэхүү блокыг MQ2 ASSIMILATE SENSOR ашигладаг.

Зөвлөмж болгож буй: