제가 아두이노 2개를 이용해서 아두이노는 와이파이 모듈로 연결하고 안드로이드는 각각의 블루투스와 연결해서 안드로이드 끼리 무선으로 텍스츠를 전달하기위해 만든 코드입니다. 와이파이 모듈간 전달에서 문제가 생겼는지 시리얼모니터에도 영어나 한글이 깨져서 출력 됩니다. 혹시 어떤점이 문제인지 알려주세요. 참고로 한개는 아래의 소스코드를 나머지 하나는 radioNumber을 1이 아닌 0으로 하여 코딩했습니다. 그리고 와이파이 모듈은 nrf24l01을 사용했습니다.
#include <SPI.h>
#include "RF24.h"
#include <nRF24L01.h>
#include <SoftwareSerial.h>
bool radioNumber = 1;
RF24 radio(7,8);
byte addresses[][6] = {"1Node","2Node"};
SoftwareSerial BTSerial(2, 3);
void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
radio.begin();
radio.setPALevel(RF24_PA_LOW);
if(radioNumber){
radio.openWritingPipe(addresses[1]);
radio.openReadingPipe(0,addresses[0]);
}else{
radio.openWritingPipe(addresses[0]);
radio.openReadingPipe(0,addresses[1]);
}
radio.startListening();
BTSerial.begin(9600);
}
void loop() {
if(BTSerial.available()){
radio.stopListening();
String str;
while(BTSerial.available()>0){
char ch=BTSerial.read();
str.concat(ch);
delay(10);
}
Serial.println(str);
if(!radio.write(&str,(unsigned int)sizeof(str))){
Serial.println("success");
}
else { Serial.println("failed");}
delay(100);
radio.startListening();
}
else if(radio.available()){
String str;
Serial.println("success");
radio.read(&str,sizeof(str));
Serial.println(str);
BTSerial.print(str);
}
}
|