Tartalomjegyzék:

IOT123 - I2C BRICK MASTER JIG: 4 lépés
IOT123 - I2C BRICK MASTER JIG: 4 lépés

Videó: IOT123 - I2C BRICK MASTER JIG: 4 lépés

Videó: IOT123 - I2C BRICK MASTER JIG: 4 lépés
Videó: 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

Az ASSIMILATE SENSORS és ACTORS fejlesztése közben kéznél tartok egy UNO -t, hogy adhoc I2C parancsokat küldjön a fejlesztendő prototípusoknak. Az I2C BRICKS egyik előnye a szabványosított érintkezők. Ahelyett, hogy minden alkalommal kenyérsütő vezetéket használna (lásd a Fritzings-t), erős lo-tech pajzsot használnak.

Lépés: Anyagok és eszközök

Anyagok és eszközök
Anyagok és eszközök
Anyagok és eszközök
Anyagok és eszközök
Anyagok és eszközök
Anyagok és eszközök
Anyagok és eszközök
Anyagok és eszközök
  1. 4 cm x 6 cm Uninersal PCB (1)
  2. Csatlakozó vezeték (~ 6)
  3. 4K7 ellenállások (2) 6
  4. Férfi fejléc (12P, 8P)
  5. Női fejléc (9P, vagy 3P, 3P)
  6. Forrasztás és vas (1)

2. lépés: Összeszerelés

Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés
Összeszerelés

Ha 2 db 3P női fejlécet használ az 1 off 9P női fejléc helyett, akkor az ASSIMILATE SENSOR/ACTORS illeszkedik a JIG -hez anélkül, hogy szétszerelné őket.

A kábelezéssel távolítsa el a végét 10 mm -ig, és ónozza a végeit.

  1. A NYÁK alján helyezze be a dugót (1) (2) és forrasztja le a tetején.
  2. A NYÁK tetején helyezze be a hüvelyes fejlécet (3) és forrasztja le az alján.
  3. A tetején egy piros vezetéket kell vezetni a RED1 és RED2-be.
  4. Alul, átmenő vezeték RED1-től RED3-ig.
  5. Az alsó részen átvezető lyuk a RED2-től a RED5-ig, és forrasztás.
  6. A tetején átvezető lyuk a RED3-tól a RED4-ig, és forrasztás.
  7. A tetején egy piros vezetéket kell vezetni a RED6 és RED7-be.
  8. Alul, átmenő vezeték RED6-tól RED8-ig.
  9. Alul, átmenőhuzalos vezeték RED7-ről RED10-re, és forrasztás.
  10. A tetején átvezető lyuk a RED8-tól a RED9-ig, és a forrasztás.
  11. A tetején fekete lyukat kell vezetni a FEKETE1 és FEKETE2 csatlakozóba.
  12. Az alsó, átmenőhuzal a BLACK1-től a BLACK3-ig.
  13. Alul, átmenő vezeték a BLACK2-től a BLACK5-ig, és forrasztás.
  14. A tetején átvezető lyuk a BLACK3-tól a BLACK4-ig, és forrasztás.
  15. A tetején egy kék drótot kell átvezetni a BLUE1 és BLUE2-be.
  16. Az alsó, átmenőhuzalos vezeték a BLUE1-től a BLUE3-ig.
  17. Alul, átmenőhuzalos huzal a BLUE2-től a BLUE5-ig, és forrasztás.
  18. Felül, átmenőhuzal a BLUE3-tól a BLUE4-ig, és forrasztás.
  19. A tetején zöld furatot kell vezetni a ZÖLD1 és a ZÖLD2-be.
  20. Az alsó, átmenőhuzalos vezeték a ZÖLD1-től a ZÖLD3-ig.
  21. Alul GREEN2-ből ZÖLD5-be átvezető lyuk, és forrasztás.
  22. A tetején átvezető lyuk a GREEN3-tól a GREEN4-ig, és forrasztás.
  23. Felül, egy 4K7-es ellenálláson keresztül, az SILVER3 és SILVER4-be.
  24. Az alsó részen átvezető lyuk az SILVER3-ból a ZÖLD5-be, és forrasztás.
  25. Az alsó részen átvezető lyuk a SILVER4-től a RED10-ig, és forrasztás.
  26. A tetején egy 4K7-es ellenállást kell átvezetni az SILVER1 és SILVER2-be.
  27. Az alsó részen átvezető lyuk az SILVER1-től a BLUE5-ig, és forrasztás.
  28. Az alsó részen átvezető lyuk a SILVER2-ből a RED10-be, és forrasztás.

3. lépés: Az UNO kódja

Az UNO kódja
Az UNO kódja

A vázlat itt kezdetleges. Lehetővé teszi a konzolbemenet használatát, hogy az UNO I2C üzeneteket küldjön az I2C ATTINY85 BRICK -nek.

Minden utasítást a képernyőre nyomtat, a támogatott opciókkal.

I2C BRICK adhoc parancsok rabszolgákhoz UNO mester

#befoglalni
const bájt _száma = 32;
char _fogadott_száma [_száma_száma]; // tömb a fogadott adatok tárolására
logikai _has_new_data = hamis;
voidsetup () {
Sorozat.kezdet (9600);
Sorozat.println ();
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR");
Serial.println ("biztosítsa az újsor kiválasztását a konzol ablakában");
Sorozat.println ();
Serial.println ("1. CÍM METADATAVÉTEL MEGFIGYELÉSE N/A (M2M -NEK)");
Serial.println ("2. CÍM ACTOR COMMAND");
Sorozat.println ();
Serial.println ("CÍMEK A BUSZON:");
scan_i2c_addresses ();
Sorozat.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int eszköz_szám = 0;
(bájtcím = 8; cím <127; cím ++)
{
Wire.beginTransmission (cím);
const bájt hiba = Wire.endTransmission ();
ha (hiba == 0)
{
Serial.println (cím);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
statikus bájt ndx = 0;
char end_marker = '\ n';
char rc;
while (Serial.available ()> 0 && _has_new_data == false) {
rc = Sorozat.olvasás ();
if (rc! = end_marker) {
_fogadott_táblák [ndx] = rc;
ndx ++;
if (ndx> = _száma_száma) {
ndx = _száma - 1;
}
}
más {
_received_chars [ndx] = '\ 0'; // fejezze be a karakterláncot
ndx = 0;
_has_new_data = igaz;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const Karakterlánc kapott_string = Karakterlánc (_fogadott_karakterek);
ha (_van_új_adata == igaz) {
int idx1 = fogadott_string.indexOf ('');
Karakterlánc cím = kapott_string.substring (0, idx1);
int address_int = address.toInt ();
if (cím_int <8 || cím_int> 127) {
Serial.println ("ÉRVÉNYTLEN CÍM BEMENET:");
Serial.println (cím);
Visszatérés;
}
int idx2 = fogadott_string.indexOf ('', idx1+1);
Karakterlánc kód;
ha (idx2 == -1) {
kód = kapott_string.substring (idx1+1);
}más{
kód = kapott_string.substring (idx1+1, idx2+1);
}
int code_int = code.toInt ();
if (code_int <0 || code_int> 5) {
Serial.println ("ÉRVÉNYTELEN KÓD BEMENET:");
Serial.println (kód);
Visszatérés;
}
bool has_parameter = idx2> -1;
String paraméter;
if (has_parameter) {
paraméter = kapott_string.substring (idx2 + 1, idx2 + 17); // max. 16 karakter
if (paraméter.length () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = hamis;
Visszatérés;
}
}más{
if (code_int> 1) {
Serial.println ("PARAMÉTER SZÜKSÉGES!");
_has_new_data = hamis;
Visszatérés;
}
}
Sorozat.println ();
Serial.print ("input orig =");
Soros.println (fogadott_string);
Serial.print ("address =");
Serial.println (cím);
Serial.print ("code =");
Serial.println (kód);
Serial.print ("paraméter =");
Serial.println (paraméter);
// KÜLDÉS I2C
Wire.beginTransmission (cím_int);
Wire.write (code_int);
if (has_parameter) {
paraméter.trim ();
strcpy (param_buf, paraméter.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Sorozat.println ();
Serial.println ("ELKÜLDETT I2C!");
Sorozat.println ();
Serial.println ("");
_has_new_data = hamis;
}
}

Tekintse meg a rawuno_i2c_command_input.ino webhelyet, amelyet a GitHub ❤ üzemeltet

4. lépés: Következő lépések

A bemutatott konstrukciókból elegendő mozgó alkatrész van ahhoz, hogy saját ASSIMILATE IOT NETWORK -ot építsen.

A csomópontok egyes funkciói (érzékelők és szereplők) decentralizált módon vezérelhetők, nem attól függően, hogy az MCU -mester milyen ismeretekkel rendelkezik a támogatott funkciókról.

Bármely alkalmazás, amely az MQTT brókerhez csatlakozik, ellenőrizheti/megfigyelheti az IOT csomópont minden funkcióját. Ez az M2M, a webalkalmazások, az IFTTT és így tovább. Sokkal egyszerűbb (vagy gazdagabb, ha úgy tetszik) interfészek az IOT világához.

Ajánlott: