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 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% 안전을 보장해 주지 않으니 마스크는 쓰고 다니자.. ^^

주말 부산 해운대 하늘

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


관련글


BLE

BLE란 ?

  • Bluetooth Low Energy. 
  • 저전력 무선 통신을 위해 특별히 설계된 Classic Bluetooth의 최신 버전
  • Bluetooth 4.0 specification의 주요 기능
  • Classic Bluetooth는 근거리 무선통신으로 유선통신을 대체하도록 데이터 속도를 염두에 두고 설계되었으며 응용 프로그램에는 대용량 파일 전송, 무선 오디오 등이 포함
  • BLE는 높은 데이터 속도 대신 저전력 소비에 최적화되어 IoT 및 배터리 작동 어플리케이션을 대상으로 설계
  • 항상 연결되는 Classic Bluetooth와 달리 BLE는 일반적으로 대기(유휴) 모드에 있으며 필요한 경우에만 깨어나도록 설계

BLE Layer 구조

  • Controller
  • Host
  • Application


Controller Layer

    • PHY – The Physical Layer
    • LL – The Link Layer
    • HCI – Controller side Host-Controller Interface

Host Layer

    • HCI – Host side Host-Controller Interface
    • L2CAP – Logical Link Control and Application Protocol
    • SM – Security Manager
    • ATT – Attribute Protocol
    • GAP – Generic Access Profile
    • GATT – Generic Attribute Profile

Application Layer

    • User interface
    • Data processing
    • Logical 

용어정리

  • GATT : Generic Attribute Profile. Service와 Characteristics를 사용하여 BLE 장치 간 데이터 전송을 위한 사양을 정의.
  • Characteristic : 특성(Charateristic)은 속성(Attribute)라 부르는 정보의 그룹이며 속성은 디바이스간 전송되는 정보의 그룹이다. 속성으로는 아래와 같은 value, declaration, ..
  • Value : Data value of the characteristic
  • Declaration : Properties of the characteristic (location, type like read, write, notify, indicate etc.)
  • Description : ASCII String describing the characteristic.
  • Service : A collection of characteristics is called a Service. Each Service has a unique 16-bit or 128-bit ID called UUID.
  • UUID : Universally Unique Identifier is a 128-bit ID given to each service and characteristic in a profile. Use the website UUIDGenerator to generate unique IDs. Each service and characteristic has a unique 16-bit or 128-bit ID called UUID.



Bluetooth Device Address

블루투스 장치 주소 (Bluetooth Device Address) 

  • 블루투스 디바이스는 적어도 1개 이상의 디바이스 주소를 갖게 됨
  • 48 비트 주소 (피코넷 내 장치 구분) : IEEE MAC 주소 준용
    • 각 장치는 1개 이상의 주소를 갖을 수 있음

블루투스 장치 주소 유형

  • 직렬 비트 처리 동작에 시드(Seed) 역할을 하고,  접속 코드(Access Code) 유도에도 활용됨
    • 접속 코드 유형

        . DAC (Device Access Code)

        . CAC (Channel Access Code)

        . IAC (Inquiry Access Code)

  • Public Device Address 유형
    • 고정 주소 (공장 출하시 하드웨어적으로 기록) 
    • LAP(Lower Address Part)

        . 장치 조회 주소 : 0x 9E8B00 ~ 9E8B3F (64개 주소)

        . 범용 조회 주소 : 0x 9E8B33 (1개 주소)

        . 특수 목적 주소 : 기타 63개 주소

    • UAP(Upper Address Part)
    • NAP(Non-significant Address Part)


  • Random Device Address 유형
    • 동적 주소 (재 지정될 수 있음, 피코넷 내에서 만 유일하면 됨)

        . 피코넷 내에서 보안을 위해 빈번히 변할  수도 있음

     

Bluetooth 통신

Bluetooth 모듈 구분은 Classic Bluetooth와 BLE(Bluetooth Low Energy) 두 가지 유형으로 한다.

BLE (Bluetooth Low Energy)

  • 기존 블루투스 무선 기술에 비해 저전력, 저비용, 단순성, 저속도, 소형 지향
  • Bluetooth 4.0 (2010) 규격에 포함 발표

BLE 주요 특징

  • 연결 중 긴 수면 시간(sleep time)
  • 작은 크기의 데이터 전송 단위
  • 매우 낮은 Duty Cycle
  • 단순한 Topology :  주로 스타형 토폴로지만 지원

BLE 기술적 특징

  • 주파수대역 : 기존 블루투스와 동일 (2.4 GHz) 
  • 사용 채널  : 2 MHz 폭씩 40개 채널
    • 2 MHz 간격 : 2402 + k * 2 MHz (k = 0,1,...,39)
  • 다중 접속  : FDMA, TDMA 방식 모두 사용
  • 전력 소모  : 15 mA 이내
  • 전송 속도  : 1 Mbps 
  • 최대 전송 전력 : 10 mW
  • 통신 방향  : 양방향 모두 지원 가능하지만, 대개 단방향성 만 지원
    • 기기 간에 비 대칭적인 구조로 동작
  • 통신 역할  : 기존 블루투스와 달리, 연결 동안 마스터/슬레이브 역할 교환이 없게 됨
  • 프로토콜 스택 : 기존 블루투스 보다 단순한 구조 채택

프로필(Profile)

SPP, GATT, A2DP, AVRCP, HFP, ... 등 다수의 프로필 존재

블루투스를 사용하기 위해서는 장치(디바이스)는 특정 블루투스 프로파일(Bluetooth Profile)을 해석할 수 있어야 하며, 프로파일은 가능한 응용 프로그램을 정의하고 블루투스 장치가 다른 블루투스 장치와 통신하는데 사용하는 일반적인 특성을 규정한다.


SPP Profile : Serial Port Profile 1.2 spec

SPP는 Serial Port Profile의 약자로 직렬 포트 프로필이라 하며, Classic Bluetooth의 Profile이다. SPP는 두 피어 장치 간에 RFCOMM을 사용하여 에뮬레이트 된 직렬 케이블 연결을 설정하는 데 필요한 Bluetooth 장치에 대한 요구 사항을 정의한다. 요구 사항은 응용 프로그램에 제공되는 서비스와 Bluetooth 장치 간의 상호 운용에 필요한 기능과 절차를 정의하여 표현한다.

GATT Profile : Incorporated GATT Specification Supplement

GATT는 General ATTribute 의 약자로 일반 속성 프로필이라 하며, BLE 프로필이다. 두 개의 BLE 장치가 서비스 및 특성 이라는 개념을 사용하여 데이터를 앞뒤로 전송하는 방식을 정의하며,  이는 테이블의 각 항목에 대해 16 비트 ID를 사용하여 서비스, 특성 및 관련 데이터를 간단한 조회 테이블에 저장하는 데 사용되는 ATT (속성 프로토콜)라는 일반 데이터 프로토콜을 사용한다. GATT 통신의 두 당사자는 클라이언트/서버 관계(주변 장치는 GATT 서버, Central은 GATT 클라이언트)이다. GATT 및 연결에서 염두에 두어야 할 가장 중요한 것은 연결이 배타적이라는 것으로, BLE 주변 장치는 한 번에 하나의 중앙 장치 (휴대폰 등)에만 연결할 수 있다.

Connected Network Topology

아래 그림은 BLE 장치가 연결되는 환경을 나타내고 있다. 주변 장치는 단지 하나의 중앙 장치(모바일 폰과 같은)에 연결될 수 있으나 중앙장치는 동시에 다수의 주변장치와 연결 할 수 있다.


GATT Transactions

GATT에서 이해해야 할 중요한 개념은 서버/클라이언트 관계다.

주변장치는 ATT 룩업 데이터, 서비스, 특성 정의(Characteristic definitions)를 가지고 있는 GATT 서버로  볼 수 있으며, 폰 혹은 타블릿은 서버에 요구를 전달하는 GATT 클라이언트로 볼 수 있다.

모든 트랜잭션은 보조 장치인 GATT 서버로부터 응답을 받는 주 장치인 GATT클라이언트에 의해 시작된다. 

다음 그림은 주 장치가 모든 트랜잭션을 시작하는 주변 장치 (GATT 서버)와 중앙 장치 (GATT 클라이언트) 간의 데이터 교환 프로세스를 보여준다.





참고 

  • https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt

애플망고 싹틔우기 2

애플 망고 싹틔우기 1

애플 망고 씨에서 뿌리가 어느 정도 나오고 나서 화분에 옮겨 심고 잎이 나올 때 까지

21.04.13 왼쪽에 보이는 씨에 뿌리가 보인다.

21.04.23 뿌리가 많이 자란 것을 볼 수 있다.
21.05.01 뿌리가 어느 정도 자란 것 같아 화분에 옮겨 심기 위해 화분 작업을 했다.
망을 화분 아래 크기에 맞춰 잘라 주고, 배양토를 넣었다.



21.05.01 화분에 씨를 옮겨 심었다.

그리고, 기다림..

기다림..

기다..

..

.

.

별 다른 변화가 없다.

5월이 다 갔는데...

.

21.06.02 새로운 애플 망고 씨를 이번에는 깨끗하게 씻어 준비한다. 이전 것은 씨가 조금 이상했어... 




21.06.06 일요일 아침... 허걱.. 싹이 났다..

3.29에 씨를 불리기 시작해서 69일 만에 싹이 올라 왔다. 새로운 씨를 준비하고 있었는데 거기에 자극을 받은 것인지....

Windows 10에 ESP32 IDF 개발 환경 설정

필수 구성요소 설치

ESP-IDF(Iot Development Framework)에는 Pytho, Git, Crosscompiler, Cmake, Ninja 빌드 도구가 필요하다.

https://dl.espressif.com/dl/esp-idf-tools-setup-2.2.exe을 다운받아 실행한다.

I Accept Agreement를 선택하고 다음
Python 3.7을 선택하고 다음
git은 기존 설치된 것으로(버전이 같으니..) 선택 후 다음
Download ESP-IDF 선택 후 다음
다운 받을 버전은 가장 최신 버전으로, 설치 디렉토리는 본인이 원하는 곳으로 변경 후 다음
ESP-IDF Tools이 설치될 디렉토리도 본인이 원하는 곳으로 변경 후 다음
모두 선택 후 다음
설치될 디렉토리 확인 후 "Install" 클릭하면
설치에 필요한 파일들 다운로드, 압축해제, 설치 등의 작업을 거친다.



일련의 작업이 끝나면 Finish

설치가 완료되면
윈도우즈 메뉴 창에 ESP-IDF Command Prompt바로 가기가 설정된다.
기존 명령 프롬프트 창에서 ESP-IDF를 사용하려는 경우 다음을 수행하면 된다.
설치한디렉토리\esp-idf\export,bat 
이거나 설치 디렉토리를 변경하지 않은 경우는
%userprofile%\esp\esp-idf\export.bat




참조 

  • https://docs.espressif.com/projects/espressif-esp-idf/en/latest/


Visual Studio Code에 ESP32 IDF 개발환경 세팅하기

ESP-IDF VS Code Extension

Visual Studio Code에 Espressif IoT Development Framework을 개발, 빌드, 롬라이팅, 모니터링, 디버그 등을 지원

목차


전제조건

Extention을 설치하기 전에 사용하고자 하는 환경에 따라 아래의 프로그램들을 설치해야 한다.

LinuxMacOSWindows
Python 3.5+Python 3.5+Python 3.5+
PIPPIPPIP
GitGitGit
CMakeCMakeC++ Build Tool
Ninja-buildNinja-buildRust

Windows에서 C++ Build Tools 설치

위의 링크에서 다운받은 설치파일을 실행 시키고 첫번째 항목("C++ build tools")을 선택하고 Install 버튼을 누른다.

설치가 완료되고 나서 설치가 잘되었는지 아래와 같이 확인한다.

윈도우 시작메뉴 에서 Development Command Prompt for VS를 실행시킨다.


Command prompt에서 cl.exe 명령어를 실행했을 때 아래와 같이 실행되는지 확인



ESP-IDF Extension설치 하기

VS Code에서 Extension 메뉴를 누르거나 <Ctrl> + <Shift> + <x> 키를 눌러 EXTENSIONS: MARKETPLACE 검색창에 "esp32" 를 입력하여 Espressif IDF를 찾아 install 한다.


install이 끝나면 메뉴에서 View -> Command Palette 에서 "configure esp-idf extension"를 입력하여 "ESP-IDF:Configure ESP-IDF extension"을 선택한다.

EXPRESS를 선택

ESP-IDF 컨테이너를 설치할 디렉토리를 변경하고자하면 변경하고 아니면 그래도 install버튼 클릭


설정이 끝나면 해당 윈도우를 닫는다.