본문 바로가기

프로젝트/AWS LED Button (WIFI, AWS)

(3)
[AWS IoT 프로젝트] AWS LED Button 개요 / 목차 / 동영상 개요 결론적으로는 안드로이드 앱으로 ESP32와 연결된 LED를 켜고 끄는 아주 간단한 프로젝트입니다. 이번 프로젝트의 목표는 하드웨어를 제어하는 것이 아니라, 안드로이드 앱과 임베디드 시스템이 암호화된 웹 클라우드를 매개로 비동기적 통신 시스템을 구현하는 것이기 때문에 제어할 하드웨어 영역을 의도적으로 줄였습니다. 또한 단순한 장거리 통신은 WIFI를 사용하고 ESP32에서 HTTP 서버를 구축하여 구현할 수도 있지만, 아마존 웹 서비스(AWS)를 사용한 이유는 SDK에 보안과 통신을 담당하는 API가 이미 구현되어 있고, 또한 주요 언어, 플랫폼에 대해 제공되기 때문입니다. AWS C언어 SDK는 리눅스용이지만 ESP32 SDK에서 이미 포팅해서 제공하고 있었습니다. Android SDK 링크 제 블..
[AWS IoT 프로젝트] AWS LED Button 개발 환경 IDE는 이클립스, 툴체인은 xtensa-esp32-elf를 사용했습니다. xtensa-esp32-elf는 ESP32 제조사인 Espressif가 gcc 툴체인을 ESP32의 코어인 Xtensa LX6에 맞도록 수정한 것으로 알고 있습니다. 아두이노를 사용하는 방법도 있습니다. 아두이노 역시 xtensa-esp32-elf 툴체인을 사용하지만, 아두이노 특성상 항상 loop() 함수 안에서 모든 것을 처리해야 하기 SDK 이용이 약간 제한된다고 알고 있습니다. 그리고 맥 운영체제에서 개발했습니다. 윈도우(2015 i3 그램), 맥(2010 P8600 13인치 프로) 둘 다 사용해 봤는데, CPU 차이에도 불구하고 맥이 윈도우보다 20배 정도 빠릅니다. 이유는 Espressif가 리눅스용 gcc로만 xten..
[AWS IoT 프로젝트] AWS LED Button 목적 & 요구사항 & 시스템 흐름 제 블로그의 프로젝트 관련 포스트들은 모두 이용하는 제품이나 서비스에 대한 기본적인 이해를 가정하고 실제 구현을 목표로 하므로 기초적인 부분은 직접 공부해야 합니다. 목적 사물(Thing)과 클라이언트는 AWS IoT의 Thing Shadow를 얻어와 초기 동작/상태를 설정하고, AWS IoT를 통해 서로 통신한다. 클라이언트 (안드로이드 앱) 요구사항 회원가입을 하고 이메일 인증을 해야 해당 앱을 이용할 수 있다. 인증된 사용자라도 사물의 고유한 Device Serial Number(DSN)과 operation key를 알고 있어야 사물(Thing)에 접근할 수 있다. DSN과 operation key만 알고 있으면, 인증된 사용자(회원가입 + 이메일 인증)는 서로 다른 기기에서 로그인해도 해당 사물에..