Innholdsfortegnelse:
Video: IOT123 - I2C BRICK MASTER JIG: 4 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Mens jeg utvikler ASSIMILATE SENSORS og ACTORS, holder jeg en UNO hendig for å sende adhoc I2C -kommandoer til prototypene som utvikles. En av fordelene med I2C BRICKS er de standardiserte pinoutene. I stedet for å bruke brødbrettledninger hver gang (se Fritzings), brukes et solid lo-tech-skjold.
Trinn 1: Materialer og verktøy
- 4cm x 6cm Uninersal PCB (1)
- Tilkoblingskabel (~ 6)
- 4K7 -motstander (2) 6
- Mannlig overskrift (12P, 8P)
- Kvinnehode (9P eller 3P, 3P)
- Lodde og jern (1)
Trinn 2: Montering
Hvis du bruker 2 av 3P kvinnelige topptekster i stedet for 1 av 9P kvinnelige topptekst, passer ASSIMILATE SENSOR/ACTORS på JIG uten å demontere dem.
Med ledningene fjerner du opptil 10 mm på endene og tenner selve endene.
- Sett inn hanhodet (1) (2) på bunnen av kretskortet og loddet av på toppen.
- På toppen av kretskortet setter du inn hunhodet (3) og loddes av på bunnen.
- På toppen, gjennom hullet en rød ledning til RØD1 og RØD2.
- På bunnen, gjennomgående hulltråd fra RØD1 til RØD3.
- På bunnen, gjennomgående hulltråd fra RED2 til RED5, og loddetinn.
- På toppen, gjennomgående hulltråd fra RED3 til RED4, og loddetinn.
- På toppen, gjennom hullet en rød ledning til RØD6 og RØD7.
- På bunnen, gjennomgående hulltråd fra RED6 til RED8.
- På bunnen, gjennomgående hulltråd fra RED7 til RED10, og loddetinn.
- På toppen, gjennomgående hulltråd fra RED8 til RED9, og loddetinn.
- På toppen, gjennom hullet en svart ledning inn i SVART1 og SVART2.
- På bunnen, gjennomgående hulltråd fra SVART1 til SVART3.
- På bunnen, gjennomgående hulltråd fra BLACK2 til BLACK5, og loddetinn.
- På toppen, gjennomgående hulltråd fra BLACK3 til BLACK4, og loddetinn.
- På toppen, gjennom hullet en blå ledning til BLÅ1 og BLÅ2.
- På bunnen, gjennomgående hulltråd fra BLÅ1 til BLÅ3.
- På bunnen, gjennomgående hulltråd fra BLUE2 til BLUE5, og loddetinn.
- På toppen, gjennomgående hulltråd fra BLUE3 til BLUE4, og loddetinn.
- På toppen, gjennom hullet en grønn ledning til GREEN1 og GREEN2.
- På bunnen, gjennomgående hulltråd fra GREEN1 til GREEN3.
- På bunnen, gjennomgående hulltråd fra GREEN2 til GREEN5, og loddetinn.
- På toppen, gjennomgående hulltråd fra GREEN3 til GREEN4, og loddetinn.
- På toppen, gjennomgående hull en 4K7-motstand i SILVER3 og SILVER4.
- På bunnen, gjennomgående hulltråd fra SILVER3 til GREEN5, og loddetinn.
- På bunnen, gjennomgående hulltråd fra SILVER4 til RØD10, og loddetinn.
- På toppen, gjennom hullet en 4K7-motstand i SILVER1 og SILVER2.
- På bunnen, gjennomgående hulltråd fra SILVER1 til BLÅ5, og loddetinn.
- På bunnen, gjennomgående hulltråd fra SILVER2 til RØD10, og loddetinn.
Trinn 3: Kode for UNO
Skissen her er rudimentær. Den lar deg bruke konsollinngangen, for å få UNO til å sende I2C -meldinger til I2C ATTINY85 BRICK.
Alle instruksjonene skrives ut på skjermen, med de støttede alternativene.
I2C BRICK adhoc -kommandoer for slaver fra UNO master
#inkludere |
const byte _num_chars = 32; |
char _received_chars [_num_chars]; // en matrise for å lagre mottatte data |
boolsk _has_new_data = false; |
voidsetup () { |
Serial.begin (9600); |
Serial.println (); |
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR"); |
Serial.println ("sikre ny linje valgt i konsollvindu"); |
Serial.println (); |
Serial.println ("ADRESSE 1 BEKREFT METADATA -MOTTAK IKKE (FOR M2M)"); |
Serial.println ("ADDRESS 2 ACTOR COMMAND"); |
Serial.println (); |
Serial.println ("ADRESSE ON BUS:"); |
scan_i2c_addresses (); |
Serial.println (); |
Serial.println (""); |
} |
voidscan_i2c_addresses () { |
int device_count = 0; |
for (byte adresse = 8; adresse <127; adresse ++) |
{ |
Wire.beginTransmission (adresse); |
const byte feil = Wire.endTransmission (); |
hvis (feil == 0) |
{ |
Serial.println (adresse); |
} |
} |
} |
voidloop () { |
recv_with_end_marker (); |
send_to_i2c (); |
} |
voidrecv_with_end_marker () { |
statisk byte ndx = 0; |
char end_marker = '\ n'; |
røye rc; |
mens (Serial.available ()> 0 && _has_new_data == false) { |
rc = Serial.read (); |
hvis (rc! = end_marker) { |
_received_chars [ndx] = rc; |
ndx ++; |
hvis (ndx> = _num_chars) { |
ndx = _num_chars - 1; |
} |
} |
annet { |
_received_chars [ndx] = '\ 0'; // avslutt strengen |
ndx = 0; |
_has_new_data = true; |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]; |
const String received_string = String (_received_chars); |
hvis (_has_new_data == true) { |
int idx1 = received_string.indexOf (''); |
String address = received_string.substring (0, idx1); |
int address_int = address.toInt (); |
hvis (address_int <8 || address_int> 127) { |
Serial.println ("Ugyldig adresseinngang:"); |
Serial.println (adresse); |
komme tilbake; |
} |
int idx2 = received_string.indexOf ('', idx1+1); |
Strengkode; |
hvis (idx2 == -1) { |
code = received_string.substring (idx1+1); |
}ellers{ |
code = received_string.substring (idx1+1, idx2+1); |
} |
int code_int = code.toInt (); |
hvis (code_int <0 || code_int> 5) { |
Serial.println ("UGyldig KODE -INNGANG:"); |
Serial.println (kode); |
komme tilbake; |
} |
bool has_parameter = idx2> -1; |
String parameter; |
hvis (har_parameter) { |
parameter = received_string.substring (idx2 + 1, idx2 + 17); // 16 tegn maks |
hvis (parameter.length () <1) { |
Serial.println ("PARTAMETER MIN. LENGDE 1"); |
_has_new_data = false; |
komme tilbake; |
} |
}ellers{ |
hvis (code_int> 1) { |
Serial.println ("PARAMETER KREVES!"); |
_has_new_data = false; |
komme tilbake; |
} |
} |
Serial.println (); |
Serial.print ("input orig ="); |
Serial.println (mottatt_streng); |
Serial.print ("adresse ="); |
Serial.println (adresse); |
Serial.print ("kode ="); |
Serial.println (kode); |
Serial.print ("parameter ="); |
Serial.println (parameter); |
// SEND VIA I2C |
Wire.beginTransmission (address_int); |
Wire.write (code_int); |
hvis (har_parameter) { |
parameter.trim (); |
strcpy (param_buf, parameter.c_str ()); |
Wire.write (param_buf); |
} |
Wire.endTransmission (); |
Serial.println (); |
Serial.println ("SENDT VIA I2C!"); |
Serial.println (); |
Serial.println (""); |
_has_new_data = false; |
} |
} |
se rawuno_i2c_command_input.ino hostet av ❤ av GitHub
Trinn 4: Neste trinn
Fra byggene som presenteres, er det nok bevegelige deler til at du kan bygge ditt eget ASSIMILATE IOT NETWORK.
Hver av de enkelte funksjonene til nodene (sensorer og aktører) kan kontrolleres på en desentralisert måte, ikke avhengig av at MCU -masteren har kunnskap om funksjonene som støttes.
Enhver app som kobler seg til MQTT -megleren kan kontrollere/observere alle funksjoner i IOT -noden. Det er M2M, webapplikasjoner, IFTTT og så videre. Mye enklere (eller rikere hvis du vil) grensesnitt til din IOT -verden.
Anbefalt:
SMD Test Jig: 3 trinn
SMD Test Jig: SMD er flotte når du blir vant til dem, men den lille størrelsen gjør dem vanskelige å teste. Jeg begynte å høste brukte SMD fra gamle kretskort for noen år siden. Gratis komponenter, ja! Men så er det problemet med å sortere dem og finne
IOT123 - ATTINY85 INNBORDET PROGRAMMERING JIG: 3 trinn
IOT123 - ATTINY85 INNBORDET PROGRAMMERINGSJIGG: På BRICK -designene har jeg nevnt at hullene ved siden av ATTINY85 har blitt ubrukt, for å aktivere en pogo pin programmerer mens DIP8 er loddet til PCB. Dette er den pogo pin programmereren. Dette er egentlig bare en adapterledning fra
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
IOT123 - ATTINY85 PROGRAMVARE SERIAL JIG Montering: 4 trinn
IOT123 - ATTINY85 PROGRAMVARE SERIAL JIG Montering: Jeg har brukt ATTINY85 -er for sensorer med lav effekt. Opprinnelig trodde jeg at det ikke var noen måte å feilsøke disse sjetongene ved hjelp av en konsoll, og brukte noen vakre " der ute " metoder for å se hva som skjer løpetid. Så kom jeg over SoftwareSeria