Isi kandungan:

Bermula dengan Sensor Suhu dan Getaran Tanpa Wayar jarak jauh: 7 Langkah
Bermula dengan Sensor Suhu dan Getaran Tanpa Wayar jarak jauh: 7 Langkah

Video: Bermula dengan Sensor Suhu dan Getaran Tanpa Wayar jarak jauh: 7 Langkah

Video: Bermula dengan Sensor Suhu dan Getaran Tanpa Wayar jarak jauh: 7 Langkah
Video: Detik-Detik Pegawai PLN Kesetrum di Tiang Listrik 2024, Julai
Anonim
Bermula dengan Sensor Suhu dan Getaran Tanpa Wayar jarak jauh
Bermula dengan Sensor Suhu dan Getaran Tanpa Wayar jarak jauh

Kadang-kadang getaran adalah penyebab masalah serius dalam banyak aplikasi. Dari poros mesin dan galas hingga prestasi cakera keras, getaran menyebabkan kerosakan mesin, penggantian awal, prestasi rendah, dan menimbulkan kejatuhan besar. Pemantauan dan analisis getaran pada masa ke masa pada mesin dapat menyelesaikan masalah kerosakan awal dan keausan bahagian mesin.

Dalam arahan ini, kami akan mengerjakan sensor getaran dan suhu tanpa wayar jarak jauh IoT. Ini adalah sensor kelas industri dengan banyak aplikasi seperti.

  • Kerja logam
  • Penjanaan kuasa
  • Perlombongan
  • Makanan dan minuman

Jadi, Dalam Instruksional ini kita akan melalui perkara berikut:

  • Mengkonfigurasi Sensor Tanpa Wayar menggunakan XCTU dan Labview UI.
  • Mendapatkan nilai getaran dari sensor.
  • Memahami cara kerja peranti xbee dan protokol xbee.
  • Mengkonfigurasi kelayakan WiFi dan konfigurasi IP menggunakan portal tawanan

Langkah 1: Spesifikasi Perkakasan dan Perisian

Spesifikasi Perkakasan dan Perisian
Spesifikasi Perkakasan dan Perisian
Spesifikasi Perkakasan dan Perisian
Spesifikasi Perkakasan dan Perisian
Spesifikasi Perkakasan dan Perisian
Spesifikasi Perkakasan dan Perisian

Spesifikasi Perkakasan

  • Sensor Getaran dan Suhu Tanpa Wayar
  • Penerima Zigmo
  • Peranti ESP32 BLE / WiFi

Spesifikasi Perisian

  • Arduino IDE
  • Utiliti LabView

Langkah 2: Mengkonfigurasi Sensor Tanpa Wayar dan Penerima Zigmo Menggunakan XCTU

Mengkonfigurasi Sensor Tanpa Wayar dan Penerima Zigmo Menggunakan XCTU
Mengkonfigurasi Sensor Tanpa Wayar dan Penerima Zigmo Menggunakan XCTU
Mengkonfigurasi Sensor Tanpa Wayar dan Penerima Zigmo Menggunakan XCTU
Mengkonfigurasi Sensor Tanpa Wayar dan Penerima Zigmo Menggunakan XCTU

Setiap peranti IoT memerlukan protokol komunikasi untuk meletakkan peranti di atas awan dan menyiapkan antara muka tanpa wayar antara peranti yang berbeza.

Di sini Wireless Sensor dan Zigmo Receiver menggunakan XBee penyelesaian kuasa rendah dan jarak jauh. XBee menggunakan protokol ZigBee yang menentukan operasi pada jalur ISM 902 hingga 928 MHz.

Xbee dapat dikonfigurasikan menggunakan perisian XCTU

  1. Cari peranti Xbee atau tambahkan peranti Xbee baru dengan mengklik ikon kiri atas.
  2. Peranti akan disenaraikan di panel sebelah kiri.
  3. klik dua kali pada peranti untuk melihat tetapannya.
  4. Sekarang klik pada ikon konsol di sudut kanan atas
  5. Anda dapat melihat nilai yang terdapat pada output konsol
  6. Di sini kita mendapat kerangka panjang 54 bait
  7. bait ini akan dimanipulasi lebih jauh untuk mendapatkan nilai sebenar. prosedur untuk mendapatkan nilai suhu dan getaran sebenar disebutkan dalam langkah yang akan datang.

Langkah 3: Analisis Nilai Suhu dan Getaran Tanpa Wayar Menggunakan Utiliti Labview

Analisis Nilai Suhu dan Getaran Tanpa Wayar Menggunakan Utiliti Labview
Analisis Nilai Suhu dan Getaran Tanpa Wayar Menggunakan Utiliti Labview
Analisis Nilai Suhu dan Getaran Tanpa Wayar Menggunakan Utiliti Labview
Analisis Nilai Suhu dan Getaran Tanpa Wayar Menggunakan Utiliti Labview

Sensor dijalankan dalam dua mod

  • Mod Konfigurasi: Konfigurasikan ID Pan, kelewatan, Jumlah percubaan dan lain-lain. Lebih lanjut mengenai perkara ini berada di luar skop arahan ini dan akan dijelaskan dalam arahan selanjutnya.
  • Run Mode: Kami menjalankan peranti dalam mod Run. Dan untuk menganalisis nilai ini kami menggunakan Labview Utility

UI Labview ini menunjukkan nilai dalam grafik yang bagus. Ia menunjukkan nilai semasa dan masa lalu. Anda boleh pergi ke pautan ini untuk memuat turun Uji Labview.

klik pada ikon Run dari menu halaman arahan untuk pergi ke mode run.

Langkah 4: Mengkonfigurasi Tetapan IP DHCP / Statik Menggunakan Captive Portal

Mengkonfigurasi Tetapan IP DHCP / Statik Menggunakan Captive Portal
Mengkonfigurasi Tetapan IP DHCP / Statik Menggunakan Captive Portal
Mengkonfigurasi Tetapan IP DHCP / Statik Menggunakan Portal Tangkap
Mengkonfigurasi Tetapan IP DHCP / Statik Menggunakan Portal Tangkap
Mengkonfigurasi Tetapan IP DHCP / Statik Menggunakan Portal Tangkap
Mengkonfigurasi Tetapan IP DHCP / Statik Menggunakan Portal Tangkap

Kami menggunakan portal tawanan untuk menyimpan kelayakan WiFi dan melayang ke tetapan IP. Untuk pengenalan terperinci di portal tawanan, anda boleh mengikuti petunjuk berikut.

Portal captive memberi kita pilihan untuk memilih antara tetapan Statik dan DHCP. Cukup masukkan kelayakan seperti Static IP, Subnet Mask, gateway dan Wireless Sensor Gateway akan dikonfigurasi pada IP tersebut.

Langkah 5: Menyimpan Tetapan WiFi Menggunakan Captive Portal

Menyimpan Tetapan WiFi Menggunakan Portal Tangkap
Menyimpan Tetapan WiFi Menggunakan Portal Tangkap

Halaman web dihoskan di mana senarai yang menunjukkan rangkaian WiFi yang tersedia dan ada RSSI. Pilih rangkaian WiFi dan kata laluan dan masukkan hantar. Kredensial akan disimpan di EEPROM dan tetapan IP akan disimpan di SPIFFS. Lebih banyak mengenai ini boleh didapati dalam arahan ini.

Langkah 6: Penerbitan Bacaan Sensor ke UbiDots

Di sini kita menggunakan Sensor Suhu dan Getaran Tanpa Wayar dengan penerima gerbang ESP 32 untuk mendapatkan data suhu dan Kelembapan. Kami mengirimkan data ke UbiDots menggunakan protokol MQTT. MQTT mengikuti mekanisme penerbitan dan langganan daripada permintaan dan respons. Ia lebih pantas dan boleh dipercayai daripada HTTP. Ini berfungsi seperti berikut.

Membaca Data Sensor Tanpa Wayar

Kami mendapat bingkai 29 byte dari Sensor Suhu dan Getaran Tanpa Wayar. Rangka ini dimanipulasi untuk mendapatkan data suhu dan Getaran sebenar

if (Serial2.available ()) {data [0] = Serial2.read (); kelewatan (k); if (data [0] == 0x7E) {Serial.println ("Got Packet"); sementara (! Serial2.available ()); untuk (i = 1; i <55; i ++) {data = Serial2.read (); kelewatan (1); } jika (data [15] == 0x7F) /////// untuk memeriksa apakah data penerimaan betul {if (data [22] == 0x08) //////// pastikan jenis sensor betul {rms_x = ((uint16_t) (((data [24]) << 16) + ((data [25]) << 8) + (data [26])) / 100); rms_y = ((uint16_t) (((data [27]) << 16) + ((data [28]) << 8) + (data [29])) / 100); rms_z = ((uint16_t) (((data [30]) << 16) + ((data [31]) << 8) + (data [32])) / 100); max_x = ((uint16_t) (((data [33]) << 16) + ((data [34]) << 8) + (data [35])) / 100); max_y = ((uint16_t) (((data [36]) << 16) + ((data [37]) << 8) + (data [38])) / 100); max_z = ((uint16_t) (((data [39]) << 16) + ((data [40]) << 8) + (data [41])) / 100);

min_x = ((uint16_t) (((data [42]) << 16) + ((data [43]) << 8) + (data [44])) / 100); min_y = ((uint16_t) (((data [45]) << 16) + ((data [46]) << 8) + (data [47])) / 100); min_z = ((uint16_t) (((data [48]) << 16) + ((data [49]) << 8) + (data [50])) / 100);

cTemp = ((((data [51]) * 256) + data [52])); bateri apungan = ((data [18] * 256) + data [19]); voltan apungan = 0.00322 * bateri; Serial.print ("Sensor Number"); Serial.println (data [16]); Serial.print ("Jenis Sensor"); Serial.println (data [22]); Serial.print ("Versi Firmware"); Serial.println (data [17]); Serial.print ("Suhu dalam Celsius:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("Getaran RMS dalam paksi X:"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("Getaran RMS dalam paksi Y:"); Serial.print (rms_y); Serial.println ("mg"); Serial.print ("Getaran RMS dalam paksi-Z:"); Serial.print (rms_z); Serial.println ("mg");

Serial.print ("Getaran minimum dalam paksi X:");

Cetakan bersiri (min_x); Serial.println ("mg"); Serial.print ("Getaran minimum dalam paksi Y:"); Cetakan bersiri (min_y); Serial.println ("mg"); Serial.print ("Getaran minimum dalam paksi-Z:"); Cetakan bersiri (min_z); Serial.println ("mg");

Serial.print ("Nilai ADC:");

Serial.println (bateri); Serial.print ("Voltan Bateri:"); Cetakan bersiri (voltan); Serial.println ("\ n"); jika (voltan <1) {Serial.println ("Masa untuk Mengganti Bateri"); }}} lain {untuk (i = 0; i <54; i ++) {Serial.print (data ); Cetakan bersiri (","); kelewatan (1); }}}}

Menyambung ke UbiDots MQTT API

Sertakan fail header untuk proses MQTT

#masuk "PubSubClient.h"

tentukan pemboleh ubah lain untuk MQTT seperti nama pelanggan, alamat broker, ID token (Kami mengambil ID token dari EEPROM)

#define MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com"; muatan char [100]; topik char [150]; // buat pemboleh ubah untuk menyimpan ID token String tokenId;

Buat pemboleh ubah untuk menyimpan data sensor yang berbeza dan buat pemboleh ubah char untuk menyimpan topik

#define VARIABLE_LABEL_TEMPF "tempF" // Assing the variable label # define VARIABLE_LABEL_TEMPC "tempC" // Assing the variable label #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "lembab" // Memberi label variabel

topik char1 [100];

topik char2 [100]; topik char3 [100];

menerbitkan data ke topik MQTT yang disebutkan, muatan akan kelihatan seperti {"tempc": {value: "tempData"}}

sprintf (topic1, "% s", ""); sprintf (topic1, "% s% s", "/v1.6/devices/", PERANGKAT_LABEL); sprintf (muatan, "% s", "");

// Membersihkan sprintf muatan (muatan, "{"% s / ":", VARIABLE_LABEL_TEMPC);

// Menambah nilai sprintf (muatan, "% s {" nilai / ":% s}", muatan, str_cTemp);

// Menambah nilai sprintf (muatan, "% s}", muatan);

// Menutup tanda kurung kamus Serial.println (muatan);

Serial.println (client.publish (topic1, payload)? "Diterbitkan": "tidak diterbitkan");

// Lakukan perkara yang sama untuk topik lain juga

client.publish () menerbitkan data ke UbiDots

Langkah 7: Memvisualisasikan Data

Menggambarkan Data
Menggambarkan Data
  • Pergi ke Ubidots dan Log masuk ke akaun anda.
  • Navigasikan ke Papan Pemuka dari tab Data yang tertera di bahagian atas.
  • Sekarang klik ikon "+" untuk menambahkan widget baru.
  • Pilih widget dari senarai dan tambahkan pemboleh ubah dan peranti.
  • Data sensor dapat dilihat pada papan pemuka menggunakan widget yang berbeza.

Kod Keseluruhan

Kod Over untuk HTML dan ESP32 boleh didapati di repositori GitHub ini.

  1. papan pemecah ncd ESP32.
  2. ncd Sensor suhu dan kelembapan tanpa wayar.
  3. pelanggan pub
  4. UbiDots

Disyorkan: