Daftar Isi:
- Langkah 1: Bahan dan Alat
- Langkah 2: Siapkan ATTINY85
- Langkah 3: Merakit Sirkuit
- Langkah 4: Pengujian
- Langkah 5: Langkah Selanjutnya
Video: IOT123 - I2C KY019 BATA: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
BRICKS IOT123 adalah unit modular DIY yang dapat digabungkan dengan BRICKS IOT123 lainnya, untuk menambahkan fungsionalitas ke node atau perangkat yang dapat dikenakan. Mereka didasarkan pada inci persegi, protoboard dua sisi dengan saling berhubungan melalui lubang.
Sejumlah BRICKS ini diharapkan berada di beberapa node (Master MCU - ESP8266 atau ATTINY84) di sebuah situs. MCU tidak memerlukan pengetahuan sebelumnya tentang tujuan sensor atau kebutuhan perangkat lunak. Ini memindai node I2C kemudian meminta dump properti (data sensor) dari setiap budak. BATA ini memasok 5.0V, 3.3V dan jalur AUX lain yang dapat disesuaikan.
BATU I2C KY019 ini adalah yang pertama dari AKTOR, dan memiliki satu properti baca/tulis:
Beralih (benar/salah)
Batu bata sensor tipe Keyes akan diabstraksikan terlebih dahulu karena sudah termasuk vitamin (komponen tambahan yang diperlukan) dan relatif murah (saya membeli 37 seharga 10AUD). Papan/sirkuit lain akan diperkenalkan ke Brick I2C.
Lubang tembus yang berdekatan dengan ATTINY85 dibiarkan tidak digunakan, untuk mengaktifkan pemrogram pin pogo sementara DIP8 disolder ke PCB. Abstraksi lebih lanjut, mengemas Brick dalam silinder kecil yang dihubungkan ke hub D1M WIFI BLOCK, yang memompa nilai ke server MQTT, sedang dikembangkan.
Langkah 1: Bahan dan Alat
Ada daftar Bill of Material dan Sourcing lengkap.
- KY-019 Relai (1)
- ATTINY85 20PU (1)
- 1" protoboard dua sisi (1)
- Header Pria 90º (3P, 3P)
- Kawat pengait (~7)
- Solder dan Besi (1)
Langkah 2: Siapkan ATTINY85
CATATAN: Jika ingin memiliki integrasi Crouton, silakan gunakan perpustakaan dari sini, dan gunakan contoh yang diinstal "attiny_ky019".
AttinyCore dari Boards Manager diperlukan. Bakar bootloader "EEPROM Retained", "8mHZ Internal" (semua konfigurasi ditunjukkan di atas).
Repositori kode dapat ditemukan di sini.
ZIP perpustakaan dapat ditemukan di sini.
Petunjuk untuk "Mengimpor Perpustakaan ZIP" di sini.
Setelah perpustakaan diinstal, Anda dapat membuka contoh "attiny_ky019".
Untuk mengunggah firmware ke ATTINY85, Anda dapat menemukan detail lebih lanjut dalam instruksi ini:
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/How-to-Program-AT…
www.instructables.com/id/How-to-program-th…
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/Programming-an-At…
Terbaik untuk menguji melalui papan tempat memotong roti sebelum melanjutkan.
Jika Anda memiliki SENSOR ASSIMILATE yang ada, pastikan alamat slave berbeda pada kombinasi Host SENSOR/MCU yaitu semua aktor Relay dapat memiliki alamat yang sama selama Anda hanya memiliki satu aktor Relay pada MCU/node.
Langkah 3: Merakit Sirkuit
- Di bagian depan, masukkan komponen ATTINY85 (1), 3P 90deg male header (2)(3), dan solder di bagian belakang.
- Di bagian belakang, lacak kabel kuning dari KUNING1 ke KUNING2 dan solder.
- Di bagian belakang, lacak kabel biru dari BIRU1 ke BIRU2 dan solder.
- Di bagian belakang, lacak kabel hijau dari GREEN1 ke GREEN2 dan solder.
- Di bagian belakang, lacak kabel hitam dari BLACK1 ke BLACK2 dan solder.
- Di bagian belakang, lacak kabel hitam dari BLACK3 ke BLACK4 dan solder.
- Di bagian belakang, lacak kabel merah dari RED1 ke RED2 dan solder.
- Di bagian belakang, lacak kabel merah dari RED3 ke RED4 dan solder.
Relai sekarang dapat dihubungkan langsung melalui pinnya ke PCB atau melalui kabel, ke titik yang ditunjukkan dalam kontrak pin.
Langkah 4: Pengujian
Sejumlah BRICKS ini diharapkan berada di beberapa node (MCU - ESP8266 atau ATTINY84) di suatu lingkungan. Ini adalah tes unit: mengirimkan perintah I2C dari UNO ke ATTINY yang membuka atau menutup relai.
Kami sebelumnya telah membangun SHIELD I2C untuk Arduino.
Jika Anda ingin membuat papan tempat memotong roti sebagai gantinya:
- Hubungkan 5.0V pada UNO ke VCC pada BATA.
- Hubungkan GND di UNO ke GND di BRICK.
- Hubungkan A5 di UNO ke SCL di BATA.
- Hubungkan A4 di UNO ke SDA di BATA.
- Hubungkan resistor pull-up 4K7 dari SDA ke VCC.
- Hubungkan resistor pull-up 4K7 dari SCL ke VCC.
Menjalankan tes
- Hubungkan UNO Anda ke PC Dev Anda dengan USB.
- Unggah kode ke UNO.
- Buka Konsol Arduino. Pilih 9600 baud (mulai ulang UNO dan buka kembali konsol jika perlu).
- Alamat budak akan dicetak ke konsol.
- Ketika, masukkan di kotak kirim 2 1 (jadi 12 2 1), dan relai menyala.
- Ketika, masukkan di kotak kirim 2 0 (jadi 12 2 0), dan relai mati.
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 5: Langkah Selanjutnya
ASSIMILATE ACTOR tindak lanjut: KY019 yang menggunakan bata ini memiliki konfigurasi otomatis untuk Crouton melalui metadata yang sudah diinstal di ATTINY85 di sini. Paket JSON yang dikirim ke Crouton dikirim melalui firmware terbaru untuk ICOS10. Anda dapat melakukan Proof-of-concept pada ESP8266 biasa, jika build terlalu banyak untuk saat ini.
Sketsa UNO yang digunakan dalam Pengujian memiliki fungsi untuk menyimpan alamat slave baru ke EEPROM pada ATTINY85, jika Anda memiliki bentrokan pada bus I2C target Anda.
Beberapa skema telah ditambahkan, tetapi ada berbagai cara untuk menghubungkan rangkaian hilir tergantung pada apa yang ingin Anda capai, jadi saya akan menyerahkannya untuk 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
Proyek Penyortir Warna Bata Arduino: 5 Langkah
Proyek Penyortir Warna Bata Arduino: Dalam Tutorial Arduino ini, kita akan belajar cara mendeteksi warna bata mainan saya dengan menggunakan Arduino dan Sensor Warna TCS3200. Anda dapat membaca tutorial tertulis di bawah ini untuk lebih jelasnya.Bahan:Arduino Leonardo x 1TCS3200 x 1Banyak karton180 Servo
IOT123 - AKTOR ASIMILASI: KY019: 4 Langkah
IOT123 - ASSIMILATE ACTOR: KY019: Dengan sinyal kontrol 5V TIL yang dapat mengontrol sinyal DC / AC. Build ini didasarkan pada BATA I2C KY019. Jika Anda membutuhkan 2 saluran, saya sarankan menukar aktor ini dengan BATA RELAY 2CH. AKTOR/SENSOR ASIMILASI adalah pelaku/pengindra lingkungan
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