본문 바로가기

HC-12 433 SI4463 Wireless

HC-12 433 SI4463 Wireless Serial Module Remote 1000M With Antenna

개당 5천원 정도 하는 무선 모듈 (최대한 거리 1000미터 (1킬로 @ 5000 BPS)).

두개 이상을 한조가 묶어서 작동할수 있음.(Channel)

현재 5개를 사서 실험중.    실험 성공후 5개 추가 주문.


두 장비간 기초 연결 성공, 

양방향 무선 통신 성공, 

근거리에서는 고속(115200 BPS) 통신도 잘 작동함. 

(*) 모듈의 통신속도를 변경하려면 컨트롤모드에서 변경해야함. 기본은 9600 BPS임.

현재 추가 실험중.


거리 측정 실험을 나중에 할 예정.

현재까지는 근처 이곳 저곳 돌아다니며 한 100메타정도는 작동 확인함.

 (목표 : 500 미터)  - 스펙상 1 킬로미터가 가능하다지만 

건물이 많은 도시에서는 500미터도 힘들것같음.



한쪽은 Arduino NANO Expansion Board의 Serial에 연결.   다른 쪽은 PC의 USB에 RS232 모듈에 연결.   (참고 : Arduino 보드에 연결할때 3V+ 에서 나오는 파워가 부족하기(200mA 이하) 때문에 5V+에 연결했는데 타지 않고 잘 됬음.  원래는 Power converter 로 3볼트로 낮춰야 함) 



맨 오른쪽 라인(SET)을 그라운드(GND)를 연결하면 컨트롤 모드로 들어감. (AT Command 용)

맨 오른쪽 라인(SET)이 아무런 연결이 안되있으면 정상적인 통신 모드로 작동함.





컨트롤 모드에서 AT+RX를 치면 다음과 같이 현재 세팅이 나옴.(Factory Default)



다음은 데모 코드를 약간 수정해서 내가 보내는 메세지를 다시 보내게 만들었음.

(ㅂ양방향 통신 확인용)


현재 보드의 SERIAL로 연결해서 위 코드에서는 SoftwareSerial은 사용하지 않고 있음.

프로그램 업로드할때는 무선으로는 작동 안 함.  업로드시 반드시 USB케이블을 사용해야 함.

프로그램이 실행중에는 USB케이블을 빼도 마치 연결된 것처럼 작동함.


양방향 통신 확인용 최소한의 코드 (Arduino IDE 사용)  :


void setup()

{

  Serial.begin(9600);

  while (!Serial) {

    ; // wait for serial port to connect.

  }

  Serial.println("Calling PC!");

}


void loop() // run over and over

{

  if (Serial.available())

    Serial.write(Serial.read());

}