Përmbajtje:

IOT123 - I2C MIGJERSI I Tullave të Tullave: 4 Hapa
IOT123 - I2C MIGJERSI I Tullave të Tullave: 4 Hapa

Video: IOT123 - I2C MIGJERSI I Tullave të Tullave: 4 Hapa

Video: IOT123 - I2C MIGJERSI I Tullave të Tullave: 4 Hapa
Video: Как уменьшить размер джинсов (изменить размер талии и ног!) | ВИТЕНДИ 2024, Korrik
Anonim
IOT123 - I2C Mjeshtër i tullave JIG
IOT123 - I2C Mjeshtër i tullave JIG
IOT123 - I2C Mjeshtër i tullave JIG
IOT123 - I2C Mjeshtër i tullave JIG
IOT123 - I2C Mjeshtër i tullave JIG
IOT123 - I2C Mjeshtër i tullave JIG

Ndërsa zhvilloj SENSORST DHE AKTORT ASSIMILATE, unë mbaj një UNO të dobishëm për dërgimin e komandave adhoc I2C tek prototipet që po zhvillohen. Një nga përfitimet e Tullave I2C janë pinetet e standardizuara. Në vend që të përdorni telat e dërrasës së bukës çdo herë (shiko Fritzings), përdoret një mburojë e fortë e teknologjisë.

Hapi 1: Materialet dhe Mjetet

Materialet dhe Mjetet
Materialet dhe Mjetet
Materialet dhe Mjetet
Materialet dhe Mjetet
Materialet dhe Mjetet
Materialet dhe Mjetet
Materialet dhe Mjetet
Materialet dhe Mjetet
  1. 4cm x 6cm PCB Uninersal (1)
  2. Teli lidhës (6 ~)
  3. Rezistenca 4K7 (2) 6
  4. Koka e meshkujve (12P, 8P)
  5. Koka femërore (9P, ose 3P, 3P)
  6. Ngjitës dhe hekur (1)

Hapi 2: Montimi

Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi
Kuvendi

Nëse përdorni 2 tituj femra nga 3P në vend të kokës 1 off 9P, SENSORI/ASHTORT ASIMIMILAT do të përshtaten në JIG pa i çmontuar ato.

Me instalime elektrike, hiqni deri në 10 mm në skajet dhe kallajoni skajet.

  1. Në pjesën e poshtme të PCB, futni kokën mashkullore (1) (2) dhe ngjiteni në krye.
  2. Në pjesën e sipërme të PCB, futni kokën e femrës (3) dhe ngjiteni në fund.
  3. Në pjesën e sipërme, vrima përmes një teli të kuq në RED1 dhe RED2.
  4. Në pjesën e poshtme, tela përmes vrimës nga RED1 në RED3.
  5. Në pjesën e poshtme, tela përmes vrimës nga RED2 në RED5, dhe ngjiteni.
  6. Në krye, tela përmes vrimës nga RED3 në RED4, dhe ngjiteni.
  7. Në pjesën e sipërme, vrima përmes një teli të kuq në RED6 dhe RED7.
  8. Në pjesën e poshtme, tela me vrima nga RED6 në RED8.
  9. Në pjesën e poshtme, tela me vrima nga RED7 në RED10, dhe ngjiteni.
  10. Në krye, tela me vrima nga RED8 në RED9, dhe ngjiteni.
  11. Në krye, vrima përmes një teli të zi në BLACK1 dhe BLACK2.
  12. Në pjesën e poshtme, tela përmes vrimës nga BLACK1 në BLACK3.
  13. Në pjesën e poshtme, tela përmes vrimës nga BLACK2 në BLACK5, dhe ngjiteni.
  14. Në krye, tela me vrima nga BLACK3 në BLACK4, dhe ngjiteni.
  15. Në krye, vrima përmes një teli blu në BLUE1 dhe BLUE2.
  16. Në pjesën e poshtme, tela përmes vrimës nga BLUE1 në BLUE3.
  17. Në pjesën e poshtme, tela përmes vrimës nga BLUE2 në BLUE5, dhe ngjiteni.
  18. Në krye, tela përmes vrimës nga BLUE3 në BLUE4, dhe ngjiteni.
  19. Në krye, vrima përmes një teli të gjelbër në GREEN1 dhe GREEN2.
  20. Në pjesën e poshtme, tela përmes vrimës nga GREEN1 në GREEN3.
  21. Në pjesën e poshtme, tela përmes vrimës nga GREEN2 në GREEN5, dhe ngjiteni.
  22. Në krye, tela përmes vrimës nga GREEN3 në GREEN4, dhe ngjiteni.
  23. Në krye, vrima përmes një rezistence 4K7 në SILVER3 dhe SILVER4.
  24. Në pjesën e poshtme, tela përmes vrimës nga SILVER3 në GREEN5, dhe ngjiteni.
  25. Në pjesën e poshtme, tela me vrima nga SILVER4 në RED10, dhe ngjiteni.
  26. Në krye, vrima përmes një rezistence 4K7 në SILVER1 dhe SILVER2.
  27. Në pjesën e poshtme, tela përmes vrimës nga SILVER1 në BLUE5, dhe ngjiteni.
  28. Në pjesën e poshtme, tela me vrima nga SILVER2 në RED10, dhe ngjiteni.

Hapi 3: Kodi për UNO

Kodi për UNO
Kodi për UNO

Skica këtu është rudimentare. Kjo ju lejon të përdorni hyrjen e tastierës, për ta bërë UNO -në të dërgojë mesazhe I2C tek Tulla I2C ATTINY85.

Të gjitha udhëzimet janë të shtypura në ekran, me opsionet e mbështetura.

Komandat adhoc të I2C BRICK për skllevërit nga masteri i UNO

#përfshi
const byte _num_chars = 32;
char _marrë_chars [_num_chars]; // një grup për të ruajtur të dhënat e marra
boolean _has_new_data = false;
voidsetup () {
Serial.filloj (9600);
Serial.println ();
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR");
Serial.println ("siguro që linja e re e zgjedhur në dritaren e tastierës");
Serial.println ();
Serial.println ("ADRESA 1 KONFIRMIMI I PETRFSHIRJES SET METADATAVE N/A (P MR M2M)");
Serial.println ("ADRESA 2 KOMANDA E AKTORIT");
Serial.println ();
Serial.println ("Adresat në autobus:");
scan_i2c_adresa ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_adresat () {
int pajisja_numër = 0;
për (adresa e bajtit = 8; adresa <127; adresa ++)
{
Wire.beginTransmetimi (adresa);
const byte error = Wire.endTransmission ();
nëse (gabim == 0)
{
Serial.println (adresa);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
bajt statik ndx = 0;
fundi_shënues = '\ n';
char rc;
ndërsa (Serial. i disponueshëm ()> 0 && _has_new_data == false) {
rc = Serial.read ();
nëse (rc! = shënuesi i fundit) {
_marrë_chars [ndx] = rc;
ndx ++;
nëse (ndx> = _num_chars) {
ndx = _num_chars - 1;
}
}
tjeter {
_rriten_chars [ndx] = '\ 0'; // përfundoni vargun
ndx = 0;
_has_new_data = e vërtetë;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const Vija e pranuar_string = String (_cipat_ e marra);
nëse (_has_new_data == vërtetë) {
int idx1 = marrë_string.indexOf ('');
Adresa e vargut = marrë_string.substring (0, idx1);
int address_int = adresa.toInt ();
nëse (adresa_int <8 || adresa_int> 127) {
Serial.println ("HYRJA E ADRESS SV INVALIDIT:");
Serial.println (adresa);
kthim;
}
int idx2 = marrë_string.indexOf ('', idx1+1);
Kodi i vargut;
nëse (idx2 == -1) {
kodi = marrë_string.substring (idx1+1);
} tjetër {
kodi = marrë_string.substring (idx1+1, idx2+1);
}
int code_int = code.toInt ();
nëse (code_int <0 || code_int> 5) {
Serial.println ("HYRJA E KODIT TV INVALIDUAR:");
Serial.println (kodi);
kthim;
}
bool has_parameter = idx2> -1;
Parametri i vargut;
nëse (ka_parametër) {
parametër = marrë_string.substring (idx2 + 1, idx2 + 17); // 16 karaktere max
if (parametri.length () <1) {
Serial.println ("PARTAMETRI MIN. Gjatësia 1");
_has_new_data = false;
kthim;
}
} tjetër {
nëse (code_int> 1) {
Serial.println ("PARAMETRI I KERKESUAR!");
_has_new_data = false;
kthim;
}
}
Serial.println ();
Serial.print ("input orig =");
Serial.println (vargu i marrë);
Serial.print ("adresa =");
Serial.println (adresa);
Serial.print ("code =");
Serial.println (kodi);
Serial.print ("parametri =");
Serial.println (parametri);
// D SRGIMI VIA I2C
Wire.beginTransmission (adresa_int);
Wire.write (code_int);
nëse (ka_parametër) {
parametër.trim ();
strcpy (param_buf, parametër.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Serial.println ();
Serial.println ("DENTRGUAR NGA I2C!");
Serial.println ();
Serial.println ("");
_has_new_data = false;
}
}

shikoni rawuno_i2c_command_input.ino të pritur me ❤ nga GitHub

Hapi 4: Hapat e ardhshëm

Nga strukturat e paraqitura, ka mjaft pjesë lëvizëse për ju që të ndërtoni rrjetin tuaj ASIMIMIL IOT.

Secili nga funksionet individuale të nyjeve (sensorë dhe aktorë) janë të kontrollueshëm në një mënyrë të decentralizuar, jo në varësi të masterit të MCU që të ketë njohuri për veçoritë e mbështetura.

Çdo aplikacion që lidhet me ndërmjetësin MQTT mund të kontrollojë/vëzhgojë çdo veçori të Nyjes IOT. Kjo është M2M, aplikacionet në internet, IFTTT dhe kështu me radhë. Ndërfaqe shumë më të thjeshta (ose më të pasura nëse dëshironi) në botën tuaj IOT.

Recommended: