(위 이미지들은 Andy Reischle (AReResearch) 님이 게시한 것들입니다.)
Arduino 설치하기
Arduino IDE 실행 화면
Arduino IDE 설정
Arduino IDE에 와이파이-진 코드와 필요한 라이브러리들 추가하기
와이파이-진 다운로드 및 설치
‘Clone or download’ -> ‘Download ZIP’ 클릭
압축 해제 후, 폴더 이름 변경
~/Documents/Arduino에 해당 폴더 복사
ESPAsyncWebServer와 AsyncTCP 라이브러리 다운로드 및 설치
‘Clone or download’ -> ‘Download ZIP’ 클릭
압축 해제 후, 폴더 이름 변경
‘Clone or download’ -> ‘Download ZIP’ 클릭
압축 해제 후, 폴더 이름 변경
~/Documents/Arduino/libraries에 해당 폴더 (2개) 복사
컴파일 확인
Arduino IDE를 재시작
‘WifiZineThrowie’ 스케치를 연다
ESP32 Dev Module 보드를 선택한다
ESP32 Dev Module 보드 설정을 조정한다
컴파일 버튼(빨간 화살표)을 클릭한다
컴파일 과정이 정상적으로 끝나면, 성공
컴파일 과정이 비-정상적으로 끝나면, 실패
ESP32 모듈과 통신하기 위한 USB 장치 드라이버 설치하기 (칩 이름 : SiliconLabs CP2012)
Yosemite (10.10.x)
El capitan (10.11.x)
Sierra (10.12.x)
High Sierra (10.13.x)
Mojave (10.14.x)
Linux 3.x.x & 4.x.x
USB 드라이버 작동 여부 확인하기
드라이버를 지금 막 설치했다면, 컴퓨터를 재시작한다
재시작한 후에 GateKeeper가 드라이버 로딩을 방해하지는 않았는지 확인한다.
Arduino IDE를 시작한 후에, ESP32 모듈과 통신 가능한지 확인
통신이 가능한 경우, 위와 같이 /dev/cu.SLAB_USBtoUART를 선택할 수가 있다.
통신이 불가능한 경우, 위와 같이 /dev/cu.SLAB_USBtoUART가 존재하지 않는다.
와이파이-진 네트워크의 이름, 즉 SSID를 정하고 코드를 수정한다.
보드에 업로드 한다
업로드 버튼(빨간 화살표)을 클릭하고, ‘Connecting…’ 이란 문구가 나타났을때, ESP 보드의 ‘BOOT’라는 버튼을 1초간 눌렀다가 뗍니다.
업로드 성공한 화면
업로드 실패한 화면
제공된 ESP32 모듈의 플래쉬 메모리 용량은 4MB이지만, 전부 다 와이파이-진 컨텐츠를 위해서 사용할 수는 없다. 그 이유는 와이파이-진을 구동하는 코드와 칩 자체의 작동을 위한 코드, 그리고 파일 시스템의 구조 (폴더 구조 및 파일의 구분 등)를 표현하기 위해 사용되는 데이터, 즉 SPIFFS의 구현에 의한 오버헤드와 같은 것들이 4MB 중 일부분을 사용하지 않을 수 없기 때문이다.
ESP32 모듈의 플래쉬 메모리는 작동하는 데이터(즉, 코드), 저장해 두어야 하는 데이터(즉, 메모리), 구조를 기록하는 데이터(즉, 파일 시스템) 등이 파티션을 통해 4MB를 나누어 사용하도록 되어있다.
위의 과정 중에서, ESP32 보드를 설정할때,
Partition Scheme : Default
를 선택했었는데, 기본 파티션 구성의 경우 와이파이-진을 위해서 반드시 필요하지 않은 요소들을 포함하고 있으며, 기본 파티션 구성에서 와이파이-진 컨텐츠에 사용할 수 있는 메모리 용량은 1MB 정도밖에는 되지 않는다.
따라서, Partition Scheme을 보다 효율적으로 재구성하면, 와이파이-진 컨텐츠를 조금 더 많이 업로드 할 수 있게 할 수도 있다. 이렇게 하면, 약 1.9MB 정도의 용량을 사용할 수 있게 된다.
본 과정을 마치게 되면, 다음과 같이
Partition Scheme : WIFI ZINE
을 선택할 수 있게 된다.
작업 과정
파티션 설정 파일 다운로드 및 설치
~/Library/Arduino15/packages/esp32/hardware/esp32/1.0.1/tools/partitions 에 붙여넣는다
~/Library/ 폴더는 Finder에서 숨겨진 폴더이므로 Cmd-Shift-G를 누르고 Library 라고 타이핑하여 들어간다
이후, Arduino15 폴더는 일반적인 폴더와 같이 더블 클릭하여 들어간다
위와 같은 위치로 이동한다
위와 같은 상태로 만든다
boards.txt 파일 수정
위와 같은 위치에 존재하는 파일 boards.txt 파일을 열어 다음에 +로 표시된 4줄을 추가한다 (+표시는 제거한다!)
--- /Users/doohoyi/Downloads/Telegram Desktop/boards.txt
+++ /Users/doohoyi/Library/Arduino15/packages/esp32/hardware/esp32/1.0.1/boards.txt
@@ -52,6 +52,10 @@
esp32.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
esp32.menu.PartitionScheme.fatflash=16M Fat
esp32.menu.PartitionScheme.fatflash.build.partitions=ffat
+esp32.menu.PartitionScheme.wifi_zine=WIFI ZINE
+esp32.menu.PartitionScheme.wifi_zine.build.partitions=wifi_zine
+esp32.menu.PartitionScheme.wifi_zine.upload.maximum_size=1048576
+esp32.menu.PartitionScheme.wifi_zine.upload.maximum_data_size=2752512
esp32.menu.CPUFreq.240=240MHz (WiFi/BT)
esp32.menu.CPUFreq.240.build.f_cpu=240000000L
Arduino IDE 를 재시작한 후, ESP32 DEV Module 설정 중 PartitionScheme을 WIFI ZINE으로 선택하고, 컴파일해본다.
와이파이-진 컨텐츠는 작동하는 코드와는 별도로 저장된다. 따라서, 일반적인 Arduino IDE의 코드 업로드 과정과는 별도의 과정을 거친다. 이를 위해, 별도의 확장 플러그인을 설치해야 합니다.
ESP32FS 플러그인 다운로드 및 설치
~/Documents/Arduino/tools 라는 폴더 생성
압축이 풀린 ESP32FS 를 이곳에 복사 설치
폴더의 구성에 조심해야 합니다. 다음 그림과 같이 설치되어야 합니다. (폴더의 이름이 ESP32FS 인 것도 주의!)
Arduino IDE를 재시작한 후, 플러그인 설치가 성공했는지 확인합니다. 성공했다면, ‘ESP32 Sketch Data Upload’ 라는 메뉴가 추가된 것을 확인할 수 있습니다.
이 메뉴를 실행하면, ~/Documents/Arduino/WifiZineThrowie/data 폴더에 들어있는 모든 파일을 ESP32 모듈의 웹 페이지 저장소에 이동시키게 됩니다.
업로드를 실행하십시오. 업로드 중 출력되는 메세지의 색깔이 빨간색이 아니라 흰색으로 출력됩니다. 코드를 업로드 할 때와 마찬가지로, ‘Connecting…’ 이란 문구가 나타났을때, ESP 보드의 ‘BOOT’라는 버튼을 1초간 눌렀다가 땝니다.
업로드가 성공적으로 완료된 경우의 화면
축하합니다. 와아파이-진을 제작/출판하기 위한 모든 준비가 끝났습니다.
예시 1 텍스트 페이지
예시 2
예시 3
예시 4
예시 5
(advanced) WebSocket - socket.io + server-side programming @ arduino (TBD)
센서를 붙여보기
작동하는 것을 붙여보기