Indholdsfortegnelse:
- Trin 1: Materiale og værktøjer
- Trin 2: Forbered ATTINY85
- Trin 3: Saml kredsløbet
- Trin 4: Test
- Trin 5: Næste trin
Video: IOT123 - I2C MQ2 BRICK: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
IOT123 BRICKS er DIY modulære enheder, der kan moses sammen med andre IOT123 BRICKS, for at tilføje funktionalitet til en node eller bærbar. De er baseret på tommer firkantede, dobbeltsidede protoboards med indbyrdes forbundne huller.
Et antal af disse BRICKS forventes at være på flere noder (Master MCU'er - ESP8266 eller ATTINY84) på et websted. MCU'en behøver ingen forudgående viden om sensorernes formål eller softwarebehov. Den scanner efter I2C -noder og anmoder derefter om en egenskabsdump (sensordata) fra hver slave. Disse BRICK'er leverer 5.0V, 3.3V og en anden AUX -linje, der kan tilpasses.
Denne I2C MQ2 BRICK dumper 3 ejendomme:
LPG (dele pr. Million), CO (PPM), RØG (PPM)
Denne sensor gav et interessant scenario: Det kræver mindst 2 minutter (op til 5 minutter) at varme op, derefter skal det kalibreres i 20 sekunder før brug. Da værtens MCU kun er indrettet til at få navn/værdi -par (og en fortsat meddelelse), har vi introduceret en "FORBERED" -egenskab. Da dens fortsatte meddelelse er "1" (mere kommer), vil værts -MCU'en blive ved med at afstemme BRICK, indtil den er klar. Det anbefales også at "indbrænde" MQ2 før brug, dvs. lade være forbundet til dit 5V kredsløb i 24 timer.
Keyes -type sensorsten bliver abstraheret først, da de kommer med vitaminer (ekstra komponenter kræves) inkluderet og er relativt billige (jeg købte 37 for 10AUD). Andre tavler/kredsløb vil blive introduceret til I2C BRICKS.
De gennemgående huller ved siden af ATTINY85 er blevet efterladt ubrugte for at muliggøre en pogo pin programmerer, mens DIP8 er loddet til printet.
En yderligere abstraktion, emballering af BRICKS i små cylindre, der sættes i et D1M WIFI BLOCK -hub, der pumper værdierne til en MQTT -server, udvikles.
Trin 1: Materiale og værktøjer
Der er en fuld liste over materiale og indkøbsliste.
- MQ2 sensorsten (1)
- ATTINY85 20PU (1)
- 1 "Dobbeltsidet protoboard (1)
- Mandskærebord 90º (3P, 3P)
- Male Header (2P, 2P)
- Jumper Shunt (1)
- Tilslutningskablet (~ 7)
- Lodde og jern (1)
Trin 2: Forbered ATTINY85
AttinyCore fra bestyrelseschefen er påkrævet. Brænd bootloader "EEPROM beholdt", "8mHZ intern" (alle konfigurationer vist ovenfor).
Brug den medfølgende kilde; kompilere og programmere til ATtiny85.
GIST er her:
gist.github.com/IOT-123/4c501046d365d01a60…
Du kan finde flere detaljer i disse instruktioner:
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…
Bedst at teste via breadboard, inden du fortsætter.
Hvis du har eksisterende ASSIMILATE SENSORS, skal du sørge for, at slaveadressen er forskellig på en SENSOR/MCU Host -kombination, dvs. at alle temperatursensorer kan have den samme adresse, så længe du kun har en temperatursensor på en MCU/node.
Trin 3: Saml kredsløbet
- På forsiden indsættes komponenterne ATTINY85 (1), 3P 90deg hanhoveder (2) (3), 2P hanhoveder (4) (5) og loddes af på bagsiden.
- På bagsiden kan du spore en orange ledning fra ORANGE1 til ORANGE2 og lodde.
- På bagsiden kan du spore en blå ledning fra BLUE1 til BLUE2 og lodde.
- På bagsiden kan du spore en grøn ledning fra GREEN1 til GREEN2 og lodde.
- På bagsiden skal du spore en ledning fra SILVER1 til SILVER2 og lodde.
- På bagsiden kan du spore en ledning fra SILVER3 til SILVER4 og lodde.
- På bagsiden kan du spore en sort ledning fra BLACK1 til BLACK2 og lodde.
- På bagsiden kan du spore en sort ledning fra BLACK3 til BLACK4 og lodde.
- På bagsiden skal du spore en rød ledning fra RØD1 til RØD2 og lodde.
- På bagsiden kan du spore en rød ledning fra RED3 til RED4 og lodde.
- På bagsiden skal du spore en gul ledning fra GUL1 til GUL2 og lodde.
Sensoren kan nu tilsluttes direkte via sine ben til printkortet eller via ledninger til de punkter, der er vist i stiftkontrakten.
Trin 4: Test
Et antal af disse BRICKS forventes at være på flere noder (MCU'er - ESP8266 eller ATTINY84) i et miljø. Dette er en enhedstest: kontrollerer UNO -anmodninger/svar, indtil alle data er dumpet, og ignorerer derefter I2C -slaven.
- Upload UNO -koden til din UNO test sele. Sørg for, at ADDRESS_SLAVE matcher BRICK's I2C -adresse.
- Tilslut 5.0V på UNO til en VCC på BRICK.
- Sørg for, at jumperen til den pin er tændt.
- Tilslut GND på UNO til GND på BRICK.
- Tilslut A5 på UNO til SCL på BRICK.
- Tilslut A4 på UNO til SDA på BRICK.
- Tilslut en 4K7 pull-up modstand fra SDA til VCC.
- Tilslut en 4K7 pull-up modstand fra SCL til VCC.
- Tilslut din UNO til din Dev PC med USB.
- Åbn Arduino -konsollen. Vælg 9600 baud (genstart UNO, og åbn konsollen igen, hvis du skal).
- Ejendomsnavne og -værdier skal udskrives på konsollen, når ordet søvn gentages.
Hvis du ser "opsætning", gentages 3 linjer affald, du har muligvis dine SDA- og SCL -linjer tilbage til fronten.
I2C Master logning fra I2C slave med plotter/metadata support
#omfatte |
#defineADDRESS_SLAVE10 |
bool _outputPlotterOnly = false; |
bool _confirmedMetadata = false; |
int _packetSegment = 0; |
bool _i2cNodeProcessed = falsk; |
char _property [2] [24] = {"navn", "værdi"}; |
voidsetup () { |
Wire.begin (); // slutte sig til i2c -bus (adresse valgfri til master) |
Serial.begin (9600); // start seriel til output |
forsinkelse (1000); |
hvis (! _outputPlotterOnly) { |
Serial.println ("opsætning"); |
Serial.println (); |
} |
} |
voidloop () { |
hvis (_i2cNodeProcessed) { |
hvis (! _confirmedMetadata) {// lad slaven vide for at begynde at sende sensordata |
forsinkelse (1); |
Wire.beginTransmission (ADDRESS_SLAVE); |
Wire.write (1); |
Wire.endTransmission (); |
forsinkelse (100); |
_confirmedMetadata = true; |
} |
_i2cNodeProcessed = false; |
hvis (! _outputPlotterOnly) { |
Serial.println (); |
} |
Vend tilbage; |
} |
Wire.requestFrom (ADDRESS_SLAVE, 16); |
_packetSegment ++; |
trækasse [16]; |
intindex = 0; |
bool isContinueSegment = false; // continueSegment (det tredje) 1 = mere, 0 = sidste |
mens (Wire.available ()) {// slave kan sende mindre end ønsket |
char c = Wire.read (); |
pakke [indeks] = int (c)> -1? c: ''; // erstat ugyldige tegn med mellemrum |
hvis (_packetSegment == 3) { |
_packetSegment = 0; |
isContinueSegment = true; |
//Serial.println("------------- "); |
//Serial.println(int(c)); |
//Serial.println("------------- "); |
hvis (int (c) == 48 || int (c) == 86) {// 0 på sidste ejendom |
_i2cNodeProcessed = true; |
// send værdier til MQTT |
pause; |
} |
} |
indeks ++; |
} |
hvis (! isContinueSegment) { |
hvis (! _outputPlotterOnly) { |
Serial.println (pakke); |
} |
strcpy (_property [_packetSegment - 1], packet); // sæt lokal var med navn/værdi |
}andet{ |
if (_outputPlotterOnly && _confirmedMetadata) { |
hvis (_i2cNodeProcessed) { |
Serial.println (_property [1]); |
}andet{ |
Serial.print (_property [1]); |
Serial.print (""); |
} |
} |
} |
} |
se rawuno_i2c_generic_sensor_test_w_plotter_v2.ino hostet med ❤ af GitHub
Trin 5: Næste trin
Det grundlæggende layout af kredsløbet og I2C-laget i softwaren kan relateres til mange forskellige sensorer. Det vigtigste at komme i gang med er pakkekontrakten mellem master og slave.
Jeg har planlagt/startet et (3D -printet) pakket netværk af sensorer, der bruger denne ramme og vil linke til det, når dele offentliggøres.
Denne BLOCK bruges af MQ2 ASSIMILATE SENSOR.
Anbefalede:
Klik på Brick Switch til Makey Makey: 4 trin (med billeder)
Klik på Brick Switch til Makey Makey: Denne 3D -printede switch giver brugeren mulighed for at gøre en Makey Makey til et " finger slide " for et " klik " i spil eller kan være højre/venstre pile for at rulle gennem præsentationer. Tilføjelsen af højre og venstre terminalbeslag til
Arduino Brick Color Sorter Project: 5 trin
Arduino Brick Color Sorter Project: I denne Arduino Tutorial vil vi lære at opdage farver på min legetøjssten ved hjælp af Arduino og TCS3200 farvesensor. Du kan læse den skrevne tutorial herunder for flere detaljer.Materialer: Arduino Leonardo x 1TCS3200 x 1Masser af pap180 Servo
IOT123 - ASSIMILATE SENSOR: MQ2: 4 trin
IOT123 - ASSIMILATE SENSOR: MQ2: ASSIMILATE SENSORS er miljøsensorer, der har et ekstra hardware- og software -abstraktionslag, hvilket gør det muligt at tilføje helt nye typer til en ASSIMILATE SENSOR HUB og aflæsningerne pumpes til en MQTT -server uden tilføjet kodin
IOT123 - 3.3V POWER BRICK: 4 trin
IOT123 - 3.3V POWER BRICK: IOT123 BRICKS er DIY modulære enheder, der kan moses sammen med andre IOT123 BRICKS, for at tilføje funktionalitet til en node eller bærbar. De er baseret på tommer firkantede, dobbeltsidede protoboards med indbyrdes forbundne huller. Selvom instruktionen
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 trin
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: UPDATE: Denne opsætning er stort set akademisk eller en base for test af software/strømforsyning. Selv når PB5 er deaktiveret som RESET, læser den ikke værdier nøjagtigt ved hjælp af analogRead: det vigtigste anvendelsesmulighed for sensoraflæsninger. Vil undersøge opsætningen af ATTINY84