Orodha ya maudhui:

IOT123 - I2C MQ2 BRICK: Hatua 5
IOT123 - I2C MQ2 BRICK: Hatua 5

Video: IOT123 - I2C MQ2 BRICK: Hatua 5

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

VITAMBI vya IOT123 ni vitengo vya moduli vya DIY ambavyo vinaweza kusisitizwa na VITENGE vingine vya IOT123, ili kuongeza utendaji kwa nodi au ya kuvaa. Zinategemea mraba wa inchi, protoboards zenye pande mbili na zilizounganishwa kupitia mashimo.

Idadi ya BRICK hizi zinatarajiwa kuwa kwenye nodi nyingi (Master MCUs - ESP8266 au ATTINY84) kwenye wavuti. MCU haiitaji maarifa ya awali ya madhumuni ya sensorer au mahitaji ya programu. Inatafuta nodi za I2C kisha inaomba dampo la mali (data ya sensorer) kutoka kwa kila mtumwa. Hizi BRICK zinasambaza 5.0V, 3.3V na laini nyingine ya AUX ambayo inaweza kugeuzwa kukufaa.

Hii I2C MQ2 BRICK hutupa mali 3:

LPG (Sehemu Kwa Milioni), CO (PPM), MOSHI (PPM)

Sensorer hii ilitoa hali ya kupendeza: Inahitaji angalau dakika 2 (hadi dakika 5) ili joto, basi inahitaji kusawazisha kwa sekunde 20 kabla ya matumizi. Kwa kuwa mwenyeji wa MCU amejikita tu katika kupata jozi za jina / thamani (na ujumbe unaoendelea), tumeanzisha mali ya "KUANDAA". Kwa kuwa ujumbe wake unaoendelea ni "1" (zaidi ijayo), MCU ya Jeshi itaendelea kupiga kura kwa BRICK hadi iwe tayari. Pia inashauriwa "Kuchoma-ndani" MQ2 kabla ya matumizi, i.e.

Matofali ya sensa ya aina ya Keyes yatatolewa kwanza wanapokuja na vitamini (vifaa vya ziada vinahitajika) vimejumuishwa na ni duni (nilinunua 37 kwa 10AUD). Bodi / nyaya zingine zitaletwa kwa I2C BRICKS.

Shimo za kupitisha karibu na ATTINY85 zimeachwa bila kutumiwa, kuwezesha programu ya pogo pogo wakati DIP8 inauzwa kwa PCB.

Utaftaji zaidi, ufungaji wa MATofali katika mitungi midogo ambayo huziba kwenye kitovu cha D1M WIFI BLOCK, ikisukuma maadili kwa seva ya MQTT, inaendelezwa.

Hatua ya 1: Nyenzo na Zana

Nyenzo na Zana
Nyenzo na Zana
Nyenzo na Zana
Nyenzo na Zana
Nyenzo na Zana
Nyenzo na Zana

Kuna orodha kamili ya Muswada wa Nyenzo na Utaftaji.

  1. Matofali ya sensa ya MQ2 (1)
  2. ATTINY85 20PU (1)
  3. 1 "Uboreshaji wa pande mbili (1)
  4. Kichwa cha kiume 90º (3P, 3P)
  5. Kichwa cha Kiume (2P, 2P)
  6. Jumper Shunt (1)
  7. Hookup waya (~ 7)
  8. Solder na Chuma (1)

Hatua ya 2: Andaa ATTINY85

Andaa MNADHARA85
Andaa MNADHARA85
Andaa MNADHARA85
Andaa MNADHARA85
Andaa MNADHARA85
Andaa MNADHARA85
Andaa MNADHARA85
Andaa MNADHARA85

AttinyCore kutoka kwa Meneja wa Bodi inahitajika. Choma bootloader "EEPROM Imebakizwa", "8mHZ ya Ndani" (usanidi wote umeonyeshwa hapo juu).

Tumia chanzo kilichojumuishwa; kukusanya na mpango wa ATtiny85.

GIST iko hapa:

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

Unaweza kupata maelezo zaidi katika mafundisho haya:

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…

Bora kwa kujaribu kupitia ubao wa mkate kabla ya kuendelea.

Ikiwa una SENSORS zilizopo za ASSIMILATE, hakikisha anwani ya mtumwa ni tofauti kwenye mchanganyiko wa Jeshi la SENSOR / MCU yaani sensorer zote za Joto zinaweza kuwa na anwani sawa ikiwa tu una sensorer moja ya Joto kwenye MCU / node.

Hatua ya 3: Kusanya Mzunguko

Kusanya Mzunguko
Kusanya Mzunguko
Kusanya Mzunguko
Kusanya Mzunguko
Kusanya Mzunguko
Kusanya Mzunguko
  1. Mbele, ingiza vifaa vya ATTINY85 (1), 3P 90deg vichwa vya kiume (2) (3), 2P vichwa vya kiume (4) (5), na solder nyuma.
  2. Kwenye nyuma, fuata waya wa machungwa kutoka ORANGE1 hadi ORANGE2 na solder.
  3. Kwa nyuma, fuatilia waya wa bluu kutoka BLUE1 hadi BLUE2 na solder.
  4. Kwenye nyuma, fuatilia waya wa kijani kutoka GREEN1 hadi GREEN2 na solder.
  5. Kwenye nyuma, fuatilia waya wazi kutoka SILVER1 hadi SILVER2 na solder.
  6. Kwenye nyuma, fuatilia waya wazi kutoka SILVER3 hadi SILVER4 na solder.
  7. Kwenye nyuma, fuatilia waya mweusi kutoka BLACK1 hadi BLACK2 na solder.
  8. Kwenye nyuma, fuatilia waya mweusi kutoka BLACK3 hadi BLACK4 na solder.
  9. Kwa nyuma, fuatilia waya nyekundu kutoka RED1 hadi RED2 na solder.
  10. Kwa nyuma, fuatilia waya mwekundu kutoka RED3 hadi RED4 na solder.
  11. Kwenye nyuma, fuatilia waya wa manjano kutoka YELLOW1 hadi YELLOW2 na solder.

Sensor sasa inaweza kushikamana moja kwa moja kupitia pini zake kwa PCB au kupitia waya, kwa alama zilizoonyeshwa kwenye kandarasi ya pini.

Hatua ya 4: Upimaji

Upimaji
Upimaji
Upimaji
Upimaji
Upimaji
Upimaji

Idadi ya Matofali haya yanatarajiwa kuwa kwenye nodi nyingi (MCUs - ESP8266 au ATTINY84) katika mazingira. Huu ni mtihani wa kitengo: huangalia maombi / majibu ya UNO hadi data yote itupwe, halafu anapuuza mtumwa wa I2C.

  1. Pakia nambari ya UNO kwenye kifaa chako cha majaribio cha UNO. Hakikisha ADDRESS_SLAVE inalingana na anwani ya I2C ya BRICK.
  2. Unganisha 5.0V kwenye UNO kwa VCC kwenye BRICK.
  3. Hakikisha jumper ya pini hiyo imewashwa.
  4. Unganisha GND kwenye UNO na GND kwenye BRICK.
  5. Unganisha A5 kwenye UNO na SCL kwenye BRICK.
  6. Unganisha A4 kwenye UNO na SDA kwenye BRICK.
  7. Unganisha kontena la kuvuta la 4K7 kutoka SDA hadi VCC.
  8. Unganisha kontena la kuvuta la 4K7 kutoka SCL hadi VCC.
  9. Unganisha UNO yako kwenye PC yako ya Dev na USB.
  10. Fungua Arduino Console. Chagua baud 9600 (anzisha tena UNO na ufungue tena kiweko ikiwa lazima).
  11. Majina ya Thamani na Thamani zinapaswa kuchapishwa kwa kiweko mara moja kisha neno kulala linarudiwa.

Ukiona "kusanidi" basi mistari 3 ya takataka inarudiwa unaweza kuwa na mistari yako ya SDA na SCL nyuma.

I2C Master ukataji miti kutoka kwa mtumwa wa I2C na msaada wa mpangaji / metadata

# pamoja
# fafanuaADDRESS_SLAVE10
bool _outputPlotterOnly = uongo;
bool _confirmedMetadata = uwongo;
sehemu ya pakiti = 0;
bool _i2cNodeProcessed = uongo;
char _property [2] [24] = {"name", "value"};
voidetup () {
Wire.begin (); // jiunge na i2c basi (anwani ya hiari kwa bwana)
Serial. Kuanza (9600); // kuanza serial kwa pato
kuchelewesha (1000);
ikiwa (! _outputPlotterOnly) {
Serial.println ("kuanzisha");
Serial.println ();
}
}
voidloop () {
ikiwa (_i2cNodeProcessed) {
ikiwa (! _confirmedMetadata) {// mjulishe mtumwa aanze kutuma data ya sensorer
kuchelewesha (1);
Uwasilishaji wa waya (ADDRESS_SLAVE);
Andika waya (1);
Uwasilishaji wa waya ();
kuchelewesha (100);
_confirmedMetadata = kweli;
}
_i2cNodeProcessed = uongo;
ikiwa (! _outputPlotterOnly) {
Serial.println ();
}
kurudi;
}
Ombi la Wire. Toka (ADDRESS_SLAVE, 16);
Sehemu ya pakiti ++;
pakiti ya char [16];
intindex = 0;
bool isContinueSegment = false; // continueSegment (the 3) 1 = zaidi, 0 = mwisho
wakati (Wire.available ()) {// mtumwa anaweza kutuma chini ya ombi
char c = Wire.read ();
pakiti [index] = int (c)> -1? c: ";
ikiwa (_packetSegment == 3) {
Sehemu ya pakiti = 0;
isContinueSegment = kweli;
//Serial.println ("-------------");
//Serial.println (int (c));
//Serial.println ("-------------");
ikiwa (int (c) == 48 || int (c) == 86) {// 0 kwenye mali ya mwisho
_i2cNodeProcessed = kweli;
// tuma maadili kwa MQTT
kuvunja;
}
}
index ++;
}
ikiwa (! isContinueSegment) {
ikiwa (! _outputPlotterOnly) {
Serial.println (pakiti);
}
strcpy (_property [_packetSegment - 1], pakiti); // kuweka var ya ndani na jina / thamani
} mwingine {
ikiwa (_outputPlotterOnly && _confirmedMetadata) {
ikiwa (_i2cNodeProcessed) {
Serial.println (_ mali [1]);
} mwingine {
Printa ya serial (mali [1]);
Serial.print ("");
}
}
}
}

tazama rawuno_i2c_generic_sensor_test_w_plotter_v2.ino mwenyeji wa ❤ na GitHub

Hatua ya 5: Hatua Zifuatazo

Mpangilio wa msingi wa mzunguko na safu ya I2C ya programu inahusiana na uwezo wa sensorer nyingi tofauti. Jambo kuu kupata haki kuanza, ni mkataba wa pakiti kati ya bwana na mtumwa.

Nimeweka / kuanzisha mtandao wa sensorer uliochapishwa (3D iliyochapishwa) ambayo hutumia mfumo huu na itaunganisha kama sehemu zinavyochapishwa.

BLOCK hii inatumiwa na MQ2 ASSIMILATE SENSOR.

Ilipendekeza: