KC인증 과정에서 업체 측에서 부품 배치도를 요청하였을 때 아래와 같이 작업하여 전달하면 된다.

 

File -> Create PDF 선택

 

1) 왼쪽 상단 

    - 출력하고자 하는 Top , Bottom 외에 다른 Layer는 삭제

 

2) "Selected layers" 목록 레이어 추가

    - 해당 Top 레이어에 표기되었으면 하는 Layer를 선택 

    ( 본인의 경우에는 Silk Screen Top, Mechanical 1을 추가하였다.)

    - Board Outline인 Mechanical 1의 경우 "2D Lines"만 체크 외 "Top Layer"와 Silk Screen Top의 경우 위

      "Items on selected layer" 부분과 동일하게 체크하여 진행하면 된다.

 

 

해당 세팅을 Bottom도 동일하게 진행하고 Create PDF로 출력하여 PDF파일로 저장하면 된다.

 

mysql 설치 과정 

 

https://www.mysql.com/downloads/ 접속

 

MySQL :: MySQL Downloads

Contact MySQL  |  Login  |  Register The world's most popular open source database MySQL.com Downloads Documentation Developer Zone MySQL Enterprise Edition includes the most comprehensive set of advanced features and management tools for MySQL. MySQL Data

www.mysql.com

 

 

Mysql Community (GPL) Downloads 선택

 

 

 

MySQL Community Server 선택

 

 

Windows (x86,32 & 64-bit), MySQL Installer MSI 선택

 

아래 415.1M 다운로드 

 

No thanks, just start my download. 선택

 

마음편하게 Developer Default 선택 -> Next 선택

 

※Developer Default로 하면 mysql 사용시 추가로 같이 사용하게 될 Workbench도 포함하여 같이 설치하게 된다.

 

 

아래 화면 나올 때까지 Next, 아래 화면에서 해당 포트번호는 기억해둔다.(외부접속이 필요한 상황을 위해)

 

 

root접근 계정 비밀번호 설정 및 Next선택 (admin 계정 추가한건 안해도 무방)

 

 

쭉~ Next 선택 설치 끝!

 





ESP32 IDF WI-FI 연결 시나리오




ESP32 WI-FI 전체 동작 시나리오에 대해 작성하려고한다. 해당 시나리오에 대해 정확히 알아야 WI-FI 기능을 포함한 프로그램을 작성하는데 문제가 없다. 

아래에 플로우는 ESP32 공식홈페이지에 있는 것을 그대로 긁어왔다. 내용 또한 공식 홈페이지와 크게 다르지 않다. 그리고 나는 SoftAP모드가 아닌 STATION만 사용 할 것이기 때문에 STATION에 관한 부분만 알아보도록 한다. 



ESP32 WI-FI 프로그래밍 모델 



Wi-Fi Driver는 TCPIP 스택, 어플리케이션 작업, 이벤트 작업 등, 상위 레이어의 코드에 대해 아무것도 모르는 블랙박스로 생각할 수 있다. Wi-Fi 드라이버는 상위 계층에서 API 호출을 수신하거나, API 에스_wifi_init()에 의해 초기화되는 특정 대기열에 이벤트 큐를 게시하는 것 뿐이다. 


Event task는Wi-Fi 드라이버 또는 TCPIP 스택과 같은 다른 하위 시스템에서 이벤트를 수신하는 데몬 작업이라 보면된다. 이벤트 태스크는 이벤트 수신시 기본 콜백 함수를 호출한다. 예를 들어, SYSTEM_EVENT_STA_CONNECTED를 받으면 tcpip_adapter_start ()를 호출하여 기본 처리기에서 DHCP 클라이언트를 시작한다.


Application task는 API esp_event_init에 의해 자체 이벤트 콜백 함수를 등록 할 수 있다. 그러면 응용 프로그램 콜백 함수가 기본 콜백 후 호출된다. 또한 응용 프로그램이 이벤트 태스크에서 콜백을 실행하지 않으려면 관련 이벤트를 응용 프로그램 콜백 함수의 응용 프로그램 태스크에 게시해야한다.


위그림의 프로그래밍 모델을 조금 더 쉽게 표현한게 밑에 그림이다.




메인 프로그램에서 이벤트 핸들러가 될 함수를 아래와 같이 정의한다. 즉, 새 이벤트를 알릴 때마다 WIFI Driver가 호출하는 함수이다. 


1
2
static esp_err_t event_handler(void *ctx, system_event_t *event)
{...}
cs

프레임 워크에서 생성 할 수 있는 이벤트 목록은 esp_event.h 파일에 포함되어있으며, 해당 파일은 esp_event_loop.h 안에 포함되어있다. enum 형태로 정의 되어있다. 스테이션 모드에서 작업 할 때 WIFI Driver와 관련된 이벤트의 이름은 "SYSTEM_EVENT_STA" 접두사를 사용하고있다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
typedef enum {
    SYSTEM_EVENT_WIFI_READY = 0,           /**< ESP32 WiFi ready */
    SYSTEM_EVENT_SCAN_DONE,                /**< ESP32 finish scanning AP */
    SYSTEM_EVENT_STA_START,                /**< ESP32 station start */
    SYSTEM_EVENT_STA_STOP,                 /**< ESP32 station stop */
    SYSTEM_EVENT_STA_CONNECTED,            /**< ESP32 station connected to AP */
    SYSTEM_EVENT_STA_DISCONNECTED,         /**< ESP32 station disconnected from AP */
    SYSTEM_EVENT_STA_AUTHMODE_CHANGE,      /**< the auth mode of AP connected by ESP32 station changed */
    SYSTEM_EVENT_STA_GOT_IP,               /**< ESP32 station got IP from connected AP */
    SYSTEM_EVENT_STA_WPS_ER_SUCCESS,       /**< ESP32 station wps succeeds in enrollee mode */
    SYSTEM_EVENT_STA_WPS_ER_FAILED,        /**< ESP32 station wps fails in enrollee mode */
    SYSTEM_EVENT_STA_WPS_ER_TIMEOUT,       /**< ESP32 station wps timeout in enrollee mode */
    SYSTEM_EVENT_STA_WPS_ER_PIN,           /**< ESP32 station wps pin code in enrollee mode */
    SYSTEM_EVENT_AP_START,                 /**< ESP32 soft-AP start */
    SYSTEM_EVENT_AP_STOP,                  /**< ESP32 soft-AP stop */
    SYSTEM_EVENT_AP_STACONNECTED,          /**< a station connected to ESP32 soft-AP */
    SYSTEM_EVENT_AP_STADISCONNECTED,       /**< a station disconnected from ESP32 soft-AP */
    SYSTEM_EVENT_AP_PROBEREQRECVED,        /**< Receive probe request packet in soft-AP interface */
    SYSTEM_EVENT_AP_STA_GOT_IP6,           /**< ESP32 station or ap interface v6IP addr is preferred */
    SYSTEM_EVENT_ETH_START,                /**< ESP32 ethernet start */
    SYSTEM_EVENT_ETH_STOP,                 /**< ESP32 ethernet stop */
    SYSTEM_EVENT_ETH_CONNECTED,            /**< ESP32 ethernet phy link up */
    SYSTEM_EVENT_ETH_DISCONNECTED,         /**< ESP32 ethernet phy link down */
    SYSTEM_EVENT_ETH_GOT_IP,               /**< ESP32 ethernet got IP from connected AP */
    SYSTEM_EVENT_MAX
} system_event_id_t;
cs


최초 메인프로그램에서 WIFI Driver에 대한 config를 진행하면 WIFI Driver에서 "SYSTEM_EVENT_STA_START" 라는 성공 메세지를 준다. 



1
2
3
4
5
6
7
8
9
10
11
12
13
static esp_err_t event_handler(void *ctx, system_event_t *event)
{
switch(event->event_id) {
 
  case SYSTEM_EVENT_STA_START:
    esp_wifi_connect();
    break;
  case SYSTEM_EVENT_STA_GOT_IP:
    xEventGroupSetBits(wifi_event_group, CONNECTED_BIT);
    break;  
  case SYSTEM_EVENT_STA_DISCONNECTED:
    xEventGroupClearBits(wifi_event_group, CONNECTED_BIT);
    break;
cs



"SYSTEM_EVENT_STA_START" 이후 esp_wifi_connect() API 함수를 호출하여 WIFI Driver가 지정한 네트워크에 연결하도록 요청한다. 이 후 정상적으로 연결이 완료되면 WIFI Driver에서 "SYSTEM_EVENT_STA_GOT_IP"를 전달하게되고, CONNECTED_BIT 설정한다. 반대로 연결이 해제되거나 제대로 연결이 안되었을 경우에는 CONNECTED_BIT를 클리어해준다. 



1
xEventGroupWaitBits ( wifi_event_group , CONNECTED_BIT ,  false ,  true , portMAX_DELAY ) ;
cs



설치과정이 진행되는 동안에는 정상적으로 설치가 될 때까지 xEventGroupWaitBits 함수를 통해 portMAX_DELAY에 설정된 시간동안 대기 할 수도 있다. 시간은 무제한 설정 가능하다.이 후 정상적으로 연결된 네트워크의 상태값을 알고 싶을 경우에는 아래와 같이 확인 할 수 있다.



1
2
3
4
5
tcpip_adapter_ip_info_t ip_info;
ESP_ERROR_CHECK(tcpip_adapter_get_ip_info(TCPIP_ADAPTER_IF_STA, &ip_info));
printf("IP Address:  %s\n", ip4addr_ntoa(&ip_info.ip));
printf("Subnet mask: %s\n", ip4addr_ntoa(&ip_info.netmask));
printf("Gateway:     %s\n", ip4addr_ntoa(&ip_info.gw));
cs






'스터디 > ESP32' 카테고리의 다른 글

ESP32 Windows 개발환경 -AWS IoT core (2)  (0) 2019.01.23
ESP32 Windows 개발환경 -AWS IoT core (1)  (0) 2018.12.26





플업 풀다운에 대한 이해



개요


풀업과 풀다운에 대해 이해하기 위해선 먼저 "플로팅"에 대하여 설명이 되어야 한다. 해서 먼저 플로팅 상태에 대해 간단하게 설명하고 풀업과 풀다운에 대하여 설명하도록 하겠다. 



플로팅 (Floating) 상태

"상태를 알 수 없다"


플로팅이란 "유동적인, 떠있는"이란 사전적 의미를 가지고 있다. 이 의미를 디지털 회로에 비교표현 하자면 "상태를 알 수 없다"로 정의 할 수 있다. 정상적인 경우 0(Low) 이거나 1(High)이 명확해야 원하는 동작을 하겠지만 0 이거나 1이 아닌 상태라면? 정상적인 동작을 할 수 없을 것이다. 보통 이런 경우는 입력단 회로일 때 발생 할 수 있다. 여기서 입력이란 스위치 같은 물리적인 입력이 발생하는 것을 말한다.





위 그림의 경우 어떻게 동작하는지 한번 봐보도록 하자. (1)의 회로의 경우 스위치가 눌렸을 때는 "0"을 의미하겠지만 스위치가 떨어졌을 땐? 0도 1도 아닌 알 수 없는 상태가 될 것이다. 이 것이 플로팅 상태라 한다. 실제 왼쪽 회로와 동일하게 구성하고 스위치를 동작했을 경우 정상적으로 되지 않을 것이다. (2)의 경우 풀업저항 (3)의 경우 풀다운 저항이 적용되어, 스위치가떨어진 경우에 상태값이 명확해진다. 



풀업 풀다운


 스위치

ON 

OFF 

(1) 스위치

 0 V (Low) 

 플로팅 상태

(2) 풀업저항

0 V (Low)

  5 V (High) 

(3) 풀다운저항

 5 V (High)

 0 V (Low)



저항없이 그냥 연결해도 되지않나? 라고 생각 할 수 있지만 간단하게 "과전류가 되지않도록 저항을 추가한다" 라고 생각하면 편하다. 일반적인 경우 풀다운보다 풀업이 노이즈에 강하다 그래서 풀업을 더 많이 사용한다. 필요 경우에 따라 MCU 입력단이 스위치 동작에 따라 받고자 하는 상태에 따라 상황에 맞게 사용하면 된다. 






"


ESP32 Windows 개발환경 -AWS IoT core 사용하기


1편에서 진행한 개발환경 구축 이 후 프로젝트 추가와 빌드 방법에 대하여 설명하겠다.

개발환경 구축관련해서는 1편을 보면 도움이 된다.



ESP32 Windows 개발환경 -AWS IoT core (1)

https://inho-han.tistory.com/7





 프로젝트 흐름  


먼저 준비되어야 할 사항은 AWS 계정 정보와 우리가 예제를 통해 사용 할 AWS IoT Core 서비스에 대한 기본적인 설정이 필요하고,"certificate.pem.crt"(인증서), "private.pem"(개인키), "public.pem.key"(공용키) 총 3가지 확장자의 인증서,키를 받아야한다. 그 중 우리는 인증서, 개인키만 사용하며 자세한 설명은 여기에 나와있다. AWS IoT에서 생성된 인증서와 개인키를 생성/다운로드한 후 바이너리 파일을 ESP32 내부 플래쉬(Non-Volatile Memory)에 저장한다. 저장방법은 설치한 툴체인 디렉토리안에 1편에서 복사한 예제 프로젝트 내부 디렉토리에 넣어주면된다. 해당 경로는 1편에서 나와 동일하게 했다면 같을 것이다. 

C:\msys32\home\Master\esp\aws_iot\subscribe_publish\main\certs


당연한 얘기겠지만, 위 인증서와 개인키는 남에게 공개되지 않아야 한다. 또한 파일 이미지 형식으로 포함시키기때문에 보안에 취약할 것이라 생각하기 쉽지만, 생각처럼 쉽지 않다. 빌드 이후 바이너리파일로 변환된 이미지 파일을 리버스하는 것은 쉽지 않기 때문이다. 또한 ESP32 자체적으로 플래쉬 암호화 기능을 제공하기 때문에 플래쉬에 저장된 파일 이미지 또한 뽑아내기 어렵다. 생각보다 ESP32에 대한 보안성이 좋은편인 것 같다. 









































'스터디 > ESP32' 카테고리의 다른 글

ESP32 IDF WI-FI 사용법 -동작 시나리오  (0) 2019.02.12
ESP32 Windows 개발환경 -AWS IoT core (1)  (0) 2018.12.26



ESP32 Windows 개발환경 -AWS IoT core 사용하기





ESP32 개발진행에 있어서 먼저 개발환경 구축에 대해 알아보겠다.

모든 개발환경 구축 과정은 ESP공식 가이드의 과정과 동일하다.



 개발 환경 구축 순서 


1. Toolchain 설치 

2. ESP-IDF 설치 

3. 프로젝트 시작 및 빌드




 개요 

1. Toolchain

windows 에서는 내장된 "make"환경이 없으므로 툴체인을 설치하는 것 뿐만 아니라 GNU 호환 환경이 필요하다. 

 윈도우상에서 툴체인 다운로드시 있는 "MSYS2"를 활용하여 가상 머신처럼 GNU 환경을 구축한다. 



2. ESP-IDF 

도구 모음(응용프로그램을 컴파일하고 빌드하는 프로그램이 포함되어있음) 외에도 ESP32관련 

API/ LIBRARY가 포함되어있는 것을 ESP-IDF라 하며, 이것 또한 설치해줘야 한다. 



3. 프로젝트 시작 및 빌드

나는 AWS-IOT CORE 를 활용한 프로젝트를 진행할 것이기 때문에 AWS-IOT CORE 예제 활용하는 것과 

빌드하는 것에 대하여 알아볼 것이다.






 개발환경 구축 


먼저 아래 URL에 접속하여 Toolchain을 다운 받는다.


https://docs.espressif.com/projects/esp-idf/en/latest/get-started/windows-setup.html



1. 압축해제는 공식홈페이지 가이드처럼 "C:\" 경로에 압축을 푼다.

2. 압축 해제 된 폴더 중 \msys32\mingw32.exe 를 실행하면 아래와 같은 실행창이 나온다.





관리를 위해 폴더 하나를 생성한다. 

#mkdir -p esp




해당파일안에 ESP-IDF를 설치한다. 


#cd esp

#git clone --recursive https://github.com/espressif/esp-idf.git




다운로드가 완료되면 ESP-IDF의 서브 모듈을  업데이트 해준다.


#cd esp-idf

#git submodule update --init --recursive



공식 홈페이지에서 추천하는데로 IDF의 PATH 설정을 해준다. 제대로 패스 설정이 안되었을 경우 build가 정상적으로 동작하지 않는다.


#cd

#export IDF_PATH=C:/msys32/home/Master/esp/esp-idf .


띄워쓰기에 유의하길 바란다. 제대로 설정되었는지 확인해 보자 


#printenv IDF_PATH

설정한 IDF_PATH가 나온다면 제대로 설정된 거다.



#cd 

#cp -r $IDF_PATH/examples\protocols/aws_iot/subscribe_publish


진행하고자하는 예제소스를 esp 폴더로 복사해온다. 

나는 AWS-IoT를 사용할 것이니 해당 예제를 복사하겠다. 



이로써 예제 다운로드 및 개발환경 구축을 하였다. 

다음 시간에 프로젝트 시작 및 빌드, 이클립스 사용하는 방법등을 적도록하겠다.




이어서 !


'스터디 > ESP32' 카테고리의 다른 글

ESP32 IDF WI-FI 사용법 -동작 시나리오  (0) 2019.02.12
ESP32 Windows 개발환경 -AWS IoT core (2)  (0) 2019.01.23

+ Recent posts