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

ESP3224

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.
ESP32 부팅시 디버깅 메시지 없애기 디버깅을 위해 시리얼창으로 연결하여 보면 ESP32 모듈이 부팅시 알 수 없는 메시지가 많이 출력하게 됩니다. 이런 메시지가 별로 보기가 좋지 않습니다. 예제 소스코드 void setup() { Serial.begin( 115200 ); Serial.println( "Ready..." ); } void loop() { } 이러한 출력을 보이지 않게 하기 위해서 GPIO15번을 GND에 연결하면 됩니다. 리셋 버튼을 눌러 다시 출력해보면 깔끔하게 출력 됩니다. 시리얼1을 사용하여 통신 프로토콜을 만들어 사용시 GPIO15번을 GND에 연결하는 것이 좋습니다. 2023. 10. 2.