สารบัญ:
- ขั้นตอนที่ 1: ข้อกำหนดฮาร์ดแวร์และซอฟต์แวร์
- ขั้นตอนที่ 2: การกำหนดค่าเซ็นเซอร์ไร้สายและตัวรับสัญญาณ Zigmo โดยใช้ XCTU
- ขั้นตอนที่ 3: การวิเคราะห์ค่าอุณหภูมิและการสั่นสะเทือนแบบไร้สายโดยใช้ Labview Utility
- ขั้นตอนที่ 4: การกำหนดการตั้งค่า DHCP/สแตติก IP โดยใช้ Captive Portal
- ขั้นตอนที่ 5: บันทึกการตั้งค่า WiFi โดยใช้ Captive Portal
- ขั้นตอนที่ 6: เผยแพร่การอ่านเซ็นเซอร์ไปยัง UbiDots
- ขั้นตอนที่ 7: การแสดงภาพข้อมูล
![เริ่มต้นใช้งานเซ็นเซอร์อุณหภูมิและการสั่นสะเทือนแบบไร้สายระยะไกล: 7 ขั้นตอน เริ่มต้นใช้งานเซ็นเซอร์อุณหภูมิและการสั่นสะเทือนแบบไร้สายระยะไกล: 7 ขั้นตอน](https://i.howwhatproduce.com/images/001/image-149-j.webp)
วีดีโอ: เริ่มต้นใช้งานเซ็นเซอร์อุณหภูมิและการสั่นสะเทือนแบบไร้สายระยะไกล: 7 ขั้นตอน
![วีดีโอ: เริ่มต้นใช้งานเซ็นเซอร์อุณหภูมิและการสั่นสะเทือนแบบไร้สายระยะไกล: 7 ขั้นตอน วีดีโอ: เริ่มต้นใช้งานเซ็นเซอร์อุณหภูมิและการสั่นสะเทือนแบบไร้สายระยะไกล: 7 ขั้นตอน](https://i.ytimg.com/vi/a8R3bdBd3gI/hqdefault.jpg)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
![เริ่มต้นใช้งานเซนเซอร์ตรวจจับอุณหภูมิและการสั่นสะเทือนแบบไร้สายระยะไกล เริ่มต้นใช้งานเซนเซอร์ตรวจจับอุณหภูมิและการสั่นสะเทือนแบบไร้สายระยะไกล](https://i.howwhatproduce.com/images/001/image-149-1-j.webp)
บางครั้งการสั่นสะเทือนก็เป็นสาเหตุของปัญหาร้ายแรงในการใช้งานหลายอย่าง ตั้งแต่เพลาเครื่องและตลับลูกปืนไปจนถึงประสิทธิภาพของฮาร์ดดิสก์ การสั่นสะเทือนทำให้เครื่องเสียหาย การเปลี่ยนก่อนกำหนด ประสิทธิภาพต่ำ และกระทบต่อความแม่นยำอย่างมาก การตรวจสอบและการวิเคราะห์การสั่นสะเทือนในเครื่องเป็นครั้งคราวสามารถแก้ปัญหาความเสียหายและการสึกหรอของชิ้นส่วนเครื่องจักรได้
ในคำแนะนำนี้ เราจะทำงานกับเซ็นเซอร์การสั่นสะเทือนและอุณหภูมิแบบไร้สายระยะไกล IoT เหล่านี้เป็นเซ็นเซอร์ระดับอุตสาหกรรมที่มีการใช้งานอย่างกว้างขวางเช่น
- งานโลหะ
- การผลิตไฟฟ้า
- การขุด
- อาหารและเครื่องดื่ม
ดังนั้นในคำแนะนำนี้เราจะดำเนินการต่อไปนี้:
- การกำหนดค่าเซ็นเซอร์ไร้สายโดยใช้ XCTU และ Labview UI
- รับค่าการสั่นสะเทือนจากเซ็นเซอร์
- ทำความเข้าใจการทำงานของอุปกรณ์ xbee และโปรโตคอล xbee
- การกำหนดค่าข้อมูลรับรอง WiFi และการกำหนดค่า IP โดยใช้แคปทีฟพอร์ทัล
ขั้นตอนที่ 1: ข้อกำหนดฮาร์ดแวร์และซอฟต์แวร์
![ข้อกำหนดฮาร์ดแวร์และซอฟต์แวร์ ข้อกำหนดฮาร์ดแวร์และซอฟต์แวร์](https://i.howwhatproduce.com/images/001/image-149-2-j.webp)
![ข้อกำหนดฮาร์ดแวร์และซอฟต์แวร์ ข้อกำหนดฮาร์ดแวร์และซอฟต์แวร์](https://i.howwhatproduce.com/images/001/image-149-3-j.webp)
![ข้อกำหนดฮาร์ดแวร์และซอฟต์แวร์ ข้อกำหนดฮาร์ดแวร์และซอฟต์แวร์](https://i.howwhatproduce.com/images/001/image-149-4-j.webp)
ข้อกำหนดฮาร์ดแวร์
- เซนเซอร์ตรวจจับการสั่นสะเทือนและอุณหภูมิแบบไร้สาย
- ตัวรับ Zigmo
- อุปกรณ์ ESP32 BLE/ WiFi
ข้อกำหนดซอฟต์แวร์
- Arduino IDE
- ยูทิลิตี้ LabView
ขั้นตอนที่ 2: การกำหนดค่าเซ็นเซอร์ไร้สายและตัวรับสัญญาณ Zigmo โดยใช้ XCTU
![การกำหนดค่าเซ็นเซอร์ไร้สายและตัวรับสัญญาณ Zigmo โดยใช้ XCTU การกำหนดค่าเซ็นเซอร์ไร้สายและตัวรับสัญญาณ Zigmo โดยใช้ XCTU](https://i.howwhatproduce.com/images/001/image-149-5-j.webp)
![การกำหนดค่าเซ็นเซอร์ไร้สายและตัวรับสัญญาณ Zigmo โดยใช้ XCTU การกำหนดค่าเซ็นเซอร์ไร้สายและตัวรับสัญญาณ Zigmo โดยใช้ XCTU](https://i.howwhatproduce.com/images/001/image-149-6-j.webp)
อุปกรณ์ IoT แต่ละตัวต้องการโปรโตคอลการสื่อสารเพื่อวางอุปกรณ์ไว้บนคลาวด์และตั้งค่าอินเทอร์เฟซไร้สายระหว่างอุปกรณ์ต่างๆ
ที่นี่เซ็นเซอร์ไร้สายและตัวรับสัญญาณ Zigmo ใช้พลังงานต่ำและโซลูชัน XBee ระยะไกล XBee ใช้โปรโตคอล ZigBee ที่ระบุการทำงานในย่านความถี่ ISM 902 ถึง 928 MHz
Xbee สามารถกำหนดค่าได้โดยใช้ซอฟต์แวร์ XCTU
- ค้นหาอุปกรณ์ Xbee หรือเพิ่มอุปกรณ์ Xbee ใหม่โดยคลิกที่ไอคอนด้านซ้ายบน
- อุปกรณ์จะแสดงรายการบนแผงด้านซ้ายมือ
- ดับเบิลคลิกที่อุปกรณ์เพื่อดูการตั้งค่า
- ตอนนี้คลิกที่ไอคอนคอนโซลที่มุมบนขวา
- คุณสามารถเห็นค่าที่มาบนคอนโซลเอาท์พุต
- เราจะได้เฟรมที่มีความยาว 54 ไบต์
- ไบต์เหล่านี้จะถูกจัดการเพิ่มเติมเพื่อรับค่าจริง ขั้นตอนการรับอุณหภูมิจริงและค่าการสั่นสะเทือนจะกล่าวถึงในขั้นตอนต่อไป
ขั้นตอนที่ 3: การวิเคราะห์ค่าอุณหภูมิและการสั่นสะเทือนแบบไร้สายโดยใช้ Labview Utility
![การวิเคราะห์ค่าอุณหภูมิและการสั่นสะเทือนแบบไร้สายโดยใช้ยูทิลิตี้ Labview การวิเคราะห์ค่าอุณหภูมิและการสั่นสะเทือนแบบไร้สายโดยใช้ยูทิลิตี้ Labview](https://i.howwhatproduce.com/images/001/image-149-7-j.webp)
![การวิเคราะห์ค่าอุณหภูมิและการสั่นสะเทือนแบบไร้สายโดยใช้ยูทิลิตี้ Labview การวิเคราะห์ค่าอุณหภูมิและการสั่นสะเทือนแบบไร้สายโดยใช้ยูทิลิตี้ Labview](https://i.howwhatproduce.com/images/001/image-149-8-j.webp)
เซนเซอร์ทำงานในสองโหมด
- โหมดการกำหนดค่า: กำหนดค่า Pan ID, ความล่าช้า, จำนวนการลองใหม่ ฯลฯ เพิ่มเติมเกี่ยวกับสิ่งนี้อยู่นอกเหนือขอบเขตของคำแนะนำนี้และจะอธิบายในคำแนะนำถัดไป
- โหมดรัน: เรากำลังเรียกใช้อุปกรณ์ในโหมดรัน และเพื่อวิเคราะห์ค่าเหล่านี้ เรากำลังใช้ Labview Utility
Labview UI นี้แสดงค่าเป็นกราฟที่ดี แสดงค่าปัจจุบันและค่าในอดีต คุณสามารถไปที่ลิงค์นี้เพื่อดาวน์โหลด Labview UI
คลิกที่ไอคอนเรียกใช้จากเมนูหน้า Landing Page เพื่อไปที่โหมดการทำงาน
ขั้นตอนที่ 4: การกำหนดการตั้งค่า DHCP/สแตติก IP โดยใช้ Captive Portal
![การกำหนดการตั้งค่า DHCP/สแตติก IP โดยใช้ Captive Portal การกำหนดการตั้งค่า DHCP/สแตติก IP โดยใช้ Captive Portal](https://i.howwhatproduce.com/images/001/image-149-9-j.webp)
![การกำหนดการตั้งค่า DHCP/สแตติก IP โดยใช้ Captive Portal การกำหนดการตั้งค่า DHCP/สแตติก IP โดยใช้ Captive Portal](https://i.howwhatproduce.com/images/001/image-149-10-j.webp)
![การกำหนดการตั้งค่า DHCP/สแตติก IP โดยใช้ Captive Portal การกำหนดการตั้งค่า DHCP/สแตติก IP โดยใช้ Captive Portal](https://i.howwhatproduce.com/images/001/image-149-11-j.webp)
เรากำลังใช้แคปทีฟพอร์ทัลเพื่อบันทึกข้อมูลรับรอง WiFi และเลื่อนเมาส์ผ่านการตั้งค่า IP สำหรับคำแนะนำโดยละเอียดเกี่ยวกับพอร์ทัลแบบ Captive คุณสามารถอ่านคำแนะนำต่อไปนี้
พอร์ทัลแบบ Captive ช่วยให้เราเลือกระหว่างการตั้งค่าแบบคงที่และ DHCP เพียงป้อนข้อมูลประจำตัว เช่น IP แบบคงที่ Subnet Mask เกตเวย์ และ Wireless Sensor Gateway จะได้รับการกำหนดค่าบน IP นั้น
ขั้นตอนที่ 5: บันทึกการตั้งค่า WiFi โดยใช้ Captive Portal
![การบันทึกการตั้งค่า WiFi โดยใช้ Captive Portal การบันทึกการตั้งค่า WiFi โดยใช้ Captive Portal](https://i.howwhatproduce.com/images/001/image-149-12-j.webp)
กำลังโฮสต์หน้าเว็บซึ่งมีรายการแสดงเครือข่าย WiFi ที่พร้อมใช้งานและมี RSSI เลือกเครือข่าย WiFi และรหัสผ่านและป้อนส่ง ข้อมูลประจำตัวจะถูกบันทึกไว้ใน EEPROM และการตั้งค่า IP จะถูกบันทึกไว้ใน SPIFFS ข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้สามารถพบได้ในคำแนะนำนี้
ขั้นตอนที่ 6: เผยแพร่การอ่านเซ็นเซอร์ไปยัง UbiDots
เราใช้เซ็นเซอร์อุณหภูมิและการสั่นสะเทือนแบบไร้สายกับตัวรับสัญญาณเกตเวย์ ESP 32 เพื่อรับข้อมูลอุณหภูมิและความชื้น เรากำลังส่งข้อมูลไปยัง UbiDots โดยใช้โปรโตคอล MQTT MQTT ปฏิบัติตามกลไกการเผยแพร่และสมัครรับข้อมูลแทนที่จะเป็นคำขอและการตอบสนอง เร็วกว่าและเชื่อถือได้มากกว่า HTTP นี้ทำงานดังนี้
การอ่านข้อมูลเซ็นเซอร์ไร้สาย
เราได้รับเฟรม 29 ไบต์จากเซ็นเซอร์อุณหภูมิและการสั่นสะเทือนแบบไร้สาย เฟรมนี้ได้รับการจัดการเพื่อให้ได้ข้อมูลอุณหภูมิและการสั่นสะเทือนจริง
ถ้า (Serial2.available ()) { data [0] = Serial2.read (); ล่าช้า (k); if(data[0]==0x7E) { Serial.println("มีแพ็คเก็ต"); ในขณะที่ (!Serial2.available()); สำหรับ (i = 1; i< 55; i++) { data = Serial2.read(); ล่าช้า(1); } if(data[15]==0x7F) /////// เพื่อตรวจสอบว่าข้อมูลที่ได้รับนั้นถูกต้องหรือไม่ { if(data[22]==0x08) //////// ตรวจสอบให้แน่ใจว่าประเภทเซ็นเซอร์ ถูกต้อง { 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 = (((((ข้อมูล[51])) * 256) + ข้อมูล[52])); แบตเตอรี่ลอย = ((ข้อมูล [18] * 256) + ข้อมูล [19]); แรงดันไฟลอย = 0.00322 * แบตเตอรี่; Serial.print("หมายเลขเซนเซอร์"); Serial.println (ข้อมูล [16]); Serial.print("ประเภทเซนเซอร์"); Serial.println(ข้อมูล[22]); Serial.print ("เวอร์ชันเฟิร์มแวร์"); Serial.println (ข้อมูล [17]); Serial.print("อุณหภูมิในเซลเซียส:"); Serial.print(cTemp); Serial.println("C"); Serial.print("การสั่น RMS ในแกน X:"); Serial.print(rms_x); Serial.println(" มก."); Serial.print("การสั่น RMS ในแกน Y:"); Serial.print(rms_y); Serial.println(" มก."); Serial.print("การสั่น RMS ในแกน Z:"); Serial.print(rms_z); Serial.println(" มก.");
Serial.print("การสั่นต่ำสุดในแกน X:");
Serial.print(min_x); Serial.println(" มก."); Serial.print("การสั่นขั้นต่ำในแกน Y:"); Serial.print(min_y); Serial.println(" มก."); Serial.print("การสั่นขั้นต่ำในแกน Z:"); Serial.print(min_z); Serial.println(" มก.");
Serial.print("ค่า ADC:");
Serial.println (แบตเตอรี่); Serial.print("แรงดันแบตเตอรี่:"); Serial.print (แรงดันไฟฟ้า); Serial.println("\n"); ถ้า (แรงดันไฟฟ้า < 1) { Serial.println ("ถึงเวลาเปลี่ยนแบตเตอรี่"); } } } else { สำหรับ (i = 0; i< 54; i++) { Serial.print(data); Serial.print(", "); ล่าช้า(1); } } } }
กำลังเชื่อมต่อกับ UbiDots MQTT API
รวมไฟล์ส่วนหัวสำหรับกระบวนการ MQTT
#include "PubSubClient.h"
กำหนดตัวแปรอื่น ๆ สำหรับ MQTT เช่น ชื่อลูกค้า ที่อยู่นายหน้า รหัสโทเค็น (เรากำลังดึงรหัสโทเค็นจาก EEPROM)
#define MQTT_CLIENT_NAME "ClientVBShightime123"char mqttBroker = "things.ubidots.com"; เพย์โหลดถ่าน[100]; หัวข้อถ่าน[150]; //สร้างตัวแปรเพื่อเก็บรหัสโทเค็น สตริง tokenId;
สร้างตัวแปรเพื่อเก็บข้อมูลเซนเซอร์ต่างๆ และสร้างตัวแปร char เพื่อจัดเก็บหัวข้อ
#define VARIABLE_LABEL_TEMPF "tempF" // กำหนดป้ายกำกับตัวแปร#define VARIABLE_LABEL_TEMPC "tempC" // กำหนดป้ายกำกับตัวแปร #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "humid" // กำหนดป้ายกำกับตัวแปร
หัวข้อถ่าน1[100];
ถ่าน หัวข้อ2[100]; หัวข้อถ่าน3[100];
เผยแพร่ข้อมูลไปยังหัวข้อ MQTT ที่กล่าวถึง payload จะมีลักษณะดังนี้ { "tempc": {value: "tempData"}}
sprintf(topic1, "%s", "");sprintf(topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf(เพย์โหลด, "%s", "");
// ทำความสะอาด payload sprintf(payload, "{"%s\":", VARIABLE_LABEL_TEMPC);
// เพิ่มค่า sprintf(payload, "%s{"value\":%s}", payload, str_cTemp);
// เพิ่มค่า sprintf(payload, "%s}", payload);
// ปิดวงเล็บพจนานุกรม Serial.println(payload);
Serial.println(client.publish(topic1, payload) ? "published": "notpublished");
//ทำแบบเดียวกันกับหัวข้ออื่นด้วย
client.publish() เผยแพร่ข้อมูลไปยัง UbiDots
ขั้นตอนที่ 7: การแสดงภาพข้อมูล
![การแสดงข้อมูล การแสดงข้อมูล](https://i.howwhatproduce.com/images/001/image-149-13-j.webp)
- ไปที่ Ubidots และลงชื่อเข้าใช้บัญชีของคุณ
- ไปที่แดชบอร์ดจากแท็บข้อมูลที่แสดงด้านบน
- ตอนนี้คลิกไอคอน "+" เพื่อเพิ่มวิดเจ็ตใหม่
- เลือกวิดเจ็ตจากรายการและเพิ่มตัวแปรและอุปกรณ์
- ข้อมูลเซ็นเซอร์สามารถมองเห็นได้บนแดชบอร์ดโดยใช้วิดเจ็ตต่างๆ
รหัสโดยรวม
โค้ด Over สำหรับ HTML และ ESP32 มีอยู่ในที่เก็บ GitHub นี้
- บอร์ดฝ่าวงล้อม ncd ESP32
- ncd อุณหภูมิไร้สายและเซ็นเซอร์ความชื้น
- ไคลเอนต์สาธารณะ
- UbiDots
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
![การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน](https://i.howwhatproduce.com/images/001/image-2360-j.webp)
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
![การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน](https://i.howwhatproduce.com/images/002/image-5374-j.webp)
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
![วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน](https://i.howwhatproduce.com/images/004/image-9009-j.webp)
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
![การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน](https://i.howwhatproduce.com/images/007/image-19534-j.webp)
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
![เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน](https://i.howwhatproduce.com/images/008/image-21644-j.webp)
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง