Talaan ng mga Nilalaman:

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

Video: IOT123 - I2C BRICK MASTER JIG: 4 Hakbang

Video: IOT123 - I2C BRICK MASTER JIG: 4 Hakbang
Video: How LEGO Minifigures are made 2024, Nobyembre
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

Habang binubuo ang ASSIMILATE SENSORS at ACTORS, pinapanatili kong madaling gamitin ang UNO para sa pagpapadala ng mga utos ng adhoc I2C sa mga prototype na binuo. Isa sa mga pakinabang ng I2C BRICKS ay ang standardized pinouts. Sa halip na gumamit ng mga wire ng tinapay sa bawat oras (tingnan ang Fritzings), isang matatag na lo-tech na kalasag ang ginagamit.

Hakbang 1: Mga Materyales at Tool

Mga Kagamitan at Kasangkapan
Mga Kagamitan at Kasangkapan
Mga Kagamitan at Kasangkapan
Mga Kagamitan at Kasangkapan
Mga Kagamitan at Kasangkapan
Mga Kagamitan at Kasangkapan
Mga Kagamitan at Kasangkapan
Mga Kagamitan at Kasangkapan
  1. 4cm x 6cm Uninersal PCB (1)
  2. Hookup wire (~ 6)
  3. 4K7 Resistors (2) 6
  4. Lalaking Header (12P, 8P)
  5. Babae Header (9P, o 3P, 3P)
  6. Panghinang at Bakal (1)

Hakbang 2: Assembly

Assembly
Assembly
Assembly
Assembly
Assembly
Assembly

Kung gagamit ka ng 2 off 3P na mga babaeng header sa halip na ang 1 off 9P na babaeng header, ang ASSIMILATE SENSOR / ACTORS ay magkakasya sa JIG nang hindi naalis ang mga ito.

Gamit ang mga kable, hubarin hanggang sa 10mm sa mga dulo at i-lata ang pinakadulo.

  1. Sa ilalim ng PCB, ipasok ang male header (1) (2) at maghinang sa itaas.
  2. Sa tuktok ng PCB, ipasok ang babaeng header (3) at maghinang sa ibaba.
  3. Sa tuktok, through-hole ang isang pulang kawad sa RED1 at RED2.
  4. Sa ibaba, through-hole wire mula sa RED1 patungong RED3.
  5. Sa ibaba, through-hole wire mula sa RED2 patungong RED5, at solder.
  6. Sa itaas, through-hole wire mula sa RED3 patungong RED4, at solder.
  7. Sa tuktok, through-hole ang isang pulang kawad sa RED6 at RED7.
  8. Sa ibaba, through-hole wire mula sa RED6 patungong RED8.
  9. Sa ibaba, through-hole wire mula sa RED7 patungong RED10, at solder.
  10. Sa itaas, through-hole wire mula sa RED8 patungong RED9, at solder.
  11. Sa tuktok, through-hole ang isang itim na kawad sa BLACK1 at BLACK2.
  12. Sa ibaba, through-hole wire mula BLACK1 hanggang BLACK3.
  13. Sa ibaba, through-hole wire mula BLACK2 hanggang BLACK5, at solder.
  14. Sa itaas, through-hole wire mula BLACK3 hanggang BLACK4, at solder.
  15. Sa tuktok, through-hole ang isang asul na kawad sa BLUE1 at BLUE2.
  16. Sa ibaba, through-hole wire mula BLUE1 hanggang BLUE3.
  17. Sa ibaba, through-hole wire mula BLUE2 patungong BLUE5, at solder.
  18. Sa itaas, through-hole wire mula BLUE3 hanggang BLUE4, at solder.
  19. Sa tuktok, through-hole ang isang berdeng kawad papunta sa GREEN1 at GREEN2.
  20. Sa ibaba, through-hole wire mula sa GREEN1 patungong GREEN3.
  21. Sa ibaba, through-hole wire mula sa GREEN2 patungong GREEN5, at solder.
  22. Sa itaas, through-hole wire mula sa GREEN3 patungong GREEN4, at solder.
  23. Sa tuktok, through-hole ang isang resistor ng 4K7 sa SILVER3 at SILVER4.
  24. Sa ibaba, through-hole wire mula sa SILVER3 patungong GREEN5, at solder.
  25. Sa ibaba, through-hole wire mula sa SILVER4 patungong RED10, at solder.
  26. Sa tuktok, through-hole ang isang resistor ng 4K7 sa SILVER1 at SILVER2.
  27. Sa ibaba, through-hole wire mula sa SILVER1 patungong BLUE5, at solder.
  28. Sa ibaba, through-hole wire mula sa SILVER2 patungong RED10, at solder.

Hakbang 3: Code para sa UNO

Code para sa UNO
Code para sa UNO

Ang sketch dito ay walang pasubali. Pinapayagan kang gamitin ang Console Input, upang ipadala sa UNO ang mga mensahe ng I2C sa I2C ATTINY85 BRICK.

Ang lahat ng mga tagubilin ay naka-print sa screen, kasama ang mga sinusuportahang pagpipilian.

Ang mga utos ng I2C BRICK adhoc para sa mga alipin mula sa UNO master

# isama
Const byte _num_chars = 32;
char _received_chars [_num_chars]; // isang array upang maiimbak ang natanggap na data
boolean _has_new_data = false;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println ("ASSIMILATE IOT ACTOR / SENSOR EEPROM EDITOR");
Serial.println ("tiyaking napili ang newline sa window ng console");
Serial.println ();
Serial.println ("ADDRESS 1 CONFIRM METADATA RESEIPT N / A (FOR M2M)");
Serial.println ("ADDRESS 2 ACTOR CommAND");
Serial.println ();
Serial.println ("ADDRESSES ON BUS:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int aparato_count = 0;
para sa (byte address = 8; address <127; address ++)
{
Wire.beginTransmission (address);
const byte error = Wire.endTransmission ();
kung (error == 0)
{
Serial.println (address);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
static byte ndx = 0;
char end_marker = '\ n';
char rc;
habang (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read ();
kung (rc! = end_marker) {
_received_chars [ndx] = rc;
ndx ++;
kung (ndx> = _num_chars) {
ndx = _num_chars - 1;
}
}
iba pa {
_received_chars [ndx] = '\ 0'; // wakasan ang string
ndx = 0;
_has_new_data = totoo;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
Const String natanggap_string = String (_received_chars);
kung (_has_new_data == totoo) {
int idx1 = natanggap_string.indexOf (");
String address = natanggap_string.substring (0, idx1);
int address_int = address.toInt ();
kung (address_int <8 || address_int> 127) {
Serial.println ("INVALID ADDRESS INPUT:");
Serial.println (address);
bumalik;
}
int idx2 = natanggap_string.indexOf (", idx1 + 1);
String code;
kung (idx2 == -1) {
code = ditampa_string.substring (idx1 + 1);
} iba pa {
code = ditampa_string.substring (idx1 + 1, idx2 + 1);
}
int code_int = code.toInt ();
kung (code_int <0 || code_int> 5) {
Serial.println ("INVALID CODE INPUT:");
Serial.println (code);
bumalik;
}
bool has_parameter = idx2> -1;
Parameter ng string;
kung (has_parameter) {
parameter = ditampa_string.substring (idx2 + 1, idx2 + 17); // 16 chars max
kung (parameter.length () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = false;
bumalik;
}
} iba pa {
kung (code_int> 1) {
Serial.println ("PARAMETER REQUIRED!");
_has_new_data = false;
bumalik;
}
}
Serial.println ();
Serial.print ("input Orig =");
Serial.println (natanggap_string);
Serial.print ("address =");
Serial.println (address);
Serial.print ("code =");
Serial.println (code);
Serial.print ("parameter =");
Serial.println (parameter);
// SEND VIA I2C
Wire.beginTransmission (address_int);
Wire.write (code_int);
kung (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 = false;
}
}

tingnan ang rawuno_i2c_command_input.ino na naka-host sa ❤ ng GitHub

Hakbang 4: Susunod na Mga Hakbang

Mula sa ipinakita na pagbuo, mayroong sapat na mga gumagalaw na bahagi para sa iyo upang makabuo ng iyong sariling ASSIMILATE IOT NETWORK.

Ang bawat isa sa mga indibidwal na pag-andar ng mga node (sensor at aktor) ay makokontrol sa isang desentralisadong pamamaraan, hindi nakasalalay sa MCU master na magkaroon ng anumang kaalaman sa mga sinusuportahang tampok.

Ang anumang app na kumokonekta sa MQTT broker ay maaaring makontrol / obserbahan ang bawat tampok ng IOT Node. Iyon ang M2M, mga web application, IFTTT at iba pa. Mas simple (o mas mayaman kung gusto mo) ang mga interface sa iyong mundo ng IOT.

Inirerekumendang: