Obsah:

IOT123 - I2C MQ2 BRICK: 5 krokov
IOT123 - I2C MQ2 BRICK: 5 krokov

Video: IOT123 - I2C MQ2 BRICK: 5 krokov

Video: IOT123 - I2C MQ2 BRICK: 5 krokov
Video: MQ-2 датчик газов и дыма подключаем к Arduino 2024, November
Anonim
IOT123 - I2C MQ2 BRICK
IOT123 - I2C MQ2 BRICK
IOT123 - I2C MQ2 BRICK
IOT123 - I2C MQ2 BRICK
IOT123 - I2C MQ2 BRICK
IOT123 - I2C MQ2 BRICK
IOT123 - I2C MQ2 BRICK
IOT123 - I2C MQ2 BRICK

IOT123 BRICKS sú DIY modulárne jednotky, ktoré je možné kombinovať s inými IOT123 BRICKS a pridať tak funkčnosť do uzla alebo nositeľné zariadenie. Sú založené na palcových štvorcových, obojstranných protoboardoch so vzájomne prepojenými priechodnými otvormi.

Očakáva sa, že niekoľko týchto BRICKS bude na viacerých uzloch (hlavné MCU - ESP8266 alebo ATTINY84) na webe. MCU nepotrebuje žiadne predchádzajúce znalosti o účele senzorov alebo softvérových potrebách. Skenuje pre uzly I2C a potom od každého podriadeného zariadenia požaduje výpis vlastností (údaje senzora). Tieto BRICKS napájajú 5,0 V, 3,3 V a ďalšiu linku AUX, ktorú je možné prispôsobiť.

Tento I2C MQ2 BRICK má 3 vlastnosti:

LPG (diely na milión), CO (PPM), DYM (PPM)

Tento senzor poskytol zaujímavý scenár: Na zahriatie potrebuje najmenej 2 minúty (až 5 minút) a potom ho musí pred použitím 20 sekúnd kalibrovať. Pretože sa hostiteľský MCU zameriava iba na získavanie párov názov/hodnota (a správy o pokračovaní), zaviedli sme vlastnosť „PRIPRAVIŤ“. Keďže jeho správa o pokračovaní je „1“(ešte len príde), hostiteľský MCU bude pokračovať v hlasovaní o BRICK, kým nebude pripravený. Tiež sa odporúča "zapáliť" MQ2 pred použitím, tj. Nechať zapojený do vášho 5V obvodu 24 hodín.

Senzorové tehly typu Keyes budú najskôr abstrahované, pretože obsahujú vitamíny (potrebné ďalšie komponenty) a sú relatívne lacné (kúpil som 37 za 10AUD). K I2C BRICKS budú predstavené ďalšie dosky/obvody.

Priechodné otvory susediace s ATTINY85 zostali nevyužité, aby sa umožnil programátor pogo pinov, keď je DIP8 spájkovaný s PCB.

Vyvíja sa ďalšia abstrakcia, balenie BRICKS do malých valcov, ktoré sa zapoja do rozbočovača D1M WIFI BLOCK, čerpanie hodnôt na server MQTT.

Krok 1: Materiál a nástroje

Materiál a nástroje
Materiál a nástroje
Materiál a nástroje
Materiál a nástroje
Materiál a nástroje
Materiál a nástroje

K dispozícii je úplný zoznam kusovníkov a zdrojov.

  1. Tehla senzora MQ2 (1)
  2. ATTINY85 20PU (1)
  3. 1 "obojstranný protoboard (1)
  4. Mužská hlavička 90 ° (3P, 3P)
  5. Mužská hlavička (2P, 2P)
  6. Skokanský mostík (1)
  7. Pripojovací drôt (~ 7)
  8. Spájka a železo (1)

Krok 2: Pripravte si ATTINY85

Pripravte si ATTINY85
Pripravte si ATTINY85
Pripravte si ATTINY85
Pripravte si ATTINY85
Pripravte si ATTINY85
Pripravte si ATTINY85
Pripravte si ATTINY85
Pripravte si ATTINY85

Je potrebný AttinyCore od správcu dosiek. Napaľujte bootloader „EEPROM zachovaný“, „8 mHZ interný“(všetky konfigurácie sú uvedené vyššie).

Použite priložený zdroj; skompilovať a naprogramovať na ATtiny85.

GIST je tu:

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

Podrobnejšie informácie nájdete v týchto pokynoch:

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…

Pred pokračovaním je najlepšie otestovať ho na breadboarde.

Ak máte existujúce ASIMILAČNÉ SENZORY, uistite sa, že adresa slave je v kombinácii hostiteľa SENSOR/MCU odlišná, t. J. Všetky snímače teploty môžu mať rovnakú adresu, pokiaľ máte na MCU/uzle iba jeden snímač teploty.

Krok 3: Zostavte obvod

Zostavte obvod
Zostavte obvod
Zostavte obvod
Zostavte obvod
Zostavte obvod
Zostavte obvod
  1. Na prednú stranu vložte súčiastky ATTINY85 (1), 3P 90deg zástrčky (2) (3), 2P zástrčky (4) (5) a spájku na zadnej strane.
  2. Na zadnej strane nakreslite oranžový vodič z ORANGE1 na ORANGE2 a spájkujte.
  3. Na zadnej strane nakreslite modrý vodič z BLUE1 na BLUE2 a spájkujte.
  4. Na zadnej strane vyznačte zelený vodič od ZELENÉ1 do ZELENÉ2 a spájkujte.
  5. Na zadnej strane vystopujte holý drôt od SILVER1 do SILVER2 a spájkujte.
  6. Na zadnej strane nakreslite holý drôt od SILVER3 do SILVER4 a spájkujte.
  7. Na zadnej strane nakreslite čierny vodič z BLACK1 na BLACK2 a spájkujte.
  8. Na zadnej strane nakreslite čierny vodič z BLACK3 na BLACK4 a spájkujte.
  9. Na zadnej strane vyznačte červený vodič od RED1 do RED2 a spájkujte.
  10. Na zadnej strane vyznačte červený vodič z RED3 na RED4 a spájkujte.
  11. Na zadnej strane nakreslite žltý vodič od ŽLTÉHO1 po ŽLUTÉ2 a spájkujte.

Senzor je teraz možné pripojiť priamo cez jeho kolíky k doske plošných spojov alebo pomocou vodičov k bodom zobrazeným v kolíkovej zmluve.

Krok 4: Testovanie

Testovanie
Testovanie
Testovanie
Testovanie
Testovanie
Testovanie

Očakáva sa, že niekoľko týchto BRICKS bude na viacerých uzloch (MCU - ESP8266 alebo ATTINY84) v prostredí. Toto je jednotkový test: kontroluje požiadavky/reakcie UNO, kým nie sú uložené všetky údaje, a potom ignoruje slave I2C.

  1. Nahrajte kód UNO do testovacieho postroja UNO. Zaistite, aby sa adresa ADDRESS_SLAVE zhodovala s adresou BRICK I2C.
  2. Pripojte 5,0 V na UNO k VCC na BRICK.
  3. Zaistite, aby bola prepojka pre tento kolík zapnutá.
  4. Pripojte GND na UNO k GND na BRICK.
  5. Pripojte A5 na UNO k SCL na BRICK.
  6. Pripojte A4 na UNO k SDA na BRICK.
  7. Pripojte výsuvný odpor 4K7 z SDA do VCC.
  8. Pripojte výsuvný odpor 4K7 z SCL k VCC.
  9. Pripojte svoj UNO k vývojovému počítaču pomocou USB.
  10. Otvorte konzolu Arduino. Vyberte 9600 baudov (reštartujte UNO a v prípade potreby znova otvorte konzolu).
  11. Názvy vlastností a hodnoty by sa mali na konzolu vytlačiť raz, potom sa zopakuje slovo spánok.

Ak vidíte „nastavenie“a potom sa opakujú tri riadky odpadu, môžete mať riadky SDA a SCL zozadu dopredu.

Logovanie I2C Master z I2C slave s podporou plotru/metadát

#zahrnúť
#defineADDRESS_SLAVE10
bool _outputPlotterOnly = false;
bool _confirmedMetadata = false;
int _packetSegment = 0;
bool _i2cNodeProcessed = false;
char _property [2] [24] = {"meno", "hodnota"};
voidsetup () {
Wire.begin (); // pripojenie k zbernici i2c (adresa voliteľná pre master)
Serial.begin (9600); // spustenie sériového výstupu
oneskorenie (1000);
if (! _outputPlotterOnly) {
Serial.println ("nastavenie");
Serial.println ();
}
}
voidloop () {
if (_i2cNodeProcessed) {
if (! _confirmedMetadata) {// dajte otrokovi vedieť, aby začal odosielať údaje senzorov
oneskorenie (1);
Wire.beginTransmission (ADDRESS_SLAVE);
Wire.write (1);
Wire.endTransmission ();
oneskorenie (100);
_confirmedMetadata = true;
}
_i2cNodeProcessed = false;
if (! _outputPlotterOnly) {
Serial.println ();
}
návrat;
}
Wire.requestFrom (ADDRESS_SLAVE, 16);
_packetSegment ++;
char paket [16];
intindex = 0;
bool isContinueSegment = false; // continueSegment (3.) 1 = viac, 0 = posledný
while (Wire.available ()) {// slave môže odoslať menej, ako sa požaduje
char c = Wire.read ();
paket [index] = int (c)> -1? c: ''; // nahraďte neplatné znaky medzerami
if (_packetSegment == 3) {
_packetSegment = 0;
isContinueSegment = true;
//Serial.println("------------- ");
//Serial.println(int(c));
//Serial.println("------------- ");
if (int (c) == 48 || int (c) == 86) {// 0 o poslednej vlastnosti
_i2cNodeProcessed = true;
// odoslanie hodnôt na MQTT
prestávka;
}
}
index ++;
}
if (! isContinueSegment) {
if (! _outputPlotterOnly) {
Serial.println (paket);
}
strcpy (_property [_packetSegment - 1], paket); // nastavenie lokálneho var s názvom/hodnotou
} else {
if (_outputPlotterOnly && _confirmedMetadata) {
if (_i2cNodeProcessed) {
Serial.println (_property [1]);
} else {
Serial.print (_property [1]);
Serial.print ("");
}
}
}
}

zobraziť rawuno_i2c_generic_sensor_test_w_plotter_v2.ino hostené s ❤ od GitHub

Krok 5: Ďalšie kroky

Základné rozloženie obvodu a vrstva I2C softvéru je spojená s mnohými rôznymi senzormi. Najdôležitejšou vecou na začiatku je paketová zmluva medzi pánom a otrokom.

Navrhol/spustil som (3D tlačenú) balenú sieť senzorov, ktoré používajú tento rámec, a prepojí sa s ním pri publikovaní častí.

Tento BLOK používa asimilovaný snímač MQ2.

Odporúča: