Satura rādītājs:
- 1. darbība: materiāli un instrumenti
- 2. darbība: sagatavojiet ATTINY85
- 3. darbība: samontējiet ķēdi
- 4. solis: pārbaude
- 5. darbība. Nākamās darbības
Video: IOT123 - I2C MQ2 BRICK: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
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
Ir pilns materiālu un avotu saraksts.
- MQ2 sensora ķieģelis (1)
- ATTINY85 20PU (1)
- 1 "divpusējs protoboards (1)
- Galvene vīriešiem 90º (3P, 3P)
- Galvene vīriešiem (2P, 2P)
- Džempera šunts (1)
- Savienojuma vads (~ 7)
- Lodmetāls un dzelzs (1)
2. darbība: 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
- 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ē.
- Aizmugurē izsekojiet oranžu vadu no ORANGE1 līdz ORANGE2 un lodējiet.
- Aizmugurē izsekojiet zilu vadu no BLUE1 līdz BLUE2 un lodējiet.
- Aizmugurē izsekojiet zaļo vadu no GREEN1 līdz GREEN2 un lodējiet.
- Aizmugurē izsekojiet tukšu vadu no SILVER1 līdz SILVER2 un lodēt.
- Aizmugurē izsekojiet tukšu vadu no SILVER3 līdz SILVER4 un lodēt.
- Aizmugurē izsekojiet melnu vadu no BLACK1 līdz BLACK2 un lodējiet.
- Aizmugurē izsekojiet melnu vadu no BLACK3 līdz BLACK4 un lodējiet.
- Aizmugurē izsekojiet sarkanu vadu no RED1 līdz RED2 un lodējiet.
- Aizmugurē izsekojiet sarkanu vadu no RED3 līdz RED4 un lodējiet.
- 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
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.
- Augšupielādējiet UNO kodu savā UNO testa joslā. Pārliecinieties, ka ADDRESS_SLAVE atbilst BRICK I2C adresei.
- Pievienojiet 5.0V uz UNO ar BRCK VCC.
- Pārliecinieties, vai šīs tapas džemperis ir ieslēgts.
- Savienojiet GND uz UNO ar GND uz BRICK.
- Savienojiet A5 uz UNO ar SCL uz BRICK.
- Savienojiet A4 uz UNO ar SDA uz BRICK.
- Pievienojiet 4K7 pievilkšanas rezistoru no SDA uz VCC.
- Pievienojiet 4K7 pievilkšanas rezistoru no SCL uz VCC.
- Savienojiet UNO ar savu Dev datoru, izmantojot USB.
- Atveriet Arduino konsoli. Izvēlieties 9600 baudus (restartējiet UNO un, ja nepieciešams, atveriet konsoli).
- 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:
IOT123 - D1M BLOCK - 2xAMUX montāža: 7 soļi (ar attēliem)
IOT123 - D1M BLOCK - 2xAMUX montāža: D1M BLOCKS pievieno taustāmus futrāļus, etiķetes, polaritātes vadotnes un izlaušanos populārajiem Wemos D1 Mini SOC/vairogiem/kloniem. Viena no ESP8266 mikroshēmas problēmām ir tā, ka tai ir pieejama tikai viena analogā IO tapa. Šī pamācība parāda, kā salikt 2xA
IOT123 - ASIMILĒTAS SENSORS: MQ2: 4 soļi
IOT123 - ASISIMILĀTS SENSORS: MQ2: ASISIMILĀTS SENSORI ir vides sensori, kuriem ir pievienots aparatūras un programmatūras abstrakcijas slānis, kas ļauj pievienot pilnīgi jaunus tipus ASSIMILATE SENSOR HUB un nolasīt datus uz MQTT serveri, nepievienojot kodu
IOT123 - LIR2032 BATTERY BRICK: 4 soļi
IOT123 - LIR2032 BATTERY BRICK: IOT123 BRICKS ir DIY modulāras vienības, kuras var sajaukt ar citiem IOT123 BRICKS, lai mezglam pievienotu funkcionalitāti vai valkājamu. Tie ir balstīti uz collu kvadrātveida, divpusējiem protoboriem ar savstarpēji savienotiem caurumiem. Lai gan instrukcija
IOT123 - 3.3V POWER BRICK: 4 soļi
IOT123 - 3.3V POWER BRICK: IOT123 BRICKS ir DIY modulāras vienības, kuras var sajaukt ar citiem IOT123 BRICKS, lai mezglam pievienotu funkcionalitāti vai valkājamu. Tie ir balstīti uz collu kvadrātveida, divpusējiem protoboriem ar savstarpēji savienotiem caurumiem. Lai gan instrukcija
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 soļi
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: UPDATE: Šī iestatīšana lielā mērā ir akadēmiska vai programmatūras/barošanas avota testēšanas bāze. Pat tad, ja PB5 ir atspējots kā RESET, tas precīzi neizlasa vērtības, izmantojot analogRead: sensoru rādījumu galvenais lietojums. Izpētīs ATTINY84 iestatījumus