INHOUDSOPGAWE:
- Stap 1: Materiaal en gereedskap
- Stap 2: Berei die ATTINY85 voor
- Stap 3: Monteer die stroombaan
- Stap 4: Toets
- Stap 5: Volgende stappe
Video: IOT123 - I2C MQ2 BRICK: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Die IOT123 BRICKS is DIY -modulêre eenhede wat met ander IOT123 BRICKS gekombineer kan word om funksionaliteit by 'n knoop of draagbare te voeg. Hulle is gebaseer op die duim vierkantige, dubbelzijdige protoborde met onderling verbind gate.
Na verwagting sal 'n aantal van hierdie BRICKS op 'n webwerf op verskeie nodes (Master MCU's - ESP8266 of ATTINY84) wees. Die MCU benodig geen voorafgaande kennis van die sensor se doel of sagtewarebehoeftes nie. Dit soek na I2C -nodusse en versoek dan 'n eiendomsstorting (sensordata) van elke slaaf. Hierdie BRICK's bied 5.0V, 3.3V en nog 'n AUX -lyn wat aanpasbaar is.
Hierdie I2C MQ2 BRICK stort 3 eiendomme:
LPG (Parts Per Million), CO (PPM), SMOKE (PPM)
Hierdie sensor bied 'n interessante scenario: dit benodig minstens 2 minute (tot 5 minute) om op te warm, en dan moet dit 20 sekondes kalibreer voor gebruik. Aangesien die gasheer -MCU slegs die naam/waarde -pare wil kry (en 'n voortgesette boodskap), het ons 'n 'PREPARE' -eienskap bekendgestel. Aangesien die voortgesette boodskap '1' is (meer kom), sal die gasheer -MCU aanhou om die BRICK te stem totdat dit gereed is. Dit word ook aanbeveel om die MQ2 voor gebruik in te brand, dws 24 uur lank aan u 5V-stroombaan gekoppel.
Die sensorstene van die Keyes -tipe word eers onttrek, aangesien dit vitamiene bevat (benodig ekstra komponente) en relatief goedkoop is (ek het 37 vir 10AUD gekoop). Ander planke/stroombane sal bekendgestel word aan die I2C BRICKS.
Die deurgate langs die ATTINY85 is ongebruik gelaat om 'n pogo-penprogrammeerder moontlik te maak terwyl die DIP8 aan die PCB gesoldeer is.
'N Verdere abstraksie, wat die BRICKS verpak in klein silinders wat by 'n D1M WIFI BLOCK -hub aansluit, wat die waardes na 'n MQTT -bediener pomp, word ontwikkel.
Stap 1: Materiaal en gereedskap
Daar is 'n volledige lys van materiaal en verkrygings.
- MQ2 sensorsteen (1)
- ATTINY85 20PU (1)
- 1 "dubbelzijdige protobord (1)
- Manlike kop 90º (3P, 3P)
- Manlike kop (2P, 2P)
- Trui Shunt (1)
- Aansluitdraad (~ 7)
- Soldeer en yster (1)
Stap 2: Berei die ATTINY85 voor
AttinyCore van die direksiebestuurder is nodig. Brand selflaaiprogram "EEPROM behou", "8mHZ intern" (al die konfigurasies word hierbo getoon).
Gebruik die ingesluit bron; saamstel en programmeer na die ATtiny85.
Die GIST is hier:
gist.github.com/IOT-123/4c501046d365d01a60…
U kan meer besonderhede in hierdie instruksies vind:
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…
Dit is die beste om dit op 'n broodbord te toets voordat u verder gaan.
As u bestaande ASSIMILATE SENSORS het, maak seker dat die slaafadres anders is in 'n SENSOR/MCU Host -kombinasie, dit wil sê dat alle temperatuursensors dieselfde adres kan hê, solank u slegs een temperatuursensor op 'n MCU/node het.
Stap 3: Monteer die stroombaan
- Plaas die komponente ATTINY85 (1), 3P 90deg male headers (2) (3), 2P male headers (4) (5) en soldeer aan die agterkant af.
- Trek agter 'n oranje draad van ORANGE1 na ORANGE2 en soldeer.
- Trek agter 'n blou draad van BLUE1 na BLUE2 en soldeer.
- Aan die agterkant spoor 'n groen draad van GREEN1 na GREEN2 en soldeer.
- Trek agter 'n kaal draad van SILVER1 na SILVER2 en soldeer.
- Trek agter 'n kaal draad van SILVER3 na SILVER4 en soldeer.
- Trek agter 'n swart draad van BLACK1 na BLACK2 en soldeer.
- Trek agter 'n swart draad van BLACK3 na BLACK4 en soldeer.
- Trek agter 'n rooi draad van RED1 na RED2 en soldeer.
- Aan die agterkant, spoor 'n rooi draad van RED3 tot RED4 en soldeer.
- Trek agter 'n geel draad van GEEL1 na GEEL2 en soldeer.
Die sensor kan nou direk via sy penne aan die printplaat of via drade gekoppel word aan die punte wat in die penkontrak aangedui word.
Stap 4: Toets
'N Aantal van hierdie BRICKS sal na verwagting op verskeie knope (MCU's - ESP8266 of ATTINY84) in 'n omgewing wees. Dit is 'n eenheidstoets: kontroleer die UNO -versoeke/antwoorde totdat al die data gestort is, en verwaarloos dan die I2C -slaaf.
- Laai die UNO -kode op na u UNO -toetsharnas. Maak seker ADDRESS_SLAVE pas by die BRICK se I2C -adres.
- Koppel die 5.0V op UNO aan 'n VCC op BRICK.
- Maak seker dat die trui vir die pen aan is.
- Koppel die GND op UNO aan GND op BRICK.
- Koppel die A5 op UNO aan SCL op BRICK.
- Koppel die A4 op UNO aan SDA op BRICK.
- Koppel 'n 4K7-optrekweerstand van SDA na VCC.
- Koppel 'n optrekweerstand van 4K7 van SCL na VCC.
- Koppel u UNO aan u Dev PC met USB.
- Maak die Arduino -konsole oop. Kies 9600 baud (herbegin die UNO en heropen die konsole indien nodig).
- Die eiendomsname en waardes moet op die konsole gedruk word sodra die woord slaap herhaal word.
As u 'opstelling' sien, dan word 3 reëls vullis herhaal, maar u het moontlik u SDA- en SCL -lyne van voor af.
I2C Master logging van I2C slave met plotter/metadata ondersteuning
#insluit |
#definieerADDRESS_SLAVE10 |
bool _outputPlotterOnly = vals; |
bool _confirmedMetadata = vals; |
int _packetSegment = 0; |
bool _i2cNodeProcessed = vals; |
char _property [2] [24] = {"naam", "waarde"}; |
voidsetup () { |
Wire.begin (); // sluit aan by i2c -bus (adres opsioneel vir meester) |
Serial.begin (9600); // begin reeks vir uitvoer |
vertraging (1000); |
as (! _outputPlotterOnly) { |
Serial.println ("opstelling"); |
Serial.println (); |
} |
} |
voidloop () { |
as (_i2cNodeProcessed) { |
as (! _confirmedMetadata) {// laat die slaaf weet om sensordata te begin stuur |
vertraging (1); |
Wire.beginTransmission (ADDRESS_SLAVE); |
Draad.skryf (1); |
Wire.endTransmission (); |
vertraging (100); |
_confirmedMetadata = waar; |
} |
_i2cNodeProcessed = vals; |
as (! _outputPlotterOnly) { |
Serial.println (); |
} |
terugkeer; |
} |
Wire.requestFrom (ADDRESS_SLAVE, 16); |
_packetSegment ++; |
char pakkie [16]; |
intindex = 0; |
bool isContinueSegment = false; // continueSegment (die 3de) 1 = meer, 0 = laaste |
terwyl (Wire.available ()) {// slaaf minder kan stuur as wat versoek is |
char c = Wire.read (); |
pakkie [indeks] = int (c)> -1? c: ''; // vervang ongeldige tekens met spasies |
as (_packetSegment == 3) { |
_packetSegment = 0; |
isContinueSegment = waar; |
//Serial.println("------------- "); |
//Serial.println(int(c)); |
//Serial.println("------------- "); |
if (int (c) == 48 || int (c) == 86) {// 0 op die laaste eiendom |
_i2cNodeProcessed = waar; |
// stuur waardes na MQTT |
breek; |
} |
} |
indeks ++; |
} |
as (! isContinueSegment) { |
as (! _outputPlotterOnly) { |
Serial.println (pakkie); |
} |
strcpy (_property [_packetSegment - 1], pakkie); // stel plaaslike var met naam/waarde in |
} anders { |
if (_outputPlotterOnly && _confirmedMetadata) { |
as (_i2cNodeProcessed) { |
Serial.println (_property [1]); |
} anders { |
Serial.print (_property [1]); |
Serial.print (""); |
} |
} |
} |
} |
sien rawuno_i2c_generic_sensor_test_w_plotter_v2.ino aangebied deur ❤ deur GitHub
Stap 5: Volgende stappe
Die basiese uitleg van die stroombaan en die I2C-laag van die sagteware kan met baie verskillende sensors verband hou. Die belangrikste ding om mee te begin, is die pakkie -kontrak tussen meester en slaaf.
Ek het 'n (3D -gedrukte) verpakte netwerk van sensors wat hierdie raamwerk gebruik, begin/begin, en sal daarna skakel as dele gepubliseer word.
Hierdie BLOCK word deur die MQ2 ASSIMILATE SENSOR gebruik.
Aanbeveel:
Klik op Brick Switch vir Makey Makey: 4 stappe (met foto's)
Klik op Brick Switch vir Makey Makey: Met hierdie 3D -gedrukte skakelaar kan die gebruiker van 'n Makey Makey 'n " vingerskuif " vir 'n " klik " in die spel of kan die pyltjies regs/links wees om deur aanbiedings te blaai. Die toevoeging van regter- en linker terminale houers vir die
Arduino Brick Color Sorter -projek: 5 stappe
Arduino Brick Color Sorter Project: In hierdie Arduino -tutoriaal leer ons hoe om kleure van my speelgoedsteen op te spoor deur Arduino en die TCS3200 -kleursensor te gebruik. U kan die geskrewe handleiding hieronder lees vir meer besonderhede.Materiaal: Arduino Leonardo x 1TCS3200 x 1 Baie karton180 Servo
IOT123 - D1M BLOCK - 2xAMUX -samestelling: 7 stappe (met foto's)
IOT123 - D1M BLOCK - 2xAMUX -samestelling: D1M BLOCKS voeg tasbare kaste, etikette, polariteitsgidse en uitbrekings by vir die gewilde Wemos D1 Mini SOC/Shields/Clones. Een van die probleme met die ESP8266 -chip is dat dit slegs een analoog IO -pen beskikbaar het. Hierdie instruksie wys hoe u die 2xA kan monteer
IOT123 - D1M BLOCK - RFTXRX Samestelling: 8 stappe
IOT123 - D1M BLOCK - RFTXRX Montage: D1M BLOCKS voeg tasbare kaste, etikette, polariteitsgidse en uitbrekings by vir die gewilde Wemos D1 Mini SOC/Shields/Clones. RF -senders/ontvangers stel die ESP8266 in staat om toegang tot bestaande huis-/industriële outomatisering te verkry. Hierdie omhulsel bied uitbreekpunte vir 433
IOT123 - ASSIMILATE SENSOR: MQ2: 4 stappe
IOT123 - ASSIMILATE SENSOR: MQ2: ASSIMILATE SENSORS is omgewingsensors met 'n ekstra hardeware- en sagteware -abstraksielaag, wat dit moontlik maak om heeltemal nuwe tipes by 'n ASSIMILATE SENSOR HUB te voeg en die lesings na 'n MQTT -bediener gepomp te word sonder om kodin by te voeg