Isi kandungan:

IOT123 - IZC HEARTBEAT BRICK: 6 Langkah
IOT123 - IZC HEARTBEAT BRICK: 6 Langkah

Video: IOT123 - IZC HEARTBEAT BRICK: 6 Langkah

Video: IOT123 - IZC HEARTBEAT BRICK: 6 Langkah
Video: IOT123 - BYKO LIVE RIDE 2024, Jun
Anonim
IOT123 - JENIS HATI-HATI I2C
IOT123 - JENIS HATI-HATI I2C
IOT123 - JENIS HEARTBEAT I2C
IOT123 - JENIS HEARTBEAT I2C
IOT123 - JENIS HEARTBEAT I2C
IOT123 - JENIS HEARTBEAT I2C

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 HEARTBEAT I2C ini menunjukkan sama ada budak ATTINY masih hidup, juga lalu lintas I2C, dan mempunyai satu harta:

STATUS ("HIDUP")

PB1 (putih) menunjukkan kesihatan yang SIHAT.

PB3 (kuning) bertukar dengan permintaan I2C dari master.

PB4 (oren) bertukar dengan penerimaan I2C dari induk.

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

Bahan dan Alat
Bahan dan Alat
Bahan dan Alat
Bahan dan Alat
Bahan dan Alat
Bahan dan Alat
Bahan dan Alat
Bahan dan Alat

Terdapat senarai Bil Bahan dan Sumber yang lengkap.

  1. PCB kertas (7 x 7 lubang)
  2. LEDS (Merah, Hijau, Biru)
  3. Perintang (3 dari 1K)
  4. ATTINY85 20PU (1)
  5. 1 "protoboard dua sisi (1)
  6. Header Lelaki 90º (3P, 3P)
  7. Header Lelaki (2P, 2P)
  8. Jumper Shunt (1)
  9. Kawat cangkuk (~ 7)
  10. Pateri dan Besi (1)

Langkah 2: Siapkan ATTINY85

Siapkan ATTINY85
Siapkan ATTINY85
Siapkan ATTINY85
Siapkan ATTINY85
Siapkan ATTINY85
Siapkan ATTINY85
Siapkan ATTINY85
Siapkan ATTINY85

CATATAN: Jika ingin mempunyai integrasi Crouton, sila gunakan perpustakaan dari sini, dan gunakan contoh yang dipasang "attiny_heartbeat"

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_heartbeat".

Untuk memuat naik firmware ke ATTINY85, anda boleh mendapatkan lebih banyak butiran dalam arahan berikut:

www.instructables.com/id/Programming-the-….

www.instructables.com/id/How-to-Program-A…

www.instructables.com/id/Programming-the-…

www.instructables.com/id/How-to-Program-A…

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 mis. semua pelakon Relay boleh mempunyai alamat yang sama selagi anda hanya mempunyai satu pelakon Relay pada MCU / nod.

Langkah 3: Menyusun Petunjuk

Menghimpunkan Petunjuk
Menghimpunkan Petunjuk
Menghimpunkan Petunjuk
Menghimpunkan Petunjuk
Menghimpunkan Petunjuk
Menghimpunkan Petunjuk

Petunjuk dimaksudkan untuk disesuaikan sepenuhnya. Ini adalah isyarat peristiwa dari litar utama yang dilihat sebagai Denyutan Jantung. Untuk membina ini, kami akan menggunakan petunjuk LED; binaan anda boleh menggunakan geganti (ya VCC rosak) atau penunjuk berdasarkan visual / isyarat lain. Nilai perintang akan bergantung pada pilihan peribadi mengenai seberapa terang yang anda mahukan.

  1. Di bahagian atas, masukkan LED biru ke RED1 (+) dan BLACK1 (G), dan pateri di bahagian bawah.
  2. Di bahagian bawah, bengkokkan plumbum dari RED1 sehingga menyentuh pad tembaga pada SILVER8 dan potong.
  3. Di bahagian bawah, potong plumbum dari BLACK1 di atas pateri.
  4. Di bahagian atas, masukkan LED hijau ke dalam RED2 (+) dan BLACK2 (G), dan pateri di bahagian bawah.
  5. Di bahagian bawah, bengkokkan plumbum dari RED2 sehingga menyentuh pad tembaga pada SILVER9 dan potong.
  6. Di bahagian bawah, potong plumbum dari BLACK2 di atas pateri.
  7. Di bahagian atas, masukkan LED merah ke dalam RED3 (+) dan BLACK3 (G), dan pateri di bahagian bawah.
  8. Di bahagian bawah, bengkokkan plumbum dari RED3 sehingga menyentuh pad tembaga pada SILVER10 dan potong.
  9. Di bahagian bawah, potong plumbum dari BLACK3 di atas pateri.
  10. Di bahagian atas, masukkan perintang 1K ke lubang melalui SILVER1 dan SILVER4.
  11. Di bahagian bawah, jejak, trim dan pateri solder dari SILVER1 ke BLACK1.
  12. Di bahagian atas, masukkan perintang 1K ke lubang melalui SILVER2 dan SILVER4.
  13. Di bahagian bawah, jejak, trim dan pateri solder dari SILVER2 ke BLACK2.
  14. Di bahagian atas, masukkan perintang 1K ke lubang melalui SILVER3 dan SILVER4.
  15. Di bahagian bawah, jejak, trim dan pateri solder dari SILVER3 ke BLACK3.
  16. Di bahagian bawah, wayar solder pada SILVER4 dan potong lebih kurang 5mm.
  17. Di bahagian bawah, pateri wayar hitam ke SILVER4.
  18. Di bahagian bawah, pasangkan wayar putih ke SILVER5, memastikan kesinambungan untuk memimpin dari RED1.
  19. Di bahagian bawah, pasangkan wayar kuning ke SILVER6, memastikan kesinambungan untuk memimpin dari RED2.
  20. Di bahagian bawah, pasangkan wayar oren ke SILVER7, memastikan kesinambungan untuk memimpin dari RED3.

Langkah 4: Memasang Litar Utama

Memasang Litar Utama
Memasang Litar Utama
Memasang Litar Utama
Memasang Litar Utama
Memasang Litar Utama
Memasang Litar Utama

Perhimpunan:

  1. Di bahagian depan, masukkan komponen ATTINY85 (1), tajuk lelaki 3P 90deg (2) (3), tajuk lelaki 3P (4) (5) dan solder di belakang.
  2. Di bahagian belakang, jejak wayar kuning dari KUNING1 hingga KUNING2 dan pateri.
  3. Di bahagian belakang, jejak wayar oren dari ORANGE1 ke ORANGE2 dan solder.
  4. Di bahagian belakang, jejak wayar biru dari BLUE1 ke BLUE2 dan solder.
  5. Di bahagian belakang, jejak wayar hijau dari GREEN1 ke GREEN2 dan solder.
  6. Di bahagian belakang, jejak wayar putih dari WHITE1 ke WHITE2 dan solder.
  7. Di bahagian belakang, jejak wayar hitam dari BLACK1 ke BLACK2 dan solder.
  8. Di bahagian belakang, jejak wayar hitam dari BLACK3 ke BLACK4 dan solder.
  9. Di bahagian belakang, jejak wayar merah dari RED1 hingga RED2 dan solder.
  10. Di bahagian belakang, jejak wayar kosong dari RED3 hingga RED4 dan solder.
  11. Di bahagian belakang, jejak wayar kosong dari SILVER1 ke SILVER2 dan solder.
  12. Tambahkan pelompat pada garisan 5V atau 3V3.

Sekiranya menggunakan Petunjuk di atas (rujuk gambarajah pinout):

  1. Di bahagian belakang, pasangkan wayar putih ke dalam PB1.
  2. Di bahagian belakang, pasangkan wayar kuning ke dalam PB3.
  3. Di bahagian belakang, pasangkan wayar oren ke dalam PB4.
  4. Di bahagian belakang, pasangkan wayar hitam ke dalam GND.

Langkah 5: Menguji

Ujian
Ujian
Ujian
Ujian
Ujian
Ujian
Ujian
Ujian

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 menukar LED Terima. LED ATTINY ALIVE kekal menyala.

Kami sebelum ini telah membina I2C SHIELD untuk Arduino.

Sekiranya anda mahu papan roti:

  1. Sambungkan 5.0V di UNO ke VCC di BRICK.
  2. Sambungkan GND di UNO ke GND di BRICK.
  3. Sambungkan A5 di UNO ke SCL di BRICK.
  4. Sambungkan A4 di UNO ke SDA di BRICK.
  5. Sambungkan perintang tarik 4K7 dari SDA ke VCC.
  6. Sambungkan perintang tarik 4K7 dari SCL ke VCC.

Menjalankan ujian

  1. Sambungkan UNO anda ke PC Dev anda dengan USB.
  2. Muat naik kod ke UNO.
  3. Buka Arduino Console.
  4. Pilih 9600 baud (mulakan semula UNO dan buka semula konsol jika perlu).
  5. Alamat hamba akan dicetak ke konsol.
  6. Bila, masukkan dalam kotak hantar 2 1 (jadi 16 2 1), dan LED Terima akan menyala.
  7. Bila, masukkan dalam kotak hantar 2 0 (jadi 16 2 0), dan LED Terima 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 6: Langkah Seterusnya

Langkah seterusnya
Langkah seterusnya
Langkah seterusnya
Langkah seterusnya

Tindak balas ASSIMILATE ACTOR: HEARTBEAT 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.

Disyorkan: