ข้ามไปยังเนื้อหาหลัก
เซนเซอร์วัดความเร็วลม Wind Speed Sensor Modbus RTU RS485
รหัสสินค้า: SNP-00033

เซนเซอร์วัดความเร็วลม Wind Speed Sensor Modbus RTU RS485

เซนเซอร์ตัวนี้เป็นแบบถ้วยหมุน ส่งข้อมูลผ่านสาย RS485 ด้วยโปรโตคอล Modbus RTU เราจะใช้ Arduino UNO ต่อผ่านโมดูล RS485 เพื่ออ่านค่าความเร็วลมออกมาแสดงบน Serial Monitor

1.อุปกรณ์ที่ต้องใช้

2.ติดตั้ง Library ที่จำเป็น

โหลด Library ชื่อ ModbusRTUMaster ได้ที่ลิงก์นี้

โหลดเสร็จก็เข้า Arduino IDE ไปที่  Sketch > Include Library > Add .ZIP Library แล้วเลือกไฟล์ที่เพิ่งโหลดมา รอสักครู่จะมีข้อความขึ้นว่าติดตั้งสำเร็จ

3.ต่ออุปกรณ์

เซนเซอร์วัดความเร็วลม Wind Speed Sensor Modbus RTU RS485

ส่วนแรก ต่อ Arduino UNO เข้ากับโมดูล RS485 ก่อน

Arduino Uno
Max485 Module
5V
VCC
GND
GND
D11
RO
D12
DI
D13
DE และ RE*
  • *โยงรวมกันแล้วต่อขาเดียว

ส่วนที่สอง ต่อไฟ 12V เข้าเซนเซอร์

แหล่งจ่าย (12V)
เซนเซอร์ความเร็วลม
+
สายสีน้ำตาล
-
สายสีดำ

ส่วนที่สาม ต่อโมดูล RS485 เข้าเซนเซอร์

Max485 Module
เซนเซอร์ความเร็วลม
A
สายสีเหลือง
B
สายสีน้ำเงิน

ส่วนที่สี่ เชื่อม GND ของ Arduino กับ Power Supply

Arduino Uno
แหล่งจ่าย (12V)
GND
-

มีจุดที่หลายคนพลาดบ่อยมาก คือ GND ของ Arduino กับ GND ของอะแดปเตอร์ 12V ต้องต่อถึงกัน ไม่งั้นเซนเซอร์จะคุยกับ Arduino ไม่รู้เรื่อง ค่าจะไม่ขึ้น

4.ลงโปรแกรม 

Copy โค้ดด้านล่าง

Arduino
1#include <SoftwareSerial.h>
2#include <ModbusRTUMaster.h>
3
4const uint8_t rxPin = 11;
5const uint8_t txPin = 12;
6const uint8_t dePin = 13;
7
8SoftwareSerial mySerial(rxPin, txPin);
9ModbusRTUMaster modbus(mySerial, dePin);
10
11uint16_t holdingRegisters[2];
12float windSpeed;
13
14void setup() {
15  Serial.begin(9600);
16  modbus.begin(4800);
17}
18
19void loop() {
20    modbus.readHoldingRegisters(1, 0, holdingRegisters, 1);
21    windSpeed = holdingRegisters[0] / 10;
22    Serial.print("Wind Speed : ");
23    Serial.print(windSpeed);
24    Serial.println(" m/s");
25}
26

 

5.ผลลัพธ์

Serial Monitor จะแสดงความเร็วลมขณะนั้น

เซนเซอร์วัดความเร็วลม Wind Speed Sensor Modbus RTU RS485