Sadržaj:

IOT123 - I2C MQ2 CIGLA: 5 koraka
IOT123 - I2C MQ2 CIGLA: 5 koraka

Video: IOT123 - I2C MQ2 CIGLA: 5 koraka

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

IOT123 CIGLE su DIY modularne jedinice koje se mogu kombinirati s drugim IOT123 CIGLAMA, za dodavanje funkcionalnosti čvoru ili nosivom uređaju. Temelje se na inčnim kvadratnim, dvostranim protoboardima s međusobno povezanim rupama.

Očekuje se da će se određeni broj ovih CIGLA nalaziti na više čvorova (glavni MCU -ovi - ESP8266 ili ATTINY84) na web mjestu. MCU -u nije potrebno prethodno znanje o namjeni senzora ili softverskim potrebama. Skenira I2C čvorove, a zatim traži dump svojstva (podatke senzora) od svakog podređenog uređaja. Ove OPEKE isporučuju 5.0V, 3.3V i drugu AUX liniju koja se može prilagoditi.

Ova I2C MQ2 OPEKA odlaže 3 svojstva:

UNP (dijelovi na milijun), CO (PPM), DIM (PPM)

Ovaj je senzor pružio zanimljiv scenarij: potrebno mu je najmanje 2 minute (do 5 minuta) da se zagrije, a zatim ga je potrebno kalibrirati 20 sekundi prije uporabe. Kako je MCU -u hosta samo potrebno da dobije parove ime/vrijednost (i poruku nastavljanja), uveli smo svojstvo "PREPARE". Budući da je poruka o nastavljanju "1" (slijedi još), MCU domaćina nastavit će s ispitivanjem CIGLE sve dok ne bude spreman. Također se preporuča "ugraditi" MQ2 prije upotrebe, tj. Ostaviti 24 sata priključenim na 5V krug.

Opeke senzora tipa Keyes prvo će se apstrahirati jer dolaze s uključenim vitaminima (potrebne su dodatne komponente) i relativno su jeftine (kupio sam 37 za 10 AUD). Ostale ploče/sklopovi bit će predstavljeni I2C CIGLAMA.

Prolazne rupe uz ATTINY85 ostavljene su neiskorištene, kako bi se omogućio pogo pin programator dok je DIP8 lemljen na PCB.

Razvija se daljnja apstrakcija, pakiranje CIGLA u male cilindre koji se spajaju u D1M WIFI BLOCK čvorište, pumpajući vrijednosti na MQTT poslužitelj.

Korak 1: Materijal i alati

Materijal i alati
Materijal i alati
Materijal i alati
Materijal i alati
Materijal i alati
Materijal i alati

Postoji potpuni popis materijala i izvora.

  1. MQ2 senzorska opeka (1)
  2. ATTINY85 20PU (1)
  3. 1 "dvostrana protoboard (1)
  4. Muški zaglavlje 90º (3P, 3P)
  5. Muški zaglavlje (2P, 2P)
  6. Premosnik za skakače (1)
  7. Spojna žica (~ 7)
  8. Lemljenje i željezo (1)

Korak 2: Pripremite ATTINY85

Pripremite ATTINY85
Pripremite ATTINY85
Pripremite ATTINY85
Pripremite ATTINY85
Pripremite ATTINY85
Pripremite ATTINY85
Pripremite ATTINY85
Pripremite ATTINY85

Potreban je AttinyCore od upravitelja odbora. Snimite bootloader "EEPROM zadržan", "8mHZ Interni" (sve konfiguracije prikazane gore).

Koristite uključeni izvor; kompajlirati i programirati na ATtiny85.

GIST je ovdje:

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

Više detalja možete pronaći u ovim uputama:

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…

Prije nastavka najbolje je testirati putem matične ploče.

Ako imate postojeće ASISIMILATE SENSORS, provjerite je li slave adresa drugačija u kombinaciji SENSOR/MCU Host, tj. Svi temperaturni osjetnici mogu imati istu adresu sve dok imate samo jedan senzor temperature na MCU/čvoru.

Korak 3: Sastavite krug

Sastavite krug
Sastavite krug
Sastavite krug
Sastavite krug
Sastavite krug
Sastavite krug
  1. S prednje strane umetnite komponente ATTINY85 (1), 3P 90deg muške zaglavlje (2) (3), 2P muške zaglavlje (4) (5) i lemite sa stražnje strane.
  2. Na stražnjoj strani nacrtajte narančastu žicu od NARANČA1 do NARANČA2 i lemite.
  3. Na stražnjoj strani nacrtajte plavu žicu od PLAVE1 do PLAVE2 i lemite.
  4. Na stražnjoj strani nacrtajte zelenu žicu od ZELENE1 do ZELENE2 i lemite.
  5. Na stražnjoj strani ocrtajte golu žicu od SREBRO1 do SREBRO2 i lemite.
  6. Na stražnjoj strani ocrtajte golu žicu od SREBRNOG3 do SREBRNOG4 i lemite.
  7. Na stražnjoj strani nacrtajte crnu žicu od BLACK1 do BLACK2 i lemite.
  8. Na stražnjoj strani nacrtajte crnu žicu od BLACK3 do BLACK4 i lemite.
  9. Na stražnjoj strani ocrtajte crvenu žicu od RED1 do RED2 i lemite.
  10. Na stražnjoj strani ocrtajte crvenu žicu od RED3 do RED4 i lemite.
  11. Na stražnjoj strani ucrtajte žutu žicu od ŽUTE1 do ŽUTE2 i lemite.

Senzor se sada može spojiti izravno na svoje PCB -ove ili putem žica na točke prikazane u ugovoru s pinovima.

Korak 4: Testiranje

Testiranje
Testiranje
Testiranje
Testiranje
Testiranje
Testiranje

Očekuje se da će određeni broj ovih CIGLA biti na više čvorova (MCU -ovi - ESP8266 ili ATTINY84) u okruženju. Ovo je jedinični test: provjerava UNO zahtjeve/odgovore sve dok se svi podaci ne izbace, a zatim zanemaruje I2C slave.

  1. Prenesite UNO kôd na svoj UNO testni remen. Uvjerite se da ADDRESS_SLAVE odgovara I2C adresi BRICK -a.
  2. Spojite 5.0V na UNO na VCC na BRICK.
  3. Provjerite je li kratkospojnik za tu iglu uključen.
  4. Spojite GND na UNO na GND na BRICK.
  5. Spojite A5 na UNO na SCL na BRICK.
  6. Spojite A4 na UNO na SDA na BRICK.
  7. Spojite 4K7 pull-up otpornik sa SDA na VCC.
  8. Spojite 4K7 pull-up otpornik iz SCL-a u VCC.
  9. Spojite svoj UNO na svoje Dev računalo putem USB -a.
  10. Otvorite Arduino konzolu. Odaberite 9600 bauda (ponovno pokrenite UNO i ponovno otvorite konzolu ako morate).
  11. Imena svojstava i vrijednosti trebaju se ispisati na konzoli jednom, a zatim se ponavlja riječ sleep.

Ako vidite "setup", ponovite 3 reda smeća, možda imate svoje SDA i SCL linije naprijed.

I2C Master prijava s I2C slave s podrškom za crtanje/metapodatke

#uključi
#defineADDRESS_SLAVE10
bool _outputPlotterOnly = false;
bool _confirmedMetadata = false;
int _packetSegment = 0;
bool _i2cNodeProcessed = false;
char _property [2] [24] = {"name", "value"};
voidsetup () {
Wire.begin (); // pridruživanje i2c sabirnici (adresa neobavezna za glavnog)
Serial.begin (9600); // pokretanje serijskog izlaza
kašnjenje (1000);
if (! _outputPlotterOnly) {
Serial.println ("postavljanje");
Serial.println ();
}
}
voidloop () {
if (_i2cNodeProcessed) {
if (! _confirmedMetadata) {// obavijestite slave da počne slati podatke senzora
odgoda (1);
Wire.beginTransmission (ADDRESS_SLAVE);
Wire.write (1);
Wire.endTransmission ();
kašnjenje (100);
_confirmedMetadata = istina;
}
_i2cNodeProcessed = false;
if (! _outputPlotterOnly) {
Serial.println ();
}
povratak;
}
Wire.requestFrom (ADDRESS_SLAVE, 16);
_packetSegment ++;
char paket [16];
intindeks = 0;
bool isContinueSegment = false; // continueSegment (3.) 1 = više, 0 = posljednje
while (Wire.available ()) {// rob može poslati manje od zahtjeva
char c = Wire.read ();
paket [indeks] = int (c)> -1? c: ''; // nevažeće znakove zamijenite razmacima
if (_packetSegment == 3) {
_packetSegment = 0;
isContinueSegment = true;
//Serial.println("------------- ");
//Serial.println(int(c));
//Serial.println("------------- ");
if (int (c) == 48 || int (c) == 86) {// 0 na zadnjem svojstvu
_i2cNodeProcessed = true;
// šalje vrijednosti u MQTT
pauza;
}
}
indeks ++;
}
if (! isContinueSegment) {
if (! _outputPlotterOnly) {
Serial.println (paket);
}
strcpy (_property [_packetSegment - 1], paket); // postavi lokalnu var s imenom/vrijednošću
}drugo{
if (_outputPlotterOnly && _confirmedMetadata) {
if (_i2cNodeProcessed) {
Serial.println (_property [1]);
}drugo{
Serial.print (_property [1]);
Serial.print ("");
}
}
}
}

pogledaj rawuno_i2c_generic_sensor_test_w_plotter_v2.ino hostirano sa ❤ od GitHub -a

Korak 5: Sljedeći koraci

Osnovni raspored kruga i I2C sloj softvera povezan je s mnogim različitim senzorima. Glavna stvar s kojom možete započeti je paketni ugovor između master -a i slave -a.

Napravio sam/pokrenuo (3D tiskanu) zapakiranu mrežu senzora koji koriste ovaj okvir i povezat će se s njim nakon objavljivanja dijelova.

Ovaj BLOK koristi MQ2 ASISIMILATNI SENZOR.

Preporučeni: