Sisukord:

IOT123 - I2C BRICK MASTER JIG: 4 sammu
IOT123 - I2C BRICK MASTER JIG: 4 sammu

Video: IOT123 - I2C BRICK MASTER JIG: 4 sammu

Video: IOT123 - I2C BRICK MASTER JIG: 4 sammu
Video: How LEGO Minifigures are made 2024, November
Anonim
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG

ASSIMILAATSENSORITE ja NÄITLEJATE arendamisel hoian UNO käepärast, et saata arendatavatele prototüüpidele adhoc I2C käske. Üks I2C BRICKS eeliseid on standardiseeritud pistikud. Selle asemel, et iga kord leivaplaadi juhtmeid kasutada (vt Fritzings), kasutatakse tugevat lo-tech kilpi.

Samm: materjalid ja tööriistad

Materjalid ja tööriistad
Materjalid ja tööriistad
Materjalid ja tööriistad
Materjalid ja tööriistad
Materjalid ja tööriistad
Materjalid ja tööriistad
Materjalid ja tööriistad
Materjalid ja tööriistad
  1. 4 cm x 6 cm Uninersal PCB (1)
  2. Ühendusjuhe (~ 6)
  3. 4K7 takistid (2) 6
  4. Isane päis (12P, 8P)
  5. Naispäis (9P või 3P, 3P)
  6. Jootmine ja triikraud (1)

2. samm: kokkupanek

Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek

Kui kasutate 1 off 9P naissoost päise asemel 2 välja lülitatud 3P naissoost päist, sobivad ASSIMILEERITUD ANDURID/NÄITLEJAD JIGile ilma neid lahti võtmata.

Juhtmetega eemaldage otstest kuni 10 mm ja tinake otsad.

  1. Sisestage trükkplaadi põhjale isane päis (1) (2) ja jootke pealt ära.
  2. Sisestage trükkplaadi ülaosale naissoost päis (3) ja jootke see alt ära.
  3. Ülaosas avage punane juhe RED1 ja RED2 sisse.
  4. Altpoolt läbiv auku traat RED1 kuni RED3.
  5. Altpoolt läbiv auguga traat RED2-st RED5-le ja jootmine.
  6. Ülaosas läbiv auguga traat RED3-st RED4-ni ja jootmine.
  7. Ülaosas avage punane juhe RED6 ja RED7 sisse.
  8. Altpoolt läbiv auguga traat RED6-st RED8-ni.
  9. Altpoolt läbiv auguga traat RED7-st RED10-ni ja jootmine.
  10. Peal läbiv auguga traat RED8-st RED9-ni ja jootmine.
  11. Ülaosas tehke mustast juhtmest auk mustadeks mustadeks ja mustadeks.
  12. Altpoolt läbiv auk juhe mustast1 mustani3.
  13. Altpoolt läbiv auk juhe BLACK2-st BLACK5-ni ja jootmine.
  14. Peal, aukudega traat BLACK3-st BLACK4-ni ja jootmine.
  15. Ülaosas avage sinine juhe aukudeks BLUE1 ja BLUE2.
  16. Altpoolt läbiv auk juhe BLUE1 kuni BLUE3.
  17. Altpoolt läbiv auguga traat BLUE2-st BLUE5-ni ja jootmine.
  18. Peal, läbi aukude traat BLUE3-st BLUE4-ni ja jootma.
  19. Ülaosas avage roheline juhe GREEN1 ja GREEN2 sisse.
  20. Altpoolt läbiv auku juhtmest GREEN1 kuni GREEN3.
  21. Põhjas GREEN2-st GREEN5-ni läbiv auku juht ja jootma.
  22. Peal, läbi aukude traat GREEN3-st GREEN4-ni ja jootma.
  23. Ülaosas avage läbi 4K7 takisti SILVER3 ja SILVER4.
  24. Altpoolt läbiv auguga traat SILVER3-st roheliseks 5 ja jootma.
  25. Altpoolt läbiv auguga traat SILVER4-st RED10-sse ja jootma.
  26. Ülaosas avage läbi 4K7 takisti SILVER1 ja SILVER2.
  27. Altpoolt läbiv auguga traat SILVER1-st siniseks 5 ja jootma.
  28. Altpoolt läbiv auguga traat SILVER2-st RED10-sse ja jootma.

3. samm: UNO kood

UNO kood
UNO kood

Eskiis on siin algeline. See võimaldab teil kasutada konsooli sisendit, et panna UNO saatma I2C sõnumeid I2C ATTINY85 BRICK -le.

Kõik juhised prinditakse ekraanile koos toetatud valikutega.

I2C BRICK adhoc käsud orjade jaoks UNO isandalt

#kaasake
const bait _num_chars = 32;
süsi _saanud_süklid [_arv_süsi]; // massiiv vastuvõetud andmete salvestamiseks
boolean _has_new_data = vale;
voidsetup () {
Seriaalne algus (9600);
Serial.println ();
Serial.
Serial.println ("veenduge, et konsooliaknas oleks valitud uus rida");
Serial.println ();
Serial.println ("AADRESS 1 KINNITA METADATAHETUSE N/A (M2M jaoks)");
Serial.println ("AADRESS 2 ACTOR COMMAND");
Serial.println ();
Serial.println ("AADRESSID BUSSIL:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int seadme_arv = 0;
jaoks (bait -aadress = 8; aadress <127; aadress ++)
{
Wire.beginTransmission (aadress);
const baidi viga = Wire.endTransmission ();
kui (viga == 0)
{
Serial.println (aadress);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
staatiline bait ndx = 0;
char end_marker = '\ n';
char rc;
samas (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read ();
if (rc! = end_marker) {
_laekunud_karbid [ndx] = rc;
ndx ++;
kui (ndx> = _numbrite arv) {
ndx = _arvude_arv - 1;
}
}
muu {
_received_chars [ndx] = '\ 0'; // lõpetada string
ndx = 0;
_has_new_data = tõsi;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const String vastuvõetud_string = String (_saadatud_märgid);
if (_ has_new_data == true) {
int idx1 = vastuvõetud_string.indexOf ('');
Stringi aadress = vastuvõetud_string.alamstring (0, idx1);
int address_int = aadress.toInt ();
kui (aadress_int <8 || aadress_int> 127) {
Serial.println ("INVALID ADDRESS INPUT:");
Serial.println (aadress);
tagasipöördumine;
}
int idx2 = saanud_string.indexOf ('', idx1+1);
String kood;
kui (idx2 == -1) {
kood = vastuvõetud_string.alamstring (idx1+1);
} muud {
kood = vastuvõetud_string.alamstring (idx1+1, idx2+1);
}
int kood_int = kood.toInt ();
kui (kood_int <0 || kood_int> 5) {
Serial.println ("VÄÄRATUD KOODISISEND:");
Serial.println (kood);
tagasipöördumine;
}
bool has_parameter = idx2> -1;
String parameeter;
if (has_parameter) {
parameeter = vastuvõetud_string.alamstring (idx2 + 1, idx2 + 17); // max 16 märki
kui (parameeter.pikkus () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = vale;
tagasipöördumine;
}
} muud {
kui (kood_int> 1) {
Serial.println ("PARAMETER ON VAJALIK!");
_has_new_data = vale;
tagasipöördumine;
}
}
Serial.println ();
Serial.print ("sisend orig =");
Seeria.println (saadud_string);
Serial.print ("aadress =");
Serial.println (aadress);
Serial.print ("kood =");
Serial.println (kood);
Serial.print ("parameeter =");
Serial.println (parameeter);
// SAADA I2C kaudu
Wire.beginTransmission (aadress_int);
Wire.write (kood_int);
if (has_parameter) {
parameeter.trim ();
strcpy (param_buf, parameeter.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Serial.println ();
Serial.println ("SAATIS I2C VIA!");
Serial.println ();
Serial.println ("");
_has_new_data = vale;
}
}

vaata rawuno_i2c_command_input.ino, mille hostiks on GitHub ❤

Samm: järgmised sammud

Esitatud konstruktsioonidest on piisavalt ASSIMILATE IOT NETWORKi loomiseks piisavalt liikuvaid osi.

Sõlmede üksikuid funktsioone (andureid ja osalejaid) saab detsentraliseeritult juhtida, sõltumata sellest, kas MCU kaptenil on teadmisi toetatud funktsioonide kohta.

Iga MQTT maakleriga ühenduv rakendus saab kontrollida/jälgida IOT -sõlme kõiki funktsioone. See on M2M, veebirakendused, IFTTT ja nii edasi. Palju lihtsamad (või rikkalikumad, kui soovite) liidesed teie IOT -maailmaga.

Soovitan: