Isi kandungan:
- Langkah 1: Bahan dan Alat
- Langkah 2: Siapkan ATTINY85
- Langkah 3: Pasang Litar
- Langkah 4: Menguji
- Langkah 5: Langkah Seterusnya
Video: IOT123 - IZC 2CH RELAY BRICK: 5 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
IOT123 BRICKS adalah unit modular DIY yang dapat disatukan dengan IOT123 BRICKS yang lain, untuk menambahkan fungsi ke simpul atau boleh pakai. Mereka didasarkan pada protoboards dua sisi persegi, bersambung melalui lubang.
Sebilangan BRICKS ini dijangka berada di beberapa node (Master MCU - ESP8266 atau ATTINY84) di laman web. MCU tidak memerlukan pengetahuan terlebih dahulu mengenai keperluan sensor atau keperluan perisian. Ia mengimbas node I2C kemudian meminta dump harta (data sensor) dari setiap hamba. BRICK ini membekalkan 5.0V, 3.3V dan talian AUX lain yang boleh disesuaikan.
BRICK RELAY I2C 2CH ini memperluas fungsi BRICK I2C KY019, dan mempunyai dua sifat baca / tulis:
2CH RELAYS [0] (benar / salah)
2CH RELAYS [1] (benar / salah)
Lubang-lubang yang bersebelahan dengan ATTINY85 dibiarkan tidak digunakan, untuk membolehkan pengaturcara pogo pin semasa DIP8 disolder ke PCB. Pengambilan lebih lanjut, membungkus BRICKS dalam silinder kecil yang disambungkan ke hab D1M WIFI BLOCK, mengepam nilai ke pelayan MQTT, sedang dikembangkan.
Langkah 1: Bahan dan Alat
Terdapat senarai Bil Bahan dan Sumber yang lengkap.
- Relay 2 Saluran (1)
- ATTINY85 20PU (1)
- 1 "protoboard dua sisi (1)
- Header Lelaki 90º (3P, 3P)
- Header Lelaki (2P, 2P)
- Jumper Shunt (1)
- Kawat cangkuk (~ 7)
- Pateri dan Besi (1)
Langkah 2: Siapkan ATTINY85
CATATAN: Jika ingin mempunyai integrasi Crouton, sila gunakan perpustakaan dari sini, dan gunakan contoh yang dipasang "attiny_2ch_relay".
AttinyCore dari Boards Manager diperlukan. Burn bootloader "EEPROM Retained", "8mHZ Internal" (semua konfigurasi ditunjukkan di atas).
Repositori kod boleh didapati di sini.
ZIP perpustakaan boleh didapati di sini.
Arahan untuk "Mengimport Perpustakaan ZIP" di sini.
Setelah perpustakaan dipasang, anda boleh membuka contoh "attiny_2ch_relay".
Untuk memuat naik firmware ke ATTINY85, anda boleh mendapatkan lebih banyak maklumat dalam arahan ini:
www.instructables.com/id/How-to-Program-A…
www.instructables.com/id/Programming-the-…
www.instructables.com/id/Programming-the-…
www.instructables.com/id/Programming-the-…
Sebaik-baiknya diuji melalui papan roti sebelum meneruskan.
Sekiranya anda mempunyai ASSIMILATE SENSORS, pastikan alamat hamba berbeza pada kombinasi Host SENSOR / MCU iaitu semua pelakon Relay boleh mempunyai alamat yang sama selagi anda hanya mempunyai satu pelakon Relay pada MCU / nod.
Langkah 3: Pasang Litar
- Di bahagian depan, masukkan komponen ATTINY85 (1), tajuk lelaki 3P 90deg (2) (3), tajuk lelaki 3P (4) (5) dan solder di belakang.
- Di bahagian belakang, jejak wayar kuning dari KUNING1 hingga KUNING2 dan pateri.
- Di bahagian belakang, jejak wayar oren dari ORANGE1 ke ORANGE2 dan solder.
- Di bahagian belakang, jejak wayar biru dari BLUE1 ke BLUE2 dan solder.
- Di bahagian belakang, jejak wayar hijau dari GREEN1 ke GREEN2 dan solder.
- Di bahagian belakang, jejak wayar hitam dari BLACK1 ke BLACK2 dan solder.
- Di bahagian belakang, jejak wayar hitam dari BLACK3 ke BLACK4 dan solder.
- Di bahagian belakang, jejak wayar merah dari RED1 hingga RED2 dan solder.
- Di bahagian belakang, jejak wayar kosong dari RED3 hingga RED4 dan solder.
- Di bahagian belakang, jejak wayar kosong dari SILVER1 ke SILVER2 dan solder.
- Tambahkan pelompat pada garisan 5V atau 3V3.
Relay kini boleh disambungkan secara langsung melalui pin ke PCB atau melalui wayar, ke titik yang ditunjukkan dalam kontrak pin.
Langkah 4: Menguji
Sebilangan BRICKS ini dijangka berada di beberapa node (MCU - ESP8266 atau ATTINY84) di persekitaran. Ini adalah ujian unit: menghantar arahan I2C dari UNO ke ATTINY yang membuka atau menutup geganti.
Kami sebelum ini telah membina I2C SHIELD untuk Arduino.
Sekiranya anda mahu papan roti:
- Sambungkan 5.0V di UNO ke VCC di BRICK.
- Sambungkan GND di UNO ke GND di BRICK.
- Sambungkan A5 di UNO ke SCL di BRICK.
- Sambungkan A4 di UNO ke SDA di BRICK.
- Sambungkan perintang tarik 4K7 dari SDA ke VCC.
- Sambungkan perintang tarik 4K7 dari SCL ke VCC.
Menjalankan ujian
- Sambungkan UNO anda ke PC Dev anda dengan USB.
- Muat naik kod ke UNO.
- Buka Arduino Console.
- Pilih 9600 baud (mulakan semula UNO dan buka semula konsol jika perlu).
- Alamat hamba akan dicetak ke konsol.
-
Bila, masukkan dalam kotak hantar 2 0: 1 (jadi 15 2 0: 1), dan geganti CH1 dihidupkan.
- Bila, masukkan dalam kotak hantar 2 0: 0 (jadi 15 2 0: 0), dan geganti CH1 mati.
- Bila, masukkan dalam kotak hantar 2 1: 1 (jadi 15 2 1: 1), dan geganti CH2 dihidupkan.
- Bila, masukkan dalam kotak hantar 2 1: 0 (jadi 15 2 0: 0), dan geganti CH2 mati.
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 5: Langkah Seterusnya
Susulan ASSIMILATE ACTOR: 2CH RELAY yang menggunakan bata ini mempunyai konfigurasi automatik untuk Crouton melalui metadata yang sudah dipasang di ATTINY85 di sini. Paket JSON yang dihantar ke Crouton dihantar melalui firmware terbaru untuk ICOS10. Anda boleh melakukan Proof-of-concept pada ESP8266 biasa, jika binaannya terlalu banyak buat masa ini.
Sketsa UNO yang digunakan dalam Pengujian memiliki fungsi untuk menyimpan alamat budak baru ke EEPROM di ATTINY85, jika anda mengalami benturan pada bas I2C sasaran anda. Beberapa skema telah ditambahkan, tetapi terdapat pelbagai cara untuk memasang litar hilir bergantung pada apa yang anda ingin capai, jadi saya akan memberikannya untuk anda:)
Disyorkan:
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 - JIG MASTER BRICK I2C: 4 Langkah
IOT123 - I2C BRICK MASTER JIG: Semasa mengembangkan ASSIMILATE SENSORS and ACTORS, saya tetap menggunakan UNO untuk menghantar arahan I2C adhoc ke prototaip yang sedang dibangunkan. Salah satu kelebihan I2C BRICKS adalah pinout standard. Daripada menggunakan wayar papan roti setiap kali
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
IOT123 - BRICK KUAT 3.3V: 4 Langkah
IOT123 - 3.3V POWER 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 segi empat inci, dua sisi dengan saling terhubung melalui lubang. Walaupun instruksio