Taula de continguts:
Vídeo: IOT123 - PLATAFORMA MASTER I2C BRICK: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
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
- PCB Uninersal de 4cm x 6cm (1)
- Cable de connexió (~ 6)
- Resistències 4K7 (2) 6
- Capçalera masculina (12P, 8P)
- Capçalera femenina (9P o 3P, 3P)
- Soldadura i ferro (1)
Pas 2: 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.
- A la part inferior del PCB, introduïu la capçalera masculina (1) (2) i soldeu-la per sobre.
- A la part superior del PCB, introduïu la capçalera femella (3) i soldeu-la a la part inferior.
- A la part superior, foradeu un cable vermell a RED1 i RED2.
- A la part inferior, el cable del forat passant de RED1 a RED3.
- A la part inferior, el cable del forat passant de RED2 a RED5 i soldar.
- A la part superior, el cable del forat passant de RED3 a RED4 i soldar.
- A la part superior, traieu un cable vermell a RED6 i RED7.
- A la part inferior, el cable del forat passant de RED6 a RED8.
- A la part inferior, el cable del forat passant de RED7 a RED10 i soldar.
- A la part superior, el cable del forat passant de RED8 a RED9 i soldar.
- A la part superior, foradeu un cable negre a BLACK1 i BLACK2.
- A la part inferior, el cable del forat passant de BLACK1 a BLACK3.
- A la part inferior, el cable del forat passant de BLACK2 a BLACK5 i soldar.
- A la part superior, el cable del forat passant de BLACK3 a BLACK4 i soldar.
- A la part superior, obriu un fil blau en BLAU 1 i BLAU 2.
- A la part inferior, el cable del forat passant de BLUE1 a BLUE3.
- A la part inferior, el cable del forat passant de BLUE2 a BLUE5 i soldar.
- A la part superior, el cable del forat passant de BLUE3 a BLUE4 i soldar.
- A la part superior, foradeu un fil verd en GREEN1 i GREEN2.
- A la part inferior, el cable del forat passant de GREEN1 a GREEN3.
- A la part inferior, el cable del forat passant de GREEN2 a GREEN5 i soldar.
- A la part superior, el cable del forat passant de GREEN3 a GREEN4 i soldar.
- A la part superior, traieu una resistència 4K7 a SILVER3 i SILVER4.
- A la part inferior, el cable del forat passant de SILVER3 a GREEN5 i soldat.
- A la part inferior, el cable del forat passant de SILVER4 a RED10 i soldat.
- A la part superior, traieu una resistència 4K7 a SILVER1 i SILVER2.
- A la part inferior, el cable de forat passant de SILVER1 a BLUE5 i soldar.
- A la part inferior, el cable del forat passant de SILVER2 a RED10 i soldat.
Pas 3: Codi de 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:
Disseny del màster I2C en VHDL: 5 passos
Disseny del màster I2C en VHDL: en aquest instructiu, es parla del disseny d’un màster I2C simple en VHDL. NOTA: feu clic a cada imatge per veure la imatge completa
IOT123 - I2C KY019 BRICK: 5 passos
IOT123 - I2C KY019 BRICK: Els IOT123 BRICKS són unitats modulars de bricolatge que es poden combinar amb altres IOT123 BRICKS, per afegir funcionalitat a un node o un dispositiu portàtil. Es basen en protobardes de doble cara quadrades de polzades amb forats interconnectats.Un nombre d’aquests MAons
IOT123 - I2C 2CH RELAY BRICK: 5 passos (amb imatges)
IOT123 - I2C 2CH RELAY BRICK: Els IOT123 BRICKS són unitats modulars de bricolatge que es poden combinar amb altres IOT123 BRICKS, per afegir funcionalitat a un node o un dispositiu portàtil. Es basen en protobardes de doble cara quadrades de polzades amb forats interconnectats.Un nombre d’aquests MAons
IOT123 - I2C MQ2 BRICK: 5 passos
IOT123 - I2C MQ2 BRICK: Els IOT123 BRICKS són unitats modulars de bricolatge que es poden combinar amb altres IOT123 BRICKS, per afegir funcionalitat a un node o un dispositiu portàtil. Es basen en protobardes de doble cara quadrades de polzades amb forats interconnectats.Un nombre d’aquests MAons
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: 4 passos
IOT123 - 5PIN ATTINY85 NRF24L01 BRICK: ACTUALITZACIÓ: aquesta configuració és en gran mesura acadèmica o és una base per provar programari / font d'alimentació. Fins i tot quan el PB5 està desactivat com a RESET, no llegeix els valors amb precisió mitjançant analogRead: el cas d’ús principal per a la lectura del sensor. Consultarem la configuració ATTINY84