สารบัญ:

IOT123 - I2C BRICK MASTER JIG: 4 ขั้นตอน
IOT123 - I2C BRICK MASTER JIG: 4 ขั้นตอน

วีดีโอ: IOT123 - I2C BRICK MASTER JIG: 4 ขั้นตอน

วีดีโอ: IOT123 - I2C BRICK MASTER JIG: 4 ขั้นตอน
วีดีโอ: How LEGO Minifigures are made 2024, พฤศจิกายน
Anonim
IOT123 - I2C อิฐมาสเตอร์จิ๊ก
IOT123 - I2C อิฐมาสเตอร์จิ๊ก
IOT123 - I2C อิฐมาสเตอร์จิ๊ก
IOT123 - I2C อิฐมาสเตอร์จิ๊ก
IOT123 - I2C อิฐมาสเตอร์จิ๊ก
IOT123 - I2C อิฐมาสเตอร์จิ๊ก

ขณะพัฒนาเซ็นเซอร์ตรวจจับและนักแสดง ฉันเก็บ UNO ไว้ใกล้มือเพื่อส่งคำสั่งเฉพาะกิจ I2C ไปยังต้นแบบที่กำลังพัฒนา ข้อดีอย่างหนึ่งของ I2C BRICKS คือพินเอาต์มาตรฐาน แทนที่จะใช้สายเขียงหั่นขนมในแต่ละครั้ง (ดู Fritzings) จะใช้เกราะป้องกันเทคโนโลยีที่ทนทาน

ขั้นตอนที่ 1: วัสดุและเครื่องมือ

วัสดุและเครื่องมือ
วัสดุและเครื่องมือ
วัสดุและเครื่องมือ
วัสดุและเครื่องมือ
วัสดุและเครื่องมือ
วัสดุและเครื่องมือ
วัสดุและเครื่องมือ
วัสดุและเครื่องมือ
  1. 4 ซม. x 6 ซม. Uninersal PCB (1)
  2. สายเชื่อมต่อ (~6)
  3. ตัวต้านทาน 4K7 (2)6
  4. ส่วนหัวชาย (12P, 8P)
  5. ส่วนหัวหญิง (9P หรือ 3P, 3P)
  6. บัดกรีและเหล็ก (1)

ขั้นตอนที่ 2: การประกอบ

การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ
การประกอบ

หากคุณใช้หัวต่อตัวเมีย 2 ตัว 3P แทนหัวตัวเมีย 1 ตัวจาก 9P ตัวตรวจจับ ASSIMILATE/ACTORS จะพอดีกับ JIG โดยไม่ต้องแยกชิ้นส่วน

เมื่อเดินสายแล้ว ให้ดึงที่ปลายออกสูงสุด 10 มม. แล้วขันปลายสุดให้แน่น

  1. ที่ด้านล่างของ PCB ให้ใส่ส่วนหัวของตัวผู้ (1) (2) แล้วบัดกรีที่ด้านบน
  2. ที่ด้านบนของ PCB ใส่ส่วนหัวของตัวเมีย (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

ร่างนี้เป็นพื้นฐาน อนุญาตให้คุณใช้ Console Input เพื่อให้ UNO ส่งข้อความ I2C ไปยัง I2C ATTINY85 BRICK

คำแนะนำทั้งหมดจะพิมพ์ไปที่หน้าจอ พร้อมตัวเลือกที่รองรับ

คำสั่งเฉพาะของ I2C BRICK สำหรับทาสจาก UNO master

#รวม
ไบต์ const _num_chars = 32;
ถ่าน _received_chars[_num_chars]; // อาร์เรย์เพื่อเก็บข้อมูลที่ได้รับ
บูลีน _has_new_data = เท็จ;
voidsetup() {
Serial.begin(9600);
Serial.println();
Serial.println("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR");
Serial.println("ตรวจสอบให้แน่ใจว่าได้เลือกบรรทัดใหม่ในหน้าต่างคอนโซล");
Serial.println();
Serial.println("ที่อยู่ 1 ยืนยันการรับเมตาดาต้าไม่มี (สำหรับ M2M)");
Serial.println("ที่อยู่ 2 ACTOR COMMAND");
Serial.println();
Serial.println("AdDRESSES ON BUS:");
scan_i2c_addresses();
Serial.println();
Serial.println("");
}
voidscan_i2c_addresses(){
int device_count = 0;
สำหรับ (ที่อยู่ไบต์ = 8; ที่อยู่ <127; ที่อยู่++)
{
Wire.beginการส่ง(ที่อยู่);
ข้อผิดพลาด const ไบต์ = Wire.endTransmission ();
ถ้า (ข้อผิดพลาด == 0)
{
Serial.println (ที่อยู่);
}
}
}
โมฆะลูป () {
recv_with_end_marker();
send_to_i2c();
}
voidrecv_with_end_marker () {
ไบต์คงที่ ndx = 0;
ถ่าน end_marker = '\n';
ถ่าน rc;
ในขณะที่ (Serial.available () >0 && _has_new_data == false) {
rc = Serial.read();
ถ้า (rc != end_marker) {
_received_chars[ndx] = rc;
นดx++;
ถ้า (ndx >= _num_chars) {
ndx = _num_chars - 1;
}
}
อื่น {
_received_chars[ndx] = '\0'; // สิ้นสุดสตริง
ndx = 0;
_has_new_data = จริง;
}
}
}
voidsend_to_i2c () {
ถ่าน param_buf[16];
const สตริงที่ได้รับ_string = สตริง (_received_chars);
ถ้า (_has_new_data == จริง) {
int idx1 = ได้รับ_string.indexOf('');
ที่อยู่สตริง = ได้รับ_string.substring(0, idx1);
int address_int = address.toInt();
ถ้า (address_int < 8 || address_int >127){
Serial.println ("ที่อยู่ไม่ถูกต้อง:");
Serial.println (ที่อยู่);
กลับ;
}
int idx2 = ได้รับ_string.indexOf('', idx1+1);
รหัสสตริง;
ถ้า (idx2 == -1){
รหัส = ได้รับ_string.substring(idx1+1);
}อื่น{
รหัส = ได้รับ_string.substring(idx1+1, idx2+1);
}
int code_int = code.toInt();
ถ้า (code_int < 0 || code_int >5){
Serial.println("รหัสไม่ถูกต้อง:");
Serial.println (รหัส);
กลับ;
}
บูล has_parameter = idx2 > -1;
พารามิเตอร์สตริง;
ถ้า (has_parameter){
พารามิเตอร์ = ได้รับ_string.substring(idx2 + 1, idx2 + 17); // 16 ตัวอักษรสูงสุด
ถ้า (พารามิเตอร์ ความยาว () < 1){
Serial.println("พารามิเตอร์ขั้นต่ำ ความยาว 1");
_has_new_data = เท็จ;
กลับ;
}
}อื่น{
ถ้า (code_int >1){
Serial.println("ต้องมีพารามิเตอร์!");
_has_new_data = เท็จ;
กลับ;
}
}
Serial.println();
Serial.print("อินพุตต้นฉบับ = ");
Serial.println(received_string);
Serial.print("ที่อยู่ = ");
Serial.println (ที่อยู่);
Serial.print ("รหัส = ");
Serial.println (รหัส);
Serial.print("พารามิเตอร์ = ");
Serial.println (พารามิเตอร์);
// ส่งผ่าน I2C
Wire.beginTransmission (ที่อยู่_int);
Wire.write (code_int);
ถ้า (has_parameter){
พารามิเตอร์. trim();
strcpy(param_buf, พารามิเตอร์.c_str());
Wire.write(param_buf);
}
Wire.endTransmission();
Serial.println();
Serial.println("ส่งผ่าน I2C!");
Serial.println();
Serial.println("");
_has_new_data = เท็จ;
}
}

ดู rawuno_i2c_command_input.ino โฮสต์ด้วย ❤ โดย GitHub

ขั้นตอนที่ 4: ขั้นตอนต่อไป

จากบิลด์ที่นำเสนอ มีชิ้นส่วนที่เคลื่อนไหวเพียงพอสำหรับคุณในการสร้าง ASSIMILATE IOT NETWORK ของคุณเอง

แต่ละฟังก์ชันของโหนด (เซ็นเซอร์และตัวแสดง) สามารถควบคุมได้ในลักษณะการกระจายอำนาจ ไม่ได้ขึ้นอยู่กับต้นแบบ MCU ที่จะมีความรู้เกี่ยวกับคุณสมบัติที่รองรับ

แอปใดๆ ที่เชื่อมต่อกับโบรกเกอร์ MQTT สามารถควบคุม/สังเกตทุกฟีเจอร์ของโหนด IOT นั่นคือ M2M, เว็บแอปพลิเคชัน, IFTTT และอื่นๆ อินเทอร์เฟซที่ง่ายกว่ามาก (หรือสมบูรณ์ยิ่งขึ้นหากต้องการ) กับโลก IOT ของคุณ

แนะนำ: