Notice
Recent Posts
Recent Comments
Link
투케이2K
13. (TWOK/STUDY) [투케이 학습] : 스마트 콘피그 (SmartConfig) 와이파이 TCP / IP 통신 기본 설명 및 학습 정리 본문
투케이2K 학습정리
13. (TWOK/STUDY) [투케이 학습] : 스마트 콘피그 (SmartConfig) 와이파이 TCP / IP 통신 기본 설명 및 학습 정리
투케이2K 2023. 8. 29. 10:38[제 목]
[투케이 학습] : 스마트콘피그 (SmartConfig) 와이파이 TCP / IP 통신 기본 설명 및 학습 정리
[설 명]
[스마트 콘피그 설명]
[1]. 스마트 콘피그는 espress 에서 개발한 기술이며, 사용자가 스마트폰에서 간단한 구성을 통해 ESP 모듈 장치를 Wi-Fi 네트워크에 연결할 수 있도록 도와줍니다
[2]. 스마트 콘피그를 사용하기 위해서는 디바이스에서 espress 에서 개발한 하드웨어 모듈에 장착되어 있어야하며, Android 및 Ios 에서 EspTouch 라이브러리 의존성을 추가해야합니다
- 디바이스에서 espress 에서 개발한 하드웨어 ESP 모듈이 없는 경우는 스마트 콘피그를 사용할 수 없습니다
[스마트 콘피그 TCP/IP 통신 로직 - Android 기반]
[1]. 안드로이드 build gradle 에 EspTouch 라이브러리 추가 실시
- implementation 'com.github.EspressifApp:lib-esptouch-android:1.1.1'
[2]. 안드로이드 근처 와이파이 검색 수행
[3]. 특정 와이파이 선택 >> SSID , BSSID 추출 실시
[4]. 와이파이에 연결할 수 있는 PW 정보 입력 실시
[5]. 앱에서 스마트콘피그 브로드캐스팅 알림 활성 실시
- new EsptouchTask(apSsid, apBssid, apPassword, context);
- task.setPackageBroadcast(true);
- esptouchTask.setReciveSendWaitTime(30000, 60000);
- List<IEsptouchResult> results = task.executeForResults(expectResultCount);
[6]. 장비에서 정상적으로 브로드캐스팅 알림 확인 후 해당 AP 정보에 연결 완료 시 >> SSID , HostAddress 추출 실시
- IEsptouchResult first = results.get(0);
- touchResult.getBssid()
- touchResult.getInetAddress().getHostAddress()
[7]. 앱에서 HostAddress , Port 지정해서 TCP/IP 소켓 생성 실시
ConnectivityManager connectivity = (ConnectivityManager) mMainCtx.getSystemService(Context.CONNECTIVITY_SERVICE);
Socket sock = null;
try{
if (connectivity != null)
{
for (Network network : connectivity.getAllNetworks())
{
NetworkInfo networkInfo = connectivity.getNetworkInfo(network);
if (networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_WIFI)
{
if (networkInfo.isConnected())
{
S_Log.w("//===========//","================================================");
S_Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> createSocket() :: 소켓 생성 실시]");
S_Log.i("","\n"+"[host :: "+String.valueOf(host)+"]");
S_Log.i("","\n"+"[port :: "+String.valueOf(port)+"]");
S_Log.w("//===========//","================================================");
// [소켓 생성 실시]
socket = network.getSocketFactory().createSocket(host, port);
socket.setTcpNoDelay(true);
socket.setSoTimeout(0);
}
}
}
} else {
S_Log.e("//===========//","================================================");
S_Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> createSocket() :: start]");
S_Log.i("","\n"+"[error :: ConnectivityManager is null]");
S_Log.e("//===========//","================================================");
}
} catch (Exception e) {
}
[8]. 앱에서 TCP/IP 소켓 연결 확인 실시 (socket.isConnected())
[9]. 정상적으로 소켓 연결이 된 경우 >> 데이터 송수신을 위한 InputStream, OutputStream 지정
[10]. 앱과 디바이스 간 데이터 송수신 수행 실시
[11]. 모든 로직 과정을 마치면 소켓 연결 종료 실시 (socket.close())
[스마트 콘피그 참고 사이트]
https://www.espressif.com/en/products/software/esp-touch/overview
https://play.google.com/store/apps/details?id=com.khoazero123.iot_esptouch_demo&hl=en_US
https://www.techtonions.com/esp32-using-smartconfig/
https://libraries.io/maven/com.tencent.iot.thirdparty.android:esptouch
https://github.com/EspressifApp/EsptouchForAndroid/tree/master/esptouch
반응형
'투케이2K 학습정리' 카테고리의 다른 글
15. (TWOK/STUDY) [투케이 학습] : 블루투스 (Bluetooth) SPP 시리얼 통신 학습 정리 (0) | 2023.08.29 |
---|---|
14. (TWOK/STUDY) [투케이 학습] : NFC - 마이페어 (Mifare) 카드 시리얼 통신 학습 정리 (0) | 2023.08.29 |
12. (TWOK/STUDY) [투케이 학습] : Rx - Reactive Programming 반응형 프로그래밍 학습 정리 (0) | 2023.08.22 |
11. (TWOK/STUDY) [투케이 학습] : NFC - HCE 통신 학습 정리 (0) | 2023.08.18 |
10. (TWOK/STUDY) [투케이 학습] : 비콘 (Beacon) 기본 설명 및 비콘 스캔 및 신호 활성 학습 정리 (0) | 2023.08.17 |
Comments