본문 바로가기
  • 재미있는 펌웨어와 코딩

ESP32/펌웨어15

ESP32 Captive Portal 사용하기 ESP32 모듈을 와이파이에 접속 하려면 하드코딩을 하거나 WiFiManager와 같은 라이브러리를 이용합니다. 방법은 여러가지가 있을 수 있지만 이번에 소개할 방법은 Captive Portal를 이용 하는겁니다. Captive Portal은 Wi-Fi 또는 유선 네트워크에 새로 연결된 사용자에게 네트워크 리소스에 대한 광범위한 액세스 권한이 부여되기 전에 웹 브라우저에서 액세스하는 웹 페이지입니다. 버스 정류장 또는 버스 안에서 무료 와이파이에 연결하려면 연결되기 전에 로그인 화면이 나오는것을 보셨을 것입니다. 바로 그런 화면을 띄워서, 연결하고자 하는 공유기의 SSID와 패스워드를 입력하게 하여 와이파이를 사용 하고자 합니다. 소스가 다소 길고 어려울 수 있습니다. 하지만 Captive Portal에.. 2023. 10. 6.
ESP32 환경설정 저장 - Preferences ESP32에서 환경변수 저장은 EEPROM을 사용하지 않고 내부의 Flash 메모리에 저장합니다. EEPROM을 사용할 때 보다 자유롭고 더 많은 데이터를 저장할 수 있습니다. ESP32에는 아주 편한 Preferences 클래스가 있습니다. 네임스페이스 안에 키와 값이 쌍으로 연결되는 구조 입니다. 네임스페이스1 { 키1 : 값, 키2 : 값, 키3 : 값 } 네임스페이스2 { 키1 : 값, 키2 : 값, 키3 : 값 } 마치, 윈도우의 INI파일과 같이 사용하면 됩니다. Preferences에 여러개의 네임스페이스가 존재 할 수 있습니다. 그러므로 환경변수를 그룹별로 저장이 가능합니다. 먼저, 예제 부터 보겠습니다. 아래의 코드는 제가 좀 더 쉽게 사용하기 위하여 두 개의 함수를 만들었습니다. 와이파.. 2023. 10. 5.
ESP32 웹서버 만들기 - 부트스트랩 넣기 웹서버 페이지를 구성하려면 html, css 가지고 노가다 작업을 많이 해야합니다. 그래서 저는 w3.css를 사용 했었는데 부트스트랩(Bootstrap)을 많이 사용한다고 해서 ESP32 모듈에 부트스트랩을 넣어서 사용해 볼까 합니다. https://getbootstrap.kr/ Bootstrap 강력하고 확장 가능하며 기능이 풍부한 프론트엔드 툴킷. Sass로 빌드 및 커스터마이징하고, 사전 빌드된 그리드 시스템 및 구성 요소를 활용하고, 강력한 JavaScript 플러그인으로 프로젝트에 생기 getbootstrap.kr 먼저 부트스트랩을 구성하기위한 파일을 다운로드 합니다. 다운받은 파일을 압축을 풀어 2가지 파일을 자신의 프로젝트 폴더의 data/src 로 복사합니다. js 파일은 js 폴더에 b.. 2023. 10. 4.
ESP32 OTA를 이용한 펌웨어 업데이트 ESP32는 와이파이를 이용한 웹 접속이 가능하기 때문에 펌웨어도 웹페이지로 접속하여 업데이트를 할 수 있습니다. OTA (Over-the-air programming)를 이용하여 유선이 아닌 무선을 이용하여 펌웨어를 업데이트 해보겠습니다. 업데이트 하는 과정은 상당히 복잡합니다. 소스를 이해하려고 하지 말고 그냥 라이브러리 사용한다 생각하는것이 좋습니다. 그래서 SPIFFS에 ota.css 와 ota.html파일을 넣어서 사용하면 편리 합니다. 예제 소스코드 // 와이파이를 이용한 펌웨어 업데이트. #include #include #include #include "ESPAsyncWebServer.h" #include "SPIFFS.h" #include #include #include DNSServer .. 2023. 10. 3.
ESP32 웹서버 만들기 - 입력 받기 이전 강좌까지는 웹페이지에서 버튼을 눌러 ESP32 모듈에 부착된 LED를 ON/OFF 했습니다. https://jooduino.tistory.com/7 ESP32 웹서버 만들기 - CSS를 이용하여 버튼 예쁘게 지난 강좌에 이어서 이번에는 버튼을 좀더 예쁘게 만들겠습니다. https://jooduino.tistory.com/5 ESP32 웹서버 만들기 - 버튼 추가 지난 강좌에 이어서 이번에는 웹페이지에 버튼을 만들고 모듈의 내부에 jooduino.tistory.com 이제는 반대로 ESP32 모듈에 부착된 버튼의 상태를 웹페이지에서 확인해 보겠습니다. 먼저, 회로도 입니다. 버튼 라이브러리 참조 https://jooduino.tistory.com/10 아두이노 버튼 라이브러리 아두이노에 버튼을 연결하.. 2023. 10. 3.
아두이노 버튼 라이브러리 아두이노에 버튼을 연결하여 사용시 하드웨어와 소프트웨어 두 종류에 신경을 써야 합니다. 버튼을 누를 때 발생하는 채터링( chattering )이 발생 하여 한 번 눌렀지만 입력이 여러번 반복되어 생각하지 못한 오류를 발생하게 됩니다. 하드웨어 - 버튼 입력에 0.1uF 콘덴서를 GND에 연결한다. - 콘덴서 용량이 커지면 입력 속도가 늦어진다. 소프트웨어 - 버튼 입력시 일정 시간 동안 입력이 유지 되는지 확인 한다. - 입력 체크 시간(Debounce Time)이 너무 길면 입력 속도가 늦어진다. 또한, 버튼이 한 번 눌렀을 때에만 동작 해야할 때도 있고 버튼을 뗐을 때도 한 번만 동작 해야할 때도 있습니다. 또는 길게 누르고 있을 경우도 있어서 이러한 복잡한 동작들을 라이브러리화 시켜서 사용하면 편.. 2023. 10. 3.