Isi kandungan:
- Langkah 1: Bahan dan Alat
- Langkah 2: Perhimpunan
- Langkah 3: Kod untuk UNO
- Langkah 4: Langkah Seterusnya
Video: IOT123 - JIG MASTER BRICK I2C: 4 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
Semasa mengembangkan ASSIMILATE SENSORS and ACTORS, saya tetap menggunakan UNO untuk menghantar arahan adhoc I2C ke prototaip yang sedang dibangunkan. Salah satu kelebihan I2C BRICKS adalah pinout standard. Daripada menggunakan wayar papan roti setiap kali (lihat Fritzings), perisai teknologi tinggi yang kukuh digunakan.
Langkah 1: Bahan dan Alat
- 4cm x 6cm PCB Uninersal (1)
- Kawat cangkuk (~ 6)
- Perintang 4K7 (2) 6
- Header Lelaki (12P, 8P)
- Header Wanita (9P, atau 3P, 3P)
- Pateri dan Besi (1)
Langkah 2: Perhimpunan
Sekiranya anda menggunakan header wanita off 3P dan bukan header wanita 9P off, PEMINAT ASSIMILATE / ACTOR akan dipasang di JIG tanpa melepaskannya.
Dengan pendawaian, lepaskan hingga 10mm di hujungnya dan timah hujungnya.
- Di bahagian bawah PCB, masukkan header lelaki (1) (2) dan solder di atas.
- Di bahagian atas PCB, masukkan header wanita (3) dan solder di bawah.
- Di bahagian atas, melalui lubang wayar merah menjadi RED1 dan RED2.
- Di bahagian bawah, wayar melalui lubang dari RED1 menjadi RED3.
- Di bahagian bawah, wayar melalui lubang dari RED2 menjadi RED5, dan solder.
- Di bahagian atas, wayar melalui lubang dari RED3 ke RED4, dan solder.
- Di bahagian atas, melalui lubang wayar merah menjadi RED6 dan RED7.
- Di bahagian bawah, wayar melalui lubang dari RED6 menjadi RED8.
- Di bahagian bawah, wayar melalui lubang dari RED7 menjadi RED10, dan solder.
- Di bahagian atas, wayar melalui lubang dari RED8 ke RED9, dan solder.
- Di bahagian atas, melalui lubang wayar hitam menjadi BLACK1 dan BLACK2.
- Di bahagian bawah, wayar melalui lubang dari BLACK1 menjadi BLACK3.
- Di bahagian bawah, wayar melalui lubang dari BLACK2 menjadi BLACK5, dan solder.
- Di bahagian atas, wayar melalui lubang dari BLACK3 menjadi BLACK4, dan solder.
- Di bahagian atas, melalui lubang wayar biru menjadi BLUE1 dan BLUE2.
- Di bahagian bawah, wayar melalui lubang dari BLUE1 menjadi BLUE3.
- Di bahagian bawah, wayar melalui lubang dari BLUE2 ke BLUE5, dan solder.
- Di bahagian atas, wayar melalui lubang dari BLUE3 menjadi BLUE4, dan solder.
- Di bahagian atas, melalui lubang wayar hijau menjadi HIJAU1 dan HIJAU2.
- Di bahagian bawah, wayar melalui lubang dari HIJAU1 ke HIJAU3.
- Di bahagian bawah, wayar melalui lubang dari GREEN2 menjadi GREEN5, dan solder.
- Di bahagian atas, wayar melalui lubang dari GREEN3 ke GREEN4, dan solder.
- Di bahagian atas, lubang melalui perintang 4K7 ke SILVER3 dan SILVER4.
- Di bahagian bawah, wayar melalui lubang dari SILVER3 menjadi GREEN5, dan solder.
- Di bahagian bawah, wayar melalui lubang dari SILVER4 menjadi RED10, dan solder.
- Di bahagian atas, lubang melalui perintang 4K7 ke SILVER1 dan SILVER2.
- Di bahagian bawah, wayar melalui lubang dari SILVER1 ke BLUE5, dan solder.
- Di bahagian bawah, wayar melalui lubang dari SILVER2 menjadi RED10, dan solder.
Langkah 3: Kod untuk UNO
Sketsa di sini tidak sempurna. Ia membolehkan anda menggunakan Input Konsol, untuk membuat UNO menghantar pesanan I2C ke I2C ATTINY85 BRICK.
Semua arahan dicetak ke layar, dengan pilihan yang disokong.
Perintah adhoc I2C BRICK untuk hamba dari master UNO
#sertakan |
const byte _num_chars = 32; |
char _received_chars [_num_chars]; // array untuk menyimpan data yang diterima |
boolean _has_new_data = salah; |
kekosongan () { |
Serial.begin (9600); |
Bersiri.println (); |
Serial.println ("ASSIMILATE IOT ACTOR / SENSOR EEPROM EDITOR"); |
Serial.println ("pastikan barisan baru dipilih dalam tetingkap konsol"); |
Bersiri.println (); |
Serial.println ("ALAMAT 1 CONFIRM METADATA RECEIPT N / A (FOR M2M)"); |
Serial.println ("ALAMAT 2 TINDAKAN AKTOR"); |
Bersiri.println (); |
Serial.println ("ALAMAT DI BUS:"); |
scan_i2c_addresses (); |
Bersiri.println (); |
Serial.println (""); |
} |
voidscan_i2c_addresses () { |
int device_count = 0; |
untuk (alamat bait = 8; alamat <127; alamat ++) |
{ |
Wire.beginTransmission (alamat); |
error byte const = Wire.endTransmission (); |
jika (ralat == 0) |
{ |
Serial.println (alamat); |
} |
} |
} |
kekosongan () { |
recv_with_end_marker (); |
send_to_i2c (); |
} |
voidrecv_with_end_marker () { |
bait statik ndx = 0; |
char end_marker = '\ n'; |
char rc; |
sementara (Serial.available ()> 0 && _has_new_data == false) { |
rc = Serial.read (); |
jika (rc! = end_marker) { |
_received_chars [ndx] = rc; |
ndx ++; |
jika (ndx> = _num_chars) { |
ndx = _num_chars - 1; |
} |
} |
lain { |
_received_chars [ndx] = '\ 0'; // tamatkan rentetan |
ndx = 0; |
_has_new_data = benar; |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]; |
const String diterima_string = String (_received_chars); |
jika (_has_new_data == benar) { |
int idx1 = diterima_string.indexOf (''); |
String address = diterima_string.substring (0, idx1); |
int address_int = address.toInt (); |
jika (address_int <8 || address_int> 127) { |
Serial.println ("INPUT ALAMAT INVALID:"); |
Serial.println (alamat); |
kembali; |
} |
int idx2 = diterima_string.indexOf ('', idx1 + 1); |
Kod rentetan; |
jika (idx2 == -1) { |
kod = diterima_string.substring (idx1 + 1); |
} lain { |
kod = diterima_string.substring (idx1 + 1, idx2 + 1); |
} |
int code_int = code.toInt (); |
jika (code_int <0 || code_int> 5) { |
Serial.println ("INVALID CODE INPUT:"); |
Serial.println (kod); |
kembali; |
} |
bool has_parameter = idx2> -1; |
Parameter rentetan; |
jika (mempunyai_parameter) { |
parameter = diterima_string.substring (idx2 + 1, idx2 + 17); // 16 aksara maks |
jika (parameter.length () <1) { |
Serial.println ("PARTAMETER MIN. PANJANG 1"); |
_has_new_data = salah; |
kembali; |
} |
} lain { |
jika (code_int> 1) { |
Serial.println ("PARAMETER DIPERLUKAN!"); |
_has_new_data = salah; |
kembali; |
} |
} |
Bersiri.println (); |
Serial.print ("input orig ="); |
Serial.println (menerima_string); |
Serial.print ("alamat ="); |
Serial.println (alamat); |
Serial.print ("code ="); |
Serial.println (kod); |
Serial.print ("parameter ="); |
Serial.println (parameter); |
// HANTAR VIA I2C |
Wire.beginTransmission (address_int); |
Wire.write (code_int); |
jika (mempunyai_parameter) { |
parameter.trim (); |
strcpy (param_buf, parameter.c_str ()); |
Wire.write (param_buf); |
} |
Wire.endTransmission (); |
Bersiri.println (); |
Serial.println ("SENT VIA I2C!"); |
Bersiri.println (); |
Serial.println (""); |
_has_new_data = salah; |
} |
} |
lihat rawuno_i2c_command_input.ino dihoskan dengan ❤ oleh GitHub
Langkah 4: Langkah Seterusnya
Dari binaan yang dibentangkan, terdapat cukup bahagian bergerak untuk anda membina RANGKAIAN ASSIMILATE IOT anda sendiri.
Setiap fungsi masing-masing nod (sensor dan pelakon) dapat dikendalikan dengan cara yang terdesentralisasi, tidak bergantung kepada induk MCU untuk mempunyai pengetahuan mengenai ciri yang disokong.
Sebarang aplikasi yang menyambung ke broker MQTT dapat mengawal / mengamati setiap ciri IOT Node. Itulah M2M, aplikasi web, IFTTT dan sebagainya. Antaramuka yang jauh lebih sederhana (atau lebih kaya jika anda suka) ke dunia IOT anda.
Disyorkan:
Gardenduino Aka the Master Master: 4 Langkah
Gardenduino Aka the Garden Master: juga tidak membosankan untuk membersihkan rumput, menyiram tanaman & apa yang tidak! Baik betul berkebun bukan secawan teh saya. jadi memutuskan untuk membuat sistem automatik untuk menjaga kebun saya! Mari kita mulakan
IOT123 - I2C KY019 BRICK: 5 Langkah
IOT123 - I2C KY019 BRICK: IOT123 BRICKS adalah unit modular DIY yang dapat disatukan dengan IOT123 BRICKS yang lain, untuk menambahkan fungsi pada nod atau yang boleh dipakai. Mereka didasarkan pada protoboards dua segi empat inci, bersambung melalui lubang. Sebilangan BRICK ini
IOT123 - HASIL PROTOTYPING BRICK I2C: 3 Langkah
IOT123 - HAMIL PROTOTYPING BRICK I2C: Semasa mengembangkan ACTOR ASSIMILATE terbaru (KY-019 RELAY), papan dev generik dilemparkan bersama untuk menyelamatkan saya kerja tambahan di meja saya. Ia mempunyai pinout standard dari I2C IOT123 BRICK, tetapi membolehkan sambungan khusus ke sensor dari ATT
IOT123 - IZC HEARTBEAT BRICK: 6 Langkah
IOT123 - I2C HEARTBEAT BRICK: IOT123 BRICKS adalah unit modular DIY yang dapat disatukan dengan IOT123 BRICKS yang lain, untuk menambahkan fungsi pada nod atau yang boleh dipakai. Mereka didasarkan pada protoboards dua segi empat inci, bersambung melalui lubang. Sebilangan BRICK ini
IOT123 - I2C MQ2 BRICK: 5 Langkah
IOT123 - I2C MQ2 BRICK: IOT123 BRICKS adalah unit modular DIY yang dapat disatukan dengan IOT123 BRICKS yang lain, untuk menambahkan fungsi ke simpul atau yang boleh dipakai. Mereka didasarkan pada protoboards dua segi empat inci, bersambung melalui lubang. Sebilangan BRICK ini