Innholdsfortegnelse:
- Trinn 1: Materiale og verktøy
- Trinn 2: Forbered ATTINY85
- Trinn 3: Sett sammen kretsen
- Trinn 4: Testing
- Trinn 5: Neste trinn
Video: IOT123 - I2C MQ2 BRICK: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
IOT123 BRICKS er DIY modulære enheter som kan moses sammen med andre IOT123 BRICKS, for å legge funksjonalitet til en node eller bærbar. De er basert på tommers firkantede, tosidige protoboard med sammenkoblede gjennomgående hull.
En rekke av disse BRICKS forventes å være på flere noder (Master MCUer - ESP8266 eller ATTINY84) på et nettsted. MCU trenger ingen forkunnskaper om sensorens formål eller programvarebehov. Den søker etter I2C -noder og ber deretter om en eiendomsdump (sensordata) fra hver slave. Disse BRICKene leverer 5.0V, 3.3V og en annen AUX -linje som kan tilpasses.
Denne I2C MQ2 BRICK fyller 3 eiendommer:
LPG (Parts Per Million), CO (PPM), SMOKE (PPM)
Denne sensoren ga et interessant scenario: Den trenger minst 2 minutter (opptil 5 minutter) for å varme opp, deretter må den kalibreres i 20 sekunder før bruk. Siden verts -MCU -en bare har til hensikt å få navn/verdi -par (og en fortsett -melding), har vi introdusert en "PREPARE" -egenskap. Siden fortsettelsesmeldingen er "1" (mer kommer), vil MCU -verten fortsette å avstemme BRICK til den er klar. Det anbefales også å "Brenne inn" MQ2 før bruk, dvs. la den være tilkoblet 5V-kretsen i 24 timer.
Sensorbrikkene av Keyes -typen blir først abstrahert ettersom de kommer med vitaminer (ekstra komponenter nødvendig) inkludert og er relativt tøffe (jeg kjøpte 37 for 10AUD). Andre tavler/kretser vil bli introdusert for I2C BRICKS.
Gjennomføringshullene ved siden av ATTINY85 har blitt ubrukt, for å muliggjøre en pogo pin programmerer mens DIP8 er loddet til PCB.
En ytterligere abstraksjon, pakking av BRICKS i små sylindere som kobles til en D1M WIFI BLOCK -hub, som pumper verdiene til en MQTT -server, utvikles.
Trinn 1: Materiale og verktøy
Det er en fullstendig oversikt over materiale og innkjøpsliste.
- MQ2 sensorstein (1)
- ATTINY85 20PU (1)
- 1 "Dobbeltsidig protoboard (1)
- Hannoverskrift 90º (3P, 3P)
- Mannlig overskrift (2P, 2P)
- Genser Shunt (1)
- Tilkoblingskabel (~ 7)
- Lodde og jern (1)
Trinn 2: Forbered ATTINY85
AttinyCore fra Boards Manager er nødvendig. Brenn oppstartslaster "EEPROM beholdt", "8mHZ intern" (all konfigurasjon vist ovenfor).
Bruk den medfølgende kilden; kompilere og programmere til ATtiny85.
GIST er her:
gist.github.com/IOT-123/4c501046d365d01a60…
Du kan finne flere detaljer i disse instruksjonene:
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…
Best å teste via brødbrett før du fortsetter.
Hvis du har eksisterende ASSIMILATE SENSORS, må du kontrollere at slaveadressen er forskjellig på en SENSOR/MCU -vertskombinasjon, dvs. at alle temperatursensorene kan ha samme adresse så lenge du bare har én temperatursensor på en MCU/node.
Trinn 3: Sett sammen kretsen
- Sett på forsiden komponentene ATTINY85 (1), 3P 90deg hannhoder (2) (3), 2P hannhoder (4) (5) og lodd av på baksiden.
- På baksiden, spor en oransje ledning fra ORANGE1 til ORANGE2 og loddetinn.
- På baksiden, spor en blå ledning fra BLÅ1 til BLÅ2 og loddetinn.
- På baksiden, spor en grønn ledning fra GREEN1 til GREEN2 og loddetinn.
- På baksiden kan du spore en ledning fra SILVER1 til SILVER2 og lodde.
- På baksiden kan du spore en ledning fra SILVER3 til SILVER4 og lodde.
- På baksiden, spor en svart ledning fra BLACK1 til BLACK2 og loddetinn.
- På baksiden, spor en svart ledning fra BLACK3 til BLACK4 og loddetinn.
- På baksiden, spor en rød ledning fra RØD1 til RØD2 og loddetinn.
- På baksiden, spor en rød ledning fra RED3 til RED4 og loddetinn.
- På baksiden, spor en gul ledning fra GUL1 til GUL 2 og loddetinn.
Sensoren kan nå kobles direkte via pinnene til kretskortet eller via ledninger, til punktene vist i pinnekontrakten.
Trinn 4: Testing
En rekke av disse BRICKS forventes å være på flere noder (MCUer - ESP8266 eller ATTINY84) i et miljø. Dette er en enhetstest: sjekker UNO -forespørsler/svar til alle dataene er dumpet, og ignorerer deretter I2C -slaven.
- Last opp UNO -koden til UNO -testbeltet ditt. Sørg for at ADDRESS_SLAVE samsvarer med BRICKs I2C -adresse.
- Koble 5.0V på UNO til en VCC på BRICK.
- Sørg for at jumperen for den pinnen er på.
- Koble GND på UNO til GND på BRICK.
- Koble A5 på UNO til SCL på BRICK.
- Koble A4 på UNO til SDA på BRICK.
- Koble en opptrekksmotstand 4K7 fra SDA til VCC.
- Koble en opptrekkmotstand 4K7 fra SCL til VCC.
- Koble UNO til Dev PC med USB.
- Åpne Arduino -konsollen. Velg 9600 baud (start UNO på nytt og åpne konsollen hvis du må).
- Eiendomsnavnene og verdiene skal skrives ut til konsollen en gang, så blir ordet hvilemodus gjentatt.
Hvis du ser "oppsett", så gjentar 3 søppel linjer at du kan ha SDA- og SCL -linjene tilbake til fronten.
I2C Master logging fra I2C slave med støtte for plotter/metadata
#inkludere |
#defineADDRESS_SLAVE10 |
bool _outputPlotterOnly = false; |
bool _confirmedMetadata = false; |
int _packetSegment = 0; |
bool _i2cNodeProcessed = false; |
char _property [2] [24] = {"navn", "verdi"}; |
voidsetup () { |
Wire.begin (); // bli med i2c -buss (adresse valgfri for master) |
Serial.begin (9600); // start seriell for utdata |
forsinkelse (1000); |
hvis (! _outputPlotterOnly) { |
Serial.println ("oppsett"); |
Serial.println (); |
} |
} |
voidloop () { |
hvis (_i2cNodeProcessed) { |
hvis (! _confirmedMetadata) {// gi slaven beskjed om å begynne å sende sensordata |
forsinkelse (1); |
Wire.beginTransmission (ADDRESS_SLAVE); |
Wire.write (1); |
Wire.endTransmission (); |
forsinkelse (100); |
_confirmedMetadata = true; |
} |
_i2cNodeProcessed = false; |
hvis (! _outputPlotterOnly) { |
Serial.println (); |
} |
komme tilbake; |
} |
Wire.requestFrom (ADDRESS_SLAVE, 16); |
_packetSegment ++; |
røyepakke [16]; |
intindex = 0; |
bool isContinueSegment = false; // continueSegment (det tredje) 1 = mer, 0 = siste |
mens (Wire.available ()) {// slave kan sende mindre enn forespurt |
char c = Wire.read (); |
pakke [indeks] = int (c)> -1? c: ''; // erstatt ugyldige tegn med mellomrom |
hvis (_packetSegment == 3) { |
_packetSegment = 0; |
isContinueSegment = true; |
//Serial.println("------------- "); |
//Serial.println(int(c)); |
//Serial.println("------------- "); |
if (int (c) == 48 || int (c) == 86) {// 0 på siste eiendom |
_i2cNodeProcessed = true; |
// send verdier til MQTT |
gå i stykker; |
} |
} |
indeks ++; |
} |
if (! isContinueSegment) { |
hvis (! _outputPlotterOnly) { |
Serial.println (pakke); |
} |
strcpy (_property [_packetSegment - 1], packet); // sett lokal var med navn/verdi |
}ellers{ |
if (_outputPlotterOnly && _confirmedMetadata) { |
hvis (_i2cNodeProcessed) { |
Serial.println (_property [1]); |
}ellers{ |
Serial.print (_property [1]); |
Serial.print (""); |
} |
} |
} |
} |
vis rawuno_i2c_generic_sensor_test_w_plotter_v2.ino hostet med ❤ av GitHub
Trinn 5: Neste trinn
Den grunnleggende utformingen av kretsen og I2C-laget i programvaren er relatert til mange forskjellige sensorer. Det viktigste å begynne med er pakkekontrakten mellom master og slave.
Jeg har planlagt/startet et (3D -trykt) pakket nettverk av sensorer som bruker dette rammeverket og vil koble til det når deler blir publisert.
Denne BLOKKEN brukes av MQ2 ASSIMILATE SENSOR.
Anbefalt:
Klikk på Brick Switch for Makey Makey: 4 trinn (med bilder)
Klikk på Brick Switch for Makey Makey: Denne 3D -trykte bryteren lar brukeren gjøre en Makey Makey til et " finger -lysbilde " for et " klikk " i spill eller kan være høyre/venstre pil for å bla gjennom presentasjoner. Tillegg av høyre og venstre terminalfester for
Arduino Brick Color Sorter Project: 5 trinn
Arduino Brick Color Sorter Project: I denne Arduino -opplæringen vil vi lære å oppdage farger på min leketøystein ved å bruke Arduino og TCS3200 fargesensor. Du kan lese den skrevne opplæringen nedenfor for flere detaljer.Materialer: Arduino Leonardo x 1TCS3200 x 1Masse papp180 Servo
IOT123 - MULIG SENSOR: MQ2: 4 trinn
IOT123 - ASSIMILATE SENSOR: MQ2: ASSIMILATE SENSORS er miljøsensorer som har et ekstra maskinvare- og programvareabstraksjonslag, noe som gjør det mulig å legge helt nye typer til en ASSIMILATE SENSOR HUB og avlesningene pumpes til en MQTT -server uten ekstra kodin
IOT123 - 3.3V POWER BRICK: 4 trinn
IOT123 - 3.3V POWER BRICK: IOT123 BRICKS er DIY modulære enheter som kan moses sammen med andre IOT123 BRICKS, for å legge funksjonalitet til en node eller bærbar. De er basert på tommers firkantede, tosidige protoboard med sammenkoblede gjennom hull. Selv om instruksjonene
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 trinn
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: UPDATE: Dette oppsettet er stort sett akademisk eller en base for testing av programvare/strømforsyning. Selv når PB5 er deaktivert som RESET, leser den ikke verdier nøyaktig ved bruk av analogRead: det viktigste bruksområdet for sensoravlesninger. Skal se nærmere på ATTINY84 -oppsettet