INHOUDSOPGAWE:

IOT123 - I2C BRICK MASTER JIG: 4 stappe
IOT123 - I2C BRICK MASTER JIG: 4 stappe

Video: IOT123 - I2C BRICK MASTER JIG: 4 stappe

Video: IOT123 - I2C BRICK MASTER JIG: 4 stappe
Video: How LEGO Minifigures are made 2024, November
Anonim
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG

Terwyl ek die ASSIMILATE SENSORS en ACTORS ontwikkel, hou ek 'n UNO byderhand om adhoc I2C -opdragte te stuur na die prototipes wat ontwikkel word. Een van die voordele van die I2C BRICKS is die gestandaardiseerde pinouts. In plaas van elke keer broodborddrade te gebruik (sien die Fritzings), word 'n stewige lo-tech skild gebruik.

Stap 1: materiaal en gereedskap

Materiaal en gereedskap
Materiaal en gereedskap
Materiaal en gereedskap
Materiaal en gereedskap
Materiaal en gereedskap
Materiaal en gereedskap
Materiaal en gereedskap
Materiaal en gereedskap
  1. 4 cm x 6 cm Uninersal PCB (1)
  2. Aansluitdraad (~ 6)
  3. 4K7 -weerstande (2) 6
  4. Manlike kop (12P, 8P)
  5. Vroulike kop (9P, of 3P, 3P)
  6. Soldeer en yster (1)

Stap 2: Montering

Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering

As u 2 uit 3P vroulike koptekens gebruik in plaas van die 1 uit 9P vroulike kop, pas die ASSIMILATE SENSOR/ACTORS op die JIG sonder om dit uitmekaar te haal.

Met die bedrading, verwyder tot 10 mm aan die ente en maak die eindpunte vas.

  1. Plaas die kopstuk (1) (2) onderaan die PCB en soldeer bo -op.
  2. Plaas die kopstuk (3) bo -op die PCB en soldeer aan die onderkant af.
  3. Bo-op, maak 'n rooi draad deur die gat in RED1 en RED2.
  4. Aan die onderkant, 'n gat deur van RED1 na RED3.
  5. Aan die onderkant, deur-gat draad van RED2 in RED5, en soldeer.
  6. Bo-op, draad deur middel van RED3 na RED4, en soldeer.
  7. Bo-op, 'n rooi draad in RED6 en RED7 deur 'n gat.
  8. Aan die onderkant, 'n gat deur van RED6 tot RED8.
  9. Aan die onderkant, deur-gat draad van RED7 in RED10, en soldeer.
  10. Bo-op, draad deur middel van 'n gat van RED8 tot RED9 en soldeer.
  11. Bo-op, maak 'n swart draad deur die gat in SWART1 en SWART2.
  12. Onderaan, 'n gat deur die draad van BLACK1 na BLACK3.
  13. Onderaan, 'n gat deur die draad van BLACK2 na BLACK5 en soldeer.
  14. Bo-op, deurgaande draad van BLACK3 na BLACK4, en soldeer.
  15. Bo-op, maak 'n blou draad deur die gat in BLOU1 en BLUE2.
  16. Onderaan, 'n gat deur van BLUE1 na BLUE3.
  17. Onderaan, deurgaatdraad van BLUE2 na BLUE5 en soldeer.
  18. Bo-op, draad deur die gat van BLUE3 na BLUE4 en soldeer.
  19. Bo-op, 'n groen draad deur die gat in GREEN1 en GREEN2.
  20. Onderaan, 'n gat deur van GREEN1 na GREEN3.
  21. Onderaan, 'n gat deur die draad van GREEN2 na GREEN5 en soldeer.
  22. Bo-op, deurgaatdraad van GREEN3 in GREEN4 en soldeer.
  23. Bo-op, 'n deur met 'n 4K7-weerstand in SILVER3 en SILVER4.
  24. Onderaan, 'n gat deur die draad van SILVER3 na GROEN5 en soldeer.
  25. Onderaan, 'n gat deur die draad van SILVER4 na RED10 en soldeer.
  26. Bo-op, 'n deur met 'n 4K7-weerstand in SILVER1 en SILVER2.
  27. Onderaan, 'n gat deur die draad van SILWER1 na BLOU5 en soldeer.
  28. Onderaan, 'n gat deur die draad van SILVER2 na RED10 en soldeer.

Stap 3: Kode vir die UNO

Kode vir die UNO
Kode vir die UNO

Die skets hier is rudimentêr. Hiermee kan u die konsole -invoer gebruik om die UNO I2C -boodskappe na die I2C ATTINY85 BRICK te laat stuur.

Al die instruksies word op die skerm gedruk, met die ondersteunde opsies.

I2C BRICK adhoc -opdragte vir slawe van UNO -meester

#insluit
const byte _num_chars = 32;
char _received_chars [_num_chars]; // 'n skikking om die ontvangde data te stoor
boolean _has_new_data = vals;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR");
Serial.println ("verseker dat nuwe lyn in die konsole -venster gekies is");
Serial.println ();
Serial.println ("ADRES 1 BEVESTIG METADATA -ONTVANGS Nvt (VIR M2M)");
Serial.println ("ADRES 2 Akteur OPDRAG");
Serial.println ();
Serial.println ("ADRES OP DIE BUS:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int device_count = 0;
vir (byte adres = 8; adres <127; adres ++)
{
Wire.beginTransmission (adres);
const byte fout = Wire.endTransmission ();
as (fout == 0)
{
Serial.println (adres);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
statiese greep ndx = 0;
char end_marker = '\ n';
char rc;
terwyl (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read ();
as (rc! = end_marker) {
_ontvang_tekens [ndx] = rc;
ndx ++;
as (ndx> = _num_chars) {
ndx = _num_chars - 1;
}
}
anders {
_received_chars [ndx] = '\ 0'; // eindig die string
ndx = 0;
_has_new_data = waar;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const String received_string = String (_received_chars);
as (_has_new_data == waar) {
int idx1 = ontvangen_string.indexOf ('');
Stringadres = received_string.substring (0, idx1);
int address_int = address.toInt ();
as (address_int <8 || address_int> 127) {
Serial.println ("Ongeldige adresinvoer:");
Serial.println (adres);
terugkeer;
}
int idx2 = received_string.indexOf ('', idx1+1);
String kode;
as (idx2 == -1) {
kode = ontvangen_string.substring (idx1+1);
} anders {
kode = ontvangen_string.substring (idx1+1, idx2+1);
}
int code_int = code.toInt ();
as (code_int <0 || code_int> 5) {
Serial.println ("INGELDIGE KODE -INVOER:");
Serial.println (kode);
terugkeer;
}
bool has_parameter = idx2> -1;
String parameter;
as (has_parameter) {
parameter = ontvangen_string.substring (idx2 + 1, idx2 + 17); // 16 karakters maks
as (parameter.length () <1) {
Serial.println ("PARTAMETER MIN. LENGTE 1");
_has_new_data = vals;
terugkeer;
}
} anders {
as (code_int> 1) {
Serial.println ("PARAMETER VEREIS!");
_has_new_data = vals;
terugkeer;
}
}
Serial.println ();
Serial.print ("input orig =");
Serial.println (ontvangen_reeks);
Serial.print ("adres =");
Serial.println (adres);
Serial.print ("kode =");
Serial.println (kode);
Serial.print ("parameter =");
Serial.println (parameter);
// STUUR VIA I2C
Wire.beginTransmission (address_int);
Wire.write (code_int);
as (has_parameter) {
parameter.trim ();
strcpy (param_buf, parameter.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Serial.println ();
Serial.println ("SENT VIA I2C!");
Serial.println ();
Serial.println ("");
_has_new_data = vals;
}
}

sien rawuno_i2c_command_input.ino aangebied deur ❤ deur GitHub

Stap 4: Volgende stappe

Uit die weergawes wat aangebied word, is daar genoeg bewegende dele om u eie ASSIMILATE IOT NETWORK te bou.

Elkeen van die individuele funksies van die nodusse (sensors en akteurs) kan op 'n gedesentraliseerde wyse beheer word, nie afhanklik van die MCU -meester om kennis te dra van die funksies nie.

Elke app wat met die MQTT -makelaar verbind word, kan elke funksie van die IOT Node beheer/waarneem. Dit is M2M, webtoepassings, IFTTT en so meer. Veel eenvoudiger (of ryker as u wil) koppelvlakke met u IOT -wêreld.

Aanbeveel: