Sisällysluettelo:

IOT123 - I2C MQ2 BRICK: 5 vaihetta
IOT123 - I2C MQ2 BRICK: 5 vaihetta

Video: IOT123 - I2C MQ2 BRICK: 5 vaihetta

Video: IOT123 - I2C MQ2 BRICK: 5 vaihetta
Video: MQ-2 датчик газов и дыма подключаем к Arduino 2024, Heinäkuu
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 ovat DIY -modulaarisia yksiköitä, jotka voidaan murskata muiden IOT123 -tiilien kanssa lisätäkseen toiminnallisuutta solmuun tai puettavaan. Ne perustuvat tuuman neliön muotoisiin kaksipuolisiin protoboardeihin, joissa on toisiinsa yhdistetyt reiät.

Useiden näiden TILIKOIDEN odotetaan olevan sivuston useissa solmuissa (pää MCU: t - ESP8266 tai ATTINY84). MCU ei tarvitse ennakkotietoa antureiden tarkoituksesta tai ohjelmistotarpeista. Se etsii I2C -solmuja ja pyytää sitten ominaisuustodistusta (anturitiedot) jokaiselta orjalta. Nämä BRICK -virtalähteet tarjoavat 5,0 V: n, 3,3 V: n ja toisen AUX -linjan, joka on muokattavissa.

Tämä I2C MQ2 BRICK tyhjentää 3 ominaisuutta:

Nestekaasu (miljoonasosaa), CO (PPM), SAVU (PPM)

Tämä anturi tarjosi mielenkiintoisen skenaarion: Se tarvitsee vähintään 2 minuuttia (enintään 5 minuuttia) lämmetäkseen, sitten sen on kalibroitava 20 sekuntia ennen käyttöä. Koska isäntä MCU on vain asettamassa nime/arvo -pareja (ja jatkosanomaa), olemme ottaneet käyttöön "PREPARE" -ominaisuuden. Koska sen jatkosanoma on "1" (lisää tulossa), isäntä MCU jatkaa polttamista BRICK, kunnes se on valmis. On myös suositeltavaa "polttaa" MQ2 ennen käyttöä, eli jättää liitettynä 5 V: n piiriin 24 tunniksi.

Keyes -tyyppiset anturikivet otetaan ensin, koska ne sisältävät vitamiineja (lisäkomponentteja tarvitaan) ja ovat suhteellisen kevyitä (ostin 37 hintaan 10AUD). Muut levyt/piirit esitetään I2C BRICKSissä.

ATTINY85: n vieressä olevat läpireiät on jätetty käyttämättä, jotta pogo-nastainen ohjelmoija voidaan ottaa käyttöön, kun DIP8 on juotettu piirilevyyn.

Jatkuvasti kerrotaan myös BRICKSien pakkaamista pieniin sylintereihin, jotka kytketään D1M WIFI BLOCK -keskittimeen ja pumpataan arvot MQTT -palvelimelle.

Vaihe 1: Materiaali ja työkalut

Materiaali ja työkalut
Materiaali ja työkalut
Materiaali ja työkalut
Materiaali ja työkalut
Materiaali ja työkalut
Materiaali ja työkalut

Aineiston ja hankintojen luettelo on täynnä.

  1. MQ2 -anturitiili (1)
  2. ATTINY85 20PU (1)
  3. 1 "kaksipuolinen protoboard (1)
  4. Uros Otsikko 90º (3P, 3P)
  5. Urosotsikko (2P, 2P)
  6. Jumper Shunt (1)
  7. Liitäntäjohto (~ 7)
  8. Juotos ja rauta (1)

Vaihe 2: Valmista ATTINY85

Valmista ATTINY85
Valmista ATTINY85
Valmista ATTINY85
Valmista ATTINY85
Valmista ATTINY85
Valmista ATTINY85
Valmista ATTINY85
Valmista ATTINY85

Hallituksen johtajan AttinyCore tarvitaan. Polta käynnistyslatain "EEPROM Retained", "8mHZ Internal" (kaikki kokoonpanot on esitetty yllä).

Käytä mukana toimitettua lähdettä; kääntää ja ohjelmoida ATtiny85: een.

GIST on täällä:

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

Saat lisätietoja näistä ohjeista:

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…

Paras testata leipälevyn kautta ennen kuin jatkat.

Jos sinulla on olemassa ASISIMILAATTI -ANTURIT, varmista, että SENSOR/MCU -isäntäyhdistelmän orjaosoite on erilainen, eli kaikilla lämpötila -antureilla voi olla sama osoite, kunhan sinulla on vain yksi lämpötila -anturi MCU: ssa/solmussa.

Vaihe 3: Kokoa piiri

Kokoa piiri
Kokoa piiri
Kokoa piiri
Kokoa piiri
Kokoa piiri
Kokoa piiri
  1. Aseta etuosaan osat ATTINY85 (1), 3P 90deg urospäät (2) (3), 2P urospäät (4) (5) ja juota pois takaa.
  2. Jäljitä takana oleva oranssi lanka ORANGE1: stä ORANGE2: een ja juota.
  3. Jäljitä takana oleva sininen johto BLUE1 - BLUE2 ja juotos.
  4. Jäljitä takana oleva vihreä johto GREEN1: stä GREEN2: een ja juota.
  5. Jäljellä on jäljellä paljas lanka HOPEA1 - HOPEA2 ja juote.
  6. Jäljellä on jäljellä paljaat johdot SILVER3: sta SILVER4: ään ja juotos.
  7. Jäljitä takana musta johto BLACK1: stä BLACK2: een ja juotos.
  8. Jäljitä takana musta johto BLACK3: sta BLACK4: ään ja juotos.
  9. Jäljitä takana oleva punainen johto RED1 - RED2 ja juotos.
  10. Jäljitä takana oleva punainen johto RED3 - RED4 ja juotos.
  11. Jäljitä takana oleva keltainen lanka KELTAISESTA 1 KELTAISEKSI2 ja juota.

Anturi voidaan nyt liittää suoraan nastojensa kautta piirilevyyn tai johtojen kautta nastasopimuksessa esitettyihin kohtiin.

Vaihe 4: Testaus

Testaus
Testaus
Testaus
Testaus
Testaus
Testaus

Useiden näiden TILIKOIDEN odotetaan olevan useissa solmuissa (MCU: t - ESP8266 tai ATTINY84) ympäristössä. Tämä on yksikkötesti: tarkistaa UNO -pyynnöt/vastaukset, kunnes kaikki tiedot on poistettu, ja jättää sitten huomiotta I2C -orjan.

  1. Lataa UNO -koodi UNO -testisarjoihisi. Varmista, että ADDRESS_SLAVE vastaa BRICKin I2C -osoitetta.
  2. Kytke UNO: n 5,0 V BRICKin VCC: hen.
  3. Varmista, että kyseisen tapin hyppyjohdin on päällä.
  4. Yhdistä GND UNO: lla GND on BRICK.
  5. Liitä A5 UNO: ssa SCL on BRICK.
  6. Liitä UNO: n A4 -levy BRICKin SDA -liittimeen.
  7. Liitä 4K7-vetovastus SDA: sta VCC: hen.
  8. Liitä 4K7-vetovastus SCL: stä VCC: hen.
  9. Yhdistä UNO -laite Dev -tietokoneeseen USB: n avulla.
  10. Avaa Arduino -konsoli. Valitse 9600 baudia (käynnistä UNO uudelleen ja avaa konsoli tarvittaessa uudelleen).
  11. Ominaisuuksien nimet ja arvot tulee tulostaa konsoliin kerran, kun sana uni toistetaan.

Jos näet "asetukset", 3 roskariviä toistetaan, saatat saada SDA- ja SCL -linjat takaisin eteen.

I2C Master kirjaus I2C slave -laitteesta plotteri-/metatietotuella

#sisältää
#defineADDRESS_SLAVE10
bool _outputPlotterOnly = epätosi;
bool _conffiedMetadata = epätosi;
int _packetSegment = 0;
bool _i2cNodeProcessed = epätosi;
char _property [2] [24] = {"nimi", "arvo"};
voidsetup () {
Wire.begin (); // liittyä i2c -väylään (osoite valinnainen isännälle)
Sarja.alku (9600); // aloita sarja tulostusta varten
viive (1000);
jos (! _outputPlotterOnly) {
Serial.println ("setup");
Sarja.println ();
}
}
voidloop () {
if (_i2cNodeProcessed) {
if (! _conffiedMetadata) {// ilmoita orjalle, että se voi aloittaa anturitietojen lähettämisen
viive (1);
Wire.beginTransmission (ADDRESS_SLAVE);
Wire.write (1);
Wire.endTransmission ();
viive (100);
_conffiedMetadata = true;
}
_i2cNodeProcessed = epätosi;
jos (! _outputPlotterOnly) {
Sarja.println ();
}
palata;
}
Wire.requestFrom (ADDRESS_SLAVE, 16);
_packetSegment ++;
hiilipaketti [16];
intindex = 0;
bool isContinueSegment = false; // jatkaSegmentti (kolmas) 1 = enemmän, 0 = viimeinen
kun taas (Wire.available ()) {// orja voi lähettää vähemmän kuin pyydetty
char c = Wire.read ();
paketti [hakemisto] = int (c)> -1? c: ''; // korvaa virheelliset merkit välilyönneillä
jos (_packetSegment == 3) {
_packetSegment = 0;
isContinueSegment = true;
//Sarja.println ("------------- ");
//Sarja.println(int(c));
//Sarja.println ("------------- ");
jos (int (c) == 48 || int (c) == 86) {// 0 viimeisessä ominaisuudessa
_i2cNodeProcessed = true;
// lähetä arvot MQTT: lle
tauko;
}
}
indeksi ++;
}
if (! isContinueSegment) {
jos (! _outputPlotterOnly) {
Serial.println (paketti);
}
strcpy (_property [_packetSegment - 1], paketti); // aseta paikallinen muuttuja nimellä/arvolla
}muu{
if (_outputPlotterOnly && _conffiedMetadata) {
if (_i2cNodeProcessed) {
Serial.println (_ominaisuus [1]);
}muu{
Serial.print (_ominaisuus [1]);
Serial.print ("");
}
}
}
}

katso rawuno_i2c_generic_sensor_test_w_plotter_v2.ino, jonka isännöi GitHub ❤

Vaihe 5: Seuraavat vaiheet

Piirin perusasettelu ja ohjelmiston I2C-kerros liittyvät moniin eri antureihin. Tärkeintä päästä alkuun on isäntä ja orja välinen pakettisopimus.

Olen suunnitellut/aloittanut (3D -tulostettu) pakatun anturiverkoston, joka käyttää tätä kehystä ja joka linkittää siihen osien julkaisemisen yhteydessä.

Tätä lohkoa käyttää MQ2 ASSIMILATE SENSOR.

Suositeltava: