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

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

เซนเซอร์ตัวนี้เป็นแบบถ้วยหมุน ส่งข้อมูลผ่านสาย 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 SNP-00033

ส่วนแรก ต่อ 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 SNP-00033