Orodha ya maudhui:

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

Video: IOT123 - I2C BRICK MASTER JIG: 4 Hatua

Video: IOT123 - I2C BRICK MASTER JIG: 4 Hatua
Video: How LEGO Minifigures are made 2024, Novemba
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

Wakati ninatengeneza SENSORS SENSORS na WAIGIZAJI, ninaweka UNO rahisi kwa kutuma amri za I2C za adhoc kwa prototypes zinazoendelea. Moja ya faida za matofali ya I2C ni vifungo vilivyowekwa sanifu. Badala ya kutumia waya za mkate kila wakati (angalia Fritzings), ngao thabiti ya teknolojia hutumiwa.

Hatua ya 1: Vifaa na Zana

Vifaa na Zana
Vifaa na Zana
Vifaa na Zana
Vifaa na Zana
Vifaa na Zana
Vifaa na Zana
Vifaa na Zana
Vifaa na Zana
  1. 4cm x 6cm PCB isiyojulikana (1)
  2. Wiring waya (~ 6)
  3. Resistors 4K7 (2) 6
  4. Kichwa cha Kiume (12P, 8P)
  5. Kichwa cha Kike (9P, au 3P, 3P)
  6. Solder na Chuma (1)

Hatua ya 2: Mkutano

Mkutano
Mkutano
Mkutano
Mkutano
Mkutano
Mkutano

Ikiwa unatumia vichwa 2 vya kike vya 3P badala ya kichwa 1 cha kike cha 9P, ASSIMILATE SENSOR / ACTORS itatoshea kwenye JIG bila kuzisambaratisha.

Ukiwa na wiring, futa hadi 10mm kwenye ncha na ubatie ncha.

  1. Kwenye sehemu ya chini ya PCB, ingiza kichwa cha kiume (1) (2) na kiwe juu juu.
  2. Juu ya PCB, ingiza kichwa cha kike (3) na solder chini.
  3. Juu, shimo waya mwekundu kwenye RED1 na RED2.
  4. Kwenye chini, waya wa kupitia-shimo kutoka RED1 hadi RED3.
  5. Kwenye chini, waya wa kupitia-shimo kutoka RED2 hadi RED5, na solder.
  6. Juu, waya wa shimo kutoka RED3 hadi RED4, na solder.
  7. Juu, shimo waya mwekundu kwenye RED6 na RED7.
  8. Kwenye chini, waya wa kupitia-shimo kutoka RED6 hadi RED8.
  9. Kwenye chini, waya wa kupitia-shimo kutoka RED7 hadi RED10, na solder.
  10. Juu, waya wa shimo kutoka RED8 hadi RED9, na solder.
  11. Juu, shimo waya mweusi kwenye BLACK1 na BLACK2.
  12. Kwenye chini, waya wa kupitia-shimo kutoka BLACK1 hadi BLACK3.
  13. Kwenye chini, waya wa kupitia-shimo kutoka BLACK2 hadi BLACK5, na solder.
  14. Juu, waya wa kupitia-shimo kutoka BLACK3 hadi BLACK4, na solder.
  15. Juu, shimo waya wa bluu kwenye BLUE1 na BLUE2.
  16. Kwenye chini, waya wa kupitia-shimo kutoka BLUE1 hadi BLUE3.
  17. Kwenye chini, waya wa kupitia-shimo kutoka BLUE2 hadi BLUE5, na solder.
  18. Juu, waya wa kupitia-shimo kutoka BLUE3 hadi BLUE4, na solder.
  19. Juu, shimo waya wa kijani ndani ya GREEN1 na GREEN2.
  20. Kwenye chini, waya wa kupitia-shimo kutoka GREEN1 hadi GREEN3.
  21. Kwenye chini, waya wa kupitia-shimo kutoka GREEN2 hadi GREEN5, na solder.
  22. Juu, waya wa kupitia-shimo kutoka GREEN3 hadi GREEN4, na solder.
  23. Juu, pitia shimo la kupinga 4K7 kwenye SILVER3 na SILVER4.
  24. Kwenye chini, waya wa kupitia-shimo kutoka SILVER3 hadi GREEN5, na solder.
  25. Kwenye chini, waya wa kupitia-shimo kutoka SILVER4 hadi RED10, na solder.
  26. Juu, pitia shimo la kupinga 4K7 kwenye SILVER1 na SILVER2.
  27. Kwenye chini, waya wa kupitia-shimo kutoka SILVER1 hadi BLUE5, na solder.
  28. Kwenye chini, waya wa kupitia-shimo kutoka SILVER2 hadi RED10, na solder.

Hatua ya 3: Nambari ya UNO

Nambari ya UNO
Nambari ya UNO

Mchoro hapa ni wa kawaida. Inakuruhusu kutumia Ingizo la Dashibodi, ili kufanya UNO itume ujumbe wa I2C kwa I2C ATTINY85 BRICK.

Maagizo yote yamechapishwa kwenye skrini, na chaguzi zinazoungwa mkono.

Amri za I2C BRICK adhoc kwa watumwa kutoka kwa bwana wa UNO

# pamoja
const byte _num_chars = 32;
char _pokea_chars [_num_chars]; // safu ya kuhifadhi data iliyopokea
boolean _has_new_data = uongo;
voidetup () {
Serial. Kuanza (9600);
Serial.println ();
Serial.println ("ASSIMILATE IOT ACTOR / SENSOR EEPROM Mhariri");
Serial.println ("hakikisha laini mpya iliyochaguliwa kwenye kidirisha cha dashibodi");
Serial.println ();
Serial.println ("ANUANI 1 Thibitisha RISITI YA METADATA N / A (KWA M2M)");
Serial.println ("ANWANI 2 MWANDISHI KAAMU");
Serial.println ();
Serial.println ("ANWANI KWA BASI:");
scan_i2c_adresses ();
Serial.println ();
Serial.println ("");
}
anwani za voidscan_i2c_) () {
kifaa_ hesabu = 0;
kwa (anwani ya byte = 8; anwani <127; anwani ++)
{
Uwasilishaji wa waya (anwani);
kosa la const byte = Wire.endTransmission ();
ikiwa (kosa == 0)
{
Serial.println (anwani);
}
}
}
voidloop () {
recv_with_end_marker ();
tuma_kwa_i2c ();
}
voidrecv_with_end_marker () {
tuli byte ndx = 0;
char end_marker = '\ n';
char rc;
wakati (Serial.available ()> 0 && _has_new_data == uongo) {
rc = mfululizo.read ();
ikiwa (rc! = end_marker) {
_pokea_chars [ndx] = rc;
ndx ++;
ikiwa (ndx> = _num_chars) {
ndx = _num_chars - 1;
}
}
mwingine {
_pokea_chars [ndx] = '\ 0'; // kumaliza kamba
ndx = 0;
_has_new_data = kweli;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
Kamba ya kupokewa_kambo = Kamba (_pokea_chari);
ikiwa (_has_new_data == kweli) {
int idx1 = kupokea_string.indexOf ('');
Anwani ya kamba = kupokea_string.substring (0, idx1);
anwani_int = anwani.toInt ();
ikiwa (anwani_int <8 || anwani_int> 127) {
Serial.println ("INPUT INBALID ADDRESS INPUT:");
Serial.println (anwani);
kurudi;
}
int idx2 = kupokea_string.indexOf (", idx1 + 1);
Nambari ya kamba;
ikiwa (idx2 == -1) {
nambari = kupokea_kamba.substring (idx1 + 1);
} mwingine {
nambari = kupokea_kamba.substring (idx1 + 1, idx2 + 1);
}
code_int = kificho.toInt ();
ikiwa (code_int <0 || code_int> 5) {
Serial.println ("INPUT CODE INVALID:");
Serial.println (nambari);
kurudi;
}
bool has_parameter = idx2> -1;
Kigezo cha kamba;
ikiwa (ina_paramu) {
parameter = kupokea_string.substring (idx2 + 1, idx2 + 17); // 16 chars max
ikiwa (parameter.length () <1) {
Serial.println ("PARTAMETER MIN. UREFU WA 1");
_has_new_data = uongo;
kurudi;
}
} mwingine {
ikiwa (code_int> 1) {
Serial.println ("PARAMETER INAHitajika!");
_has_new_data = uongo;
kurudi;
}
}
Serial.println ();
Serial.print ("pembejeo asili =");
Serial.println (kupokea_string);
Serial.print ("anwani =");
Serial.println (anwani);
Serial.print ("nambari =");
Serial.println (nambari);
Serial.print ("parameter =");
Serial.println (parameter);
// TUMA VIA I2C
Uwasilishaji wa waya (anwani_int);
Andika waya (code_int);
ikiwa (ina_paramu) {
parameter.trim ();
strcpy (param_buf, parameter.c_str ());
Andika waya (param_buf);
}
Uwasilishaji wa waya ();
Serial.println ();
Serial.println ("KUTUMIWA VIA I2C!");
Serial.println ();
Serial.println ("");
_has_new_data = uongo;
}
}

tazama rawuno_i2c_command_input.ino mwenyeji na ❤ na GitHub

Hatua ya 4: Hatua Zifuatazo

Kutoka kwa ujenzi ulioonyeshwa, kuna sehemu za kutosha za kusonga ili ujenge mwenyewe ASSIMILATE IOT NETWORK.

Kila moja ya kazi ya kibinafsi ya nodi (sensorer na watendaji) zinaweza kudhibitiwa kwa njia ya ugawanyaji, bila kutegemea bwana wa MCU kuwa na ufahamu wowote wa huduma zinazoungwa mkono.

Programu yoyote inayounganisha na broker wa MQTT inaweza kudhibiti / kuchunguza kila huduma ya IOT Node. Thats M2M, matumizi ya wavuti, IFTTT na kadhalika. Rahisi zaidi (au tajiri ukipenda) mwingiliano kwa ulimwengu wako wa IOT.

Ilipendekeza: