XY-MD02 เซนเซอร์วัดความชื้นในอากาศ Modbus-RTU RS485 SNP-00032
รหัสสินค้า: SNP-00032

XY-MD02 เซนเซอร์วัดความชื้นในอากาศ Modbus-RTU RS485 SNP-00032


XY-MD02 เป็นเซ็นเซอร์สำหรับวัดอุณหภูมิและความชื้นในอากาศ มีความแม่นยำสูง โดยมักใช้ในระบบควบคุมสภาพแวดล้อมต่าง ๆ เช่น ระบบปรับอากาศ โรงเรือนเกษตร และอุปกรณ์ IoT เพื่อช่วยในการปรับปรุงประสิทธิภาพการทำงานตามสภาพแวดล้อมที่เปลี่ยนแปลงไป

 

1.ดาวน์โหลด และติดตั้ง Library ModbusMaster

ติดตั้ง Library ModbusMaster

ArduinoIDE > Sketch > Include Library > Add .ZIP Library > หาไฟล์ที่ดาวน์โหลด

 

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

XY-MD02 เซนเซอร์วัดความชื้นในอากาศ Modbus-RTU RS485 SNP-00032

Arduino UNO > RS485 module

  • 5V > VCC
  • GND > GND
  • 2 > R0
  • 5 > RE
  • 3 > DI
  • 4 > DE    

Arduino UNO > XY-MD02

  • 5V > + 
  • GND- 

RS485 module > XY-MD02

  • B > B-
  • A > A+

 

3.ลงโปรแกรม 

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

Arduino
1#include <SoftwareSerial.h>
2#include <ModbusMaster.h>
3
4SoftwareSerial mySerial(2, 3); // RX, TX
5
6#define MAX485_DE 4
7#define MAX485_RE_NEG 5
8
9ModbusMaster node;
10
11void preTransmission()
12{
13  digitalWrite(MAX485_RE_NEG, 1);
14  digitalWrite(MAX485_DE, 1);
15}
16
17void postTransmission()
18{
19  digitalWrite(MAX485_RE_NEG, 0);
20  digitalWrite(MAX485_DE, 0);
21}
22
23void setup()
24{
25  pinMode(MAX485_RE_NEG, OUTPUT);
26  pinMode(MAX485_DE, OUTPUT);
27  // Init in receive mode
28  digitalWrite(MAX485_RE_NEG, 0);
29  digitalWrite(MAX485_DE, 0);
30  Serial.println("start init serial 0");
31  Serial.begin(9600);
32
33  while (!Serial) {
34    Serial.println("loop for init serial 0");
35  }
36  Serial.println("start init software serial");
37  mySerial.begin(9600);
38  while (!mySerial) {
39    Serial.println("loop for init software serial");
40  }
41
42  node.begin(1, mySerial);
43  node.preTransmission(preTransmission);
44  node.postTransmission(postTransmission);
45
46}
47
48void loop()
49{
50  uint8_t result;
51  uint16_t data[2];
52
53  Serial.println("get data");
54  result = node.readInputRegisters(1, 2);
55  if (result == node.ku8MBSuccess)
56  {
57    Serial.print("Temp: ");
58    Serial.println(node.getResponseBuffer(0) / 10.0f);
59    Serial.print("Humi: ");
60    Serial.println(node.getResponseBuffer(1) / 10.0f);
61    Serial.println();
62
63  }
64  delay(1000);
65}

 

4.ผลลัพธ์

Serial Monitor จะแสดงค่าอุณหภูมิและความชื้นขณะนั้น

XY-MD02 เซนเซอร์วัดความชื้นในอากาศ Modbus-RTU RS485 SNP-00032