Tabla de contenido:
- Paso 1: Materiales y herramientas
- Paso 2: Montaje
- Paso 3: Código para la UNO
- Paso 4: Pasos siguientes
Video: IOT123 - JIG MAESTRO DE LADRILLO I2C: 4 Pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
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
- PCB uninersal de 4cm x 6cm (1)
- Cable de conexión (~ 6)
- Resistencias 4K7 (2) 6
- Encabezado macho (12P, 8P)
- Encabezado hembra (9P o 3P, 3P)
- Soldadura y Hierro (1)
Paso 2: 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.
- En la parte inferior de la PCB, inserte el cabezal macho (1) (2) y suelde en la parte superior.
- En la parte superior de la PCB, inserte el cabezal hembra (3) y suelde en la parte inferior.
- En la parte superior, haga un orificio a través de un cable rojo en RED1 y RED2.
- En la parte inferior, cable de orificio pasante de RED1 a RED3.
- En la parte inferior, pase el cable de RED2 a RED5 y suelde.
- En la parte superior, pase el cable de RED3 a RED4 y suelde.
- En la parte superior, haga un orificio a través de un cable rojo en RED6 y RED7.
- En la parte inferior, cable de orificio pasante de RED6 a RED8.
- En la parte inferior, pase el cable de RED7 a RED10 y suelde.
- En la parte superior, pase el cable de RED8 a RED9 y suelde.
- En la parte superior, haga un orificio pasante para un cable negro en NEGRO1 y NEGRO2.
- En la parte inferior, cable de orificio pasante de NEGRO1 a NEGRO3.
- En la parte inferior, pase el cable de NEGRO2 a NEGRO5 y suelde.
- En la parte superior, pase el cable del NEGRO3 al NEGRO4 y suelde.
- En la parte superior, haga un orificio a través de un cable azul en AZUL1 y AZUL2.
- En la parte inferior, cable de orificio pasante de AZUL1 a AZUL3.
- En la parte inferior, pase el cable de BLUE2 a BLUE5 y suelde.
- En la parte superior, haga un agujero pasante de cable de AZUL3 a AZUL4 y suelde.
- En la parte superior, haga un orificio a través de un cable verde en VERDE1 y VERDE2.
- En la parte inferior, cable de orificio pasante de VERDE1 a VERDE3.
- En la parte inferior, pase el cable de GREEN2 a GREEN5 y suelde.
- En la parte superior, pase el cable de GREEN3 a GREEN4 y suelde.
- En la parte superior, haga un orificio pasante de una resistencia de 4K7 en SILVER3 y SILVER4.
- En la parte inferior, pase el cable de SILVER3 a GREEN5 y suelde.
- En la parte inferior, pase el cable de SILVER4 a RED10 y suelde.
- En la parte superior, haga un orificio pasante para una resistencia de 4K7 en SILVER1 y SILVER2.
- En la parte inferior, pase el cable de SILVER1 a BLUE5 y suelde.
- En la parte inferior, pase el cable de SILVER2 a RED10 y suelde.
Paso 3: Código para la UNO
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:
IOT123 - LADRILLO I2C KY019: 5 Pasos
IOT123 - LADRILLO I2C KY019: Los LADRILLOS IOT123 son unidades modulares de bricolaje que se pueden combinar con otros LADRILLOS IOT123, para agregar funcionalidad a un nodo o dispositivo portátil. Se basan en los protoboards de dos lados de una pulgada cuadrada con orificios pasantes interconectados. Algunos de estos LADRILLO
IOT123 - ESCLAVO DE PROTOTIPOS DE LADRILLO I2C: 3 Pasos
IOT123 - ESCLAVO DE PROTOTIPOS DE LADRILLO I2C: Mientras desarrollaba el último ASSIMILATE ACTOR (KY-019 RELAY), se armó una placa de desarrollo genérica para ahorrarme un poco de trabajo extra en mi escritorio. Tiene los pines estándar del I2C IOT123 BRICK, pero permite conexiones personalizadas al sensor desde el ATT
IOT123 - LADRILLO I2C HEARTBEAT: 6 Pasos
IOT123 - LADRILLO I2C HEARTBEAT: Los LADRILLOS IOT123 son unidades modulares de bricolaje que se pueden combinar con otros LADRILLOS IOT123, para agregar funcionalidad a un nodo o dispositivo portátil. Se basan en los protoboards de dos lados de una pulgada cuadrada con orificios pasantes interconectados. Algunos de estos LADRILLO
IOT123 - LADRILLO DE RELÉ DE 2 CANALES I2C: 5 Pasos (con Imágenes)
IOT123 - I2C 2CH RELAY BRICK: Los IOT123 BRICKS son unidades modulares de bricolaje que se pueden combinar con otros IOT123 BRICKS, para agregar funcionalidad a un nodo o dispositivo portátil. Se basan en los protoboards de dos lados de una pulgada cuadrada con orificios pasantes interconectados. Algunos de estos LADRILLO
IOT123 - LADRILLO I2C MQ2: 5 Pasos
IOT123 - LADRILLO I2C MQ2: Los LADRILLOS IOT123 son unidades modulares de bricolaje que se pueden combinar con otros LADRILLOS IOT123, para agregar funcionalidad a un nodo o dispositivo portátil. Se basan en los protoboards de dos lados de una pulgada cuadrada con orificios pasantes interconectados. Algunos de estos LADRILLO