Sisällysluettelo:

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

Video: IOT123 - I2C BRICK MASTER JIG: 4 vaihetta

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

Kehittäessäni ASSIMILATE SENSORS ja ACTORS -järjestelmää pidän UNOa kätevästi lähettämässä adhoc I2C -komentoja kehitettäville prototyypeille. Yksi I2C BRICKSin eduista on standardoidut pistorasiat. Sen sijaan, että käytät joka kerta leipälautalankoja (katso Fritzings), käytetään tukevaa lo-tech-suojaa.

Vaihe 1: Materiaalit ja työkalut

Materiaalit ja työkalut
Materiaalit ja työkalut
Materiaalit ja työkalut
Materiaalit ja työkalut
Materiaalit ja työkalut
Materiaalit ja työkalut
Materiaalit ja työkalut
Materiaalit ja työkalut
  1. 4 cm x 6 cm uninersaalinen piirilevy (1)
  2. Liitäntäjohto (~ 6)
  3. 4K7 -vastukset (2) 6
  4. Urosotsikko (12P, 8P)
  5. Naarasotsikko (9P tai 3P, 3P)
  6. Juotos ja rauta (1)

Vaihe 2: Kokoonpano

Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano

Jos käytät 2 off 3P naarasotsikkoa 1 off 9P naarasotsikon sijasta, ASSIMILATE SENSOR/ACTORS sopii JIG -laitteeseen purkamatta niitä.

Irrota johdotuksen kanssa 10 mm: n päädyt ja tinaa päät.

  1. Aseta piirilevyn pohjalle urosliitin (1) (2) ja juota pois päältä.
  2. Aseta piirilevyn yläosaan naarasliitin (3) ja juota pois pohjasta.
  3. Yläreunassa punainen reikä RED1- ja RED2-reikiin.
  4. Pohjassa läpireikäinen johto RED1-RED3.
  5. Pohjassa läpivientilanka RED2: sta RED5: een ja juote.
  6. Ylhäällä, reikälanka RED3: sta RED4: een, ja juote.
  7. Yläreunassa punainen reikä RED6- ja RED7-reikiin.
  8. Pohjassa läpireikäinen johto RED6: sta RED8: een.
  9. Pohjassa läpivientilanka RED7: stä RED10: een ja juote.
  10. Ylhäällä, reikälanka RED8: sta RED9: een, ja juote.
  11. Yläreunassa musta reikä mustaan johtoon MUSTA1 ja MUSTA2.
  12. Pohjassa läpireikäinen johto BLACK1-BLACK3.
  13. Pohjassa läpireikäinen johto BLACK2: sta BLACK5: een ja juotos.
  14. Päällä läpireikäinen johto BLACK3: sta BLACK4: een ja juotos.
  15. Yläreunassa sininen reikä siniseen johtoon kohti SININEN1 ja SININEN2.
  16. Pohjassa läpireikäinen johto BLUE1: stä BLUE3: een.
  17. Pohjassa läpireikälanka BLUE2: sta BLUE5: een ja juote.
  18. Päällä läpireikäinen lanka BLUE3: sta BLUE4: een ja juote.
  19. Yläreunassa vihreä reikä GREEN1- ja GREEN2-reikiin.
  20. Pohjassa läpireikäinen johto GREEN1: stä GREEN3: een.
  21. Pohjassa läpireikäinen johto GREEN2: stä GREEN5: een ja juote.
  22. Yläpuolella läpivientilanka GREEN3: sta GREEN4: een ja juote.
  23. Yläreunassa 4K7-vastus reikään SILVER3 ja SILVER4.
  24. Pohjassa läpivientilanka SILVER3: sta GREEN5: een ja juote.
  25. Pohjassa läpivientilanka SILVER4: stä RED10: een ja juote.
  26. Yläreunassa 4K7-vastus reikään SILVER1 ja SILVER2.
  27. Pohjassa läpivientilanka SILVER1: stä siniseen 5 ja juote.
  28. Pohjassa läpivientilanka SILVER2: sta RED10: een ja juote.

Vaihe 3: UNO: n koodi

UNO: n koodi
UNO: n koodi

Luonnos tässä on alkeellinen. Sen avulla voit käyttää konsolisyöttöä, jotta UNO lähettää I2C -viestejä I2C ATTINY85 BRICKille.

Kaikki ohjeet tulostetaan näytölle tuetuilla vaihtoehdoilla.

I2C BRICK adhoc -komennot orjille UNO -isännältä

#sisältää
const tavu _num_chars = 32;
char _saapuneet_merkit [_numero_sarjat]; // matriisi vastaanotetun datan tallentamiseksi
boolean _has_new_data = epätosi;
voidsetup () {
Sarja.alku (9600);
Sarja.println ();
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR");
Serial.println ("varmista, että uusi rivi on valittu konsoli -ikkunasta");
Sarja.println ();
Serial.println ("OSOITE 1 VAHVISTA METATIETOSUOJA N/A (M2M: lle)");
Serial.println ("OSOITE 2 ACTOR COMMAND");
Sarja.println ();
Serial.println ("OSOITTEET BUSSISSA:");
scan_i2c_addresses ();
Sarja.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int laitteen_luku = 0;
(tavuosoite = 8; osoite <127; osoite ++)
{
Wire.beginTransmission (osoite);
const tavuvirhe = Wire.endTransmission ();
jos (virhe == 0)
{
Serial.println (osoite);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
staattinen tavu ndx = 0;
char end_marker = '\ n';
char rc;
while (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read ();
jos (rc! = end_marker) {
_vastaanotetut_merkit [ndx] = rc;
ndx ++;
jos (ndx> = _numerot) {
ndx = _luku_merkkiä - 1;
}
}
muu {
_received_chars [ndx] = '\ 0'; // lopettaa merkkijono
ndx = 0;
_has_new_data = tosi;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const Jono vastaanotettu_merkkijono = Merkkijono (_vastaanotetut_merkit);
jos (_ has_new_data == true) {
int idx1 = vastaanotettu_merkkijono.indexOf ('');
Merkkijonon osoite = vastaanotettu_merkkijono.substring (0, idx1);
int address_int = address.toInt ();
jos (address_int <8 || address_int> 127) {
Serial.println ("VÄÄRÄ OSOITTEEN TULO:");
Serial.println (osoite);
palata;
}
int idx2 = vastaanotettu_merkkijono.indexOf ('', idx1+1);
Merkkijonokoodi;
jos (idx2 == -1) {
koodi = vastaanotettu_merkkijono.substring (idx1+1);
}muu{
koodi = vastaanotettu_merkkijono.substring (idx1+1, idx2+1);
}
int code_int = code.toInt ();
jos (code_int <0 || code_int> 5) {
Serial.println ("INVALID CODE INPUT:");
Serial.println (koodi);
palata;
}
bool has_parameter = idx2> -1;
Jono -parametri;
if (has_parameter) {
parametri = vastaanotettu_merkkijono.substring (idx2 + 1, idx2 + 17); // enintään 16 merkkiä
jos (parametri.pituus () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = epätosi;
palata;
}
}muu{
jos (code_int> 1) {
Serial.println ("PARAMETRI VAATII!");
_has_new_data = epätosi;
palata;
}
}
Sarja.println ();
Serial.print ("input orig =");
Sarja.println (vastaanotettu_merkkijono);
Serial.print ("address =");
Serial.println (osoite);
Serial.print ("code =");
Serial.println (koodi);
Serial.print ("parametri =");
Serial.println (parametri);
// LÄHETÄ I2C
Wire.beginTransmission (osoite_int);
Wire.write (code_int);
if (has_parameter) {
parametri.trim ();
strcpy (param_buf, parametri.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Sarja.println ();
Serial.println ("LÄHETETTY I2C!");
Sarja.println ();
Serial.println ("");
_has_new_data = epätosi;
}
}

katso rawuno_i2c_command_input.ino, jota isännöi GitHub ❤ kanssa

Vaihe 4: Seuraavat vaiheet

Esitetyistä rakenteista on riittävästi liikkuvia osia, jotta voit rakentaa oman ASSIMILATE IOT -VERKON.

Jokainen solmujen yksittäinen toiminto (anturit ja toimijat) on hallittavissa hajautetusti, eikä MCU -päälliköstä ole mitään tietoa tuetuista ominaisuuksista.

Mikä tahansa MQTT -välittäjään liittyvä sovellus voi ohjata/tarkkailla kaikkia IOT -solmun ominaisuuksia. Se on M2M, verkkosovellukset, IFTTT ja niin edelleen. Paljon yksinkertaisempia (tai rikkaampia, jos haluat) rajapintoja IOT -maailmaan.

Suositeltava: