2017-09-05 16 views
1

MacOS 장치에서 HM-10 모듈 (BLE)을 통해 Arduino로 데이터를 보내려고하는데 다음이 guide입니다. 필자의 배선에서 나는 다음을 수행했다. 나는 Arduino의 TX에 연결되어있는 HM-10의 RX 핀을 가지고있다. HM-10의 TX 핀을 Arduino의 RX에 연결하십시오. HM-10의 VCC는 Arduino의 3.3V로, HM-10의 GND를 Arduino의 GND에 연결하십시오.HM-10 BLE 모듈이 홀수 문자를 반환하지 않도록 수정하려면 어떻게해야합니까?

나는 다음과 같은 코드를 사용하고 있습니다 :

#include <SoftwareSerial.h> 
SoftwareSerial BTSerial(0, 1); //RX|TX 

void setup(){ 
    Serial.begin(9600); 
    BTSerial.begin(9600); // default baud rate 
    Serial.println("AT commands: "); 
} 

void loop(){ 
    //Read from the HM-10 and print in Serial Moniter 
    if(BTSerial.available()) { 
     Serial.write(BTSerial.read()); 
    } 

    //Read from the Serial Moniter and print to the HM-10 
    if(Serial.available()) { 
     BTSerial.write(Serial.read()); 
    } 
} 

내가 AT+NAME?을 보내

, 나는 OK+NAME:HMSoft를 수신되어야한다,하지만 난 이상한 문자열 점점 계속 : AV⸮5⸮합니다. 또한 명령의 효과가없는 것으로 보입니다.

컴퓨터에서 HM-10과 상호 작용할 수없는 것은 무엇입니까?

+0

는 HM-10 장치를 주장하는 회사에도 불구하고 AT 명령을 지원합니다 있습니다, 그것은 (단지 뭔가 막연 AT 명령과 비슷하게)하지 않습니다. 이 프로토콜에는 몇 가지 [심각한 결함] (https://stackoverflow.com/a/35950215/23118)이 있으므로 대체 하드웨어를 찾아야 할 수도 있습니다. – hlovdal

답변

1
SoftwareSerial BTSerial(0, 1); //RX|TX 

소프트웨어 직렬을 위해 하드웨어 직렬 핀을 사용하고 있습니다. 그리고 두 가지를 모두 사용하면 데이터가 손상됩니다.

2처럼, 다른 사람에 소프트웨어 시리얼 핀을 이동

, 3

+0

나는 내 질문을 게시하기 전에 이미 이것을 시도했다. 직렬 모니터에 아무 것도 입력하지 않으면 아무 것도 반환되지 않습니다. 내가 뭘 할 수 있을지에 대한 제안이 있니? – Gerald