Innehållsförteckning:
Video: IOT123 - I2C BRICK MASTER JIG: 4 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Medan jag utvecklar ASSIMILATE SENSORS och ACTORS, håller jag en UNO till hands för att skicka adhoc I2C -kommandon till prototyperna som utvecklas. En av fördelarna med I2C BRICKS är de standardiserade pinoutsna. Istället för att använda brödbrädetrådar varje gång (se Fritzings) används en robust lo-tech-sköld.
Steg 1: Material och verktyg
- 4cm x 6cm Uninersal PCB (1)
- Anslutningstråd (~ 6)
- 4K7 -motstånd (2) 6
- Manlig huvud (12P, 8P)
- Kvinnlig rubrik (9P eller 3P, 3P)
- Löd och järn (1)
Steg 2: Montering
Om du använder 2 av 3P kvinnliga headers istället för 1 off 9P kvinnliga header, passar ASSIMILATE SENSOR/ACTORS på JIG utan att demontera dem.
Med ledningarna, ta av upp till 10 mm på ändarna och tina ändarna.
- På undersidan av kretskortet sätter du in hanrubriken (1) (2) och löds av ovanpå.
- På toppen av kretskortet, sätt in honhuvudet (3) och löd av på undersidan.
- På toppen, genomgående hål en röd tråd i RÖD1 och RÖD2.
- På botten, genomgående håltråd från RÖD1 till RÖD3.
- På botten, genomgående håltråd från RED2 till RED5 och löd.
- På toppen, genomgående håltråd från RED3 till RED4, och löd.
- På toppen, genomgående hål en röd tråd till RED6 och RED7.
- På botten, genomgående håltråd från RED6 till RED8.
- På botten, genomgående håltråd från RED7 till RED10 och löd.
- På toppen, genomgående håltråd från RED8 till RED9, och löd.
- På toppen, genomgående hål en svart tråd i SVART1 och SVART2.
- På botten, genomgående håltråd från SVART1 till SVART3.
- På botten, genomgående håltråd från BLACK2 till BLACK5 och löd.
- På toppen, genomgående håltråd från BLACK3 till BLACK4 och löd.
- På toppen, genomgående hål en blå tråd i BLÅ1 och BLÅ2.
- På botten, genomgående håltråd från BLUE1 till BLUE3.
- På botten, genomgående håltråd från BLUE2 till BLUE5 och löd.
- På toppen, genomgående håltråd från BLUE3 till BLUE4 och löd.
- På toppen, genomgående hål en grön tråd in i GRÖN1 och GRÖN2.
- På botten, genomgående håltråd från GREEN1 till GREEN3.
- På botten, genomgående håltråd från GREEN2 till GREEN5 och löd.
- På toppen, genomgående håltråd från GREEN3 till GREEN4 och löd.
- På toppen, genomgående hål ett 4K7-motstånd i SILVER3 och SILVER4.
- På botten, genomgående håltråd från SILVER3 till GREEN5 och löd.
- På botten, genomgående håltråd från SILVER4 till RED10, och löd.
- På toppen, genomgående hål ett 4K7-motstånd i SILVER1 och SILVER2.
- På botten, genomgående håltråd från SILVER1 till BLUE5 och löd.
- På botten, genomgående håltråd från SILVER2 till RED10 och löd.
Steg 3: Kod för UNO
Skissen här är rudimentär. Det låter dig använda konsolens ingång för att få UNO att skicka I2C -meddelanden till I2C ATTINY85 BRICK.
Alla instruktioner skrivs ut på skärmen, med de alternativ som stöds.
I2C BRICK adhoc -kommandon för slavar från UNO master
#omfatta |
const byte _num_chars = 32; |
char _received_chars [_num_chars]; // en array för att lagra mottagen data |
booleska _has_new_data = false; |
voidsetup () { |
Serial.begin (9600); |
Serial.println (); |
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR"); |
Serial.println ("se till att ny rad har valts i konsolfönstret"); |
Serial.println (); |
Serial.println ("ADRESS 1 CONFIRM METADATA RECEIPT N/A (FOR M2M)"); |
Serial.println ("ADRESS 2 ACTOR COMMAND"); |
Serial.println (); |
Serial.println ("ADRESSES ON BUS:"); |
scan_i2c_addresses (); |
Serial.println (); |
Serial.println (""); |
} |
voidscan_i2c_addresses () { |
int device_count = 0; |
för (byte -adress = 8; adress <127; adress ++) |
{ |
Wire.beginTransmission (adress); |
const byte error = Wire.endTransmission (); |
om (fel == 0) |
{ |
Serial.println (adress); |
} |
} |
} |
voidloop () { |
recv_with_end_marker (); |
send_to_i2c (); |
} |
voidrecv_with_end_marker () { |
statisk byte ndx = 0; |
char end_marker = '\ n'; |
röding; |
medan (Serial.available ()> 0 && _has_new_data == false) { |
rc = Serial.read (); |
if (rc! = end_marker) { |
_received_chars [ndx] = rc; |
ndx ++; |
if (ndx> = _num_chars) { |
ndx = _num_chars - 1; |
} |
} |
annat { |
_received_chars [ndx] = '\ 0'; // avsluta strängen |
ndx = 0; |
_has_new_data = true; |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]; |
const String received_string = String (_received_chars); |
om (_has_new_data == true) { |
int idx1 = received_string.indexOf (''); |
String address = received_string.substring (0, idx1); |
int address_int = address.toInt (); |
if (address_int <8 || address_int> 127) { |
Serial.println ("OGILTIG ADRESSINGÅNG:"); |
Serial.println (adress); |
lämna tillbaka; |
} |
int idx2 = received_string.indexOf ('', idx1+1); |
Strängkod; |
om (idx2 == -1) { |
kod = mottagen_sträng.substräng (idx1+1); |
}annan{ |
kod = mottagen_sträng.substräng (idx1+1, idx2+1); |
} |
int code_int = code.toInt (); |
if (code_int <0 || code_int> 5) { |
Serial.println ("INGÅNG KODINGÅNG:"); |
Serial.println (kod); |
lämna tillbaka; |
} |
bool has_parameter = idx2> -1; |
Strängparameter; |
if (has_parameter) { |
parameter = received_string.substring (idx2 + 1, idx2 + 17); // 16 tecken max |
if (parameter.length () <1) { |
Serial.println ("PARTAMETER MIN. LÄNGD 1"); |
_has_new_data = false; |
lämna tillbaka; |
} |
}annan{ |
om (code_int> 1) { |
Serial.println ("PARAMETER KRÄVS!"); |
_has_new_data = false; |
lämna tillbaka; |
} |
} |
Serial.println (); |
Serial.print ("input orig ="); |
Serial.println (mottagen_sträng); |
Serial.print ("address ="); |
Serial.println (adress); |
Serial.print ("kod ="); |
Serial.println (kod); |
Serial.print ("parameter ="); |
Serial.println (parameter); |
// SKICKA VIA I2C |
Wire.beginTransmission (address_int); |
Wire.write (code_int); |
if (has_parameter) { |
parameter.trim (); |
strcpy (param_buf, parameter.c_str ()); |
Wire.write (param_buf); |
} |
Wire.endTransmission (); |
Serial.println (); |
Serial.println ("SKICKAD VIA I2C!"); |
Serial.println (); |
Serial.println (""); |
_has_new_data = false; |
} |
} |
visa rawuno_i2c_command_input.ino värd med ❤ av GitHub
Steg 4: Nästa steg
Från de presenterade byggnaderna finns det tillräckligt med rörliga delar för att du ska kunna bygga ditt eget ASSIMILATE IOT NETWORK.
Var och en av nodernas individuella funktioner (sensorer och aktörer) kan styras på ett decentraliserat sätt, inte beroende på att MCU -mastern har någon kunskap om de funktioner som stöds.
Varje app som ansluter till MQTT -mäklaren kan styra/observera alla funktioner i IOT -noden. Det är M2M, webbapplikationer, IFTTT och så vidare. Mycket enklare (eller rikare om du vill) gränssnitt till din IOT -värld.
Rekommenderad:
Klicka på Brick Switch för Makey Makey: 4 steg (med bilder)
Klicka på Brick Switch för Makey Makey: Denna 3D -tryckta switch gör det möjligt för användaren att göra en Makey Makey till en " finger slide " för ett " klick " i spel eller kan vara höger/vänster pilar för att bläddra igenom presentationer. Tillägget av höger och vänster terminalfäste för
IOT123 - ATTINY85 INBOARD PROGRAMMING JIG: 3 Steg
IOT123 - ATTINY85 INBOARD PROGRAMMERING JIG: På BRICK -mönstren har jag nämnt att de genomgående hålen intill ATTINY85 har lämnats oanvända för att möjliggöra en pogo -stiftsprogrammerare medan DIP8 är lödt till kretskortet. Detta är den pogo pin programmeraren. Detta är verkligen bara en adapterledning från
IOT123 - 3.3V POWER BRICK: 4 steg
IOT123 - 3.3V POWER BRICK: IOT123 BRICKS är DIY modulära enheter som kan mosas ihop med andra IOT123 BRICKS, för att lägga till funktionalitet till en nod eller bärbar. De är baserade på de tums fyrkantiga, dubbelsidiga protoborden med sammankopplade genomgående hål. Trots att instruktionen
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 Steg
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: UPDATE: Denna installation är till stor del akademisk eller en bas för testning av programvara/strömförsörjning. Även när PB5 är inaktiverad som RESET läser den inte värden exakt med analogRead: det huvudsakliga användningsfallet för sensoravläsningar. Ska titta på ATTINY84 -inställningen
IOT123 - ATTINY85 SOFTWARE SERIAL JIG Montering: 4 steg
IOT123 - ATTINY85 PROGRAMVAROR SERIAL JIG Montering: Jag har använt ATTINY85 för lågeffektsensor mashups. Ursprungligen trodde jag att det inte fanns något sätt att felsöka dessa marker med en konsol och använde några vackra " där ute " metoder för att titta på vad som händer under körning. Sedan stötte jag på SoftwareSeria