티스토리 뷰
ESP32Nano 2개 사이를 RS-485 방식으로 데이터를 송신 및 수신하고자 함.
원본 데이터의 형식은 JSON임.
[송신측 코드]
* Serial2.begin(9600) 사용 가능
#include <HardwareSerial.h>
#include <ArduinoJson.h>
#define DE_RE 2 // RS-485 모듈 DE & RE 핀
HardwareSerial RS485Serial(1); // UART1 사용 (TX = GPIO17, RX = GPIO16)
void setup() {
pinMode(DE_RE, OUTPUT);
digitalWrite(DE_RE, HIGH); // 송신 모드 활성화
RS485Serial.begin(9600, SERIAL_8N1, 16, 17); // RX = GPIO16, TX = GPIO17
Serial.begin(115200);
}
void loop() {
StaticJsonDocument<200> jsonDoc;
jsonDoc["temperature"] = 22.5;
jsonDoc["humidity"] = 55;
jsonDoc["status"] = "OK";
char jsonString[200];
serializeJson(jsonDoc, jsonString);
// RS-485로 JSON 데이터 전송
digitalWrite(DE_RE, HIGH); // 송신 모드
RS485Serial.println(jsonString);
digitalWrite(DE_RE, LOW); // 수신 모드로 전환
Serial.print("Sent: ");
Serial.println(jsonString);
delay(1000);
}
[수신측 코드]
* Serial2.begin(9600) 사용 가능
#include <HardwareSerial.h>
#include <ArduinoJson.h>
#define DE_RE 2 // RS-485 모듈 DE & RE 핀
HardwareSerial RS485Serial(1); // UART1 사용 (TX = GPIO17, RX = GPIO16)
void setup() {
pinMode(DE_RE, OUTPUT);
digitalWrite(DE_RE, LOW); // 수신 모드 활성화
RS485Serial.begin(9600, SERIAL_8N1, 16, 17); // RX = GPIO16, TX = GPIO17
Serial.begin(115200);
}
void loop() {
if (RS485Serial.available()) {
String receivedData = RS485Serial.readStringUntil('\n'); // 데이터 수신
StaticJsonDocument<200> jsonDoc;
DeserializationError error = deserializeJson(jsonDoc, receivedData);
if (error) {
Serial.print("JSON Parsing Failed: ");
Serial.println(error.c_str());
return;
}
float temperature = jsonDoc["temperature"];
int humidity = jsonDoc["humidity"];
const char* status = jsonDoc["status"];
Serial.println("Received JSON Data:");
Serial.print("Temperature: "); Serial.println(temperature);
Serial.print("Humidity: "); Serial.println(humidity);
Serial.print("Status: "); Serial.println(status);
}
}
반응형
'SWDesk > Firmware' 카테고리의 다른 글
[Arduino] 실수형 계산 테스트(float, double) (2) | 2024.10.11 |
---|---|
[FW] ATTiny85 PWM 예제 (0) | 2024.04.02 |
[FW] ESP32 PWM 예제 (1) | 2024.03.31 |
아두이노 나노 ESP32 - BLE 예제 with Advertising (0) | 2024.01.05 |
아두이노 나노 ESP32 - BLE 예제 (0) | 2024.01.03 |
반응형
250x250
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- BSC
- 티스토리챌린지
- Innovation&Hurdles
- 치매
- 전류
- 오블완
- Decorator
- arduino
- Hurdles
- 심심풀이
- Video
- 허들
- 심심풀이치매방지기
- 전압전류모니터링
- ServantClock
- image
- DYOV
- 배프
- Innovations&Hurdles
- 전압
- 혁신
- 아두이노
- 치매방지
- Innovations
- badp
- 둎
- 절연형
- 빌리언트
- 혁신과허들
- bilient
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함