Daftar Isi:
- Langkah 1: Bahan dan Alat
- Langkah 2: Perakitan
- Langkah 3: Kode untuk UNO
- Langkah 4: Langkah Selanjutnya
Video: IOT123 - I2C BATA MASTER JIG: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
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
- PCB Universal 4cm x 6cm (1)
- Kawat pengait (~6)
- Resistor 4K7 (2) 6
- Header Pria (12P, 8P)
- Header Wanita (9P, atau 3P, 3P)
- Solder dan Besi (1)
Langkah 2: 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.
- Di bagian bawah PCB, masukkan header laki-laki (1) (2) dan solder di atas.
- Di bagian atas PCB, masukkan tajuk perempuan (3) dan solder di bagian bawah.
- Di bagian atas, lubangi kabel merah ke RED1 dan RED2.
- Di bagian bawah, melalui lubang kawat dari RED1 ke RED3.
- Di bagian bawah, melalui lubang kawat dari RED2 ke RED5, dan solder.
- Di atas, melalui lubang kawat dari RED3 ke RED4, dan solder.
- Di bagian atas, lubangi kabel merah ke RED6 dan RED7.
- Di bagian bawah, melalui lubang kawat dari RED6 ke RED8.
- Di bagian bawah, melalui lubang kawat dari RED7 ke RED10, dan solder.
- Di atas, melalui lubang kawat dari RED8 ke RED9, dan solder.
- Di bagian atas, lubangi kabel hitam ke BLACK1 dan BLACK2.
- Di bagian bawah, melalui lubang kawat dari BLACK1 ke BLACK3.
- Di bagian bawah, melalui lubang kawat dari BLACK2 ke BLACK5, dan solder.
- Di atas, melalui lubang kawat dari BLACK3 ke BLACK4, dan solder.
- Di bagian atas, lubangi kabel biru ke BIRU1 dan BIRU2.
- Di bagian bawah, melalui lubang kawat dari BIRU1 ke BIRU3.
- Di bagian bawah, melalui lubang kawat dari BIRU2 ke BIRU5, dan solder.
- Di atas, melalui lubang kawat dari BIRU3 ke BIRU4, dan solder.
- Di bagian atas, lubangi kabel hijau ke GREEN1 dan GREEN2.
- Di bagian bawah, melalui lubang kawat dari GREEN1 ke GREEN3.
- Di bagian bawah, melalui lubang kawat dari GREEN2 ke GREEN5, dan solder.
- Di atas, melalui lubang kawat dari GREEN3 ke GREEN4, dan solder.
- Di bagian atas, lubangi resistor 4K7 menjadi SILVER3 dan SILVER4.
- Di bagian bawah, melalui lubang kawat dari SILVER3 ke GREEN5, dan solder.
- Di bagian bawah, melalui lubang kawat dari SILVER4 ke RED10, dan solder.
- Di bagian atas, lubangi resistor 4K7 menjadi SILVER1 dan SILVER2.
- Di bagian bawah, melalui lubang kawat dari SILVER1 ke BLUE5, dan solder.
- Di bagian bawah, melalui lubang kawat dari SILVER2 ke RED10, dan solder.
Langkah 3: 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:
Bata Baterai Ponsel: 6 Langkah
Bata Baterai Ponsel: Ini adalah proyek akhir pekan sederhana yang bagus yang memberi Anda kesempatan untuk terus belajar menyolder di papan kecil. Ini menggunakan murah dan mudah untuk mendapatkan suku cadang untuk menjadikan ini proyek pemula yang hebat bagi siapa saja yang masuk ke proyek DIY
IOT123 - JIG PEMROGRAMAN ONBOARD ATTINY85: 3 Langkah
IOT123 - PEMROGRAMAN ONBOARD ATTINY85 JIG: Pada desain BATA, saya telah menyebutkan lubang tembus yang berdekatan dengan ATTINY85 dibiarkan tidak digunakan, untuk mengaktifkan pemrogram pin pogo sementara DIP8 disolder ke PCB. Ini adalah pemrogram pin pogo itu. Ini benar-benar hanya kabel adaptor untuk
IOT123 - BATA DAYA 3.3V: 4 Langkah
IOT123 - BATU DAYA 3.3V: BATU IOT123 adalah unit modular DIY yang dapat digabungkan dengan BATU IOT123 lainnya, untuk menambahkan fungsionalitas ke simpul atau perangkat yang dapat dikenakan. Mereka didasarkan pada inci persegi, protoboard dua sisi dengan saling berhubungan melalui lubang. Meskipun instruksi
IOT123 - 5PIN ATTINY85 NRF24L01 BATA: 4 Langkah
IOT123 - 5PIN ATTINY85 NRF24L01 BATA: PEMBARUAN: Pengaturan ini sebagian besar bersifat akademis atau dasar untuk menguji perangkat lunak/catu daya. Bahkan ketika PB5 dinonaktifkan sebagai RESET, PB5 tidak membaca nilai secara akurat menggunakan analogRead: kasus penggunaan utama untuk pembacaan sensor. Akan melihat ke dalam pengaturan ATTINY84
Perakitan JIG SERIAL PERANGKAT LUNAK IOT123 - ATTINY85: 4 Langkah
IOT123 - ATTINY85 SOFTWARE SERIAL JIG Perakitan: Saya telah menggunakan ATTINY85 untuk mashup sensor daya rendah. Awalnya saya pikir tidak ada cara untuk men-debug chip ini menggunakan konsol dan menggunakan beberapa "di luar sana" yang cantik. metode untuk mengintip apa yang terjadi run-time. Kemudian saya menemukan SoftwareSeria