반응형

목차

1. HC-05, HC-06 테스트 및 설정 : https://coding-yoon.tistory.com/206

 

글을 시작하기 전에 내가 대학생일 때 들었었으면 좋았을 강의 하나가 있다. 이용성 교수님께서 강의해 주시는 건데 회로부터 하나하나 설명해 주시니 진짜 너무 좋은 영상이다.

아두이노 UNO 와 블루투스 모듈과 0, 1번을 사용하면 안 되는 이유

가끔 블로그를 보면 아두이노와 블루투스 모듈을 0, 1번에 서로 연결하는 경우가 있다. 완성 시 컴퓨터와 분리했을 때는 문제가 되지 않고, 아두이노에 코딩을 할 때 문제가 발생한다.

아두이노에서 통신 방식은 대표적으로 UART, I2C, SPI 방식이 있다. 특히 UART를 조심히 사용해야 한다.

가장 많이 사용되는 아두이노 UNO 같은 경우 UART는 한 개이며, 각각 0번 핀(RX:수신), 1번 핀(TX:송신)이다. 그런데 아두이노는 이상한 특징을 가지고 있다. UART 0, 1번 핀이 컴퓨터와 연결되는 USB 케이블 부분과 연결돼 있다.

우리는 아두이노에서 출력되는 값을 아두이노 serial monitor를 통해서 확인할 수 있다. USB 케이블을 통해 데이터가 출력되지만, 이 USB 케이블은 0, 1번과 연결돼있다. 정리하자면 컴퓨터에 아두이노를 연결하는 순간 이미 아두이노와 컴퓨터는 서로 serial 통신을 하고 있다.

그렇다면 블루투스 모듈을 0, 1번에 사용하면 어떻게 될까? 당연히 충돌 난다. 하지만 간혹 운이 좋아 동작할 수 있지만 올바른 동작이라고 할 수 없다.

그렇다면 아두이노 UNO는 UART를 사용할 수 없는가?

하나밖에 없는 UART는 이미 사용하고 있기 때문에, 아두이노는 softwareserial를 사용해 uart를 사용할 수 있다. 몇 개든 uart를 선언해서 사용할 수 있지만 software로 구현돼있기 때문에 굉장히 느리다. 그렇기 때문에 아두이노 코딩 할 때는 softwareserial을 사용할 수 밖에 없고, 완성 후에 하드웨어 serial을 사용하면 된다. 이것에 대한 팁은 나중에 올리려고 한다.

*아두이노에 대한 UART를 더 알고 싶으시면 아래 블로그를 참고하시길 바랍니다.

아두이노 UNO 와 블루투스 모듈(HC-05, HC-06) 연결

아래와 같이 아두이노와 블루투스 모듈을 연결했고, 코드는 아래와 같다.

코드는 굉장히 간단하다. 블루투스로 수신 받은 값을 serial monitor에 출력하는 코드이다. 

#include <SoftwareSerial.h>

#define BT_RXD 3
#define BT_TXD 2
SoftwareSerial bluetooth(BT_RXD, BT_TXD);

void setup() {
  Serial.begin(115200);     // 이전 글 참고
  bluetooth.begin(115200);  // 이전 글 참고
}

void loop() {
  if (bluetooth.available()) {
    Serial.write(bluetooth.read());
  }
  if (Serial.available()) {
    bluetooth.write(Serial.read());
  }
}

 

올바르게 연결하고 펌웨어에 코드를 입혔다면, Arduino bluetooth controller를 설치해서 Terminal mode로 테스트한다. Hello를 입력해보면, Arduino IDE의 Serial monitor에서 값을 확인할 수 있다.

 

 

HC-05, HC-06

블루투스 모듈인 HC-05와 HC-06에서 LED를 확인할 수 있는데, 이는 state에 대한 LED이다.

LED 점멸 : 기기 Pair 가능 상태

LED 꺼짐 : 연결 상태

HC-05, HC-06에는 VCC, GND, TX, RX 외에도 state, EN 단자가 있다. state는 블루투스 상태를 출력하는 단자로 위 LED에 연결돼있다. EN 단자는 만약 블루투스가 연결 상태라면 강제로 신호를 주어 블루투스 연결을 끊을 수 있다.

728x90
반응형
반응형

안녕하세요. 

 

mbed os의 complie이 Ubuntu보다 Windows10에서 훨씬 빠르기 때문에, 컴퓨터 두 대를 사용하고 있습니다.

 

그렇다 보니 onedrive는 느리기 때문에, 라즈베리파이 때처럼 Samba를 사용하려는데 의외의 문제에 봉착하게 됐습니다.

https://coding-yoon.tistory.com/112?category=866905 

 

[라즈베리파이] SMB SSamba 포트포워딩

삼바(samba)는 Windows 운영체제를 사용하는 PC에서 Linux 또는 UNIX 서버에 접속하여 파일이나 프린터를 공유하여 사용할 수 있도록 해 주는 소프트웨어이다. -위키백과 현재 라즈베리파이를 공유폴더

coding-yoon.tistory.com

 

우선, 기본적으로 윈도우10에서는 smb1.0 사용을 지양하고 하고 있습니다.

https://docs.microsoft.com/ko-kr/windows-server/storage/file-server/smb-security

 

SMB 보안 강화

이 항목에서는 Windows Server의 SMB 보안 강화에 대해 설명합니다.

docs.microsoft.com

제어판 - 프로그램 및 기능 - Windows 기능 켜기/끄기

SMB 1.0이 기본적으로 사용되지 않게 설정되있다. 나는 랜섬웨어가 무섭지 않다하면, Samba 1.0 사용해도 된다.

 

samba 설정 

sudo vim /etc/samba/smb.conf

 

1. Samba SMB 버전 설정

server max protocol = SMB3_11
server min protocol = SMB2_10

https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html

 

smb.conf

Name smb.conf — The configuration file for the Samba suite SYNOPSIS The smb.conf file is a configuration file for the Samba suite. smb.conf contains runtime configuration information for the Samba programs. The complete description of the file format and

www.samba.org

 

 

2. Samba 암호화 설정

smb encrypt = required  
kerberos encryption types = strong

저는 암호화를 하지 않았기 때문에 윈도우10에서 네트워크에서 검색이 안됐습니다. 

 

다른 블로그 분들을 보더라도 암호화 관련 설정 이야기는 없었는데 Samba.conf 에서 필수사항이라고 이야기하지는 않았습니다.

 

추측으로 윈도우 10이 SMB 보안 강화를 하면서 이런 문제가 발생했을 수 있습니다. 

 

초기 윈도우 10에서는 됐지만, 업데이트가 되면서 예전에는 됐던 것들이 요즘에는 안되는 설정이 꽤 있습니다.

 

만약 저처럼 아무 문제없이 다 설정했지만, 네트워크에 보이지 않는 분들은 암호화 설정을 해보시길 바랍니다.

728x90
반응형

+ Recent posts