תוכן עניינים:

IOT123 - I2C BRICK MASTER JIG: 4 שלבים
IOT123 - I2C BRICK MASTER JIG: 4 שלבים

וִידֵאוֹ: IOT123 - I2C BRICK MASTER JIG: 4 שלבים

וִידֵאוֹ: IOT123 - I2C BRICK MASTER JIG: 4 שלבים
וִידֵאוֹ: Тива C, эксперимент 17 — I2C 2024, נוֹבֶמבֶּר
Anonim
IOT123 - J2 מאסטר בריק מאסטר
IOT123 - J2 מאסטר בריק מאסטר
IOT123 - ג'יג מאסטר בריק I2C
IOT123 - ג'יג מאסטר בריק I2C
IOT123 - J2 מאסטר בריק מאסטר
IOT123 - J2 מאסטר בריק מאסטר

בעת פיתוח חיישני ASSIMILATE ו- ACTORS, אני שומר UNO שימושי לשליחת פקודות adhoc I2C לאב טיפוס המפותח. אחד היתרונות של ה- I2C BRICKS הוא הסיכות הסטנדרטיות. במקום להשתמש בחוטי קרש לחם בכל פעם (ראו הפריטים), משתמשים במגן לו-טק חסון.

שלב 1: חומרים וכלים

חומרים וכלים
חומרים וכלים
חומרים וכלים
חומרים וכלים
חומרים וכלים
חומרים וכלים
חומרים וכלים
חומרים וכלים
  1. 4 ס"מ x 6 ס"מ PCB חד -מינית (1)
  2. חיבור חיבור (~ 6)
  3. נגדים 4K7 (2) 6
  4. כותרת זכר (12P, 8P)
  5. כותרת נקבה (9P, או 3P, 3P)
  6. הלחמה וברזל (1)

שלב 2: הרכבה

הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה

אם אתה משתמש בכותרות נקביות 3 off 3P במקום כותרת נקבה 1 P 9P, החיישן ASSIMILATE/ACTORS יתאים ל- JIG מבלי לפרק אותן.

בעזרת החיווט, יש להסיר עד 10 מ מ בקצוות ולהדביק את הקצוות ממש.

  1. בתחתית הלוח הכנס את הכותרת הזכרית (1) (2) והלחם מעל.
  2. בחלק העליון של הלוח, הכנס את הכותרת הנשית (3) והלחם בתחתית.
  3. בחלקו העליון, חור דרך חור אדום לתוך RED1 ו- RED2.
  4. בחלק התחתון חוט חור דרך RED1 ל- RED3.
  5. בחלק התחתון חוט חור דרך RED2 ל- RED5 והלחמה.
  6. בחלקו העליון חוט חור מ- RED3 ל- RED4 והלחמה.
  7. בחלקו העליון חור חוט אדום לתוך RED6 ו- RED7.
  8. בחלק התחתון חוט דרך חור מ- RED6 ל- RED8.
  9. בחלק התחתון חוט חור דרך RED7 ל- RED10 והלחמה.
  10. בחלקו העליון חוט חור דרך RED8 ל- RED9 והלחמה.
  11. בחלקו העליון חור חוט שחור לתוך BLACK1 ו- BLACK2.
  12. בחלק התחתון חוט חור מ- BLACK1 ל- BLACK3.
  13. בחלק התחתון חוט דרך חור מ BLACK2 ל BLACK5, והלחמה.
  14. בחלק העליון, חוט דרך חור מ- BLACK3 ל- BLACK4, והלחמה.
  15. בחלק העליון, חור דרך חור כחול לתוך BLUE1 ו- BLUE2.
  16. בחלק התחתון חוט חור מ- BLUE1 ל- BLUE3.
  17. בחלק התחתון חוט חור דרך מ- BLUE2 ל- BLUE5 והלחמה.
  18. בחלק העליון, חוט דרך חור מ- BLUE3 ל- BLUE4, והלחמה.
  19. בחלק העליון, חור דרך חור ירוק לתוך GREEN1 ו- GREEN2.
  20. בחלק התחתון חוט חור מ- GREEN1 ל- GREEN3.
  21. בחלק התחתון חוט דרך חור מ- GREEN2 ל- GREEN5 והלחמה.
  22. בחלקו העליון חוט חור מ- GREEN3 ל- GREEN4 והלחמה.
  23. בחלקו העליון, דרך חור נגד 4K7 לתוך SILVER3 ו- SILVER4.
  24. בחלק התחתון חוט חור מ- SILVER3 ל- GREEN5 והלחמה.
  25. בחלק התחתון חוט דרך חור מ- SILVER4 ל- RED10, והלחמה.
  26. בחלקו העליון, דרך חור נגד 4K7 לתוך SILVER1 ו- SILVER2.
  27. בחלק התחתון חוט דרך חור מ- SILVER1 ל- BLUE5 והלחמה.
  28. בחלק התחתון חוט דרך חור מ- SILVER2 ל- RED10, והלחמה.

שלב 3: קוד ל- UNO

קוד עבור UNO
קוד עבור UNO

המערכון כאן הוא בסיסי. הוא מאפשר לך להשתמש בקלט המסוף, כדי לגרום ל- UNO לשלוח הודעות I2C ל- I2C ATTINY85 BRICK.

כל ההוראות מודפסות למסך, עם האפשרויות הנתמכות.

פקודות adhoc I2C BRICK עבור עבדים מ- UNO master

#לִכלוֹל
const byte _num_chars = 32;
char _received_chars [_num_chars]; // מערך לאחסון הנתונים שהתקבלו
בוליאני _has_new_data = false;
הגדרת voids () {
Serial.begin (9600);
Serial.println ();
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM Editor");
Serial.println ("להבטיח שורה חדשה שנבחרה בחלון המסוף");
Serial.println ();
Serial.println ("ADRESS 1 CONFIRM METADATA RECEIPT N/A (FOR M2M)");
Serial.println ("פקודת שחקן ADDRESS 2");
Serial.println ();
Serial.println ("כתובות באוטובוס:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int device_count = 0;
for (כתובת בתים = 8; כתובת <127; כתובת ++)
{
Wire.beginTransmission (כתובת);
שגיאת const byte = Wire.endTransmission ();
אם (שגיאה == 0)
{
Serial.println (כתובת);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
בתים סטטיים ndx = 0;
char end_marker = '\ n';
char rc;
בעוד (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read ();
אם (rc! = end_marker) {
_received_chars [ndx] = rc;
ndx ++;
אם (ndx> = _num_chars) {
ndx = _num_chars - 1;
}
}
אחר {
_received_chars [ndx] = '\ 0'; // לסיים את המחרוזת
ndx = 0;
_has_new_data = נכון;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const String received_string = מחרוזת (_received_chars);
אם (_has_new_data == true) {
int idx1 = received_string.indexOf ('');
כתובת מחרוזת = received_string.substring (0, idx1);
int address_int = address.toInt ();
if (address_int <8 || address_int> 127) {
Serial.println ("קלט כתובת לא חוקי:");
Serial.println (כתובת);
לַחֲזוֹר;
}
int idx2 = received_string.indexOf ('', idx1+1);
קוד מחרוזת;
אם (idx2 == -1) {
code = received_string.substring (idx1+1);
}אַחֵר{
code = received_string.substring (idx1+1, idx2+1);
}
int code_int = code.toInt ();
if (code_int <0 || code_int> 5) {
Serial.println ("קלט קוד לא חוקי:");
Serial.println (קוד);
לַחֲזוֹר;
}
bool has_parameter = idx2> -1;
פרמטר מחרוזת;
if (has_parameter) {
parameter = received_string.substring (idx2 + 1, idx2 + 17); // 16 תווים לכל היותר
if (parameter.length () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = false;
לַחֲזוֹר;
}
}אַחֵר{
אם (code_int> 1) {
Serial.println ("נדרש פרמטר!");
_has_new_data = false;
לַחֲזוֹר;
}
}
Serial.println ();
Serial.print ("input orig =");
Serial.println (קיבל_מחרוזת);
Serial.print ("כתובת =");
Serial.println (כתובת);
Serial.print ("code =");
Serial.println (קוד);
Serial.print ("parameter =");
Serial.println (פרמטר);
// שלח VIA I2C
שידור Wire.beginTransmission (address_int);
Wire.write (code_int);
if (has_parameter) {
parameter.trim ();
strcpy (param_buf, parameter.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Serial.println ();
Serial.println ("נשלח באמצעות I2C!");
Serial.println ();
Serial.println ("");
_has_new_data = false;
}
}

הצג rawuno_i2c_command_input.ino המתארח אצל ❤ על ידי GitHub

שלב 4: השלבים הבאים

מהמבנים שהוצגו, ישנם מספיק חלקים נעים בכדי שתוכל לבנות רשת ASSIMILATE IOT משלך.

כל אחת מהפונקציות האישיות של הצמתים (חיישנים ושחקנים) ניתנת לשליטה באופן מבוזר, לא תלוי במאסטר ה- MCU כדי לקבל ידע כלשהו על התכונות הנתמכות.

כל אפליקציה שמתחברת לברוקר MQTT יכולה לשלוט/להתבונן בכל תכונה של צומת IOT. זה M2M, יישומי אינטרנט, IFTTT וכן הלאה. ממשקים הרבה יותר פשוטים (או עשירים יותר אם תרצו) לעולם ה- IOT שלכם.

מוּמלָץ: