반응형
HM-10모듈을 통해 Arduino에서 BLE / iBeacon을 구현하는 중인데 이제 분석을 하니 언제나 할 수 있으려나. 가이드에 따르면
- HM-10으로 BLE 기능을 구현 가능.
- HM-10의 AT commands를 사용해 iBeacon을 구현 가능.
▶ HM-10 모듈 설명
HM-10 모듈은 1만원 미만의 가격으로 BLE(Bluetooth Low Energy/블루투스 4.0 최신버전 스펙)를 구현할 수 있게 해준다. BLE는 전 버전의 블루투스에 비교해 매우 짧은 pairing(연결구성)과 낮은 전력소모로 알려져 있다. 그리고 iBeacon이라는 주기적인 브로드캐스팅 스펙을 가지고 있다.
의외로 HM-10 모듈은 여러가지 버전이 있다. 기본적으로 Texas Instrument의 CC254x 칩을 기반으로 하지만, 여기서는 아래 부품을 기준으로 한다. 납땜이 되지 않은 모듈은 3.3V기반이므로, UNO에서 사용하기 위해서는 아래처럼 핀이 모듈에 연결된 보드를 사용한다.(기사 참고 BLE / iBeacon을 아두이노에서 구현하게 해주는 HM-10 https://bbangpan.tistory.com/17)
프로그램 소스 출처 : https://github.com/godstale/How-to-make-talking-things
사용한 BLE 안드로이드 앱은 BLE Chat 앱으로 테스트
약간 수정한 소스코드 - 주기적으로 데이터 송신, delay 적당히 줌
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | #include <DHT11.h> #include <SoftwareSerial.h> int pin=2; // 연결한 아두이노 디지털 핀 번호 DHT11 dht11(pin); SoftwareSerial BTSerial(7, 8); //Connect BT's TX, RX float temp_sum = 0; float humi_sum = 0; int count = 0; #define SENDING_INTERVAL 4000 unsigned long prevReadTime = 0; void setup() { Serial.begin(9600); BTSerial.begin(9600); } void loop() { int err; float temp, humi; if((err=dht11.read(humi, temp))==0) { temp_sum = temp_sum + temp; humi_sum = humi_sum + humi; count = count + 1; } else { BTSerial.print("Error No :"); BTSerial.print(err); BTSerial.println(); } Serial.println(temp); //if(millis() - prevReadTime > SENDING_INTERVAL) { //BTSerial.print("thingspeak:key=xxx&field1="); BTSerial.print((int)(temp_sum / count)); //BTSerial.print("&field2="); BTSerial.print(" "); BTSerial.print((int)(humi_sum / count)); BTSerial.print("[*]"); count = 0; temp_sum = 0; humi_sum = 0; prevReadTime = millis(); //} //delay(DHT11_RETRY_DELAY); //delay for reread delay(2000); } |
반응형
'아두이노' 카테고리의 다른 글
블루투스4.0 BLE 모듈 HM-10 Module 사용법(AT 커맨드 포함) (0) | 2019.03.04 |
---|---|
Build errors after Android Studio 3.2.1 upgrade 에러- com.android.tools.build:aapt2:3.2.1-4818971 (0) | 2019.03.03 |
아두이노 나노 스마트폰과 HM-10 연동하기 1 - 초기 설정 (2) | 2019.02.25 |
아두이노 온도 습도 미터기 DHT11 과 OLED display 사용 (0) | 2019.02.25 |
아두이노 I2C 스캐너 소스코드, I2C scanner (1) | 2019.02.25 |