INHOUDSOPGAWE:

IOT123 - I2C MQ2 BRICK: 5 stappe
IOT123 - I2C MQ2 BRICK: 5 stappe

Video: IOT123 - I2C MQ2 BRICK: 5 stappe

Video: IOT123 - I2C MQ2 BRICK: 5 stappe
Video: MQ-2 датчик газов и дыма подключаем к Arduino 2024, Julie
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

Die IOT123 BRICKS is DIY -modulêre eenhede wat met ander IOT123 BRICKS gekombineer kan word om funksionaliteit by 'n knoop of draagbare te voeg. Hulle is gebaseer op die duim vierkantige, dubbelzijdige protoborde met onderling verbind gate.

Na verwagting sal 'n aantal van hierdie BRICKS op 'n webwerf op verskeie nodes (Master MCU's - ESP8266 of ATTINY84) wees. Die MCU benodig geen voorafgaande kennis van die sensor se doel of sagtewarebehoeftes nie. Dit soek na I2C -nodusse en versoek dan 'n eiendomsstorting (sensordata) van elke slaaf. Hierdie BRICK's bied 5.0V, 3.3V en nog 'n AUX -lyn wat aanpasbaar is.

Hierdie I2C MQ2 BRICK stort 3 eiendomme:

LPG (Parts Per Million), CO (PPM), SMOKE (PPM)

Hierdie sensor bied 'n interessante scenario: dit benodig minstens 2 minute (tot 5 minute) om op te warm, en dan moet dit 20 sekondes kalibreer voor gebruik. Aangesien die gasheer -MCU slegs die naam/waarde -pare wil kry (en 'n voortgesette boodskap), het ons 'n 'PREPARE' -eienskap bekendgestel. Aangesien die voortgesette boodskap '1' is (meer kom), sal die gasheer -MCU aanhou om die BRICK te stem totdat dit gereed is. Dit word ook aanbeveel om die MQ2 voor gebruik in te brand, dws 24 uur lank aan u 5V-stroombaan gekoppel.

Die sensorstene van die Keyes -tipe word eers onttrek, aangesien dit vitamiene bevat (benodig ekstra komponente) en relatief goedkoop is (ek het 37 vir 10AUD gekoop). Ander planke/stroombane sal bekendgestel word aan die I2C BRICKS.

Die deurgate langs die ATTINY85 is ongebruik gelaat om 'n pogo-penprogrammeerder moontlik te maak terwyl die DIP8 aan die PCB gesoldeer is.

'N Verdere abstraksie, wat die BRICKS verpak in klein silinders wat by 'n D1M WIFI BLOCK -hub aansluit, wat die waardes na 'n MQTT -bediener pomp, word ontwikkel.

Stap 1: Materiaal en gereedskap

Materiaal en gereedskap
Materiaal en gereedskap
Materiaal en gereedskap
Materiaal en gereedskap
Materiaal en gereedskap
Materiaal en gereedskap

Daar is 'n volledige lys van materiaal en verkrygings.

  1. MQ2 sensorsteen (1)
  2. ATTINY85 20PU (1)
  3. 1 "dubbelzijdige protobord (1)
  4. Manlike kop 90º (3P, 3P)
  5. Manlike kop (2P, 2P)
  6. Trui Shunt (1)
  7. Aansluitdraad (~ 7)
  8. Soldeer en yster (1)

Stap 2: Berei die ATTINY85 voor

Berei die ATTINY85 voor
Berei die ATTINY85 voor
Berei die ATTINY85 voor
Berei die ATTINY85 voor
Berei die ATTINY85 voor
Berei die ATTINY85 voor
Berei die ATTINY85 voor
Berei die ATTINY85 voor

AttinyCore van die direksiebestuurder is nodig. Brand selflaaiprogram "EEPROM behou", "8mHZ intern" (al die konfigurasies word hierbo getoon).

Gebruik die ingesluit bron; saamstel en programmeer na die ATtiny85.

Die GIST is hier:

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

U kan meer besonderhede in hierdie instruksies vind:

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…

Dit is die beste om dit op 'n broodbord te toets voordat u verder gaan.

As u bestaande ASSIMILATE SENSORS het, maak seker dat die slaafadres anders is in 'n SENSOR/MCU Host -kombinasie, dit wil sê dat alle temperatuursensors dieselfde adres kan hê, solank u slegs een temperatuursensor op 'n MCU/node het.

Stap 3: Monteer die stroombaan

Monteer die stroombaan
Monteer die stroombaan
Monteer die stroombaan
Monteer die stroombaan
Monteer die stroombaan
Monteer die stroombaan
  1. Plaas die komponente ATTINY85 (1), 3P 90deg male headers (2) (3), 2P male headers (4) (5) en soldeer aan die agterkant af.
  2. Trek agter 'n oranje draad van ORANGE1 na ORANGE2 en soldeer.
  3. Trek agter 'n blou draad van BLUE1 na BLUE2 en soldeer.
  4. Aan die agterkant spoor 'n groen draad van GREEN1 na GREEN2 en soldeer.
  5. Trek agter 'n kaal draad van SILVER1 na SILVER2 en soldeer.
  6. Trek agter 'n kaal draad van SILVER3 na SILVER4 en soldeer.
  7. Trek agter 'n swart draad van BLACK1 na BLACK2 en soldeer.
  8. Trek agter 'n swart draad van BLACK3 na BLACK4 en soldeer.
  9. Trek agter 'n rooi draad van RED1 na RED2 en soldeer.
  10. Aan die agterkant, spoor 'n rooi draad van RED3 tot RED4 en soldeer.
  11. Trek agter 'n geel draad van GEEL1 na GEEL2 en soldeer.

Die sensor kan nou direk via sy penne aan die printplaat of via drade gekoppel word aan die punte wat in die penkontrak aangedui word.

Stap 4: Toets

Toets
Toets
Toets
Toets
Toets
Toets

'N Aantal van hierdie BRICKS sal na verwagting op verskeie knope (MCU's - ESP8266 of ATTINY84) in 'n omgewing wees. Dit is 'n eenheidstoets: kontroleer die UNO -versoeke/antwoorde totdat al die data gestort is, en verwaarloos dan die I2C -slaaf.

  1. Laai die UNO -kode op na u UNO -toetsharnas. Maak seker ADDRESS_SLAVE pas by die BRICK se I2C -adres.
  2. Koppel die 5.0V op UNO aan 'n VCC op BRICK.
  3. Maak seker dat die trui vir die pen aan is.
  4. Koppel die GND op UNO aan GND op BRICK.
  5. Koppel die A5 op UNO aan SCL op BRICK.
  6. Koppel die A4 op UNO aan SDA op BRICK.
  7. Koppel 'n 4K7-optrekweerstand van SDA na VCC.
  8. Koppel 'n optrekweerstand van 4K7 van SCL na VCC.
  9. Koppel u UNO aan u Dev PC met USB.
  10. Maak die Arduino -konsole oop. Kies 9600 baud (herbegin die UNO en heropen die konsole indien nodig).
  11. Die eiendomsname en waardes moet op die konsole gedruk word sodra die woord slaap herhaal word.

As u 'opstelling' sien, dan word 3 reëls vullis herhaal, maar u het moontlik u SDA- en SCL -lyne van voor af.

I2C Master logging van I2C slave met plotter/metadata ondersteuning

#insluit
#definieerADDRESS_SLAVE10
bool _outputPlotterOnly = vals;
bool _confirmedMetadata = vals;
int _packetSegment = 0;
bool _i2cNodeProcessed = vals;
char _property [2] [24] = {"naam", "waarde"};
voidsetup () {
Wire.begin (); // sluit aan by i2c -bus (adres opsioneel vir meester)
Serial.begin (9600); // begin reeks vir uitvoer
vertraging (1000);
as (! _outputPlotterOnly) {
Serial.println ("opstelling");
Serial.println ();
}
}
voidloop () {
as (_i2cNodeProcessed) {
as (! _confirmedMetadata) {// laat die slaaf weet om sensordata te begin stuur
vertraging (1);
Wire.beginTransmission (ADDRESS_SLAVE);
Draad.skryf (1);
Wire.endTransmission ();
vertraging (100);
_confirmedMetadata = waar;
}
_i2cNodeProcessed = vals;
as (! _outputPlotterOnly) {
Serial.println ();
}
terugkeer;
}
Wire.requestFrom (ADDRESS_SLAVE, 16);
_packetSegment ++;
char pakkie [16];
intindex = 0;
bool isContinueSegment = false; // continueSegment (die 3de) 1 = meer, 0 = laaste
terwyl (Wire.available ()) {// slaaf minder kan stuur as wat versoek is
char c = Wire.read ();
pakkie [indeks] = int (c)> -1? c: ''; // vervang ongeldige tekens met spasies
as (_packetSegment == 3) {
_packetSegment = 0;
isContinueSegment = waar;
//Serial.println("------------- ");
//Serial.println(int(c));
//Serial.println("------------- ");
if (int (c) == 48 || int (c) == 86) {// 0 op die laaste eiendom
_i2cNodeProcessed = waar;
// stuur waardes na MQTT
breek;
}
}
indeks ++;
}
as (! isContinueSegment) {
as (! _outputPlotterOnly) {
Serial.println (pakkie);
}
strcpy (_property [_packetSegment - 1], pakkie); // stel plaaslike var met naam/waarde in
} anders {
if (_outputPlotterOnly && _confirmedMetadata) {
as (_i2cNodeProcessed) {
Serial.println (_property [1]);
} anders {
Serial.print (_property [1]);
Serial.print ("");
}
}
}
}

sien rawuno_i2c_generic_sensor_test_w_plotter_v2.ino aangebied deur ❤ deur GitHub

Stap 5: Volgende stappe

Die basiese uitleg van die stroombaan en die I2C-laag van die sagteware kan met baie verskillende sensors verband hou. Die belangrikste ding om mee te begin, is die pakkie -kontrak tussen meester en slaaf.

Ek het 'n (3D -gedrukte) verpakte netwerk van sensors wat hierdie raamwerk gebruik, begin/begin, en sal daarna skakel as dele gepubliseer word.

Hierdie BLOCK word deur die MQ2 ASSIMILATE SENSOR gebruik.

Aanbeveel: