This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

*/

ESP32 IDF Application OTA

OTA(Over The Air Updates)

OTA 프로세스 개요

  OTA 업데이트 메커니즘을 사용하면 일반 펌웨어가 실행되는 동안(예: Wi-Fi 또는 Bluetooth를 통해) 수신된 데이터를 기반으로 장치를 업데이트할 수 있다.

  OTA는 최소 2개의 "OTA App slot" 파티션(즉, ota_0 및 ota_1 )과 "OTA Data 파티션"으로 장치의 파티션 테이블을 구성해야 한다.

  OTA 작동 기능은 현재 부팅을 위해 선택되지 않은 OTA 앱 슬롯에 새 앱 펌웨어 이미지를 쓰고, 이미지가 확인되면 OTA 데이터 파티션을 업데이트하여 이 이미지를 다음 부팅에 사용하도록 지정한다.

OTA 데이터 파티션

  OTA 데이터 파티션(type "data", subtype "ota")은 OTA 기능을 사용하는 모든 프로젝트의 파티션 테이블에 포함되어야 한다. 

# ESP-IDF Partition Table
# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x4000,
otadata,  data, ota,     0xd000,  0x2000,
phy_init, data, phy,     0xf000,  0x1000,
factory,  app,  factory, 0x10000,  1M,
ota_0,    app,  ota_0,   0x110000, 1M,
ota_1,    app,  ota_1,   0x210000, 1M,
Copy to clipboard

  공장 부팅 설정의 경우 OTA 데이터 파티션에는 데이터가 없어야 한다(모든 바이트는 0xFF로 지워짐). 이 경우 esp-idf 소프트웨어 부트로더는 파티션 테이블에 있는 경우 factory app을 부팅한다. 파티션 테이블에 factory app이 포함되어 있지 않으면 사용 가능한 첫 번째 OTA 슬롯(일반적으로 ota_0)이 부팅된다.

  첫 번째 OTA 업데이트 후 OTA data 파티션이 업데이트되어 다음에 부팅해야 하는 OTA 앱 슬롯 파티션을 지정합니다.

  OTA data 파티션은 2개의 플래시 섹터(0x2000바이트) 크기로 기록 중 정전이 발생할 경우 문제를 방지한다. 섹터는 독립적으로 삭제되고 일치하는 데이터로 기록되며, 일치하지 않는 경우 카운터 필드를 사용하여 가장 최근에 기록된 섹터를 결정한다.



참고

관련문서 

BLE Attribute Protocol

속성(Attribute)

 Attribute(ATT, 속성) 프로토콜은 BLE 프로토콜 스택 중의 하나다. BLE 서버 데이터베이스에서 데이터를 표현하는 방법과 해당 데이터를 읽거나 쓸 수 있는 방법을 정의한다.

속성은 4개의 구성으로 정의한다.

  • attribute type : UUID - 128 bit 숫자(혹은 16 이나 32bit를 사용하기도 함)
  • attribute handle : 특정 속성을 참조하기 위한 0이 아닌 숫자
  • attribute permissions : read and/or write 정의
  • attribute value
상기 속성은 ATT에서 정의한 방법을 사용하여 읽거나 쓸 수 있다. 예를 들어 클라이언트가 서버로 요청을 보내면 서버는 클라이언트로 응답을 보내고, 서버에서 클라이언트로 보내는 알림(notification)은 클라이언트에서 응답하지 않는다.


속성 메소드(Attribute method)

 ATT 프로토콜은 속성을 읽거나 쓸 수 있는 방법도 정의한다. 지원되는 방법은 6가지이며 결과적으로 6개의 PDU(프로토콜 데이터 단위)를 정의한다. 6가지 방법과 해당 PDU 유형은 다음과 같다.

  • Commands: 클라이언트에서 서버로 전달. response 호출하지 않음
  • Requests: 클라이언트에서 서버로 전달. response 호출
  • Responses: 서버가 request 를 받았을때 클라이언트로 전달
  • Notifications: 서버에서 클라이언트로 전달. 클라이언트의 요청과 무관하게 전송.
  • Indications: 서버에서 클라이언트로 전달하고 클라이언트는 response 호출. 클라이언트의 요청과 무관하게 전송.
  • Confirmations: 클라이언트에서 indication에 대한 response로 서버로 acknowledgment를 전달 .

BLE State

 BLE는 아래 5개의 State를 가진다.

  • Standby
  • Advertising
  • Scanning
  • Initiating
  • Connected


BT core 4.1 이후 Synchronization state 가 추가되었다.



ESP32 Pinmap

ESP32-WROOM-32 Pinmap


ESP32-DevKitC Pinmap



Reference 

  • https://docs.espressif.com/

관련문서 

애플망고 키우기-애망일

애플망고를 화분에 옮겨 심고 싹이 나와 싹이 난 일자를 적고, 이름을 붙였다. 

애플 망고 1호 그래서 애망일.. 

 [2021.06.08]

[2021.06.09]
[2021.06.10]
[2020.06.12]
[2021.06.14]
[2021.06.14]
[2020.06.18] 

관련글


잔여백신 예약방법 - 진짜 빠른 방법

 기존 정부에서 알려주는 방법(https://www.korea.kr/news/policyNewsView.do?newsId=148887958) 에서 알림기능을 통해 예약하는 것은 아마도 하늘의 별따기가 아닐까 싶다.

카카오톡에서 주변 5개 의원에 예약 걸어 놓고 기다려 알람이 뜨면 눌러서 들어가 봐도 항상 잔여 백신의 수는 0이고, 접종 기관 상태는 대기중 아니면 마감이다.

 

수동적으로 알림이 오기를 기다리지 말고 능동적으로 해보자

1. #잔여백신 지도 화면에서 잔여 백신 있음을 체크한다.

2. 리프레쉬 버튼을 누르고 토스트메세지 "지도 내 조건에 맞는 접종기관이 없습니다." 가 나오면 리프레쉬 버튼을 다시 누른다.
 

3. 2번을 반복하다가 아래와 같이 해당 의원이 표시되면 빠르게 아이콘을 클릭한다.
  해당 병원에 남은 백신이 1~3개면 빨간색, 4~6개면 주황색, 7개이상이면 녹색으로 표기
 
4. 3에서 아이콘을 클릭했을 때 해당기관에 잔여 백신이 있을 때와 없을 경우 다른 화면이 나올 수 있다. 4-1인 경우 빠르게 당일예약버튼을 클릭. 4-2의 경우 2번으로 돌아간다. 3화면에서 조금만 늦게 눌러도 4-2화면이 표시된다. 사람들 진짜 빠르다. 3번화면에서 7개이상 남았다고 들어갔는데 4-1화면에서처럼 1,2개 남아 있다고 뜨는 경우나 4-2처럼 없을 경우가 많다.

4-1. 있을 경우(당일예약버튼 있다)     4-2 없을 경우(알림신청만 있다)
          

5. 4-1에서 당일예약버튼을 누르면 백신 선택 화면이 나온다. 자신이 원하는 백신이면 예약하기를 클릭, 아니면 2번으로 돌아간다. 해당기관에 동시에 아스트라제네카와 얀센이 있을 경우 선택 할 수 있는 경우도 있다. 

6. 예약하기를 눌러도 8~95%는 다음과 같은 화면을 보게 될 것이다. 그러나 실망하지 말자. 이 화면을 봤다는 것은 몇 번만 더 하면 예약 가능하다는 말과 같다. 2번으로 돌아가 다시 힘내서 반복하자.

 7. 5에서 예약하기를 눌렀을 때 아래와 같은 화면이 나오면 성공적으로 예약 완료된 것으로 보면 된다. 접종 종료 시간 전에 해당 기관에 방문하여 백신을 맞길 바란다.  

이제 당신은 코로나의 위험으로부터 약간은 안전해 졌다.  그러나, 백신을 맞았다고 100% 안전을 보장해 주지 않으니 마스크는 쓰고 다니자.. ^^

주말 부산 해운대 하늘

 어제 일이 있어 해운대에 갔다가 하늘에 떠 있는 구름이 멋있어서 


관련글