Satura rādītājs:

IOT123 - I2C MQ2 BRICK: 5 soļi
IOT123 - I2C MQ2 BRICK: 5 soļi

Video: IOT123 - I2C MQ2 BRICK: 5 soļi

Video: IOT123 - I2C MQ2 BRICK: 5 soļi
Video: MQ-2 датчик газов и дыма подключаем к Arduino 2024, Novembris
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 ir DIY modulāras vienības, kuras var sajaukt ar citiem IOT123 BRICKS, lai mezglam pievienotu funkcionalitāti vai valkājamu. To pamatā ir kvadrātveida kvadrātveida, divpusēji protoboards ar savstarpēji savienotiem caurumiem.

Paredzams, ka vairāki no šiem ķieģeļiem atradīsies vairākos vietnes mezglos (galvenie MCU - ESP8266 vai ATTINY84). MCU nav vajadzīgas priekšzināšanas par sensoru mērķi vai programmatūras vajadzībām. Tā skenē I2C mezglus un pēc tam pieprasa īpašuma izgāztuvi (sensora datus) no katra verga. Šie BRICK piegādā 5.0V, 3.3V un citu pielāgojamu AUX līniju.

Šis I2C MQ2 BRICK izgāž 3 īpašības:

LPG (daļas uz miljonu), CO (PPM), SMOKE (PPM)

Šis sensors nodrošināja interesantu scenāriju: tam ir nepieciešamas vismaz 2 minūtes (līdz 5 minūtēm), lai tas uzsildītos, pēc tam tas ir jākalibrē 20 sekundes pirms lietošanas. Tā kā resursdatora MCU ir tikai ieprogrammēts, lai iegūtu vārdu/vērtību pārus (un turpinājuma ziņojumu), mēs esam ieviesuši īpašumu "PREPARE". Tā kā tā turpinājuma ziņojums ir “1” (gaidāms vēl viens), saimniekdatora MCU turpinās aptaujāt BRICK, līdz tas būs gatavs. Tāpat ieteicams pirms lietošanas MQ2 "iedegt", t.i. atstāt pieslēgtu pie 5 V ķēdes uz 24 stundām.

Keyes tipa sensoru ķieģeļi vispirms tiks iegūti, jo tie ir iekļauti vitamīnos (nepieciešami papildu komponenti) un ir samērā lēti (es nopirku 37 par 10AUD). Citas plates/shēmas tiks ieviestas I2C BRICKS.

Caurumi, kas atrodas blakus ATTINY85, ir palikuši neizmantoti, lai iespējotu pogo tapu programmētāju, kamēr DIP8 ir pielodēts pie PCB.

Tiek izstrādāta turpmāka abstrakcija - BRICKS iesaiņošana mazos cilindros, kas pievienojami D1M WIFI BLOCK centrmezglam, pārsūtot vērtības uz MQTT serveri.

1. darbība: materiāli un instrumenti

Materiāli un instrumenti
Materiāli un instrumenti
Materiāli un instrumenti
Materiāli un instrumenti
Materiāli un instrumenti
Materiāli un instrumenti

Ir pilns materiālu un avotu saraksts.

  1. MQ2 sensora ķieģelis (1)
  2. ATTINY85 20PU (1)
  3. 1 "divpusējs protoboards (1)
  4. Galvene vīriešiem 90º (3P, 3P)
  5. Galvene vīriešiem (2P, 2P)
  6. Džempera šunts (1)
  7. Savienojuma vads (~ 7)
  8. Lodmetāls un dzelzs (1)

2. darbība: sagatavojiet ATTINY85

Sagatavojiet ATTINY85
Sagatavojiet ATTINY85
Sagatavojiet ATTINY85
Sagatavojiet ATTINY85
Sagatavojiet ATTINY85
Sagatavojiet ATTINY85
Sagatavojiet ATTINY85
Sagatavojiet ATTINY85

Ir nepieciešams AttinyCore no valdes pārvaldnieka. Ierakstiet sāknēšanas ielādētāju "EEPROM Retained", "8mHZ Internal" (visa konfigurācija parādīta iepriekš).

Izmantojiet iekļauto avotu; apkopot un programmēt ATtiny85.

GIST ir šeit:

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

Sīkāku informāciju varat atrast šajās instrukcijās:

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…

Pirms turpināt, vislabāk ir pārbaudīt, izmantojot maizes dēli.

Ja jums jau ir ASSIMILATE SENSORS, pārliecinieties, vai SENSOR/MCU resursdatora kombinācijā verdzības adrese atšķiras, t.i., visiem temperatūras sensoriem var būt viena adrese, ja vien MCU/mezglā ir tikai viens temperatūras sensors.

3. darbība: samontējiet ķēdi

Salieciet ķēdi
Salieciet ķēdi
Salieciet ķēdi
Salieciet ķēdi
Salieciet ķēdi
Salieciet ķēdi
  1. Priekšpusē ievietojiet detaļas ATTINY85 (1), 3P 90 grādu vāciņus (2) (3), 2P tēviņus (4) (5) un lodējiet aizmugurē.
  2. Aizmugurē izsekojiet oranžu vadu no ORANGE1 līdz ORANGE2 un lodējiet.
  3. Aizmugurē izsekojiet zilu vadu no BLUE1 līdz BLUE2 un lodējiet.
  4. Aizmugurē izsekojiet zaļo vadu no GREEN1 līdz GREEN2 un lodējiet.
  5. Aizmugurē izsekojiet tukšu vadu no SILVER1 līdz SILVER2 un lodēt.
  6. Aizmugurē izsekojiet tukšu vadu no SILVER3 līdz SILVER4 un lodēt.
  7. Aizmugurē izsekojiet melnu vadu no BLACK1 līdz BLACK2 un lodējiet.
  8. Aizmugurē izsekojiet melnu vadu no BLACK3 līdz BLACK4 un lodējiet.
  9. Aizmugurē izsekojiet sarkanu vadu no RED1 līdz RED2 un lodējiet.
  10. Aizmugurē izsekojiet sarkanu vadu no RED3 līdz RED4 un lodējiet.
  11. Aizmugurē izsekojiet dzelteno vadu no YELLOW1 līdz YELLOW2 un lodējiet.

Tagad sensoru var pieslēgt tieši caur tapām pie PCB vai caur vadiem tapu līgumā norādītajos punktos.

4. solis: pārbaude

Testēšana
Testēšana
Testēšana
Testēšana
Testēšana
Testēšana

Paredzams, ka vairāki no šiem ķieģeļiem vidē atradīsies vairākos mezglos (MCU - ESP8266 vai ATTINY84). Šis ir vienības tests: pārbauda UNO pieprasījumus/atbildes, līdz visi dati ir izgāzti, pēc tam ignorē I2C vergu.

  1. Augšupielādējiet UNO kodu savā UNO testa joslā. Pārliecinieties, ka ADDRESS_SLAVE atbilst BRICK I2C adresei.
  2. Pievienojiet 5.0V uz UNO ar BRCK VCC.
  3. Pārliecinieties, vai šīs tapas džemperis ir ieslēgts.
  4. Savienojiet GND uz UNO ar GND uz BRICK.
  5. Savienojiet A5 uz UNO ar SCL uz BRICK.
  6. Savienojiet A4 uz UNO ar SDA uz BRICK.
  7. Pievienojiet 4K7 pievilkšanas rezistoru no SDA uz VCC.
  8. Pievienojiet 4K7 pievilkšanas rezistoru no SCL uz VCC.
  9. Savienojiet UNO ar savu Dev datoru, izmantojot USB.
  10. Atveriet Arduino konsoli. Izvēlieties 9600 baudus (restartējiet UNO un, ja nepieciešams, atveriet konsoli).
  11. Rekvizītu nosaukumi un vērtības jāizdrukā konsolē, pēc tam atkārtojot vārdu miega režīms.

Ja redzat “iestatīšana”, tad tiek atkārtotas 3 atkritumu rindas, iespējams, SDA un SCL līnijas būs priekšā.

I2C Master reģistrēšana no I2C verga ar ploteru/metadatu atbalstu

#iekļaut
#defineADDRESS_SLAVE10
bool _outputPlotterOnly = nepatiess;
bool _conffiedMetadata = nepatiess;
int _packetSegment = 0;
bool _i2cNodeProcessed = nepatiess;
char _property [2] [24] = {"nosaukums", "vērtība"};
voidsetup () {
Wire.begin (); // pievienoties i2c kopnei (adrese nav obligāta kapteinim)
Sērijas sākums (9600); // sākt sērijas izvadi
kavēšanās (1000);
ja (! _outputPlotterOnly) {
Serial.println ("iestatīšana");
Sērijas.println ();
}
}
voidloop () {
if (_i2cNodeProcessed) {
ja (! _confirmMetadata) {// ļaujiet vergam zināt, lai sāktu sūtīt sensora datus
kavēšanās (1);
Wire.beginTransmission (ADDRESS_SLAVE);
Wire.write (1);
Wire.endTransmission ();
kavēšanās (100);
_confirmMetadata = true;
}
_i2cNodeProcessed = nepatiess;
ja (! _outputPlotterOnly) {
Sērijas.println ();
}
atgriešanās;
}
Wire.requestFrom (ADDRESS_SLAVE, 16);
_packetSegment ++;
ogļu pakete [16];
intindekss = 0;
bool isContinueSegment = false; // turpinātSegments (trešais) 1 = vairāk, 0 = pēdējais
kamēr (Wire.available ()) {// vergs var nosūtīt mazāk, nekā pieprasīts
char c = Wire.read ();
pakete [indekss] = int (c)> -1? c: ''; // aizstājiet nederīgās rakstzīmes ar atstarpēm
ja (_packetSegment == 3) {
_packetSegment = 0;
isContinueSegment = true;
//Serial.println("------------- ");
//Serial.println(int(c));
//Serial.println("------------- ");
ja (int (c) == 48 || int (c) == 86) {// 0 pēdējā īpašumā
_i2cNodeProcessed = true;
// nosūtīt vērtības MQTT
pārtraukums;
}
}
indekss ++;
}
ja (! isContinueSegment) {
ja (! _outputPlotterOnly) {
Serial.println (pakete);
}
strcpy (_property [_packetSegment - 1], pakete); // iestatiet vietējo var ar nosaukumu/vērtību
} vēl {
if (_outputPlotterOnly && _conffiedMetadata) {
if (_i2cNodeProcessed) {
Sērijas.println (_īpašums [1]);
} vēl {
Serial.print (_property [1]);
Serial.print ("");
}
}
}
}

apskatīt rawuno_i2c_generic_sensor_test_w_plotter_v2.ino, ko mitina GitHub ar ❤

5. darbība. Nākamās darbības

Ķēdes un programmatūras I2C slāņa pamata izkārtojums ir saistīts ar daudziem dažādiem sensoriem. Galvenais, ar ko sākt, ir pakešu līgums starp saimnieku un vergu.

Esmu izveidojis/uzsācis (3D drukātu) iepakotu sensoru tīklu, kas izmanto šo ietvaru, un būs saite uz to, publicējot daļas.

Šo BLOKU izmanto MQ2 ASISIMILĀTS SENSORS.

Ieteicams: