Mục lục:

Bắt đầu với cảm biến nhiệt độ và rung không dây phạm vi dài: 7 bước
Bắt đầu với cảm biến nhiệt độ và rung không dây phạm vi dài: 7 bước

Video: Bắt đầu với cảm biến nhiệt độ và rung không dây phạm vi dài: 7 bước

Video: Bắt đầu với cảm biến nhiệt độ và rung không dây phạm vi dài: 7 bước
Video: Cuộc chiến của đội cảnh sát cơ động 2024, Tháng bảy
Anonim
Bắt đầu với cảm biến nhiệt độ và rung không dây phạm vi dài
Bắt đầu với cảm biến nhiệt độ và rung không dây phạm vi dài

Đôi khi rung động là nguyên nhân gây ra các vấn đề nghiêm trọng trong nhiều ứng dụng. Từ trục máy và ổ trục đến hiệu suất của đĩa cứng, rung động gây ra hư hỏng máy, thay thế sớm, hiệu suất thấp và gây ảnh hưởng lớn đến độ chính xác. Theo dõi và phân tích thời gian theo thời gian của rung động trong máy có thể giải quyết vấn đề hư hỏng sớm và hao mòn của bộ phận máy.

Trong hướng dẫn này, chúng tôi sẽ làm việc trên các cảm biến nhiệt độ và rung động không dây tầm xa IoT. Đây là những cảm biến cấp công nghiệp với nhiều ứng dụng rộng rãi như.

  • Gia công kim loại
  • Sản xuất điện
  • Khai thác mỏ
  • Đồ ăn và đồ uống

Vì vậy, trong Tài liệu hướng dẫn này, chúng ta sẽ xem xét những điều sau:

  • Định cấu hình cảm biến không dây bằng XCTU và Labview UI.
  • Nhận các giá trị của độ rung từ cảm biến.
  • Hiểu hoạt động của thiết bị xbee và giao thức xbee.
  • Định cấu hình thông tin đăng nhập WiFi và cấu hình IP bằng cổng cố định

Bước 1: Đặc điểm kỹ thuật phần cứng và phần mềm

Đặc điểm kỹ thuật phần cứng và phần mềm
Đặc điểm kỹ thuật phần cứng và phần mềm
Đặc điểm kỹ thuật phần cứng và phần mềm
Đặc điểm kỹ thuật phần cứng và phần mềm
Đặc điểm kỹ thuật phần cứng và phần mềm
Đặc điểm kỹ thuật phần cứng và phần mềm

Đặc điểm kỹ thuật phần cứng

  • Cảm biến nhiệt độ và rung không dây
  • Bộ thu Zigmo
  • ESP32 BLE / thiết bị WiFi

Đặc điểm kỹ thuật phần mềm

  • Arduino IDE
  • Tiện ích LabView

Bước 2: Định cấu hình Bộ cảm biến không dây và Bộ thu Zigmo bằng XCTU

Định cấu hình cảm biến không dây và bộ thu Zigmo bằng XCTU
Định cấu hình cảm biến không dây và bộ thu Zigmo bằng XCTU
Định cấu hình cảm biến không dây và bộ thu Zigmo bằng XCTU
Định cấu hình cảm biến không dây và bộ thu Zigmo bằng XCTU

Mỗi thiết bị IoT cần một giao thức truyền thông để đưa thiết bị lên đám mây và thiết lập giao diện không dây giữa các thiết bị khác nhau.

Ở đây, Bộ cảm biến không dây và Bộ thu Zigmo sử dụng công suất thấp và giải pháp tầm xa XBee. XBee sử dụng giao thức ZigBee chỉ định hoạt động trong các băng tần ISM 902 đến 928 MHz.

Xbee có thể được cấu hình bằng phần mềm XCTU

  1. Tìm kiếm thiết bị Xbee hoặc thêm thiết bị Xbee mới bằng cách nhấp vào biểu tượng trên cùng bên trái.
  2. Thiết bị sẽ được liệt kê ở bảng điều khiển bên trái.
  3. nhấp đúp vào thiết bị để xem cài đặt.
  4. Bây giờ hãy nhấp vào biểu tượng bảng điều khiển ở góc trên cùng bên phải
  5. Bạn có thể thấy giá trị xuất hiện trên đầu ra của bảng điều khiển
  6. Ở đây chúng ta đang nhận được khung có độ dài 54 byte
  7. các byte này sẽ được thao tác thêm để nhận các giá trị thực. quy trình để có được nhiệt độ thực và các giá trị rung được đề cập trong các bước tiếp theo.

Bước 3: Phân tích nhiệt độ và giá trị rung không dây bằng Labview Utility

Phân tích nhiệt độ và giá trị rung không dây bằng Tiện ích Labview
Phân tích nhiệt độ và giá trị rung không dây bằng Tiện ích Labview
Phân tích nhiệt độ và giá trị rung không dây bằng Tiện ích Labview
Phân tích nhiệt độ và giá trị rung không dây bằng Tiện ích Labview

Cảm biến chạy ở hai chế độ

  • Chế độ cấu hình: Định cấu hình Pan ID, độ trễ, Số lần thử lại, v.v. Thông tin thêm về điều này nằm ngoài phạm vi của hướng dẫn này và sẽ được giải thích trong hướng dẫn tiếp theo.
  • Chế độ Chạy: Chúng tôi đang chạy thiết bị ở chế độ Chạy. Và để phân tích những giá trị này, chúng tôi đang sử dụng Tiện ích Labview

Giao diện người dùng Labview này hiển thị các giá trị trong biểu đồ đẹp. Nó cho thấy giá trị hiện tại cũng như quá khứ. Bạn có thể truy cập liên kết này để tải xuống Labview UI.

nhấp vào biểu tượng Chạy từ menu trang đích để chuyển sang chế độ chạy.

Bước 4: Định cấu hình cài đặt DHCP / IP tĩnh bằng Captive Portal

Định cấu hình cài đặt DHCP / IP tĩnh bằng Captive Portal
Định cấu hình cài đặt DHCP / IP tĩnh bằng Captive Portal
Định cấu hình cài đặt DHCP / IP tĩnh bằng Captive Portal
Định cấu hình cài đặt DHCP / IP tĩnh bằng Captive Portal
Định cấu hình cài đặt DHCP / IP tĩnh bằng Captive Portal
Định cấu hình cài đặt DHCP / IP tĩnh bằng Captive Portal

Chúng tôi đang sử dụng cổng cố định để lưu thông tin đăng nhập WiFi và di chuột qua cài đặt IP. Để biết phần giới thiệu chi tiết về cổng bị khóa, bạn có thể xem qua hướng dẫn sau.

Cổng bị khóa cung cấp cho chúng tôi tùy chọn để chọn giữa cài đặt Tĩnh và DHCP. Chỉ cần nhập thông tin đăng nhập như IP tĩnh, Mặt nạ mạng con, cổng vào và Cổng cảm biến không dây sẽ được định cấu hình trên IP đó.

Bước 5: Lưu cài đặt WiFi bằng Captive Portal

Lưu cài đặt WiFi bằng cổng cố định
Lưu cài đặt WiFi bằng cổng cố định

Một trang web đang được lưu trữ trong đó danh sách hiển thị các mạng WiFi khả dụng và có RSSI. Chọn mạng và mật khẩu WiFi và nhập gửi. Thông tin đăng nhập sẽ được lưu trong EEPROM và cài đặt IP sẽ được lưu trong SPIFFS. Nhiều hơn về điều này có thể được tìm thấy trong hướng dẫn này.

Bước 6: Xuất bản các bài đọc của cảm biến lên UbiDots

Ở đây chúng tôi đang sử dụng Cảm biến nhiệt độ và độ rung không dây với bộ thu cổng ESP 32 để lấy dữ liệu nhiệt độ và độ ẩm. Chúng tôi đang gửi dữ liệu đến UbiDots bằng giao thức MQTT. MQTT tuân theo cơ chế xuất bản và đăng ký thay vì yêu cầu và phản hồi. Nó nhanh hơn và đáng tin cậy hơn HTTP. Điều này hoạt động như sau.

Đọc dữ liệu cảm biến không dây

Chúng tôi đang nhận được khung 29 byte từ Cảm biến nhiệt độ và rung không dây. Khung này được thao tác để lấy dữ liệu về nhiệt độ và độ rung thực tế

if (Serial2.available ()) {data [0] = Serial2.read (); độ trễ (k); if (data [0] == 0x7E) {Serial.println ("Có gói tin"); while (! serial2.available ()); for (i = 1; i <55; i ++) {data = Serial2.read (); trì hoãn (1); } if (data [15] == 0x7F) /////// để kiểm tra xem dữ liệu nhận có đúng không {if (data [22] == 0x08) //////// đảm bảo loại cảm biến là đúng {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) (((dữ liệu [30]) << 16) + ((dữ liệu [31]) << 8) + (dữ liệu [32])) / 100); max_x = ((uint16_t) (((dữ liệu [33]) << 16) + ((dữ liệu [34]) << 8) + (dữ liệu [35])) / 100); max_y = ((uint16_t) (((dữ liệu [36]) << 16) + ((dữ liệu [37]) << 8) + (dữ liệu [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 = (((((dữ liệu [51]) * 256) + dữ liệu [52])); float pin = ((data [18] * 256) + data [19]); điện áp phao = 0,00322 * pin; Serial.print ("Số cảm biến"); Serial.println (data [16]); Serial.print ("Loại cảm biến"); Serial.println (dữ liệu [22]); Serial.print ("Phiên bản chương trình cơ sở"); Serial.println (dữ liệu [17]); Serial.print ("Nhiệt độ tính bằng độ C:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("RMS rung trong trục X:"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("RMS rung theo trục Y:"); Serial.print (rms_y); Serial.println ("mg"); Serial.print ("RMS rung theo trục Z:"); Serial.print (rms_z); Serial.println ("mg");

Serial.print ("Dao động tối thiểu theo trục X:");

Serial.print (min_x); Serial.println ("mg"); Serial.print ("Dao động tối thiểu theo trục Y:"); Serial.print (min_y); Serial.println ("mg"); Serial.print ("Dao động tối thiểu theo trục Z:"); Serial.print (min_z); Serial.println ("mg");

Serial.print ("Giá trị ADC:");

Serial.println (pin); Serial.print ("Điện áp Pin:"); Serial.print (điện áp); Serial.println ("\ n"); if (điện áp <1) {Serial.println ("Thời gian Thay Pin"); }}} else {for (i = 0; i <54; i ++) {Serial.print (data ); Serial.print (","); trì hoãn (1); }}}}

Kết nối với UbiDots MQTT API

Bao gồm tệp tiêu đề cho quy trình MQTT

#include "PubSubClient.h"

xác định các biến khác cho MQTT như tên khách hàng, địa chỉ người môi giới, ID mã thông báo (Chúng tôi đang tìm nạp mã thông báo ID từ EEPROM)

#define MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com"; tải trọng char [100]; chủ đề char [150]; // tạo biến lưu trữ token ID String tokenId;

Tạo các biến để lưu trữ các dữ liệu cảm biến khác nhau và tạo một biến char để lưu trữ chủ đề

#define VARIABLE_LABEL_TEMPF "tempF" // Gán nhãn biến # xác định VARIABLE_LABEL_TEMPC "tempC" // Gán nhãn biến # xác định VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "ẩm" // Gán nhãn biến

char topic1 [100];

char topic2 [100]; char topic3 [100];

xuất bản dữ liệu lên chủ đề MQTT đã đề cập, trọng tải sẽ giống như {"tempc": {value: "tempData"}}

sprintf (topic1, "% s", ""); sprintf (topic1, "% s% s", "/v1.6/devices/", DEVICE_LABEL); sprintf (tải trọng, "% s", "");

// Xóa payload sprintf (payload, "{"% s / ":", VARIABLE_LABEL_TEMPC);

// Thêm giá trị sprintf (payload, "% s {" value / ":% s}", payload, str_cTemp);

// Thêm giá trị sprintf (payload, "% s}", payload);

// Đóng dấu ngoặc từ điển Serial.println (payload);

Serial.println (client.publish (topic1, payload)? "Publish": "notpublish");

// Làm tương tự cho chủ đề khác

client.publish () xuất bản dữ liệu lên UbiDots

Bước 7: Hình dung dữ liệu

Trực quan hóa dữ liệu
Trực quan hóa dữ liệu
  • Đi tới Ubidots và Đăng nhập vào tài khoản của bạn.
  • Điều hướng đến Trang tổng quan từ tab Dữ liệu được liệt kê ở trên cùng.
  • Bây giờ hãy nhấp vào biểu tượng "+" để thêm các widget mới.
  • Chọn một widget từ danh sách và thêm một biến và thiết bị.
  • Dữ liệu cảm biến có thể được hiển thị trên bảng điều khiển bằng cách sử dụng các tiện ích khác nhau.

Mã tổng thể

Mã Over cho HTML và ESP32 có thể được tìm thấy trong kho lưu trữ GitHub này.

  1. bảng đột phá ncd ESP32.
  2. ncd Cảm biến nhiệt độ và độ ẩm không dây.
  3. pubsubclient
  4. UbiDots

Đề xuất: