Taula de continguts:
- Pas 1: materials i eines
- Pas 2: prepareu l'ATTINY85
- Pas 3: Muntatge dels indicadors
- Pas 4: Muntatge del circuit principal
- Pas 5: proves
- Pas 6: passos següents
Vídeo: IOT123 - MAÓ I2C CORBAT: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Els IOT123 BRICKS són unitats modulars de bricolatge que es poden combinar amb altres IOT123 BRICKS, per afegir funcionalitat a un node o usable. Es basen en protobardes de doble cara quadrades de polzades amb forats interconnectats.
Es preveu que alguns d’aquests BRICKS estiguin en diversos nodes (MCU mestres - ESP8266 o ATTINY84) en un lloc. La MCU no necessita cap coneixement previ del propòsit dels sensors ni de les necessitats del programari. Busca nodes I2C i després sol·licita un buidatge de propietats (dades del sensor) a cada esclau. Aquests BRICKs subministren 5.0V, 3.3V i una altra línia AUX que es pot personalitzar.
Aquest I2C HEARTBEAT BRICK indica si l'esclau ATTINY està viu, també el trànsit I2C i té una propietat:
ESTAT ("ALIVE")
PB1 (blanc) indica la salut ATTINY.
PB3 (groc) commuta amb les sol·licituds I2C del mestre.
PB4 (taronja) commuta amb la recepció I2C del mestre.
Els forats passants adjacents a l'ATTINY85 s'han deixat sense utilitzar, per habilitar un programador de pogo pin mentre el DIP8 està soldat al PCB. S'està desenvolupant una altra abstracció, que empaqueta els BRICKS en petits cilindres que es connecten a un hub D1M WIFI BLOCK, que bombeja els valors a un servidor MQTT.
Pas 1: materials i eines
Hi ha una llista completa de llista de subministraments i material.
- PCB de paper (7 x 7 forats)
- LED (vermell, verd, blau)
- Resistències (3 off 1K)
- ATTINY85 20PU (1)
- 1 "protoborda de doble cara (1)
- Capçalera masculina 90º (3P, 3P)
- Capçalera masculina (2P, 2P)
- Jumper Shunt (1)
- Cable de connexió (~ 7)
- Soldadura i ferro (1)
Pas 2: prepareu l'ATTINY85
NOTA: Si teniu intenció d’integrar Crouton, utilitzeu la biblioteca des d’aquí i utilitzeu l’exemple instal·lat "attiny_heartbeat"
Cal AttinyCore del gestor de juntes. Grava el carregador d'arrencada "EEPROM retingut", "8mHZ Internal" (totes les configuracions es mostren més amunt).
El dipòsit de codis es pot trobar aquí.
Podeu trobar un ZIP de la biblioteca aquí.
Instruccions per a "Importar una biblioteca ZIP" aquí.
Un cop instal·lada la biblioteca, podeu obrir l'exemple "attiny_heartbeat".
Per carregar el firmware a l'ATTINY85, podeu trobar més detalls en aquests instructius:
www.instructables.com/id/Programming-the-….
www.instructables.com/id/How-to-Program-A…
www.instructables.com/id/Programming-the-…
www.instructables.com/id/How-to-Program-A…
www.instructables.com/id/Programming-the-…
El millor és provar-ho mitjançant taulers abans de continuar.
Si teniu SENSORS ASSIMILATS existents, assegureu-vos que l'adreça esclava sigui diferent en una combinació d'amfitrió SENSOR / MCU, per exemple. tots els actors de retransmissió poden tenir la mateixa adreça sempre que només tingueu un actor de retransmissió en un MCU / node.
Pas 3: Muntatge dels indicadors
Els indicadors estan pensats per ser totalment personalitzables. Són els senyals d’esdeveniments del circuit principal els que es veuen com batecs del cor. Per a aquesta compilació utilitzarem indicadors LED; la vostra compilació pot utilitzar relés (sí, el VCC està trencat) o un altre indicador basat en senyal o visual. Els valors de la resistència dependran de la preferència personal de la brillantor que vulgueu.
- A la part superior, inseriu un LED blau a RED1 (+) i BLACK1 (G) i soldeu a la part inferior.
- A la part inferior, doblegueu el cable de RED1 perquè toqui el coixinet de coure de SILVER8 i retalleu-lo.
- A la part inferior, retalleu el cable de BLACK1 per sobre de la soldadura.
- A la part superior, inseriu un LED verd a RED2 (+) i BLACK2 (G) i soldeu a la part inferior.
- A la part inferior, doblegueu el cable de RED2 perquè toqui el coixinet de coure de SILVER9 i retalleu-lo.
- A la part inferior, retalleu el cable de BLACK2 per sobre de la soldadura.
- A la part superior, inseriu un LED vermell a RED3 (+) i BLACK3 (G) i soldeu a la part inferior.
- A la part inferior, doblegueu el cable de RED3 perquè toqui el coixinet de coure de SILVER10 i retalleu-lo.
- A la part inferior, retalleu el cable de BLACK3 per sobre de la soldadura.
- A la part superior, introduïu una resistència 1K als orificis passants SILVER1 i SILVER4.
- A la part inferior, traqueu, retalleu i soldeu el plom de SILVER1 a BLACK1.
- A la part superior, inseriu una resistència de 1K als orificis passants SILVER2 i SILVER4.
- A la part inferior, traqueu, retalleu i soldeu el plom de SILVER2 a BLACK2.
- A la part superior, inseriu una resistència de 1K als orificis passants SILVER3 i SILVER4.
- A la part inferior, traqueu, retalleu i soldeu el plom de SILVER3 a BLACK3.
- A la part inferior, soldeu els cables a SILVER4 i retalleu-los a una extensió d’uns 5 mm.
- A la part inferior, soldeu un cable negre a SILVER4.
- A la part inferior, soldeu un cable blanc a SILVER5, assegurant la continuïtat del plom de RED1.
- A la part inferior, soldeu un cable groc a SILVER6, assegurant la continuïtat del plom de RED2.
- A la part inferior, soldeu un cable taronja a SILVER7, assegurant la continuïtat del plom de RED3.
Pas 4: Muntatge del circuit principal
Muntatge:
- A la part frontal, inseriu els components ATTINY85 (1), capçaleres masculines 3P 90deg (2) (3), capçaleres masculines 3P (4) (5) i soldeu-les per la part posterior.
- A la part posterior, traqueu un cable groc de GROC1 a GROC2 i soldeu-lo.
- A la part posterior, traqueu un fil taronja de TARONJA1 a TARONJA2 i soldeu-lo.
- A la part posterior, traqueu un fil blau de BLAU 1 a BLAU 2 i soldeu-lo.
- A la part posterior, traqueu un fil verd de GREEN1 a GREEN2 i soldeu-lo.
- A la part posterior, traqueu un cable blanc de WHITE1 a WHITE2 i soldeu-lo.
- A la part posterior, traça un fil negre de BLACK1 a BLACK2 i solda.
- A la part posterior, traça un fil negre de BLACK3 a BLACK4 i solda.
- A la part posterior, traqueu un cable vermell de RED1 a RED2 i soldeu-lo.
- A la part posterior, traqueu un fil nu de RED3 a RED4 i soldeu-lo.
- A la part posterior, traça un fil nu de SILVER1 a SILVER2 i solda.
- Afegiu un pont a la línia 5V o 3V3.
Si utilitzeu els indicadors anteriors (consulteu el diagrama de fixació):
- A la part posterior, soldeu el cable blanc a PB1.
- A la part posterior, soldeu el cable groc a PB3.
- A la part posterior, soldeu el cable taronja a PB4.
- A la part posterior, soldeu el fil negre a GND.
Pas 5: proves
S'espera que diversos d'aquests BRICKS estiguin en diversos nodes (MCU - ESP8266 o ATTINY84) en un entorn. Es tracta d'una prova unitària: envia ordres I2C des de l'ONU a l'ATTINY que commuta el LED de recepció. El LED ATTINY ALIVE es manté encès.
Anteriorment hem construït un I2C SHIELD per a Arduino.
Si el voleu modificar, feu el següent:
- Connecteu el 5.0V a UNO a un VCC a BRICK.
- Connecteu el GND a UNO a GND a BRICK.
- Connecteu l'A5 a UNO a SCL a BRICK.
- Connecteu l'A4 a UNO a SDA a BRICK.
- Connecteu una resistència de captació 4K7 des de SDA a VCC.
- Connecteu una resistència de captació 4K7 de SCL a VCC.
Execució de la prova
- Connecteu la vostra UNO al vostre PC de desenvolupament amb USB.
- Pengeu el codi a l’ONU.
- Obriu la consola Arduino.
- Trieu 9600 baud (reinicieu UNO i torneu a obrir la consola si cal).
- L'adreça de l'esclau s'imprimirà a la consola.
- Quan, introduïu al quadre d’enviament 2 1 (per tant, 16 2 1) i el LED de recepció s’encén.
- Quan, introduïu a la casella d'enviament 2 0 (per tant, 16 2 0) i el LED de recepció s'apaga.
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 6: passos següents
El seguiment ASSIMILATE ACTOR: HEARTBEAT que utilitza aquest maó té una configuració automàtica per a Crouton a través de les metadades ja instal·lades a l’ATTINY85 aquí. El paquet JSON enviat a Crouton s’envia a través del darrer firmware per a l’ICOS10. Podeu fer una prova de concepte en un ESP8266 normal, si la compilació és massa per ara.
L'esbós UNO utilitzat a les proves té una funció per desar una nova adreça esclava a EEPROM a l'ATINY85, si teniu un xoc al vostre bus I2C objectiu.
Recomanat:
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 - RAILS PCB I2C: 5 passos
IOT123 - RAILS PCB I2C: on no calen carcasses duradores, els SENSORS i ACTORS ASSIMILAT DE LA XARXA IOT es poden apilar de manera més eficient i amb menys recursos i esforç, directament sobre rails minimalistes. Es poden utilitzar els cilindres de tancament (tal com es mostra en aquesta versió) o bé
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 - PLATAFORMA MASTER I2C BRICK: 4 passos
IOT123 - I2C BRICK MASTER JIG: Mentre desenvolupo els SENSORS i ACTORS ASSIMILATS, tinc a mà UNO per enviar comandes I2C adhoc 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 parades cada vegada
"Vidre" corbat reciclat Marc de fotos: 7 passos (amb imatges)
"Vidre" corbat reciclat Marc de fotos: un altre ús per als nostres residus moderns d’ampolles de plàstic, envasos de cartró sobrants i algunes peces de roba de segona mà; fabriquen marcs de fotos corbats amb estil antic i antics per a les vostres imatges preferides amb materials reciclats