Mündəricat:

IOT123 - I2C BRICK MASTER JIG: 4 addım
IOT123 - I2C BRICK MASTER JIG: 4 addım

Video: IOT123 - I2C BRICK MASTER JIG: 4 addım

Video: IOT123 - I2C BRICK MASTER JIG: 4 addım
Video: How LEGO Minifigures are made 2024, Noyabr
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

ASSIMILATE SENSORS and ACTORS hazırlayarkən, inkişaf etdirilən prototiplərə adhoc I2C əmrləri göndərmək üçün UNO -nu əlinizdə saxlayıram. I2C BRICKS -in üstünlüklərindən biri standartlaşdırılmış pinoutlardır. Hər dəfə çörək taxtası telləri istifadə etmək əvəzinə (Fritzings-ə baxın), möhkəm bir lo-tech qalxanı istifadə olunur.

Addım 1: Materiallar və Alətlər

Alətlər və materiallar
Alətlər və materiallar
Alətlər və materiallar
Alətlər və materiallar
Alətlər və materiallar
Alətlər və materiallar
Alətlər və materiallar
Alətlər və materiallar
  1. 4 sm x 6 sm Uninersal PCB (1)
  2. Bağlama teli (~ 6)
  3. 4K7 Rezistorlar (2) 6
  4. Kişi Başlığı (12P, 8P)
  5. Qadın Başlığı (9P və ya 3P, 3P)
  6. Lehim və Dəmir (1)

Addım 2: Quraşdırma

Məclis
Məclis
Məclis
Məclis
Məclis
Məclis

1 off 9P dişi başlıq əvəzinə 2 off 3P qadın başlıqlardan istifadə edirsinizsə, ASSIMILATE SENSOR/ACTORS onları sökmədən JIG -ə uyğun olacaq.

Kablolama ilə, uclarından 10 mm -ə qədər soyun və ən uclarını qalaylayın.

  1. PCB -nin altına kişi başlığını (1) (2) daxil edin və üstünə lehimləyin.
  2. PCB -nin yuxarı hissəsində, dişi başlığı (3) və lehimi aşağıya daxil edin.
  3. Yuxarıda, RED1 və RED2-ə qırmızı bir tel keçir.
  4. Aşağıda, RED1-dən RED3-ə qədər olan delikli tel.
  5. Aşağıda, RED2-dən RED5-ə qədər olan delikli tel və lehim.
  6. Üst tərəfdə, RED3-dən RED4-ə qədər olan delikli tel və lehim.
  7. Yuxarıda, RED6 və RED7-ə qırmızı bir tel keçir.
  8. Aşağıda, RED6-dan RED8-ə qədər olan delikli tel.
  9. Aşağıda, RED7-dən RED10-a qədər olan delikli tel və lehim.
  10. Üst tərəfdə, RED8-dən RED9-a qədər olan delikli tel və lehim.
  11. Yuxarıda, BLACK1 və BLACK2-ə qara bir tel keçir.
  12. Altda, BLACK1-dən BLACK3-ə qədər olan delikli tel.
  13. Altda, BLACK2-dən BLACK5-ə qədər olan delikli tel və lehim.
  14. Yuxarıda, BLACK3-dən BLACK4-ə qədər olan delikli tel və lehim.
  15. Yuxarıda, BLUE1 və BLUE2-ə mavi bir tel keçir.
  16. Aşağıda, BLUE1-dən BLUE3-ə qədər olan delikli tel.
  17. Aşağıda, BLUE2-dən BLUE5-ə qədər olan delikdən keçən tel və lehim.
  18. Yuxarıda, BLUE3-dən BLUE4-ə qədər olan delikli tel və lehim.
  19. Yuxarıda, GREEN1 və GREEN2-ə yaşıl bir tel keçir.
  20. Aşağıda, GREEN1-dən GREEN3-ə qədər olan delikli tel.
  21. Aşağıda, GREEN2-dən GREEN5-ə qədər olan delikli tel və lehim.
  22. Yuxarıda, GREEN3-dən GREEN4-ə qədər olan delikli tel və lehim.
  23. Yuxarıda, SILVER3 və SILVER4-ə 4K7 rezistorla keçin.
  24. Aşağıda, SILVER3-dən GREEN5-ə qədər olan delikli tel və lehim.
  25. Aşağıda, SILVER4-dən RED10-a qədər olan delikli tel və lehim.
  26. Yuxarıda, SILVER1 və SILVER2 daxilində 4K7 rezistorlu delik açılır.
  27. Aşağıda, SILVER1-dən BLUE5-ə qədər olan çuxurlu tel və lehim.
  28. Aşağıda, SILVER2-dən RED10-a qədər olan çuxurlu tel və lehim.

Addım 3: UNO üçün kod

UNO üçün kod
UNO üçün kod

Buradakı eskiz ilkin xarakter daşıyır. UNO -nun I2C ATTINY85 BRICK -ə I2C mesajları göndərməsini təmin etmək üçün Konsol Girişindən istifadə etməyə imkan verir.

Bütün təlimatlar dəstəklənən seçimlərlə birlikdə ekranda çap olunur.

UNO ustasının kölələri üçün I2C BRICK adhoc əmrləri

#daxil edin
const bayt _num_chars = 32;
char _received_chars [_num_chars]; // alınan məlumatları saxlamaq üçün bir sıra
boolean _has_new_data = yalan;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println ("IOT ACTOR/SENSOR EEPROM REDAKTORU ASSIMILATE");
Serial.println ("konsol pəncərəsində yeni sətrin seçilməsini təmin edin");
Serial.println ();
Serial.println ("ADRES 1 METADATA QƏBULUNU YOXDUR (M2M ÜÇÜN)");
Serial.println ("ADRES 2 ACTOR COMMAND");
Serial.println ();
Serial.println ("Avtobusdakı ünvanlar:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int device_count = 0;
üçün (bayt ünvanı = 8; ünvan <127; ünvan ++)
{
Wire.beginTransmission (ünvan);
const bayt xətası = Wire.endTransmission ();
əgər (səhv == 0)
{
Serial.println (ünvan);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
statik bayt ndx = 0;
char end_marker = '\ n';
char rc;
while (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read ();
əgər (rc! = end_marker) {
_received_chars [ndx] = rc;
ndx ++;
əgər (ndx> = _num_chars) {
ndx = _num_chars - 1;
}
}
başqa {
_received_chars [ndx] = '\ 0'; // simli dayandırın
ndx = 0;
_has_new_data = doğru;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const String qəbul_string = String (_received_chars);
əgər (_has_new_data == doğru) {
int idx1 = qəbul_string.indexOf ('');
String ünvanı = aldı_string.substring (0, idx1);
int address_int = address.toInt ();
əgər (ünvan_int <8 || ünvan_int> 127) {
Serial.println ("GÜÇÜN ADRES GİRİŞİ:");
Serial.println (ünvan);
qayıtmaq;
}
int idx2 = alınan_string.indexOf ('', idx1+1);
String kodu;
əgər (idx2 == -1) {
kod = alınan_string.substring (idx1+1);
} başqa {
kod = alınan_string.substring (idx1+1, idx2+1);
}
int code_int = code.toInt ();
əgər (code_int <0 || code_int> 5) {
Serial.println ("GÜÇÜN KOD GİRİŞİ:");
Serial.println (kod);
qayıtmaq;
}
bool has_parameter = idx2> -1;
String parametri;
əgər (has_parametr) {
parametr = alınan_string.substring (idx2 + 1, idx2 + 17); // maksimum 16 simvol
if (parametr.length () <1) {
Serial.println ("PARTAMETRE MİN. UZUNLUQ 1");
_has_new_data = yalan;
qayıtmaq;
}
} başqa {
əgər (code_int> 1) {
Serial.println ("PARAMETR TƏLƏB EDİLİR!");
_has_new_data = yalan;
qayıtmaq;
}
}
Serial.println ();
Serial.print ("giriş orig =");
Serial.println (qəbul_dizgi);
Serial.print ("ünvan =");
Serial.println (ünvan);
Serial.print ("kod =");
Serial.println (kod);
Serial.print ("parametr =");
Serial.println (parametr);
// I2C VIA GÖNDƏRİN
Wire.beginTransmission (ünvan_int);
Wire.write (code_int);
əgər (has_parametr) {
parameter.trim ();
strcpy (param_buf, parameter.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Serial.println ();
Serial.println ("I2C VIA VAR!");
Serial.println ();
Serial.println ("");
_has_new_data = yalan;
}
}

GitHub tərəfindən ❤ ilə evlənən rawuno_i2c_command_input.inoya baxın

Addım 4: Növbəti addımlar

Təqdim olunan quruluşlardan, öz ASSIMILATE IOT AĞ Şəbəkənizi qurmağınız üçün kifayət qədər hərəkət edən hissələr var.

Düyünlərin (sensorlar və aktyorlar) fərdi funksiyalarının hər biri MCU ustasının dəstəklənən xüsusiyyətlər haqqında hər hansı bir bilgiyə malik olmasından asılı olmayaraq mərkəzləşdirilməmiş bir şəkildə idarə olunur.

MQTT brokerinə qoşulan hər hansı bir tətbiq IOT Node -un hər xüsusiyyətini idarə edə/müşahidə edə bilər. Bu M2M, veb tətbiqləri, IFTTT və s. IOT dünyanız üçün daha sadə (və ya istəsəniz daha zəngin) interfeyslər.

Tövsiyə: