Taula de continguts:

IOT123 - PLATAFORMA MASTER I2C BRICK: 4 passos
IOT123 - PLATAFORMA MASTER I2C BRICK: 4 passos

Vídeo: IOT123 - PLATAFORMA MASTER I2C BRICK: 4 passos

Vídeo: IOT123 - PLATAFORMA MASTER I2C BRICK: 4 passos
Vídeo: Masterthings - o seu mastermind de Internet of Things 2024, De novembre
Anonim
IOT123 - PLATAFORMA MASTER I2C BRICK
IOT123 - PLATAFORMA MASTER I2C BRICK
IOT123 - PLATAFORMA MASTER I2C BRICK
IOT123 - PLATAFORMA MASTER I2C BRICK
IOT123 - PLATAFORMA MASTER I2C BRICK
IOT123 - PLATAFORMA MASTER I2C BRICK

Mentre desenvolupo els SENSORS i ACTORS ASSIMILATS, tinc a mà una UNO per enviar ordres adhoc I2C als prototips que s'estan desenvolupant. Un dels avantatges dels I2C BRICKS són els pinouts estandarditzats. En lloc d’utilitzar cables de taulers de connexió cada vegada (vegeu els Fritzings), s’utilitza un escut resistent de tecnologia avançada.

Pas 1: materials i eines

Materials i eines
Materials i eines
Materials i eines
Materials i eines
Materials i eines
Materials i eines
Materials i eines
Materials i eines
  1. PCB Uninersal de 4cm x 6cm (1)
  2. Cable de connexió (~ 6)
  3. Resistències 4K7 (2) 6
  4. Capçalera masculina (12P, 8P)
  5. Capçalera femenina (9P o 3P, 3P)
  6. Soldadura i ferro (1)

Pas 2: Muntatge

muntatge
muntatge
muntatge
muntatge
muntatge
muntatge

Si utilitzeu 2 capçals femenins de 3P en lloc de la capçalera femenina de 1P de 9P, ASSIMILATE SENSOR / ACTORS s’adaptarà al JIG sense desmuntar-los.

Amb el cablejat, retireu els extrems fins a 10 mm i esteneu-ne els extrems.

  1. A la part inferior del PCB, introduïu la capçalera masculina (1) (2) i soldeu-la per sobre.
  2. A la part superior del PCB, introduïu la capçalera femella (3) i soldeu-la a la part inferior.
  3. A la part superior, foradeu un cable vermell a RED1 i RED2.
  4. A la part inferior, el cable del forat passant de RED1 a RED3.
  5. A la part inferior, el cable del forat passant de RED2 a RED5 i soldar.
  6. A la part superior, el cable del forat passant de RED3 a RED4 i soldar.
  7. A la part superior, traieu un cable vermell a RED6 i RED7.
  8. A la part inferior, el cable del forat passant de RED6 a RED8.
  9. A la part inferior, el cable del forat passant de RED7 a RED10 i soldar.
  10. A la part superior, el cable del forat passant de RED8 a RED9 i soldar.
  11. A la part superior, foradeu un cable negre a BLACK1 i BLACK2.
  12. A la part inferior, el cable del forat passant de BLACK1 a BLACK3.
  13. A la part inferior, el cable del forat passant de BLACK2 a BLACK5 i soldar.
  14. A la part superior, el cable del forat passant de BLACK3 a BLACK4 i soldar.
  15. A la part superior, obriu un fil blau en BLAU 1 i BLAU 2.
  16. A la part inferior, el cable del forat passant de BLUE1 a BLUE3.
  17. A la part inferior, el cable del forat passant de BLUE2 a BLUE5 i soldar.
  18. A la part superior, el cable del forat passant de BLUE3 a BLUE4 i soldar.
  19. A la part superior, foradeu un fil verd en GREEN1 i GREEN2.
  20. A la part inferior, el cable del forat passant de GREEN1 a GREEN3.
  21. A la part inferior, el cable del forat passant de GREEN2 a GREEN5 i soldar.
  22. A la part superior, el cable del forat passant de GREEN3 a GREEN4 i soldar.
  23. A la part superior, traieu una resistència 4K7 a SILVER3 i SILVER4.
  24. A la part inferior, el cable del forat passant de SILVER3 a GREEN5 i soldat.
  25. A la part inferior, el cable del forat passant de SILVER4 a RED10 i soldat.
  26. A la part superior, traieu una resistència 4K7 a SILVER1 i SILVER2.
  27. A la part inferior, el cable de forat passant de SILVER1 a BLUE5 i soldar.
  28. A la part inferior, el cable del forat passant de SILVER2 a RED10 i soldat.

Pas 3: Codi de l'ONU

Codi per a l'ONU
Codi per a l'ONU

L’esbós aquí és rudimentari. Permet utilitzar l'entrada de la consola per fer que l'ONU enviï missatges I2C al I2C ATTINY85 BRICK.

Totes les instruccions s’imprimeixen a la pantalla, amb les opcions compatibles.

Ordres adhoc I2C BRICK per a esclaus del mestre UNO

#incloure
byte const _num_chars = 32;
char _received_chars [_num_chars]; // una matriu per emmagatzemar les dades rebudes
_ha_new_data booleana = false;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println ("ASSIMILAR IOT ACTOR / SENSOR EDITOR EEPROM");
Serial.println ("assegureu-vos que hi ha una nova línia seleccionada a la finestra de la consola");
Serial.println ();
Serial.println ("L'ADREÇA 1 CONFIRMA LA RECEPCIÓ DE METADADES N / A (PER A M2M)");
Serial.println ("COMANDA DE L'ACTOR DE L'ADRESSA 2");
Serial.println ();
Serial.println ("ADRESSES AL BUS:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int device_count = 0;
for (adreça de bytes = 8; adreça <127; adreça ++)
{
Wire.beginTransmission (adreça);
error de byte const = Wire.endTransmission ();
if (error == 0)
{
Serial.println (adreça);
}
}
}
voidloop () {
recv_with_end_marker ();
enviar_a_i2c ();
}
voidrecv_with_end_marker () {
byte estàtic 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;
}
}
més {
_received_chars [ndx] = '\ 0'; // finalitzar la cadena
ndx = 0;
_has_new_data = true;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const String received_string = String (_received_chars);
if (_has_new_data == true) {
int idx1 = string_cadenada.indexOf ('');
Adreça de la cadena = string_revinguda.substring (0, idx1);
int address_int = address.toInt ();
if (address_int <8 || address_int> 127) {
Serial.println ("ENTRADA D'ADREÇA NO VÀLIDA:");
Serial.println (adreça);
tornar;
}
int idx2 = string_cadenada.indexOf ('', idx1 + 1);
Codi de cadena;
if (idx2 == -1) {
codi = cadena_ rebuda.substring (idx1 + 1);
} més {
codi = cadena_receptiva.substring (idx1 + 1, idx2 + 1);
}
int code_int = code.toInt ();
if (code_int <0 || code_int> 5) {
Serial.println ("ENTRADA DE CODI NO VÀLID:");
Serial.println (codi);
tornar;
}
bool has_parameter = idx2> -1;
Paràmetre de cadena;
if (has_parameter) {
paràmetre = string_recevada.substring (idx2 + 1, idx2 + 17); // 16 caràcters com a màxim
if (parameter.length () <1) {
Serial.println ("PARTAMETER MIN. LONGITUD 1");
_has_new_data = false;
tornar;
}
} més {
if (code_int> 1) {
Serial.println ("PARÀMETRE NECESSARI!");
_has_new_data = false;
tornar;
}
}
Serial.println ();
Serial.print ("input orig =");
Serial.println (string_recived);
Serial.print ("adreça =");
Serial.println (adreça);
Serial.print ("codi =");
Serial.println (codi);
Serial.print ("paràmetre =");
Serial.println (paràmetre);
// ENVIAR VIA I2C
Wire.beginTransmission (address_int);
Wire.write (code_int);
if (has_parameter) {
parametre.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;
}
}

veure rawuno_i2c_command_input.ino allotjat amb ❤ per GitHub

Pas 4: passos següents

De les versions presentades, hi ha prou parts mòbils perquè pugueu construir la vostra pròpia XARXA ASSIMILATE IOT.

Cadascuna de les funcions individuals dels nodes (sensors i actors) es pot controlar de manera descentralitzada, no depenent del mestre MCU per tenir cap coneixement de les funcions admeses.

Qualsevol aplicació que es connecti al corredor MQTT pot controlar / observar totes les funcions del node IOT. Això és M2M, aplicacions web, IFTTT, etc. Molt més senzilles (o més riques si voleu) interfícies al vostre món IOT.

Recomanat: