‘KuKu Mi’ BT 범위 확장을 위한 Arduino
‘KuKu Mi’ Mijia BT 온습도 센서를 연동하고 보니,
Zigbee/Z-Wave, WiFi 센서와는 다르게 서버에서 멀리 떨어진 센서를 감지 못하는 문제점이 존재.
기존 BT 동글의 무선 등급이 Class II(10m?) 인지라,
Class I(100m) 동글을 직구했는데 Audio 전용 동글이라 실패 후,
브릿지 역할을 하는 Arduino 로 방향 전환.
0. 구조
1. 설치
1-1) Arduino IDE 설치
Arduino 공홈에서 IDE 설치 Link
1-2) ESP32용 Arduino Core 설치
Link 참고하여 IDE 설치 한 폴더안에 ESP32용 Arduino Core 설치
1-3) ESP32 기본 파티션 변경
기본 파티션 크기로는 WiFi Library랑 BLE Library를 추가하고 다운로드가 불가능하여,
기본 파티션 크기를 변경해야만 한다.
[ARDUINO_DIR]/hardware/espressif/esp32/boards.txt
ex) C:\Users\turlv\Documents\Arduino\hardware\espressif\esp32
위의 ‘boards.txt’를 편집해서, ‘???.upload.maximum_size’ 값을 모두,
‘1310720’을 ‘1672864’로 변경
[ARDUINO_DIR]/hardware/espressif/esp32/tools/partitions/default.csv
ex) C:\Users\turlv\Documents\Arduino\hardware\espressif\esp32\tools\partitions
위의 파일도 엑셀로 열어서 아래와 같이 Offset과 Size를 변경
1-4) Arduino IDE 기본 설정
– Arduino IDE Application 실행
– ‘Tool -> Board -> ‘ESP32 Dev Module’ 선택
( 1-2)단계를 정상적으로 수행하였다면 ‘ESP32 Dev Module’이 보일 것임 )
1-5) Arduino용 ‘KuKu Mi’ Bridge 다운로드
– USB로 Arduino 보드 연결 후 장치관리자에서 포트 확인
– IDE -> Tool -> Port 에서 해당 포트로 설정
– Github의 ‘arduino-ble-bridge.ino’ 소스 복사 후 붙여넣기 Link
– 소스 안에서 아래 값 각자 환경에 맞게 변경
‘WIFI_SSID‘ : ESP32가 연결 할 AP SSID 이름
‘WIFI_PASSWORD‘ : 연결 할 AP의 패스워드
‘POST_URL‘ : ‘KuKu Mi’가 동작하고 있는 서버 IP주소
– [옵션] LCD 추가시
– 소스에서 아래 ‘//’ 삭제
//#define SUPPORT_LCD
– Arduino IDE에서 라이브러리 추가
IDE -> 스케치 -> 라이브러리 포함하기 -> 라이브러리 관리
“Adafruid SSD1306” 검색해서 “Adafruit SSD1306 by Adafruit” 설치
“Adafruit GFX Library” 검색해서 “Adafruit GFX Library by Adafruit” 설치
– 소스 컴파일 후 보드 다운로드하기
2. Arduino 패키징
2-1) Rev.a (ESP32s)
무작정 케이스 안에 넣어야지 하고 편의점을 뒤져서 찾은 케이스에 쑤셔 넣은 버전
2-2) Rev.b (ESP32s + OLED)
상태 표시를 위한 OLED 추가 후 케이스에 넣은 두번째 버전
– OLED와 ESP32의 VCC, GND, SCL, SDA 핀 연결
(ESP32 Pin Map Link)
ESP32 | OLED |
---|---|
GND | GND |
3.3V | VCC |
SCL | SCL |
SDA | SDA |
– 완료 모습
– 동작모습
참고로 모든 작업은 와이프가 없을때 행해졌습니다.
왜냐하면…
.
.
.
.
.
.
.
이렇게 거실을 난장판으로 만들게 되버려서,
등짝스매싱이 예상되기 때문입니다… ^^;;
와이프 없을때 ㅋㅋㅋ
오오 와이프님이다