- HM10 BLE 4.0 모듈이란?
- HM10과 다른 블루투스 모듈의 차이점
- 필요한 구성 요소
- 회로도
- Arduino Bluetooth 컨트롤러 (HM-10 모듈) Android 애플리케이션
- HM-10 Bluetooth 모듈을 사용하여 LED를 제어하도록 Arduino UNO 프로그래밍
Bluetooth는 가장 인기 있고 사용하기 쉬운 무선 기술 중 하나입니다. 몇 년 동안 현재 진행중인 기술과 미래 기술에 보조를 맞추고 사용자의 요구를 충족시키기 위해 Bluetooth 표준이 많이 업그레이드되었습니다. Bluetooth 버전 1.0에서 Bluetooth 버전 5.0으로 시작하여 더 높은 데이터 속도, 낮은 전류 소비로 IoT에 사용할 수있는 기능, 향상된 보안 등 많은 것이 변경되었습니다. Bluetooth 통신을 배우기 위해 사용할 수있는 많은 모듈이 있습니다. 마이크로 컨트롤러와 인터페이스됩니다. 이러한 블루투스 모듈은 블루투스 4.0 기반의 HM10입니다.
HM10 BLE 4.0 모듈이란?
HM10은 저전력 애플리케이션에 사용하도록 고안된 직렬 BLE 모듈 (Bluetooth-Low-Energy)이며 동전 크기의 배터리로도 오래 사용할 수 있습니다. HM10 블루투스 4.0 모듈 에 기초 텍사스 인스트루먼트 CC2540 또는 CC2541 BLE 시스템의 SoC (시스템 온 칩). 모듈의 펌웨어 및 디자인은 Jinan Huamao Technology에서 만들고 관리합니다. 모듈은 직렬 / UART 레이어와 함께 제공되어 장치가 다른 마이크로 컨트롤러와 인터페이스 할 수 있도록합니다. HM10은 간단한 연결을 생성하고 iBeacon과 함께 또는 iBeacon으로 사용하는 데 이상적입니다.
HM10은 매우 인기있는 Bluetooth 4.0 BLE 모듈이되었습니다. HM10은 Bluetooth 4.0 기반 모듈 전용이므로 HC-05, HC-06 및 기타 Bluetooth 모듈과 같은 Bluetooth 2 / 2.1 모듈과 연결되지 않습니다. HM10은 직렬 UART 연결을 통해 전송되는 AT 명령을 통해 제어됩니다. HM-10은 BLE (Bluetooth Low Energy) 모듈입니다. BLE에 대해 자세히 알고 싶으면 링크를 따르십시오. 또한 nRF24L01 모듈을 Arduino와 함께 BLE 모듈로 사용하는 방법도 알아 봅니다.
HM10과 다른 블루투스 모듈의 차이점
HM10의 주요 차이점은 블루투스 버전입니다. HM10은 Bluetooth 4.0 모듈이므로 속도, 처리량 및 범위와 같은 모든 Bluetooth 버전 4.0 기능이 함께 제공됩니다. 낮은 에너지 / 낮은 전력 소비로 최대 24 Mbps의의 HM10 제공하는 데이터 속도. 이와 함께 HM10은 열린 공간에서 100m의 거리 범위를 제공합니다. Bluetooth 2.0 기반 모듈 인 HC-05와 같은 다른 Bluetooth 모듈에 비해 HM10은 확실히 HC-05보다 성능이 뛰어납니다. HC-05는 HM10에 비해 3Mbps 만 제공합니다.
Bluetooth 모듈 HC-05 및 HC-06 은 저렴하고 인터페이스가 쉽기 때문에 제조업체와 애호가들 사이에서 여전히 매우 인기가 있습니다. 또한 HC-05 / 06을 사용하여 많은 프로젝트를 만들고 다른 많은 마이크로 컨트롤러와 인터페이스했습니다.
- ESP8266과 인터페이스하는 Bluetooth 모듈: LED 제어
- Bluetooth HC-05와 STM32F103C8 Blue Pill 연결: LED 제어
- HC-05 블루투스 모듈과 AVR 마이크로 컨트롤러 인터페이스
- Bluetooth 모듈 HC-06과 PIC 마이크로 컨트롤러의 인터페이스
- Arduino 및 Bluetooth를 사용하는 음성 제어 LED
- Raspberry Pi를 사용한 음성 제어 조명
모든 Bluetooth 관련 프로젝트는이 링크에서 찾을 수 있습니다.
오늘은 HM-10 BLE 모듈과 Arduino Uno를 연결하여 Bluetooth 프로토콜을 사용하여 무선으로 LED를 제어합니다. On / Off 명령은 스마트 폰으로 전송됩니다.
필요한 구성 요소
하드웨어:
- Arduino UNO
- HM10 블루투스 모듈
- 저항기 (1kΩ, 470Ω)
- 점퍼 와이어
소프트웨어:
- Arduino IDE
- Arduino 블루투스 컨트롤러 (HM-10 모듈) Android 앱
- 안드로이드 스마트 폰
회로도
Arduino와 HM-10 Bluetooth 모듈 을 연결하는 회로도는 아래와 같이 매우 간단합니다.
프로젝트를 시작하기 전에 HM-10 모듈이 정품 HM-10 모듈인지 확인하십시오. 널리 사용되는 중국어 복제 HM-10 모듈이 있습니다. 정품 HM-10 모듈과 복제 된 HM-10 모듈의 차이점을 확인하려면 HM-10 보드에 32KHz의 수정 발진기가 있는지 확인하십시오. Crystal Oscillator가 있으면 정품 HM-10 모듈이며 펌웨어를 변경할 필요가 없습니다. 하지만 그 자리에 수정 발진기가 보이지 않는다면 그것은 복제 된 HM10 모듈이고 복제 된 HM-10 모듈의 펌웨어를 변경해야합니다. HM-10 펌웨어를 변경하지 않으면 AT 명령으로 HM-10 모듈에 액세스하거나 스마트 폰과 페어링 할 수 없습니다. 여기서 우리는 또한 복제 모듈을 사용하고 있으므로 Ardruino와 연결하기 전에 펌웨어를 플래시했습니다. 복제 된 HM-10 모듈의 펌웨어를 변경하려면 복제 HM-10 모듈 의 펌웨어를 변경하거나 플래시하는 방법에 대한 자습서를 따르십시오.
Arduino Bluetooth 컨트롤러 (HM-10 모듈) Android 애플리케이션
Arduino Bluetooth 컨트롤러 (HM-10 모듈)는 Google Play 스토어에서 무료로 제공되는 Android 애플리케이션입니다. 이 앱은 HM-10 BLE 모듈을위한 쉽고 간단한 인터페이스를 가지고 있습니다. 테스트 중 HM-10을 빠르게 찾을 수 있었고 HM-10과 즉시 연결되었습니다. 이 앱에는 버튼을 만들고 사용자 정의 이름과 기능으로 사용자 정의 할 수있는 멋진 기능이 있습니다. 여기 에서는이 Bluetooth 컨트롤러 앱에서 Arduino와 연결된 LED를 켜고 끄는 두 개의 버튼을 만드는 방법을 설명합니다.
Arduino Bluetooth 컨트롤러 (HM-10 모듈) Android 앱 설정 방법:
- Google Play 스토어에서 앱을 다운로드하세요.
- 앱의 홈 페이지는 아래와 같이 장치 연결, 아이콘 검색, 아이콘 삭제, 장치 상태, 텍스트 보내기, 템플릿 추가 등과 같은 기능을 찾을 수 있습니다. 검색 아이콘을 클릭하거나 클릭하여 장치 검색을 시작합니다. 오른쪽 상단 모서리에있는 세 개의 점 으로 이동하고 장치 연결을 선택 합니다 .
- 사용 가능한 모든 장치가 화면에 표시됩니다. 올바른 HM-10 모듈을 선택하십시오.
- 이제 HM-10이 성공적으로 연결되고 화면 상단에서 HM-10의 상태를 볼 수 있습니다.
- 이제 텍스트 섹션에 작성하여 텍스트 또는 문자열을 직접 보내거나 보낼 화살표를 누르거나 사용자 지정 템플릿을 만들 수 있습니다.
- 시간을 절약하기 위해 사용자 지정 템플릿을 만듭니다. 오른쪽 상단 의 " + "아이콘을 클릭 하고 세부 정보를 입력합니다. " 이름 "은 버튼 이름이고 " 텍스트 "필드는 HM-10에 전송 될 텍스트 또는 문자열 용이며 " 설명 "은 버튼이 작동하는 방법에 대한 버튼 설명입니다.
- 먼저 LED를 켜는 버튼을 만들고 녹색을 지정합니다. 버튼은 "N"문자를 HM-10으로 보내면 Arduino에 연결된 LED가 켜집니다. 마찬가지로 LED OFF 버튼을 만들고 빨간색을 지정합니다.. 버튼은 아두 이노에 연결된 LED를 끄는 HM-10에“F”문자를 보냅니다.
- 이제 텍스트 필드 바로 아래에 생성 된 두 개의 버튼을 볼 수 있습니다. 이제 LED를 제어하려면 버튼을 클릭하십시오.
이것으로 HM-10 모듈을 제어하기위한 안드로이드 앱 설정 이 완료 됩니다. 이제 Android 앱에서 문자를 가져 오기 위해 Arduino Uno 프로그래밍을 시작하겠습니다.
HM-10 Bluetooth 모듈을 사용하여 LED를 제어하도록 Arduino UNO 프로그래밍
항상 데모 비디오 전체 프로그램은 이 튜토리얼의 끝에서 찾을 수 있습니다. 이 프로젝트를 위해 Arduino UNO를 프로그래밍하려면 많은 노력이나 라이브러리가 필요하지 않습니다. 하드웨어 직렬 및 소프트웨어 직렬 라이브러리를 사용할 수 있습니다. 소프트웨어 직렬을 사용하는 경우 소프트웨어 직렬 라이브러리를 포함하고 그렇지 않으면 하드웨어 직렬로 진행하십시오. 이 프로젝트에서는 SoftwareSerial을 사용하고 있습니다. 따라서 소프트웨어 직렬 라이브러리를 포함하여 시작하십시오. 핀 Rx와 Tx는 Arduino의 2 핀과 3 핀에 연결됩니다.
#포함
두 변수는 HM10 및 Android 앱에서받은 데이터를 저장하는 데 사용됩니다.
char appData; String inData = "";
다만 9600 전송 속도의 하드웨어 및 소프트웨어 시리얼을 시작 하고 디버깅 문을 인쇄 할 수 있습니다. LED 핀은 출력으로 설정되고 처음에는 꺼져 있습니다.
Serial.begin (9600); Serial.println ("HM10 직렬 9600에서 시작됨"); HM10.begin (9600); // 9600 전송 속도로 HM10 직렬 설정 pinMode (13, OUTPUT); // 온보드 LED digitalWrite (13, LOW); // LED 끄기
HM10 포트 수신을 시작 하고 HM10을 사용할 수있을 때까지 문자열을 읽고 데이터를 보냅니다. 데이터를 문자열로 저장하십시오.
HM10.listen (); // HM10 포트 수신 while (HM10.available ()> 0) {// HM10이 무언가를 보내면 read appData = HM10.read (); inData = String (appData); // 데이터를 문자열 형식으로 저장 Serial.write (appData); }
대한 명령 AT와 HM10 디버깅 단지 HM10에 문자열을 보내드립니다 코드 선 아래 물품.
if (Serial.available ()) {// 가능한 경우 사용자 입력을 읽습니다. 지연 (10); HM10.write (Serial.read ()); }
수신 된 문자열이 "F"이면 직렬 모니터에 메시지를 인쇄하고 수신 된 문자열이 "N"이면 LED를 끄고 직렬 모니터에 메시지를 인쇄하고 500ms 지연으로 깜박임 LED를 표시합니다.
if (inData == "F") { Serial.println ("LED OFF"); digitalWrite (13, LOW); // 스위치 OFF LED 지연 (500); } if (inData == "N") { Serial.println ("LED ON"); digitalWrite (13, HIGH); // 스위치 OFF LED 지연 (500); digitalWrite (13, LOW); // 스위치 OFF LED 지연 (500); }
이것으로 Arduino 및 BLE HM10 Blutooth 4.0 모듈을 사용하여 LED를 제어하는 방법 에 대한 전체 자습서를 마쳤습니다. 다시 한 번 기억하세요 . 정품 HM10 모듈이있는 경우 펌웨어를 플래시 할 필요가 없으며 바로 사용할 수 있습니다. 그러나 복제 된 HM-10 모듈을 사용하는 경우 복제 HM10 BLE 모듈에서 펌웨어를 플래시합니다. 의심이나 제안이 있으면 아래에 의견을 말하거나 포럼에 글을 작성하십시오.