Daftar Isi:

IOT123 - ASSIMILATE SENSOR HUB: ICOS10 KUSTOMISASI WEBSEREVER: 11 Langkah
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 KUSTOMISASI WEBSEREVER: 11 Langkah

Video: IOT123 - ASSIMILATE SENSOR HUB: ICOS10 KUSTOMISASI WEBSEREVER: 11 Langkah

Video: IOT123 - ASSIMILATE SENSOR HUB: ICOS10 KUSTOMISASI WEBSEREVER: 11 Langkah
Video: IOT123 - ASSIMILATE SENSOR HUB: ICOS10 IDC PANEL ASSEMBLY 2024, November
Anonim
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 KUSTOMISASI WEBSEREVER
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 KUSTOMISASI WEBSEREVER
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 KUSTOMISASI WEBSEREVER
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 KUSTOMISASI WEBSEREVER
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 KUSTOMISASI WEBSEREVER
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 KUSTOMISASI WEBSEREVER

Slave ASSIMILATE SENSOR/ACTOR menyematkan metadata yang digunakan untuk menentukan visualisasi di Crouton. Build ini menambahkan server web ke Master ESP8266, menyajikan beberapa file konfigurasi yang dapat dimodifikasi oleh pengguna, kemudian menggunakan file tersebut untuk mendefinisikan kembali visualisasi. Jadi nama kartu dasbor dan sebagian besar properti yang dapat dikonfigurasi dapat diubah. Ini diperlukan misalnya DHT11 menerbitkan properti Suhu dan Kelembaban: jika sebuah situs memiliki beberapa node dengan sensor DHT11 terpisah, semuanya tidak dapat disebut Suhu (Suhu Garasi, Suhu Yard…). Pembatasan panjang metadata yang ditetapkan oleh Bus I2C (16 karakter) tidak ada dan nilai yang lebih kaya dapat diterapkan (hingga 64 karakter).

Otentikasi Dasar Opsional dapat dikonfigurasi untuk halaman web edit, serta daftar pengecualian dari Otentikasi untuk sumber daya lainnya.

Sakelar sisi rendah yang mematikan slave bila perlu, juga telah dikembangkan pada papan anak yang ada.

Sebagai catatan teknis, sebelum memulai pembangunan ini, jejak memori adalah 70% karena grafik objek metadata global. Pustaka AssimilateBus terbaru telah memecah perubahan yang memisahkan variabel global menjadi file JSON yang lebih kecil yang disimpan ke SPIFFS. Ini telah mengembalikan jejak ke ~50%, yang lebih aman untuk semua penguraian/pembangunan JSON. Pustaka AssimilateBusSlave tetap sama (ASSIM_VERSION 2) selama perubahan ini.

FITUR DAN VISI

Saat ini Budak (sensor dan aktor) mandiri dan bergantung pada pesan I2C berbasis konvensi untuk membaca properti atau bertindak berdasarkan perintah. Master mengambil metadata dan properti dari slave dan mengirimkannya ke broker MQTT. Itu juga memulai server web dan menyajikan file JSON yang dapat diedit untuk mengonfigurasi master dan menyesuaikan metadata/properti yang akhirnya dikonsumsi oleh Crouton. Sensor/aktor individu dibaca/diperintahkan melalui Crouton tanpa master memiliki pengetahuan sebelumnya tentang apa yang dilakukan budak.

Salah satu tujuan dari ASSIMILATE IOT NETWORK adalah untuk menyesuaikan Crouton sehingga editor mashup yang disajikan dari server web IOT NODE (seperti build ini), ditambahkan sebagai komponen web yang akan memberikan kontrol penuh atas apa yang dilakukan yaitu master tidak diprogram, budak memiliki set fitur dasar tetapi dasbor Crouton menyematkan semua aturan bisnis yang diperlukan untuk menjalankannya!

Garpu Crouton dipandang sebagai opsi untuk kontrol/konfigurasi yang terdesentralisasi. Intinya setiap kombinasi klien/GUI MQTT dapat mengelola barang-barang Anda, karena setiap fungsi (sensor dan aktor) diekspos sebagai titik akhir MQTT.

Langkah 1: Crouton

Crouton
Crouton
Crouton
Crouton

Crouton. https://crouton.mybluemix.net/ Crouton adalah dasbor yang memungkinkan Anda memvisualisasikan dan mengontrol perangkat IoT Anda dengan pengaturan minimal. Pada dasarnya, ini adalah dasbor termudah untuk disiapkan untuk semua penggemar perangkat keras IOT yang hanya menggunakan MQTT dan JSON.

ASSIMILATE SLAVES (sensor dan aktor) telah menyematkan metadata dan properti yang digunakan master untuk membangun paket deviceInfo json yang digunakan Crouton untuk membangun dasbor. Perantara antara ASSIMILATE NODES dan Crouton adalah broker MQTT yang ramah websocket: Nyamuk digunakan untuk demo.

Saat ASSIMILATE MASTER (build ini) meminta properti, ia memformat nilai respons dalam format yang diperlukan untuk pembaruan Crouton.

Langkah 2: Server Web / Editor

Server Web / Editor
Server Web / Editor
Server Web / Editor
Server Web / Editor

Saat Master mem-boot (build ini) server web tertanam dimulai. Alamat IP adalah output ke Konsol Serial; akhirnya ini akan dipublikasikan ke dasbor Crouton.

Saat Anda menelusuri URL yang disebutkan, ACE EDITOR akan dimuat:

Ace adalah editor kode yang dapat disematkan yang ditulis dalam JavaScript. Ini cocok dengan fitur dan kinerja editor asli seperti Sublime, Vim dan TextMate.

Ace populer dengan server web tertanam dan memberikan antarmuka yang baik untuk mengedit dan menyimpan file JSON.

Mengklik nama file di sebelah kiri akan membaca file dari SPIFFS di ESP8266, dan memuat konten untuk diedit di sebelah kanan. File dapat disimpan dari toolbar atas.

Untuk mengunggah file:

  1. Pilih File dari sistem file lokal Anda.
  2. Masukkan jalur folder (jika diperlukan) di kotak teks.
  3. Klik Unggah.
  4. Segarkan halaman.

Langkah 3: Kustomisasi Perangkat

Kustomisasi Perangkat
Kustomisasi Perangkat

Konfigurasi perangkat (ESP8266) dilakukan melalui file device.json.

Beberapa entri ini (wifi_ssid, wifi_key) perlu dimodifikasi sebelum Anda mengunggah data ke SPIFFS (ESP8266 Sketch Data Upload).

Jelajahi ke root server web (ditampilkan di output konsol seperti

MENGEDIT

Di ACE EDITOR pilih config/device.json.

Entrinya adalah:

  • www_auth_username: nama pengguna otorisasi untuk file server web (kosongkan untuk bukan otorisasi).
  • www_auth_password: kata sandi otorisasi untuk file server web (jika nama pengguna ditentukan).
  • www_auth_exclude_files: daftar jalur file yang dipisahkan titik koma untuk dikecualikan dari pemeriksaan otorisasi (jika nama pengguna ditentukan).
  • sensor_interval: milidetik antara publikasi data ke Broker MQTT.
  • ntp_server_name: nama server waktu yang akan digunakan.
  • time_zone: offset dalam jam untuk waktu lokal Anda.
  • wifi_ssid: SSID Titik Akses lokal Anda.
  • wifi_key: kunci yang digunakan untuk SSID.
  • mqtt_broker: alamat broker MQTT.
  • mqtt_username: nama pengguna yang akan digunakan untuk broker MQTT (kosong tanpa perlu akun).
  • mqtt_password: kata sandi yang akan digunakan dari nama pengguna MQTT.
  • mqtt_port: port pialang MQTT.
  • mqtt_device_name: nama yang akan digunakan untuk topik MQTT dan identifikasi Crouton.
  • mqtt_device_description: deskripsi perangkat yang ditampilkan di Crouton.
  • viz_color: warna untuk mengidentifikasi kartu perangkat di Crouton (dalam versi bercabang)

Langkah 4: Kustomisasi Properti

Kustomisasi Properti
Kustomisasi Properti
Kustomisasi Properti
Kustomisasi Properti
Kustomisasi Properti
Kustomisasi Properti

Setiap Slave memiliki array struct nvc yang didefinisikan dalam file definition.h:

//--------------------------------------------------- PROPERTI YANG DITERBITKAN

nvc props[2] ={ {"Kelembaban", "", benar}, {"Suhu", "", salah} }; //---------------------------------------- AKHIR PROPERTI YANG DITERBITKAN

Setiap entri memiliki indeks dengan yang pertama adalah 0 (nol).

Kustomisasi nama properti dilakukan melalui file user_props.json.

Jelajahi ke root server web (ditampilkan di output konsol seperti

MENGEDIT

Di ACE EDITOR pilih config/user_props.json (atau unggah satu).

Strukturnya adalah:

Kunci pertama adalah Alamat Budak dalam file definition.h seperti yang diidentifikasi oleh:

#define ADDRESS_SLAVE XX

  • Tingkat kunci berikutnya adalah Indeks Properti.
  • Nilai dari kunci itu adalah Nama Properti yang akan digunakan di Crouton, bukan Nama Properti yang ditentukan dalam file definisi.

Langkah 5: Kustomisasi Metadata

Penyesuaian Metadata
Penyesuaian Metadata
Penyesuaian Metadata
Penyesuaian Metadata
Penyesuaian Metadata
Penyesuaian Metadata
Penyesuaian Metadata
Penyesuaian Metadata

Karena banyaknya kemungkinan penyesuaian, setiap slave memiliki file modifikasi metadatanya sendiri. File harus dalam format user_metas_.json.

Alamat slave ditemukan dalam file definition.h dalam sketsa ATTINY85:

#define ADDRESS_SLAVE XX

Metadata didefinisikan dalam file yang sama seperti ini:

const static char viz1 PROGMEM = "VIZ_CARD_TYPE";

const static char viz2 PROGMEM = "2:chart-donut"; const static char viz3 PROGMEM = "1";

Baris pertama adalah nama item metadata.

Baris kedua adalah nilai. Biasanya memiliki akhiran indeks properti.

Baris ketiga adalah bendera lanjutan. 1 - lanjutkan, 0 - akhir metadata (VCC_MV).

Jelajahi ke root server web (ditampilkan di output konsol seperti

MENGEDIT

Di ACE EDITOR pilih config/user_metas_SLAVE_ADDRESS.json (atau unggah satu). Strukturnya adalah:

  • Array pasangan nama/nilai.
  • Name adalah nama item metadata yang akan diubah.
  • Nilai adalah perubahan. Akhiran indeks diperiksa untuk penggantian.

Langkah 6: Bahan dan Alat

Bahan dan alat
Bahan dan alat
Bahan dan alat
Bahan dan alat
Bahan dan alat
Bahan dan alat

ICOS10 (IDC) Shell Bill of Material

  1. D1M BLOK Pin Jig (1)
  2. Dasar dan rumah BLOK D1M (1)
  3. Wemos D1 Mini (1)
  4. Perisai Protoboard Mini Wemos D1 (1)
  5. Header Wanita 40P (8P, 8P, 9P, 9P)
  6. Header Pria 90º (3P, 3P, 3P, 2P, 1P, 2P)
  7. 1" protoboard dua sisi (2)
  8. 2N7000 NFET (1)
  9. 6 Pin Terselubung IDC Male Header (1)
  10. Kawat penghubung (~ 10)
  11. Kawat Kaleng 0.5mm (~4)
  12. Sekrup self-tapping kepala tombol 4G x 15mm (2)
  13. Sekrup countersunk self-tapping 4G x 6mm (~20)
  14. Solder dan Besi (1)

Langkah 7: Persiapan MCU

Image
Image
Persiapan MCU
Persiapan MCU

Dalam build ini kami menggunakan Wemos D1 Mini. Jika sebelumnya Anda telah membuat BLOK WIFI D1M, Anda dapat menggunakannya untuk komponen perangkat keras modular. Jika tidak, minimal ikuti bagian selanjutnya.

SOLDER PIN HEADER PADA MCU (menggunakan PIN JIG)Jika Anda tidak dapat mencetak PIN JIG cukup ikuti instruksi dan improvisasi: tinggi (offset) PIN JIG adalah 6,5mm.

  1. Cetak/dapatkan PIN JIG dari halaman ini.
  2. Masukkan pin header melalui bagian bawah papan (TX kanan-kiri) dan ke dalam jig solder.
  3. Tekan pin ke permukaan datar yang keras.
  4. Tekan papan dengan kuat ke jig.
  5. Solder 4 pin sudut.
  6. Panaskan kembali dan posisikan kembali papan/pin jika diperlukan (papan atau pin tidak sejajar atau tegak lurus).
  7. Solder sisa pin.

MENGUnggah FIRMWARE

Repositori kode dapat ditemukan di sini (snapshot).

ZIP perpustakaan dapat ditemukan di sini (snapshot).

Petunjuk untuk "Mengimpor Perpustakaan ZIP" di sini.

Setelah perpustakaan diinstal, Anda dapat membuka contoh "mqtt_crouton_esp8266_customization_webserver".

Petunjuk untuk menyiapkan Arduino untuk Wemos D1 Mini di sini.

Dependensi: ArduinoJson, TimeLib, PubSubClient, NeoTimer (lihat lampiran jika melanggar perubahan dalam repositori).

UPLOAD KE SPIFFS

Setelah kode dimuat ke Arduino IDE, buka device.json di folder data/config:

  1. Ubah nilai wifi_ssid dengan SSID WiFi Anda.
  2. Ubah nilai wifi_key dengan Kunci WiFi Anda.
  3. Ubah nilai mqtt_device_name dengan Identifikasi Perangkat pilihan Anda (tidak perlu bergabung).
  4. Ubah nilai mqtt_device_description dengan Deskripsi Perangkat pilihan Anda (dalam Crouton).
  5. Simpan perangkat.json.
  6. Unggah file data ke SPIFFS.

Langkah 8: Persiapan Perumahan MCU

Image
Image
Persiapan Perumahan MCU
Persiapan Perumahan MCU
Persiapan Perumahan MCU
Persiapan Perumahan MCU

Housing MCU memperlihatkan header untuk D1 Mini untuk dicolokkan dan header untuk papan anak yang berkomunikasi dengan sirkuit Socket (sensor dan aktor).

HOUSING HEADERS Ini didasarkan pada D1 Mini Protoboard, dan memecah pin ini:

  1. Pin untuk D1M WIFI BLOCK/D1 Mini untuk dihubungkan.
  2. Jeda langsung dari 2 baris kontak dari D1M WIFI BLOCK/D1 Mini. Ini hanya tersedia untuk kenyamanan saat membuat prototipe. Diharapkan papan anak akan memblokir semua akses ke header ini.
  3. 4 Penembusan pin khusus yang digunakan oleh papan anak.

Untuk menambahkan Kontak D1M ke HOUSING HEADER:

  1. Tonton video SOLDER MENGGUNAKAN SOCKET JIG.
  2. Masukkan pin header melalui bagian bawah papan (TX kiri atas di sisi atas).
  3. Umpan jig di atas tajuk plastik dan ratakan kedua permukaan.
  4. Balikkan jig dan rakitan dan tekan header dengan kuat ke permukaan datar yang keras.
  5. Tekan papan dengan kuat ke jig.
  6. Solder 4 pin sudut menggunakan solder minimal (hanya penjajaran pin sementara).
  7. Panaskan kembali dan posisikan kembali papan/pin jika diperlukan (papan atau pin tidak sejajar atau tegak lurus).
  8. Solder sisa pin.
  9. Lepaskan jignya.
  10. Potong pin di atas solder.

Untuk menambahkan Daughter-board Breakouts:

  1. Potong 4 header 9P Female.
  2. Di bagian atas, masukkan Header 9P seperti yang ditunjukkan, dan solder di bagian bawah.

Untuk menambahkan Breakout Langsung:

  1. Potong 2 header 8P Female.
  2. Di bagian atas, masukkan Header 8P seperti yang ditunjukkan, dan solder di bagian bawah.

Untuk menghubungkan header, di bagian bawah dengan pin TX berorientasi ke atas:

  1. Lacak dan solder dari pin RST di 4 pin.
  2. Lacak dan solder dari pin A0 melintasi 4 pin.
  3. Lacak dan solder dari pin D1 di 4 pin.
  4. Lacak dan solder dari pin D2 di 4 pin.
  5. Lacak dan solder dari pin D0 ke bawah 2 baris dan melintasi 4 pin.
  6. Lacak dan solder dari pin D7 di 4 pin.
  7. Lacak dan solder dari pin GND di 4 pin.
  8. Lacak dan solder dari pin 5V di 4 pin.
  9. Lacak dan solder dari pin 3V3 ke bawah 45° di 4 pin.

MERAKIT PERLENGKAPAN

HOUSING HEADERS ditempelkan ke MCU HOUSING dan ini ditempelkan ke BASE PLATE.

  1. Dengan sisi panjang HOUSING HEADERS mengarah ke lubang, masukkan D1M CONTACTS ke dalam bukaan di MCU HOUSING dan tekan flush ke bawah.
  2. Masukkan MCU ke MCU CONTACTS selama pemasangan untuk memastikan keselarasan yang benar.
  3. Tempatkan HEADER FRAME di atas perlengkapan rakitan dan tempelkan dengan 2 sekrup 4G x 16mm.
  4. Tempatkan perlengkapan rakitan dengan lubang mengarah ke sisi pendek dan pasang dengan sekrup 4G x 6mm.

Langkah 9: Membangun Slave Low-side Switch/RESET Daughter-board

Membangun Saklar Sisi Rendah Budak/RESET Daughter-board
Membangun Saklar Sisi Rendah Budak/RESET Daughter-board
Membangun Saklar Sisi Rendah Budak/RESET Daughter-board
Membangun Saklar Sisi Rendah Budak/RESET Daughter-board
Membangun Saklar Sisi Rendah Budak/RESET Daughter-board
Membangun Saklar Sisi Rendah Budak/RESET Daughter-board

Ini adalah peningkatan dari pengembangan terakhir papan putri REST yang dikembangkan. Ini menambahkan sakelar sisi rendah yang menghubungkan budak ke GROUND. Jika master diatur ulang, budak juga akan, dan inisialisasi yang menyebarkan metadata akan dimulai lagi.

PERAKITAN

  1. Di bagian dalam, masukkan 9P 90° Male Header (1), 1P 90° Male Header (2), 2N7000 (3), dan lepas solder di bagian luar.
  2. Di bagian dalam, lacak kabel kuning dari KUNING1 ke KUNING2 dan solder.
  3. Di bagian dalam, lacak kawat telanjang dari SILVER1 ke SILVER2 dan solder.
  4. Di bagian dalam, lacak kawat telanjang dari SILVER3 ke SILVER4 dan solder.

Langkah 10: Merakit Komponen Utama

Merakit Komponen Utama
Merakit Komponen Utama
Merakit Komponen Utama
Merakit Komponen Utama
Merakit Komponen Utama
Merakit Komponen Utama
Merakit Komponen Utama
Merakit Komponen Utama
  1. Pastikan SHELL telah dibuat dan sirkuit diuji (kabel dan soket).
  2. Ganti header 2P Male di 3V3 I2C DAUGHTER-BOARD dengan 2P 90º 1P Male Header.
  3. Masukkan 3V3 I2C DAUGHTER-BOARD, dengan pin 3V3 di ujung header yang tidak rata (lihat gambar).
  4. Masukkan LOW-SIDE SWITCH/RESET DAUGHTER-BOARD, dengan kabel di bagian dalam (lihat gambar).
  5. Lacak keunggulan Dupont antara Header Pria 90º 1P di RESET DAUGHTER-BOARD ke 3V3 I2C DAUGHTER-BOARD.
  6. Masukkan Soket IDC dari KABEL SHELL ke Header IDC pada DAUGHTER-BOARD 3V3 I2C.
  7. Masukkan DAUGHTER-BOARDS/HOUSING dengan hati-hati di antara kabel di SHELL dan sejajarkan lubang dasar.
  8. Kencangkan PERAKITAN DASAR ke SHELL dengan sekrup 4G x 6mm.
  9. Lampirkan SENSOR ASSIMILATE yang telah Anda buat.

Langkah 11: Langkah Selanjutnya

Image
Image
Langkah selanjutnya
Langkah selanjutnya
Langkah selanjutnya
Langkah selanjutnya
  1. Arahkan browser Anda ke
  2. Pastikan brokernya adalah test.mosquitto.org.
  3. Klik Hubungkan.
  4. Masukkan input Nama perangkat sebagai mqtt_device_name di file /config/device.json.
  5. Klik Tambahkan Perangkat.
  6. Klik Sambung otomatis.
  7. Nyalakan ICOS10 Anda (5V MicroUSB).
  8. Verifikasi melalui dasbor Crouton.

Direkomendasikan: