Daftar Isi:

IOT123 - I2C BATA MASTER JIG: 4 Langkah
IOT123 - I2C BATA MASTER JIG: 4 Langkah

Video: IOT123 - I2C BATA MASTER JIG: 4 Langkah

Video: IOT123 - I2C BATA MASTER JIG: 4 Langkah
Video: Laptop Motherboard No Power - Troubleshooting Short circuit - Fixed!!-Part 1 2024, November
Anonim
IOT123 - I2C BATA MASTER JIG
IOT123 - I2C BATA MASTER JIG
IOT123 - I2C BATA MASTER JIG
IOT123 - I2C BATA MASTER JIG
IOT123 - I2C BATA MASTER JIG
IOT123 - I2C BATA MASTER JIG

Saat mengembangkan SENSOR DAN AKTOR ASSIMILATE, saya menyimpan UNO untuk mengirim perintah adhoc I2C ke prototipe yang sedang dikembangkan. Salah satu keunggulan I2C BRICKS adalah pinout yang terstandarisasi. Daripada menggunakan kabel papan tempat memotong roti setiap kali (lihat Fritzings), pelindung lo-tech yang kokoh digunakan.

Langkah 1: Bahan dan Alat

Bahan dan alat
Bahan dan alat
Bahan dan alat
Bahan dan alat
Bahan dan alat
Bahan dan alat
Bahan dan alat
Bahan dan alat
  1. PCB Universal 4cm x 6cm (1)
  2. Kawat pengait (~6)
  3. Resistor 4K7 (2) 6
  4. Header Pria (12P, 8P)
  5. Header Wanita (9P, atau 3P, 3P)
  6. Solder dan Besi (1)

Langkah 2: Perakitan

perakitan
perakitan
perakitan
perakitan
perakitan
perakitan

Jika Anda menggunakan 2 header betina 3P bukan 1 header betina 9P, SENSOR/AKTOR ASSIMILATE akan muat di JIG tanpa membongkarnya.

Dengan kabel, lepaskan hingga 10mm di ujungnya dan rekatkan ujungnya.

  1. Di bagian bawah PCB, masukkan header laki-laki (1) (2) dan solder di atas.
  2. Di bagian atas PCB, masukkan tajuk perempuan (3) dan solder di bagian bawah.
  3. Di bagian atas, lubangi kabel merah ke RED1 dan RED2.
  4. Di bagian bawah, melalui lubang kawat dari RED1 ke RED3.
  5. Di bagian bawah, melalui lubang kawat dari RED2 ke RED5, dan solder.
  6. Di atas, melalui lubang kawat dari RED3 ke RED4, dan solder.
  7. Di bagian atas, lubangi kabel merah ke RED6 dan RED7.
  8. Di bagian bawah, melalui lubang kawat dari RED6 ke RED8.
  9. Di bagian bawah, melalui lubang kawat dari RED7 ke RED10, dan solder.
  10. Di atas, melalui lubang kawat dari RED8 ke RED9, dan solder.
  11. Di bagian atas, lubangi kabel hitam ke BLACK1 dan BLACK2.
  12. Di bagian bawah, melalui lubang kawat dari BLACK1 ke BLACK3.
  13. Di bagian bawah, melalui lubang kawat dari BLACK2 ke BLACK5, dan solder.
  14. Di atas, melalui lubang kawat dari BLACK3 ke BLACK4, dan solder.
  15. Di bagian atas, lubangi kabel biru ke BIRU1 dan BIRU2.
  16. Di bagian bawah, melalui lubang kawat dari BIRU1 ke BIRU3.
  17. Di bagian bawah, melalui lubang kawat dari BIRU2 ke BIRU5, dan solder.
  18. Di atas, melalui lubang kawat dari BIRU3 ke BIRU4, dan solder.
  19. Di bagian atas, lubangi kabel hijau ke GREEN1 dan GREEN2.
  20. Di bagian bawah, melalui lubang kawat dari GREEN1 ke GREEN3.
  21. Di bagian bawah, melalui lubang kawat dari GREEN2 ke GREEN5, dan solder.
  22. Di atas, melalui lubang kawat dari GREEN3 ke GREEN4, dan solder.
  23. Di bagian atas, lubangi resistor 4K7 menjadi SILVER3 dan SILVER4.
  24. Di bagian bawah, melalui lubang kawat dari SILVER3 ke GREEN5, dan solder.
  25. Di bagian bawah, melalui lubang kawat dari SILVER4 ke RED10, dan solder.
  26. Di bagian atas, lubangi resistor 4K7 menjadi SILVER1 dan SILVER2.
  27. Di bagian bawah, melalui lubang kawat dari SILVER1 ke BLUE5, dan solder.
  28. Di bagian bawah, melalui lubang kawat dari SILVER2 ke RED10, dan solder.

Langkah 3: Kode untuk UNO

Kode untuk UNO
Kode untuk UNO

Sketsa di sini belum sempurna. Ini memungkinkan Anda untuk menggunakan Input Konsol, untuk membuat UNO mengirim pesan I2C ke BATA ATTINY85 I2C.

Semua instruksi dicetak ke layar, dengan opsi yang didukung.

Perintah adhoc I2C BRICK untuk budak dari master UNO

#termasuk
const byte _num_chars = 32;
char _received_chars[_num_chars]; // array untuk menyimpan data yang diterima
boolean _has_new_data = salah;
voidsetup() {
Serial.begin(9600);
Serial.println();
Serial.println("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR");
Serial.println("pastikan baris baru dipilih di jendela konsol");
Serial.println();
Serial.println("ALAMAT 1 KONFIRMASI METADATA PENERIMAAN N/A (UNTUK M2M)");
Serial.println("ALAMAT 2 PERINTAH AKTOR");
Serial.println();
Serial.println("ALAMAT DI BUS:");
scan_i2c_addresses();
Serial.println();
Serial.println("");
}
voidscan_i2c_addresses(){
int jumlah_perangkat = 0;
untuk (alamat byte = 8; alamat <127; alamat++)
{
Wire.beginTransmission(alamat);
kesalahan byte const = Wire.endTransmission();
jika (kesalahan == 0)
{
Serial.println(alamat);
}
}
}
batal () {
recv_with_end_marker();
kirim_ke_i2c();
}
voidrecv_with_end_marker() {
byte statis ndx = 0;
char end_marker = '\n';
karakter rc;
while (Serial.available() >0 && _has_new_data == false) {
rc = Serial.read();
if (rc != penanda_akhir) {
_received_chars[ndx] = rc;
ndx++;
if (ndx >= _num_chars) {
ndx = _num_chars - 1;
}
}
lain {
_received_chars[ndx] = '\0'; // akhiri string
ndx = 0;
_has_new_data = benar;
}
}
}
voidsend_to_i2c() {
char param_buf[16];
const String diterima_string = String(_received_chars);
if (_has_new_data == benar) {
int idx1 = diterima_string.indexOf('');
Alamat string = accept_string.substring(0, idx1);
int address_int = alamat.toInt();
if (address_int < 8 || address_int >127){
Serial.println("INVALID ALAMAT INPUT:");
Serial.println(alamat);
kembali;
}
int idx2 = accept_string.indexOf('', idx1+1);
kode string;
jika (idx2 == -1){
kode = accept_string.substring(idx1+1);
}lain{
kode = accept_string.substring(idx1+1, idx2+1);
}
int kode_int = kode.toInt();
if (code_int < 0 || code_int >5){
Serial.println("INVALID KODE INPUT:");
Serial.println(kode);
kembali;
}
bool has_parameter = idx2 > -1;
Parameter string;
jika (memiliki_parameter){
parameter = accept_string.substring(idx2 + 1, idx2 + 17); // maksimal 16 karakter
if (parameter.length() < 1){
Serial.println("PARTAMETER MIN. PANJANG 1");
_has_new_data = salah;
kembali;
}
}lain{
if (code_int >1){
Serial.println("PERLU PARAMETER!");
_has_new_data = salah;
kembali;
}
}
Serial.println();
Serial.print("masukan asal = ");
Serial.println(diterima_string);
Serial.print("alamat = ");
Serial.println(alamat);
Serial.print("kode = ");
Serial.println(kode);
Serial.print("parameter = ");
Serial.println(parameter);
// KIRIM MELALUI I2C
Wire.beginTransmission(address_int);
Wire.write(code_int);
jika (memiliki_parameter){
parameter.trim();
strcpy(param_buf, parameter.c_str());
Wire.write(param_buf);
}
Kawat.endTransmisi();
Serial.println();
Serial.println("DIKIRIM MELALUI I2C!");
Serial.println();
Serial.println("");
_has_new_data = salah;
}
}

lihat rawuno_i2c_command_input.ino dihosting dengan ❤ oleh GitHub

Langkah 4: Langkah Selanjutnya

Dari build yang disajikan, ada cukup banyak bagian yang bergerak bagi Anda untuk membangun JARINGAN IOT ASSIMILATE Anda sendiri.

Masing-masing fungsi individu dari node (sensor dan aktor) dapat dikontrol secara terdesentralisasi, tidak tergantung pada master MCU untuk memiliki pengetahuan tentang fitur yang didukung.

Aplikasi apa pun yang terhubung ke broker MQTT dapat mengontrol/mengamati setiap fitur IOT Node. Itu M2M, aplikasi web, IFTTT dan sebagainya. Antarmuka yang jauh lebih sederhana (atau lebih kaya jika Anda suka) ke dunia IoT Anda.

Direkomendasikan: