Obsah:

IOT123 - I2C MQ2 BRICK: 5 kroků
IOT123 - I2C MQ2 BRICK: 5 kroků

Video: IOT123 - I2C MQ2 BRICK: 5 kroků

Video: IOT123 - I2C MQ2 BRICK: 5 kroků
Video: MQ-2 датчик газов и дыма подключаем к Arduino 2024, Červenec
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 jsou DIY modulární jednotky, které lze kombinovat s jinými IOT123 BRICKS a přidat tak funkčnost uzlu nebo nositelnost. Jsou založeny na palcových čtvercových, oboustranných protoboardech propojených průchozími otvory.

Očekává se, že řada těchto BRICKS bude na více uzlech (Master MCU - ESP8266 nebo ATTINY84) na webu. MCU nepotřebuje žádné předchozí znalosti o účelu senzorů ani softwarových potřebách. Prohledává uzly I2C a poté požaduje od každého podřízeného zařízení výpis stavu (data ze senzoru). Tyto BRICKS dodávají 5,0 V, 3,3 V a další linku AUX, kterou lze přizpůsobit.

Tento I2C MQ2 BRICK ukládá 3 vlastnosti:

LPG (části na milion), CO (PPM), SMOKE (PPM)

Tento senzor poskytl zajímavý scénář: K zahřátí potřebuje nejméně 2 minuty (až 5 minut), poté je třeba před použitím 20 sekund kalibrovat. Protože hostitelský MCU je pouze zaměřen na získávání párů název/hodnota (a zprávy o pokračování), zavedli jsme vlastnost „PŘIPRAVIT“. Protože jeho zpráva o pokračování je „1“(další budou k dispozici), hostitelský MCU bude pokračovat v dotazování BRICK, dokud nebude připraven. Také se doporučuje MQ2 před použitím „vypálit“, tj. Nechat připojený k vašemu 5V obvodu 24 hodin.

Senzorové cihly typu Keyes budou nejprve odebrány, protože přicházejí s vitamíny (potřebné další komponenty) a jsou relativně levné (koupil jsem 37 za 10AUD). Na I2C BRICKS budou představeny další desky/obvody.

Průchozí otvory sousedící s ATTINY85 zůstaly nevyužité, aby umožnily programátor pinů pogo, zatímco je DIP8 připájen k desce plošných spojů.

Vyvíjí se další abstrakce, balení BRICKS do malých válců, které se zapojují do rozbočovače D1M WIFI BLOCK, čerpající hodnoty 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 dispozici je úplný seznam materiálu a zdrojů.

  1. Cihla senzoru MQ2 (1)
  2. ATTINY85 20PU (1)
  3. 1 "oboustranný protoboard (1)
  4. Záhlaví 90 ° (3P, 3P)
  5. Zástrčka (2P, 2P)
  6. Jumper Shunt (1)
  7. Propojovací vodič (~ 7)
  8. Pájka a železo (1)

Krok 2: Připravte ATTINY85

Připravte si ATTINY85
Připravte si ATTINY85
Připravte si ATTINY85
Připravte si ATTINY85
Připravte si ATTINY85
Připravte si ATTINY85
Připravte si ATTINY85
Připravte si ATTINY85

Je potřeba AttinyCore od Správce desek. Vypálit zavaděč „EEPROM zachován“, „8 mHZ interní“(veškerá konfigurace zobrazena výše).

Použijte přiložený zdroj; zkompilovat a naprogramovat na ATtiny85.

GIST je zde:

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

Více podrobností najdete v těchto pokynech:

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…

Před pokračováním je nejlepší otestovat pomocí prkénka.

Pokud máte existující ASSIMILOVANÉ SENZORY, ujistěte se, že adresa slave je v kombinaci SENSOR/MCU Host odlišná, tj. Všechny teplotní senzory mohou mít stejnou adresu, pokud máte pouze jeden teplotní senzor na MCU/uzlu.

Krok 3: Sestavte obvod

Sestavte obvod
Sestavte obvod
Sestavte obvod
Sestavte obvod
Sestavte obvod
Sestavte obvod
  1. Na přední stranu vložte součásti ATTINY85 (1), 3P 90deg zástrčky (2) (3), 2P zástrčky (4) (5) a pájku na zadní straně.
  2. Na zadní straně sledujte oranžový vodič z ORANGE1 na ORANGE2 a pájejte.
  3. Na zadní straně sledujte modrý vodič z BLUE1 na BLUE2 a pájejte.
  4. Na zadní straně sledujte zelený vodič od ZELENÉ1 do ZELENÉ2 a pájejte.
  5. Na zadní straně sledujte holý vodič od SILVER1 do SILVER2 a pájejte.
  6. Na zadní straně sledujte holý drát od SILVER3 do SILVER4 a pájejte.
  7. Na zadní straně sledujte černý vodič z BLACK1 na BLACK2 a pájejte.
  8. Na zadní straně sledujte černý vodič z BLACK3 na BLACK4 a pájejte.
  9. Na zadní straně sledujte červený vodič z RED1 na RED2 a pájejte.
  10. Na zadní straně sledujte červený vodič z RED3 na RED4 a pájejte.
  11. Na zadní straně sledujte žlutý vodič od ŽLUTÉ1 k ŽLUTÉ2 a pájejte.

Senzor lze nyní připojit přímo přes jeho piny na desku plošných spojů nebo pomocí vodičů k bodům uvedeným ve smlouvě o kolíku.

Krok 4: Testování

Testování
Testování
Testování
Testování
Testování
Testování

Očekává se, že řada těchto BRICKS bude na více uzlech (MCU - ESP8266 nebo ATTINY84) v prostředí. Toto je jednotkový test: kontroluje požadavky/odpovědi UNO, dokud nejsou uložena všechna data, a poté ignoruje slave I2C.

  1. Nahrajte kód UNO do svého testovacího postroje UNO. Zajistěte, aby se adresa ADDRESS_SLAVE shodovala s adresou BRICK I2C.
  2. Připojte 5,0 V na UNO k VCC na BRICK.
  3. Zajistěte, aby byla propojka pro tento kolík zapnutá.
  4. Připojte GND na UNO k GND na BRICK.
  5. Připojte A5 na UNO k SCL na BRICK.
  6. Připojte A4 na UNO k SDA na BRICK.
  7. Připojte stahovací odpor 4K7 z SDA do VCC.
  8. Připojte stahovací odpor 4K7 z SCL do VCC.
  9. Připojte svůj UNO k vašemu Dev PC pomocí USB.
  10. Otevřete konzolu Arduino. Vyberte 9600 baudů (restartujte UNO a v případě potřeby znovu otevřete konzolu).
  11. Jména a hodnoty vlastností by měly být vytištěny na konzole jednou, poté se slovo spánek opakuje.

Pokud uvidíte „nastavení“, pak se opakují 3 řádky odpadků, můžete mít řádky SDA a SCL zepředu dopředu.

Protokolování I2C Master z I2C slave s podporou plotru/metadat

#zahrnout
#defineADDRESS_SLAVE10
bool _outputPlotterOnly = false;
bool _confirmedMetadata = false;
int _packetSegment = 0;
bool _i2cNodeProcessed = false;
char _property [2] [24] = {"jméno", "hodnota"};
voidsetup () {
Wire.begin (); // připojení k sběrnici i2c (adresa volitelná pro master)
Serial.begin (9600); // spuštění sériového výstupu
zpoždění (1000);
if (! _outputPlotterOnly) {
Serial.println ("nastavení");
Serial.println ();
}
}
voidloop () {
if (_i2cNodeProcessed) {
if (! _confirmedMetadata) {// dejte otrokovi vědět, aby začal odesílat data senzoru
zpoždění (1);
Wire.beginTransmission (ADDRESS_SLAVE);
Wire.write (1);
Wire.endTransmission ();
zpoždění (100);
_confirmedMetadata = true;
}
_i2cNodeProcessed = false;
if (! _outputPlotterOnly) {
Serial.println ();
}
vrátit se;
}
Wire.requestFrom (ADDRESS_SLAVE, 16);
_packetSegment ++;
char paket [16];
intindex = 0;
bool isContinueSegment = false; // continueSegment (3.) 1 = více, 0 = poslední
while (Wire.available ()) {// slave může odeslat méně, než je požadováno
char c = Wire.read ();
paket [index] = int (c)> -1? c: ''; // nahraďte neplatné znaky mezerami
if (_packetSegment == 3) {
_packetSegment = 0;
isContinueSegment = true;
//Serial.println("------------- ");
//Serial.println(int(c));
//Serial.println("------------- ");
if (int (c) == 48 || int (c) == 86) {// 0 na poslední vlastnosti
_i2cNodeProcessed = true;
// odeslání hodnot na MQTT
přestávka;
}
}
index ++;
}
if (! isContinueSegment) {
if (! _outputPlotterOnly) {
Serial.println (paket);
}
strcpy (_property [_packetSegment - 1], paket); // nastavení lokálního var s názvem/hodnotou
}jiný{
if (_outputPlotterOnly && _confirmedMetadata) {
if (_i2cNodeProcessed) {
Serial.println (_property [1]);
}jiný{
Serial.print (_property [1]);
Serial.print ("");
}
}
}
}

zobrazit rawuno_i2c_generic_sensor_test_w_plotter_v2.ino hostované s ❤ od GitHub

Krok 5: Další kroky

Základní uspořádání obvodu a vrstva I2C softwaru je spojena s mnoha různými senzory. Hlavní věc, kterou je třeba začít správně, je paketová smlouva mezi pánem a otrokem.

Navrhl/spustil (3D vytištěnou) zabalenou síť senzorů, které používají tento rámec, a budou na něj odkazovat, jakmile budou publikovány části.

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

Doporučuje: