녹칸다의 OTA개념도!
이번시리즈는 ESP8266에 펌웨어를 자동적으로 업데이트하기위한 OTA이다!
OTA를 하려면 파일서버가 필요한데 녹칸다가 즐겨사용하는 노드레드(node-red)를 이용해서 파일서버를 구현하고 ESP8266보드에 전원이 들어왔을때 파일서버에 접속하도록 했다!
이때 ESP8266에서 서버쪽으로 전송하는 정보는 자기자신의 ID와 현재 버전이다!
해당 ID에 업데이트된 버전이 있으면 자동으로 새로운 코드를 다운로드 받게되고 현재 버전이 최신이면 그냥 넘어가게된다!
여기서 한가지 고민할 여지가 있는 것이 서버에 의해서 수많은 보드의 버전관리가 이루어지고 새로운 펌웨어를 업데이트를 해주게 되는데 서버가 모든 펌웨어 버전을 관리하는데는 한계가 있다!
무슨말이냐면 100개의 보드가 있다고 할때 보드마다 사용하는 전용코드가 있다면 새로운 버전이 나올때 보드별로 관리를 해주어야한다!
이것보다는 새로운코드는 1개있고 100개의 보드가 새로운 코드를 내려받았을때 자기자신에 저장된 정보를 활용해서 자신의 것으로 만드는게 전략적으로 더 좋다고 생각한다!
ESP8266보드에는 SPIFFS라는 파일시스템이 존재한다! 여기내부 공간에 파일로 자신의 정보를 저장하고 서버에서 내려받은 마스터파일을 자신의 것으로 만든다!
자신의 것으로 만든다는 개념은 인터넷 공유기에 연결해야하는데 사용자마다 wifi공유기 아이디 비밀번호가 서로 다를수가 있다!
그러한 아주 개인적인 것들을 파일로 저장해두고 불러다 쓰면 된다!
그리고 처음 보드가 사용자에게로 갔을때는 이러한 정보가 전혀 없다! 이럴때를 위해서 처음엔 AP모드로 동작하면서 사용자에게 자기자신이 설정해야할 정보를 입력받아서 저장하고 재부팅된 다음 부터 OTA를 이용한 버전관리가 시작되도록 하였다!
이러한 개념을 모두 정리해서 유튜브 스트리밍을 진행했고 결과물을 아래 카테고리에 남겨두었다!
https://bota.tistory.com/category/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/ESP8266%20%26%20OTA
'녹칸다 > 녹칸다의 프로젝트 목록' 카테고리의 다른 글
[계획수립] 블루투스비콘을 이용한 실내위치측위(실내GPS) (1) | 2022.01.02 |
---|---|
[완료] 로터리엔코더와 LCD모듈을 이용한 메뉴트리 만들기 (0) | 2022.01.02 |
[완료] 장거리 무선통신 로라(LoRa)모듈(SX1276)을 이용한 양방향 통신 (0) | 2022.01.02 |
[완료] MISOL 기상관측소 세트로 만드는 녹칸다의 IoT웨더스테이션! (0) | 2022.01.02 |
녹칸다의 프로젝트 현황판(2022.01.02) (0) | 2021.08.24 |