Tabla de contenido:

IOT123 - JIG MAESTRO DE LADRILLO I2C: 4 Pasos
IOT123 - JIG MAESTRO DE LADRILLO I2C: 4 Pasos

Video: IOT123 - JIG MAESTRO DE LADRILLO I2C: 4 Pasos

Video: IOT123 - JIG MAESTRO DE LADRILLO I2C: 4 Pasos
Video: D1M BLOCK - SOLDER USING THE PIN JIG 2024, Noviembre
Anonim
IOT123 - JIG MAESTRO DE LADRILLO I2C
IOT123 - JIG MAESTRO DE LADRILLO I2C
IOT123 - JIG MAESTRO DE LADRILLO I2C
IOT123 - JIG MAESTRO DE LADRILLO I2C
IOT123 - JIG MAESTRO DE LADRILLO I2C
IOT123 - JIG MAESTRO DE LADRILLO I2C

Mientras desarrollo los SENSORES ASIMILADOS y los ACTORES, tengo un UNO a mano para enviar comandos I2C ad hoc a los prototipos que se están desarrollando. Uno de los beneficios de I2C BRICKS son los pines estandarizados. En lugar de usar cables de tablero cada vez (ver los Fritzings), se usa un escudo resistente de baja tecnología.

Paso 1: Materiales y herramientas

Materiales y herramientas
Materiales y herramientas
Materiales y herramientas
Materiales y herramientas
Materiales y herramientas
Materiales y herramientas
Materiales y herramientas
Materiales y herramientas
  1. PCB uninersal de 4cm x 6cm (1)
  2. Cable de conexión (~ 6)
  3. Resistencias 4K7 (2) 6
  4. Encabezado macho (12P, 8P)
  5. Encabezado hembra (9P o 3P, 3P)
  6. Soldadura y Hierro (1)

Paso 2: Montaje

Montaje
Montaje
Montaje
Montaje
Montaje
Montaje

Si utiliza 2 cabezales hembra 3P en lugar del cabezal hembra 9P 1, el SENSOR / ACTORES DE ASIMILAR encajará en la plantilla sin desmontarlos.

Con el cableado, pele hasta 10 mm en los extremos y estañe los mismos extremos.

  1. En la parte inferior de la PCB, inserte el cabezal macho (1) (2) y suelde en la parte superior.
  2. En la parte superior de la PCB, inserte el cabezal hembra (3) y suelde en la parte inferior.
  3. En la parte superior, haga un orificio a través de un cable rojo en RED1 y RED2.
  4. En la parte inferior, cable de orificio pasante de RED1 a RED3.
  5. En la parte inferior, pase el cable de RED2 a RED5 y suelde.
  6. En la parte superior, pase el cable de RED3 a RED4 y suelde.
  7. En la parte superior, haga un orificio a través de un cable rojo en RED6 y RED7.
  8. En la parte inferior, cable de orificio pasante de RED6 a RED8.
  9. En la parte inferior, pase el cable de RED7 a RED10 y suelde.
  10. En la parte superior, pase el cable de RED8 a RED9 y suelde.
  11. En la parte superior, haga un orificio pasante para un cable negro en NEGRO1 y NEGRO2.
  12. En la parte inferior, cable de orificio pasante de NEGRO1 a NEGRO3.
  13. En la parte inferior, pase el cable de NEGRO2 a NEGRO5 y suelde.
  14. En la parte superior, pase el cable del NEGRO3 al NEGRO4 y suelde.
  15. En la parte superior, haga un orificio a través de un cable azul en AZUL1 y AZUL2.
  16. En la parte inferior, cable de orificio pasante de AZUL1 a AZUL3.
  17. En la parte inferior, pase el cable de BLUE2 a BLUE5 y suelde.
  18. En la parte superior, haga un agujero pasante de cable de AZUL3 a AZUL4 y suelde.
  19. En la parte superior, haga un orificio a través de un cable verde en VERDE1 y VERDE2.
  20. En la parte inferior, cable de orificio pasante de VERDE1 a VERDE3.
  21. En la parte inferior, pase el cable de GREEN2 a GREEN5 y suelde.
  22. En la parte superior, pase el cable de GREEN3 a GREEN4 y suelde.
  23. En la parte superior, haga un orificio pasante de una resistencia de 4K7 en SILVER3 y SILVER4.
  24. En la parte inferior, pase el cable de SILVER3 a GREEN5 y suelde.
  25. En la parte inferior, pase el cable de SILVER4 a RED10 y suelde.
  26. En la parte superior, haga un orificio pasante para una resistencia de 4K7 en SILVER1 y SILVER2.
  27. En la parte inferior, pase el cable de SILVER1 a BLUE5 y suelde.
  28. En la parte inferior, pase el cable de SILVER2 a RED10 y suelde.

Paso 3: Código para la UNO

Código para la ONU
Código para la ONU

El boceto aquí es rudimentario. Le permite usar la entrada de consola para hacer que UNO envíe mensajes I2C al I2C ATTINY85 BRICK.

Todas las instrucciones se imprimen en la pantalla, con las opciones admitidas.

Comandos adhoc I2C BRICK para esclavos del maestro UNO

#incluir
const byte _num_chars = 32;
char _received_chars [_num_chars]; // una matriz para almacenar los datos recibidos
boolean _has_new_data = false;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println ("ASIMILAR IOT ACTOR / SENSOR EEPROM EDITOR");
Serial.println ("asegúrese de seleccionar una nueva línea en la ventana de la consola");
Serial.println ();
Serial.println ("DIRECCIÓN 1 CONFIRMAR RECIBO DE METADATOS N / A (PARA M2M)");
Serial.println ("COMANDO ACTOR DIRECCIÓN 2");
Serial.println ();
Serial.println ("DIRECCIONES EN BUS:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int device_count = 0;
para (dirección de byte = 8; dirección <127; dirección ++)
{
Wire.beginTransmission (dirección);
error de byte constante = Wire.endTransmission ();
si (error == 0)
{
Serial.println (dirección);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
byte estático ndx = 0;
char end_marker = '\ n';
char rc;
while (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;
}
}
demás {
_received_chars [ndx] = '\ 0'; // termina la cadena
ndx = 0;
_has_new_data = true;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const String cadena_recibida = Cadena (_caracteres_recibidos);
if (_has_new_data == true) {
int idx1 = cadena_recibida.indexOf ('');
Dirección de cadena = cadena_recibida.subcadena (0, idx1);
int address_int = address.toInt ();
if (dirección_int <8 || dirección_int> 127) {
Serial.println ("ENTRADA DE DIRECCIÓN NO VÁLIDA:");
Serial.println (dirección);
regreso;
}
int idx2 = cadena_recibida.indexOf ('', idx1 + 1);
Código de cadena;
si (idx2 == -1) {
código = cadena_recibida.subcadena (idx1 + 1);
}demás{
código = cadena_recibida.subcadena (idx1 + 1, idx2 + 1);
}
int code_int = code.toInt ();
if (code_int <0 || code_int> 5) {
Serial.println ("ENTRADA DE CÓDIGO NO VÁLIDO:");
Serial.println (código);
regreso;
}
bool has_parameter = idx2> -1;
Parámetro de cadena;
if (has_parameter) {
parámetro = cadena_recibida.subcadena (idx2 + 1, idx2 + 17); // 16 caracteres como máximo
if (parameter.length () <1) {
Serial.println ("PARÁMETRO LONGITUD MÍNIMA 1");
_has_new_data = falso;
regreso;
}
}demás{
if (code_int> 1) {
Serial.println ("¡PARÁMETRO REQUERIDO!");
_has_new_data = falso;
regreso;
}
}
Serial.println ();
Serial.print ("input orig =");
Serial.println (cadena_recibida);
Serial.print ("dirección =");
Serial.println (dirección);
Serial.print ("código =");
Serial.println (código);
Serial.print ("parámetro =");
Serial.println (parámetro);
// ENVIAR A TRAVÉS DE I2C
Wire.beginTransmission (dirección_int);
Wire.write (code_int);
if (has_parameter) {
parámetro.trim ();
strcpy (param_buf, parámetro.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Serial.println ();
Serial.println ("¡ENVIADO A TRAVÉS DE I2C!");
Serial.println ();
Serial.println ("");
_has_new_data = falso;
}
}

ver rawuno_i2c_command_input.ino alojado con ❤ por GitHub

Paso 4: Pasos siguientes

De las compilaciones presentadas, hay suficientes partes móviles para que pueda construir su propia RED ASIMILAR IOT.

Cada una de las funciones individuales de los nodos (sensores y actores) son controlables de manera descentralizada, sin depender del maestro de MCU para tener conocimiento de las características admitidas.

Cualquier aplicación que se conecte al corredor MQTT puede controlar / observar todas las funciones del nodo IOT. Eso es M2M, aplicaciones web, IFTTT, etc. Interfaces mucho más simples (o más ricas si lo desea) para su mundo IOT.

Recomendado: