SSL/TLS embedded for IoT #6

Embedded SSL 2017.06.17 17:19 Posted by Dwarp

SSL/TLS embedded for IoT


이 글은 embedded IoT device의 보안에 관한 글입니다.


embedded SSL/TLS 여섯번째입니다.



너무 몰아붙이나요? ㅎㅎ 아니겠죠 ㅎㅎ 저만 ㅠㅠ 여러분들은 시간날 때 보면 되니까 ㅠㅠ 암튼 전 주말이지만 기다리시는 분들이 계셔서 계속 진행합니다. 오늘은 W5500 iolibrary와 mbedTLS를 이어 붙이는 시간이 될 거에요. 하지만 그 전에 SSL/TLS라는 게 서버든 클라이언트든 있어야 하잖아요?


또 그러기 위해서는 뭔가... 그 뭐냐... 그그그그그.... Application!이 있어야 하겠죠? 제가 건망증이 좀 있습니다. 양해 좀 ㅎㅎ


우리가 지금 IoT 하고 있잖아요? 그래서 네트워크 어플리케이션으로 MQTT를 정하겠습니다. MQTT는 뭐냐고요? 그건 뭐..... IoT에 특화된 네트워크 프로토콜입니다. 찾아보시면 금방 자료 나와요. 전 라즈베리파이에 MQTT 서버를 SSL 모드로 열어놨습니다. 특별한 문제가 없으면 오픈해 놓으려고 하니 테스트 해보셔요. 아래는 제가 open 해놓은 MQTT Broker(서버) 주소 입니다.


<라즈베리 파이>


IP: 222.98.173.239

Port 일반 TCP: 1883

Port 보안 TCP: 1884

Port 일반 websocket: 8883

Port 보안 websocket: 8884


** 경고!!!!!!!! 아시겠지만 테스트 용도로만 사용하시고 상업적인 용도로 사용하지 마세요. 제가 손해봐서 그러는게 아닙니다. 여러분들이 고생합니다. ㅠㅠ 사전 경고 없이 서버가 꺼지거나 할 수 있는데 정작 저는 모를 수 있어요.



<제 책상의 라즈베리파이 MQTT 서버 - 언제나 꺼질 지 모르는 완벽한 불안정 속에 위치해 있다.>


** 리눅스에 MQTT 서버 설치/Open SSL 인증서 만드는 법 등 요청하시면 따로 포스팅 하겠습니다.


자 그럼 다시 코드로 넘어가겠습니다. mbedTLS와 관련하여 만들어야 할 함수가 존재하겠죠? 근데 뭐가 필요하죠? mbedTLS 코드를 다운로드 받으면 여러 예제가 있긴 하지만 보고 있으면 괴롭기만 할 뿐입니다. 괴로운건 ㅠㅠ 제가 이미 봤으니까 여러분들은 핵심만 가져가세요. (왜 남 좋은 일 하냐구요? 뭐 고마운신 분들은 댓글 주세요. 계좌번호 드릴테니까 돈 좀 주세요. 아니면 연봉 1억쯤 주시고 데려가서 노예로 쓰시면 됩니다.)


자! 쓸데없는 소리 그만하고 만들어야 할 함수를 설명하겠습니다.


wiz_mbedtls_ssl_init();

먼저 SSL이라고 피해갈 수 없겠죠? 초기화를 해야만 합니다. 각종 메모리 할당, callback 등록 등의 과정이 들어 있을 겁니다.


wiz_mbedtls_ssl_deinit();

뭐 이건 초기화의 반대네요. mbedtls가 malloc/free를 쓰는 이상 리소스 관리를 하지 않을 수가 없겠죠? init가 malloc을 했다면 deinit은 free를 주로 하겠네요.


wiz_mbedtls_ssl_handshake();

handshake를 처음에 설명드렸는지 안했는지 기억이 안납니다. ㅎ 암튼 SSL은 암호화된 통신을 하기 전에 서버와 클라이언트 사이의 암호화 방법을 결정하고 인증서를 교환하는 등의 과정을 거칩니다. 이 과정을 handshake라고 부르는데요 이 과정도 약간 프로그래밍을 해줘야 합니다. 대놓고 mbedtls_ssl_handshake()라는 함수를 사용해도 되지만 전 일단 감싸주려고 합니다. 처리해야 할 것도 약간 있구요.


wiz_mbedtls_ssl_random();

거의 모든 보안 알고리즘들은 난수를 필요로 합니다. 완벽한 난수일 수록 좋지요. 어쨌든 mbedTLS도 random 함수를 callback으로 묶어줘야 합니다. 없으면 기본적으로 내장된 rand()함수를 사용하게 프로그래밍 되어 있겠지만 음.. analog 입력을 받아(open 상태로) 그거라도 SEED를 줘서 rand()를 돌리는 게 훨씬 좋을 것 같습니다.


wiz_mbedtls_ssl_send();

기본적인 send()라고 보시면 됩니다. 일반적인 socket프로그램을 사용하면 mbedtls option질로 안 만들어도 되는 함수가 되겠지만 iolibrary는 일반적인 socket 프로그래밍 방식과는 약간 차이가 있기 때문에 iolibrary의 send를 한 번 감싸준 함수입니다.


wiz_mbedtls_ssl_recv();

wiz_mbed_ssl_send() 함수와 같은 역할입니다. 기본적인 recv함수 입니다.


wiz_mbedtls_ssl_recvtimeout();

동작은 wiz_mbedtls_ssl_recv와 같지만 time out 값을 지정해 시간내 응답이 없으면 TIME_OUT ERROR를 발생시키기 위한 목적입니다. wiz_mbedtls_ssl_recv와 wiz_mbedtls_ssl_recvtimeout 둘 중 하나만 콜벡으로 등록하면 된다고 기억하고 있지만 어쨌든 둘 다 만들어 봅시다.


아~~ 오늘은 토요일이라서 하기 싫다~~~ 그냥 소주나 한잔 먹고 싶다~


그래서 오늘은 이만 여기까지 쓰겠습니다. ㅎㅎ 다음 시간에는 함수 구현해 봅시다~~


안녕~

저작자 표시
신고

'Embedded SSL' 카테고리의 다른 글

SSL/TLS embedded for IoT #8  (0) 2017.06.27
SSL/TLS embedded for IoT #7  (0) 2017.06.19
SSL/TLS embedded for IoT #6  (0) 2017.06.17
SSL/TLS embedded for IoT #5  (0) 2017.06.16
SSL/TLS embedded for IoT #4  (0) 2017.06.15
SSL/TLS embedded for IoT #3  (6) 2016.12.28

SSL/TLS embedded for IoT #5

Embedded SSL 2017.06.16 16:37 Posted by Dwarp

SSL/TLS embedded for IoT


이 글은 embedded IoT device의 보안에 관한 글입니다.


embedded SSL/TLS 다섯번째입니다.


업로드가 느려 죄송한 마음에 하나 더 포스팅을 하도록 하겠습니다. 계속 본격적이라고 해놓고는 SSL 포팅은 맛도 못봤기 때문에 이번 시간에 SSL 포팅 바로 전까지 마무리하고 이후에는 SSL 포팅과 application을 진행하도록 하겠습니다.


저번 시간에는 main에 W5500만 초기화하는 코드를 넣었습니다. 이제는 W5500을 초기화 하고 network 정보를 입력할 시간입니다.


W5500HardwareDriver.c에 W5500Initialize() 함수를 추가해 줄 거에요.


void W5500Initialize(void)
{
	unsigned char temp;
	unsigned int randSeed = 0;
	unsigned char W5500FifoSize[2][8] = {{2,8,1,1,1,1,1,1,},{2,8,1,1,1,1,1,1}};
	W5500DeSelect();

	/* spi function register */
	reg_wizchip_spi_cbfunc(W5500ReadByte, W5500WriteByte);

	/* CS function register */
	reg_wizchip_cs_cbfunc(W5500Select,W5500DeSelect);

	if(ctlwizchip(CW_INIT_WIZCHIP,(void*)W5500FifoSize) == -1)
	{
		printf("W5500 initialized fail.\r\n");
	}

//	do{//check phy status.
//		if(ctlwizchip(CW_GET_PHYLINK,(void*)&temp) == -1){
//			printf("Unknown PHY link status.\r\n");
//		}
//	}while(temp == PHY_LINK_OFF);
}


하단에 주석처리해 놓은 부분은 Ethernet LINK가 성립되길 기다리는 구문있데 있어도 되고 없어도 됩니다.

W5500HardwareDriver.h에도 함수 추가해 주시는 거 잊지 마시구요 ^^

그리고 나면 이 함수로 초기화를 시켜줄 수 있을 거에요.


이 다음에는 네트워크 정보를 입력해야겠죠? iolibrary에 있는 wizchip_setnetinfo() 함수를 사용할 거에요. 뭐 간단합니다. 아래와 같은 방식으로 사용하시면 됩니다. 구조체 선언하고 쓰면 됩니다.


wiz_NetInfo gWIZNETINFO = { .mac = {0x00,0x08,0xdc,0xff,0x11,0xff}, .ip = {192, 168, 0, 222}, .sn = {255, 255, 255, 0}, .gw = {192, 168, 0, 1}, .dns = {8,8,8,8}, .dhcp = NETINFO_STATIC}; wizchip_setnetinfo(&gWIZNETINFO);


각각에 맞는 네트워크 정보를 넣으셔야 하는데 공유기 있으시면 192.168.0.XXX로 하는 네트워크 정보를 넣으시면 되겠죠? 아니면 DHCP(IP 자동할당)을 사용하셔도 되는데 프로그램을 추가하셔야 해요. 일단은 고정 IP로 각자 집이나 회사에 가지고 있는 공유기 밑에 붙여보도록 합시다. 대부분의 공유기 default 값이 ip는 192.168.0.XXX subnet mask는 255.255.255.0, 그리고 gate way는 공유기 주소니까 192.168.0.1이 될거에요. dns는 그다지 상관없으니 구글꺼 쓰죠 뭐 8.8.8.8입니다. 그리고 mac은 남는 네트워크 카드나 PC 등등에서 빼오셔야 합니다. 내부망 통신은 상관없지만 외부망 통신하실 때 문제가 생깁니다.


이렇게 모두 설정하셨으면 main에 합쳐봅시다.


#include "W5500HardwareDriver.h"
#include "wizchip_conf.h"

wiz_NetInfo gWIZNETINFO = { .mac = {0x00,0x08,0xdc,0xff,0x11,0xff},
							.ip = {192, 168, 0, 222},
							.sn = {255, 255, 255, 0},
							.gw = {192, 168, 0, 1},
							.dns = {8, 8, 8, 8},
							.dhcp = NETINFO_STATIC};

int main(void)
{
	W5500HardwareInitilize();	//hardware init

	W5500Initialize();			//w5500 init

	wizchip_setnetinfo(&gWIZNETINFO);	//set network information
	
    while(1)
    {
    }
}


여기까지 다 했으면 F7번이나 컴파일 버튼을 눌러서 컴파일을 해봅시다. 에러가 없나요? 전 없군요. 그래서 다운로드 해보겠습니다.

음! 잘 되는 것 같군요. 그러면 network가 되는지  Ping 명령으로 확인해 볼까요? 설마 모르시려나? CMD 창에서 ping 192.168.XX.XXX -t 엔터


응? 안되네요? 왜 안되죠? 뭐죠? 멘붕멘붕. 멘붕... 멘붕은 안하지요 대신 디버그를 할 뿐 ㅋ.


음 디버그를 해보니 항상 HAL_GetTick()이 0을 반환하는 군요 ㅎㅎ Time 관련된 함수가 넘어가질 않고 있었습니다. STM에서 왜 그랬느지 모르겠지만 HAL_GetTick, HAL_IncTick 등을 weak으로 선언해서 모든 HAL library에 사용하고 있습니다. 음.. 어쨌든 그러면 uwTick이라는 global 변수가 1씩 증가하게 해야겠습니다. HAL_IncTick은 Systick을 활용하도록 설계되어 있는 것 같은데 전 OS가 Systick을 사용하도록 하게 하고 싶습니다. 그렇다면 간단하게 weak으로 선언되어 있는 HAL_Tick을 override 시킵시다. 재선언 하는 것이지요. 그래서 uwTick이 아닌 OS의 Tick 값을 가져오도록 하겠습니다. 우후훗


점점 짬뽕이 되어 가고 있군요 ㅠㅠ SSL하다가 OS까지 오신 여러분 환영합니다. ㅠㅠ 그래도 힘내세요 ㅎㅎ 하다보면 이정도는 껌입니다.


자 그럼 main.c로 돌아가서 아래 코드를 추가해줍니다.

uint32_t HAL_GetTick(void)
{
	return CoGetOSTime();
}


지금 사용하는 CoOS는 CoGetOSTime()이라는 함수로 OS tick을 리턴합니다. 그럼 Main.c 전체는 다음과 같아질 거에요.


#include "W5500HardwareDriver.h"
#include "wizchip_conf.h"

wiz_NetInfo gWIZNETINFO = { .mac = {0x00,0x08,0xdc,0xff,0x11,0xff},
							.ip = {192, 168, 77, 123},
							.sn = {255, 255, 255, 0},
							.gw = {192, 168, 77, 1},
							.dns = {8, 8, 8, 8},
							.dhcp = NETINFO_STATIC};

int main(void)
{
	CoInitOS();

	W5500HardwareInitilize();	//hardware init

	W5500Initialize();			//w5500 init

	wizchip_setnetinfo(&gWIZNETINFO);	//set network information

	//CoStartOS();

	while(1)
    {
    }
}

uint32_t HAL_GetTick(void)
{
	return CoGetOSTime();
}


여기서 주의할 것은 CoInitOS() 인데요. 이 함수에서 Systick을 Enable 해줘요. 그래서 가장 처음에 call 했습니다.


그럼 컴파일/다운로드 하시고 Ping이 가는지 확인해 볼까요? 설마 모르시려나? CMD 창에서 ping 192.168.XX.XXX -t 엔터


!!!!!!!!!!!!! 여기서 IP 여러분 것으로 바꾸세요~ !!!!!!!!!!!!!



음... 으흐흐흐 잘 되는 군요..


이제는 정말 SSL 포팅만 남은 것 같습니다.



앞으로는 임베디드에서 보기 힘들었던 malloc, free뿐만 아니라 함수포인터 그리고 OS 개념들이 난무할거에요. 하아....

(여러분들은 한 번만 하면 되지 전 수십번은 한 것 같아요 ㅠㅠ 하아...)


암튼 주말은 푹 쉬시고 다음 주에 다시 달려봅시다.


화이팅!!! 하아....



저작자 표시
신고

'Embedded SSL' 카테고리의 다른 글

SSL/TLS embedded for IoT #7  (0) 2017.06.19
SSL/TLS embedded for IoT #6  (0) 2017.06.17
SSL/TLS embedded for IoT #5  (0) 2017.06.16
SSL/TLS embedded for IoT #4  (0) 2017.06.15
SSL/TLS embedded for IoT #3  (6) 2016.12.28
SSL/TLS embedded for IoT #2  (0) 2016.12.27

SSL/TLS embedded for IoT #3

Embedded SSL 2016.12.28 17:18 Posted by Dwarp

SSL/TLS embedded for IoT


이 글은 embedded IoT device의 보안에 관한 글입니다.


embedded SSL/TLS 세번째입니다.


준비물을 전부 준비하셨다면 시작해 보도록 하겠습니다.


CoIDE 설치는 아래 블로그에서 상세하게 설명되어 있습니다.


CoIDE 설치하기->> http://engschool.tistory.com/entry/CoIDE-2%EB%B2%88%EC%A7%B8


그럼 프로그램을 작성해보도록 하겠습니다.


메뉴에서 Project -> new project를 선택하시면 repository라는 이름의 탭이 추가되어 보여지면서 Chip 혹은 Board를 선택할 수 있습니다. 여기에서 우리는 board를 선택하도록 하지요. 그리고 나서 ST 탭을 선택하시면 제가 선택한 보드가 선택할 수 있습니다.



그 다음에는 알맞은 위치에 프로젝트명을 적어서 저장합니다.


그리고 사용할 라리브러리들을 삽입하도록 하겠습니다. 라리브러리는 클릭 몇번 만으로도 삽입이 됩니다.



스크롤 내리셔서 hal library도 추가하시구요.



그렇게 하고 나면 아래 그림처럼 CoIDE 왼편의 프로젝트 창에 라이브러리들이 추가된 것이 보일거에요.



이렇게 하면 기본적인 라이브러리들은 추가가 되었습니다. 이제 나머지는 mbedTLS 라이브러리와 W5500 Ethernet shield 라이브러리를 추가해봅시다.


* 전에서 설명을 안드렸는데 W5500용 라이브러리는 https://github.com/Wiznet/ioLibrary_Driver 에서 다운로드 하실 수 있습니다. *


방법은 간단합니다. 두 라이브러리를 복사한 후 해당 프로젝트 폴더에 붙입니다. CTRL+C, CTRL+V ㅎㅎ


mbedTLS 소스 코드에서 library 폴더와 include 폴더를 제외한 나머지 파일 및 폴더를 모두 지웁니다. (테스트 용도입니다.)


그 담에는 조금 깔끔하게 보이도록 프로젝트 이름 선택후 우클릭 -> add group 누르신 다음에 원하시는 이름으로 그룹을 만드세요.



저는 ExtLib라는 이름으로 만들었습니다. 그 다음에는 추가하고픈 라리브러리를 폴더 통째로 드래그 엔 드랍 하시면 됩니다.



휴 역시 그림 붙이기 작업은 여간 귀찮은 일이 아니네요 ㅎㅎㅎ 차라리 동영상으로 만드는 게 편하겠습니다. ㅎㅎ 다음에는 동영상으로 만들어 봐야겠습니다.


암튼 다 추가했으면 프로젝트 구조가 다음처럼 되어야 합니다. -_-+


후 정말 기네요. 너무 기니까 여기서 한번 끊고 다시 가도록 하겠습니다.


다음 시간에는 본격적으로 mbedTLS를 포팅해보도록 하겠습니다.


그럼 이만..


저작자 표시
신고

'Embedded SSL' 카테고리의 다른 글

SSL/TLS embedded for IoT #6  (0) 2017.06.17
SSL/TLS embedded for IoT #5  (0) 2017.06.16
SSL/TLS embedded for IoT #4  (0) 2017.06.15
SSL/TLS embedded for IoT #3  (6) 2016.12.28
SSL/TLS embedded for IoT #2  (0) 2016.12.27
SSL/TLS for embedded IoT #1  (0) 2016.12.27

SSL/TLS embedded for IoT #2

Embedded SSL 2016.12.27 17:28 Posted by Dwarp

SSL/TLS embedded for IoT


이 글은 embedded IoT device의 보안에 관한 글입니다.


embedded SSL/TLS 두번째입니다.


embedded용 SSL/TLS 라이브러리가 가장 궁금하실 것 같습니다. 우선 거의 대부분의 embedded용도의 SSL/TLS는 유료입니다. 그런데 이 와중에 ARM사가 Polar SSL을 인수하여 mbedTLS로 이름을 바꾸고 Apache 2.0 라이센스로 배포해버렸습니다. ARM 감사~

Apache 2.0의 의미는 아시겠지만 누구나 자유롭게 사용가능하고 상업적 목적도 가능합니다.


우선 mbedTLS 주소는 여기에요.-> https://tls.mbed.org/


Download mbed TLS 클릭하시면 바로 다운로드 됩니다.



소스 코드를 다운로드 하긴 했는데 ㅎㅎㅎ 어찌해야 할지를 모르시겠다구요? ㅎㅎ 네 저도 처음에 그랬습니다.


천천히 진행해보록 합시다. 우선 준비물이 필요합니다.


Embedded 보드와 IDE 정도 되겠네요.


준비물

1. embedded board: Nucleo F411re

2. network interface: W5500 Ethernet shield

3. IDE: CoIDE v1.7.8


    

<좌: Nucleo f411re embedded board // 우:W5500 Ethernet shield>


Necleo f411re 보드는 cortex m4인데다가 가격도 쌉니다. 마우저에서 16000원 정도 해요. 그리고 아두이노용 Ethernet shield를 꽂아 사용할 수 있습니다. 그래서 W5500 Ethernet shield도 준비했구요.


그리고 IDE는 완전 무료인 CoIDE를 이용했습니다. 아래 다운로드 링크를 걸어놨습니다.


다운로드 링크: https://www.coocox.org/download/Tools/CoIDE-1.7.8.exe


자 그럼 이정도면 준비가 된 것 같군요.


그러면 다음 시간에는 본격적으로 작업에 돌입을 해야하겠죠? 으흐흐흐


그럼 이만..

저작자 표시
신고

'Embedded SSL' 카테고리의 다른 글

SSL/TLS embedded for IoT #6  (0) 2017.06.17
SSL/TLS embedded for IoT #5  (0) 2017.06.16
SSL/TLS embedded for IoT #4  (0) 2017.06.15
SSL/TLS embedded for IoT #3  (6) 2016.12.28
SSL/TLS embedded for IoT #2  (0) 2016.12.27
SSL/TLS for embedded IoT #1  (0) 2016.12.27

SSL/TLS for embedded IoT #1

Embedded SSL 2016.12.27 14:57 Posted by Dwarp

SSL/TLS embedded for IoT


이 글은 embedded IoT device의 보안에 관한 글입니다.


SSL/TLS는 근래에 광범위하게 사용되는 암호화 방식입니다. 여기서 주저리 주저리 설명하는 것보다 제가 SSL 공부할 때 유용하게 방문했던 사이트 주소를 가르쳐 드릴게요.


https://wiki.kldp.org/HOWTO/html/SSL-Certificates-HOWTO/x70.html


어디서 사용되냐구요? 보통은 웹브라우저에서 많이 사용됩니다. 일반적으로 SSL이 적용된 사이트는 "http://"가 아닌 "https://"를 사용합니다. 그리고 SSL이 인증된 사이트는 크롬에서는 주소창 맨 앞에 녹색 자물쇠 모양이 표시되고 익스플로러에서는 주소 끝에 자물쇠 모양이 표시됩니다.


크롬 브라우저


익스플로러 브라우저


이렇게 표시된 사이트는 여러분들이 자료를 입력하고 전송해도 암호화되어 있어 볼 수가 없죠.

(보안이 적용되지 않은 사이트는 굳이 해킹을 하지 않더라도 외부에서도 쉽게 볼 수 있습니다. ^^)


암튼 요세 IoT 붐이 슬슬 불고 있는데 여기에도 보안이 중요하겠죠? IoT 기기 해킹 사례가 늘고 있으니까요.


IoT에 적용할만한 보안은 사실 SSL뿐이 없습니다. 왜냐하면 거의 모든 서버가 SSL 보안을 필요로 하니까요. AWS에도 Asure에도 Google cloud에도 SSL은 "필수"입니다. 그러면 어떻게 IoT Device에 SSL을 적용할 수 있을까요?


간단합니다. SSL은 그냥 프로그램이니까요 프로그램을 올리면 됩니다. 말이 쉽지 embedded에서 보안을 적용하는 것이 그다지 쉬운 작업은 아닙니다. 그래서 여러분들이 헤메지 않도록 차근차근 기술적으로 접근하려고 합니다.


너무 길게 글을 쓰면 지루하니까 쪼개서 여러 개의 글로 순서대로 올리도록 하겠습니다.


다음에는 이런 서론 말고 embedded ssl 용 소스 다운로드 부터 찬찬히 업로드하도록 하겠습니다.


그럼 이만..


저작자 표시
신고

'Embedded SSL' 카테고리의 다른 글

SSL/TLS embedded for IoT #6  (0) 2017.06.17
SSL/TLS embedded for IoT #5  (0) 2017.06.16
SSL/TLS embedded for IoT #4  (0) 2017.06.15
SSL/TLS embedded for IoT #3  (6) 2016.12.28
SSL/TLS embedded for IoT #2  (0) 2016.12.27
SSL/TLS for embedded IoT #1  (0) 2016.12.27

IoT Project 3. 회로 설계 - D


드디어 회로 마지막 시간이네요. 이번에는 FT-2232쪽 회로를 뜯어볼건데요. 레퍼런스 회로가 있는 듯 없는 듯 애매합니다. 그래도 걱정하지 마세요!! 우리에겐 구글이 있으니까요. ^^


그럼 시작하겠습니다.


FTDI사는 USB to RS232 Converter로 유명한 회사입니다. 하지만 전 그것보다 USB to JTAG이 더 맘에 듭니다. USB to Jtag을 지원하는 IC는 몇가지가 있는데요 저는 2 port를 지원하는 FT2232D를 선택했습니다. 한 포트는 UART로, 한 포트는 Jtag으로 사용하기 위해서 입니다. 그래서 IoT 보드에 USB를 꽂으면 아래 사진처럼 COMPORT 장비가 2개 잡힙니다.


제 PC 기준으로는 COM16번과 COM17번으로 잡혔습니다. 하지만 COM16번은 jtag용이니까 사용하면 안되고 COM17번은 UART용으로 사용하면 됩니다.


그럼 회로를 뜯어볼까요~

<FT2232D 회로>


FT2232D쪽의 회로도입니다. 이 회로는 인터넷에도 많이 있고 데이터시트에도 있습니다.

아래 캡쳐화면처럼 인터넷에 돌아다니는 거의 모든 회로에 EEPROM이 있습니다. USB장치 이름같은 Configuration을 저장해 놓을 수 있게 해주는 기능인데요. 전 필요성을 느끼지 못했으므로 달지 않았구요, 혹시 모를 오동작에 대비해 2번 EEDATA핀에 풀업저항만 달아놨습니다.


<인터넷에서 흔히 구할 수 있는 EEPROM이 들어가 있는 회로>


아래 사진은 FT2232D의 데이터 시트에 있는 전원 구성 회로입니다. 데이터시트는 진리이므로 전 이 회로를 보고 그대로 따라 그렸습니다.

<FT2232D 데이터시트 회로도>


나머지 MCU와 붙는 부분은 데이터시트에는 잘 나와있지 않습니다만 인터넷엔 상당히 많은 회로도가 돌고 있습니다. 그런데 문제는 회로가 죄다 개성이 있습니다. -_-;;; 윈도우 디바이스 드라이버는 제가 어쩔 수 있는 게 아니므로(딱히 가지고 있는 지식이 없습니다.) 회로를 그대로 따라야 하는데 어느 것이 괜찮은 회로인지 모르겠더라구요.


그래서 -_-+ 찍었... 은 아니고 ㅎㅎ jtag 만드는 회사 것을 참고했습니다. 아래는 링크입니다.

http://www.ethernut.de/en/hardware/turtelizer/

이 회로는 뭔가 복잡해 보이지만 ㅎㅎ 전 reset의 위치만 명확하게 하고 싶어서 그 부분만 참고했습니다. 헤헷.


ㅎㅎ 어떻습니까? 저는 사실 예전에 한 번 사용해본 IC라서 구글링의 도움없이 할 수도 있지만.. 몰랐다고 해서 못할 것도 없습니다. 요세는 정말 오픈된 자료가 많아서 구글링만 잘해도 왠만한 회로는 전부 구성할 수 있으니까요.


FT2232D의 회로를 구성하는 일이 중요한 게 아니라 FT2232D의 존재를 아는 것이 더 중요한 것 같기도 합니다. ㅎㅎ

그래서 임베디드 월드같은 잡지도 많이 보는 것이 도움이 많이 되더라구요 -_-+


이것으로 회로 설계를 마치고 다음은 아트웍을 들어가야 하는데 고민입니다.;;;

전 전문 아트워커도 아니고 대강 대강 혼자 독학해서 하는 수준이라 잘못된 지식을 전해드릴 수도 있고

툴까지 블로깅해야 하나... 하는 생각도 듭니다. 흐음...


고민고민...


그럼 다음시간에 뵈여~


-Dwarp-



저작자 표시
신고

'IoT - Internet Of Things' 카테고리의 다른 글

IoT Project 3. 회로설계 - D  (0) 2015.08.04
IoT Project 3. 회로설계 - C  (0) 2015.07.13
IoT Project 3. 회로설계 - B  (1) 2015.04.09
IoT Project 3. 회로설계 - A  (0) 2015.04.02
IoT Project 2. 소자 선정.  (0) 2015.02.20
IoT Project 1. 컨셉 작업.  (0) 2015.02.20

IoT Project 3. 회로 설계 - C


겁나 죄송하다는 말씀부터 드리겠습니다.

4월에 포스팅하고 7월에 포스팅을 하다니 ㅠㅠ 죄송합니다. 뭐 문제가 생긴거 아니냐라고 하시는 분들도 계신데;;;

그냥 제가 게을러서 그런겁니다. 좀더 의무감을 가지고 진행하도록 하겠습니다.


사실 보드는 제작이 이미 완료되어 테스트까지 마치고 제 직장에서 강의 용도로 사용하고 있습니다.

위즈네트라는 회사구요, 강의는 무료로 진행되니까;;;오시던지~ 마시던지! 

(사실 회사 홍보하는 거 같아서 간지럽습니다.)


그리고 이 프로젝트에서 사용된 회로도 및 아트웍 그리고 PCB 용도의 거버 파일까지 몽땅 다 드릴 수 있어요.

필요하신 분들은 방명록이나 다른 어디라도 e-mail주소 남겨주시면 보내드리도록 하겠습니다.

이 보드 모양 그대로 판매만 안한다고 약속하시면 됩니다. 조금이라도 바꾸시면 괜찮습니다. ^^


어쨌든 회로 설계 세번째 시간! 시작하겠습니다.


저번 시간에 MCU 뜯어 보았는데요. 별 다른게 없습니다.

아날로그 회로가 아닌 이상 요세 디지털 회로는 선 긋기에 불과합니다. 그래도 기본적인 회로 이론 지식은 있어야합니다.

(제가 쉽다쉽다 이야기는 했지만 그래도 비전공자는 힘들겠죠... ㅠㅠ 거짓말쟁이로 몰지 말았으면 좋겠습니다.)


먼저 아래 회로도는 W5500 파트입니다. Ethernet이 되게 해주는 IC입니다.

<IoT 프로젝트 W5500 파트>


자세히 보겠습니다. 딱 보면 아시겠지만 좌측 상단의 케페시터들은 디커플링 케페시터입니다.

디커플링 케페시터는 DC 전원을 노이즈를 저감시키는 역할을 합니다. 아트웍할때에는 각각의 VDD 핀과 가깝게 붙여줍니다.

<W5500 Decoupling capacitors>


그리고 MCU와 똑같이 아날로그 전원에 Bead와 Clock용 Crystal 회로가 있습니다. 거의 똑같습니다.

한가지 차이점이 있다면 Crystal에 1M옴짜리 저항이 하나 있습니다. 피드백 저항이라고 하는데요. IC 내부에 있는 경우에는 달아줄 필요가 없으나 없는 경우에는 외부에 별도로 달아주는게 안정적이라고 합니다. 그래서 보통 IC 제조사의 레퍼런스 회로를 따릅니다. 당연히 저도 Wiznet의 레퍼런스 회로를 보고 따라한 겁니다. ^^


<W5500 Analog bead>



<W5500 Clock - Crystal circuit with 1M feedback resistor>


그리고 나머지는 MDI라고 부르는 신호선의 회로로 구성됩니다. MDI라인은 Differential line입니다. 한국말로는 차동 신호라고 부르는데 두 가닥 사이 전압의 차로 1,0을 판별합니다. RS485랑 비슷하죠? 사실 거의 모든 통신라인은 차동입니다. USB도 CAN도 모두 차동입니다. -_-+ 노이즈에 강하기 때문이죠.

아래 회로에서 보이는 저항이나 케페시터 들은 임피던스를 50옴에 맞추기 위한 것들인데 왜 그렇게 하는지 까먹었다....

아하하하하 뭐 초보자들을 위한 IoT 보드 만들기 이므로 패스!

<W5500 Ethernet 임피던스 매칭회로>


그리고 RD1-125BAG1A라는 RJ-45(트렌스포머 포함) 커넥터가 있습니다. W5500에 이거 쓰시면 안됩니다. 이거 쓰시면 아래 사진처럼 됩니다. 잘못된 정보를 드리는게 아니라 디버그 과정도 블로깅하려고 하는 거에요~ 주의 주의!!!!!


<RJ-45 대강 했다가 망한 IoT 보드>


물론 디버그 과정을 거치고 난 후 회로는 다시 그리게 됩니다. 이 블로깅의 목적은 완성된 회로를 드리는 것이 아니라 프로젝트를 진행하는 전체적인 과정을 보는 것에 목적이 있습니다. 다시 한번 주의 주의!!


같은 의미로 우측 하단의 Shield 회로도 마찬가지로 틀린 회로입니다.


<잘못된 Shield 처리>


저항을 달아 놓았지만 Ethernet의 Shield(CHGND)는 케페시터를 통해 System GND와 연결되어야 합니다. 여러 가지 방법이 있지만 Wiznet의 레퍼런스 회로는 2kV/1nF을 사용하게 되어 있습니다. 여러 회사의 Ethernet 회로를 검토해본 결과 아트웍하는 방식에 따라 회로가 틀려지게 되어 있습니다. 참고하시기 바랍니다.


정상 동작하는 회로는 디버그하는 포스팅이 끝난 후에 다루도록 하겠습니다.


아래는 Wiznet에서 제공하는 레퍼런스 회로가 있는 LINK이며 PDF로 다운로드 받으실 수 있습니다.


http://wizwiki.net/wiki/doku.php?id=products:w5500:refschematic


레퍼런스 회로가 있음에도 왜 다르게 하느냐라고 하시는 분들이 있을 텐데요.. ㅎㅎ 그건 제 개취입니다.

그거 말고는 딱히 명쾌하게 설명할 수 있는 말이 없네요.

그리고 레퍼런스라는 것도 기준이라는 뜻이지 똑같이 하라는 말은 아닙니다. 취향에 따라 틀려질 수 있어요.

모두가 똑같으면 재미없잖아요? ㅎㅎ 비록 실패하더라도... ^^


다음 시간에는 회로 설계 마지막으로 FTDI를 뜯어 보도록 하겠습니다.


다시 한번 죄송하다는 말씀드리구요~ ㅠㅠ 이제는 정말 못해도 1주일에 한번은 포스팅하도록 하겠습니다.


다음 시간에 뵈요~


- Dwarp -

저작자 표시
신고

'IoT - Internet Of Things' 카테고리의 다른 글

IoT Project 3. 회로설계 - D  (0) 2015.08.04
IoT Project 3. 회로설계 - C  (0) 2015.07.13
IoT Project 3. 회로설계 - B  (1) 2015.04.09
IoT Project 3. 회로설계 - A  (0) 2015.04.02
IoT Project 2. 소자 선정.  (0) 2015.02.20
IoT Project 1. 컨셉 작업.  (0) 2015.02.20

IoT Project 3. 회로 설계 - A


거의 한달만에 포스팅하는 거라 죄송하다는 말씀부터 드리겠습니다.


이직으로 인한 이사 등등으로 너무 바빠서 ㅠㅠ 이해 부탁드리겠습니다.


그리고 사실... 회로 설계랑 아트웍 둘 다 완료해버렸습니다. ㅠㅠ


현재 샘플 발주도 나간 상태구요. ㅠㅠ


오픈 소스 하드웨어 로고를 달고자 오픈 소스 툴로 진행하려 했지만... 적응하는 기간이 너무 많이 걸리는 문제로 ㅠㅠ


제가 사용하던 유료 툴을 그냥 사용했습니다. ㅠㅠ. 죄송합니다.



암튼 회로 설계 시작하겠습니다.


회로 설계에 앞서 가장 처음 시작해야 하는 것이 무엇일까요? 바로 데이터시트를 수집하는 일입니다.


폴더를 만들고 따로 관리를 합니다.



폴더를 보시면 아시겠지만 Data sheet 폴더 말고 Reference Circuit 이라는 폴더도 존재합니다.


보통은 Data sheet에 함께 존재하지만 따로 제공하는 곳도 많이 있습니다.


이 데이터 시트와 레퍼런스 회로를 제조사 홈페이지에서 다운 받을 수 있습니다.


또 눈치 있으신 분들은 아시겠지만 ㅎㅎ 추후 OS도 사용할거라 OS manual도 있습니다. 긴장하지 마세요 쉽습니다.


우리는 ST MCU를 사용하기로 했죠? 보통 MCU 같은 경우 필요한 문서는 3가지 입니다.



위 폴더 사진을 보시면 stm32f103VC로 시작하는 문서가 세가지 있습니다. 살펴보자면


첫번째는 데이터 시트. 일반적으로 전반적인 설명, 전기적인 특성, 타이밍 특성 등이 나와 있습니다.


두번째는 Reference manual. MCU 레지스터 내용 등의 자세한 컨트롤 내용이 나와 있습니다.


그리고 마지막으로 Errata Sheet. MCU의 버그에 관한 내용이 나와 있습니다.


나머지 IC 들도 비슷한 구성을 하게 됩니다.


이 중 한가지라도 소홀히 하시면 안됩니다. ㅠㅠ 나중에 엄청 고생을....


그리고 제조사 홈페이지를 이쪽저쪽 보시거나 검색해 보시면 Reference Circuit도 대부분 제공합니다.


표준 회로니까 특별한 목적이 없는 한 따르는 것이 좋습니다.


자 이렇게 데이터가 준비되면 회로를 그려 봐야하는데!!!!! ㅠㅠ


유료툴 사용방법을 올리기가 무섭습니다. ㅠㅠ 경찰 아저씨가 잡아가면 어떻게 ㅠㅠ


그래서 회로만 올리도록 하겠습니다. 회로 그리는 과정까지 올리고 싶었지만 ㅠㅠ






저는 버릇 처럼 MCU 부분부터 설계를 합니다. 나중에 주변 IC 들과 연결하고 할 때 쉽더라구요.


그리고 중요한 기반이 되는 IC 순서대로 각각 회로도를 그립니다.


이 뭐 선 그리기 뭐 어렵냐 하시는 분들이 계실지도 모릅니다.


네 그렇습니다. 선그리기 놀이 맞습니다. ㅎㅎ 레퍼런스를 참고해 그리는 것이니까요.


기본적으로 SPI라던지 UART, I2C 혹은 Memory bus 등 이런 기본적인 Circuit 레벨 통신의 wiring 지식만 있다면


굉장히 쉬운 작업이 될 거라고 생각합니다. 일단은 EVB니까요 ㅎ.


정밀한 analog 회로나 RF 등은 회로 설계부터 차원이 틀려니지 참고하시구요.


선 연결하는 것은 쉽습니다. 하지만 해당 IC 자체를 그리는 것이 굉장히 지루하고 짜증나는 작업입니다.


그래서 보통 회로 설계 + 아트웍 하시는 분들은 자신들의 라이브러리가 생명처럼 느껴질 수도 있습니다.

(저도 라이브러리를 다시 만들기 귀찮아서 기존 툴을 사용했습니다. ㅠㅠ)


요세는 많은 제조사에서 제공하는 추세입니다. 그나마 다행입니다. ㅎㅎ


ㅎ 오늘은 일단 맛보기로 요정도까지 일반적인 내용으로 진행을 마치구요.


다음 시간에는 회로를 조금 자세히 살펴보도록 하겠습니다.


다음 시간에 뵈요~ (다음 건 빨리 포스팅 할게여~ ^^)


- Dwarp -




음.. 그리고 한가지 말씀드리자면 저는 전문 회로 설계자나 아트웍 설계자가 아니며 별도의 교육을 수료한 적도 없습니다.


순수히 제가 맨땅에 헤딩해가며 나온 지식들입니다.


그렇기 때문에 전문가 분들이 보시기에 틀린 점도 적지 않으리라 생각합니다.


틀린 점을 언제라도 지적해 주시면 저 뿐만 아니라 많은 분들께 도움이 되리라 생각합니다.

저작자 표시
신고

'IoT - Internet Of Things' 카테고리의 다른 글

IoT Project 3. 회로설계 - C  (0) 2015.07.13
IoT Project 3. 회로설계 - B  (1) 2015.04.09
IoT Project 3. 회로설계 - A  (0) 2015.04.02
IoT Project 2. 소자 선정.  (0) 2015.02.20
IoT Project 1. 컨셉 작업.  (0) 2015.02.20
IoT - 프로젝트 시작.  (0) 2015.02.16

IoT Project 1. 컨셉 작업.

IoT - Internet Of Things 2015.02.20 02:27 Posted by Dwarp


IoT Project 1. 컨셉 작업



어떠한 프로젝트라도 진행하는데에는 분명한 목적이 있습니다. 예를 들면 이런 것들이죠.


Ethernet으로 소방 관제 시스템을 만들자! 라던지


Ethernet으로 강아지 밥주는 시스템을 만들자! 라던지 기타 등등 이죠.


하지만 이런 생각만 가지고는 프로젝트를 시작할 수는 없습니다.


흔히들 프로젝트가 산으로 간다고 말하는 매우 위험한 상태가 쉽게 올 수 있습니다.


어줍잖게 산으로 가다가 산을 넘어서 최단 경로로 목적지에 도달할 수도 있겠지만 가능성은 희박합니다.



그래서 전 항상 프로젝트 시작 첫 번째로 "컨셉 작업"이라는 것을 합니다.


말 그대로 프로젝트 컨셉을 잡는 작업입니다. 비용이라던지 개발 시간이라던지 방향을 잡아 놓고 진행하는 거죠.


물론 프로젝트마다 틀리겠지만 필수적인 요소를 정의하고 난 후 사용자를 고려해 성능, 기능 등을 트레이드 오프합니다.


이 과정에서 거의 모든 것이 결정된다해도 과언이 아닙니다.

(프로젝트의 성공 가능성 마저도)


그래서 저는 이 단계에 공을 상당히 많이 들이는데요.


프로젝트의 목적, 프로젝트의 타겟, 타겟의 지출 비용(돈, 시간), 개발 비용, 개발 시간 기타 등등등


이런 요소들에 대해 시간을 가지고 충분히 생각을 정리합니다.



그럼 시작하겠습니다.



먼저 이 프로젝트의 목적은 "IoT의 접근성이 용이해졌다는 것의 증명과 매우 쉬운 교육"입니다.

(절대 교육용 보드 판매가 목적이 아님을 분명하게 밝힙니다.)


음...그러니까! IoT 교육용 프로젝트가 되겠군요! 당연히 메인 MCU, 그리고 Ethernet Interface가 필수적인 요소입니다.


그리고 사물인터넷이라고 부를 만한 컨트롤 대상이 필요하겠죠? 음. 이건 필수라고 생각되어지진 않네요.


이외 프로젝트 목적에 따라 필수 요소가 더 정해지겠지만 목적 자체가 교육용이고 지루하므로 더 언급하지는 않겠습니다.


그렇다면 프로젝트의 타겟은 누가 될까요? 하는 김에 페르소나도 한명 만들어 봐요. 연습연습.



이름 "서 경준"


나이 29세, 그리 유명하지 않은 전자과를 학점 3.5로 졸업. 그냥 동네 아는 형처럼 생겼음.


교육용 보드를 통해 AVR로 프로젝트를 진행해 교내 대회에 출전하여 입상 경력이 있음.


중소 기업에서 1년째 개발자로 일하고 있으며 연봉은 2,600만원. 주 3회 이상 야근을 하지만 수당은 없음.


집과 회사가 출퇴근하기에는 거리가 멀어 월세 40만원의 원룸에서 생활중.


경력을 쌓아 더 좋은 직장으로 이직하고 싶으나 1년 째 AVR 펌웨어만 작성 중.


다른 MCU나 기술, 회로 등을 배우고자 하지만 고지식한 딱딱한 회사 분위기로 인해 사내에서는 쉽지 않음.


아버지는 중소 기업 부장, 어머니는 전업 주부임. 4살 어린 여동생이 현재 대학교 4학년임.


(주의!! 원래 페르소나 작업은 이렇게 허술하게 하지 않습니다. 프로젝트 진행에 몰입감을 주기 위함입니다.)




자 그럼, 타겟도 정해졌고 사용자 입장에서 생각해 봅시다.



1. 서경준씨는 무엇을 배우고 싶을까요?


AVR 말고는 다른 MCU를 사용해 본적이 없는 경준씨는 Cortex M3에 관심이 많습니다.


그래서 5만원짜리 교육용 보드를 구매해서 사용해 본적이 있습니다. 하지만 방 구석에 방치 중입니다.


IDE 설치하는 것만으로 지쳐버렸습니다. 다운받고 압축풀고 라이센스 받고 이메일 확인하고 라이센트 활성화하고...


괜히 지치고 힘만 빼고 더 어려운 것이라는 생각만 들었습니다. Jtag을 따로 구매해야 한다는 사실은 덤.


요세 대세라고 불리우는 IoT도 해보고 싶으나 임베디드 Ethernet은 엄두도 내지 못합니다.



2. 우리 경준씨는 교육에 얼마의 비용을 소비할 수 있을까요?


경준씨는 낮은 연봉과 월세때문에 지출할 수 있는 비용이 많지 않습니다. 그렇다고 집에 손벌리기도 싫습니다.


임베디드 학원은 금액(약 30-40만원)이 비싸 엄두가 나지 않아 스스로 할 수 있는 교육 교재를 찾고 있습니다.


모든 것이 포함된 총 비용이 6~7만원이면 적당하다고 생각합니다.



3. 그렇다면 우리 경준씨는 얼마의 시간을 소비할 수 있을까요?


야근이 잦은 경준씨는 항상 피곤합니다. 1주에 3시간 이상은 무리이며 하고 싶지도 않습니다.



저는 이런 경준씨를 통해 필수적인 요소 이외에 규칙 몇가지를 세웠는데요. 다음과 같습니다.


1. IDE(통합 개발 환경)은 무료툴을 사용.

2. 총 비용이 5만원을 초과할 수 없다.

3. JTAG 구매 등의 추가 비용 발생은 없다.

4. 교육 성과를 획득할 수 있는 각 단계의 시간은 30분 이내로 조절.





이제 어느 정도 컨셉작업이 끝났습니다. 상당히 지루한 내용이었네요. 휴 수고하셨습니다.


하지만 저는 거의 2주 정도나 되는 긴 시간 동안 고민했었습니다. ㅎㅎ

(물론 이 내용 외에 소자 종류, 가격 등도 함께 알아 보고 있었지만;;)


한 가지 주의 할 점이 있어서 말씀드리는데요~ ㅎㅎ


이 프로젝트의 타겟은 가상의 인물인 서 경준씨 이지만 이 글의 타겟은 IoT 프로젝트를 진행하시고자 하는 여러분들입니다. ^^

(프로젝트 안의 프로젝트랄까요? 헤깔리지 마세여~)


다음 시간에는 주요 소자들을 선정해 보도록 하죠.


그럼 다음 시간에 뵙겠습니다.


-Dwarp-

저작자 표시
신고

IoT - 프로젝트 시작.

IoT - Internet Of Things 2015.02.16 18:24 Posted by Dwarp

IoT - 두 번째 시간입니다. 저번 시간에는


IoT의 기술적인 접근성에 관해 이야기했었습니다. 한마디로


"어렵지 않아요~" 였죠?


ㅎㅎ 말로는 무슨 말을 못합니까? 실제로 뭐든 똥인지 된장인지 먹어봐야 알겠다라고 하시는 분들도 계십니다.


ㅎㅎ 사실 제가 그렇습니다. 그래서! 실제로 해보도록 하겠습니다.


실제로 제품 개발을 하는 것처럼! 처음부터! ~ 끝까지! 전부 다!

(회사에서 진행할 때는 결재나 문서화 단계가 있습니다.)


1. 컨셉 작업

2. 소자 선정

3. 개발 비용 및 제작 단가 산출

4. 회로 설계

5. 아트웍

6. 샘플보드 납땜

7. 펌웨어

8. 테스트

9. 미래에 관한 고찰?


에이~ 다 못한다구요? ㅎㅎ 다 하실 수 있습니다.


개발 계획서를 작성해봐야 자세히 알겠지만 이 모든 과정을 2.5달에서 3.5달안에 마무리 지을 생각이며


개발 비용은 소자 구매, 샘플 PCB 작업까지 포함하고 제 인건비 제외해서 약 20~30만원 이내로 생각 중입니다.

(샘플 PCB가 요세 얼만지 모르겠네여.)


ㅎㅎ 뭐 그렇다고 돈내라는 소리 아니니깐 걱정마시기 바랍니다.


혹시나 회사에서 안된다고 하면 사비로 진행토록 하겠습니다.


(저는 글을 작성하다보면 자주 삼천포로 빠지는데 지금부터입니다. 하지만 정말 필요한 부분이라 살려둡니다.)


- 삼천포 시작-


<우리에게 절실한 이런 자신감!>


우리에게 중요한 건 자신감입니다. 물론 태어날 때부터 타고난 자신감으로 세상을 사시는 분들도 있으시겠지만


대부분의 사람들은 그렇지 못합니다. 시작을 하기 전에 걱정부터 하죠.

(저는 한국사람들의 특징이라고 생각합니다만... 지나치게 겸손해 ㅋㅋ)


다시 공부를 하면 머리속에 잘 들어올까?

내가 소질이 있을까?

못하면 사람들이 뭐라고 하지 않을까?

주변 사람들이 시작도 하기전에 비웃을거야.

돈도 벌어야 하는데 따로 시간을 투자할 수 있을까?

과연 비용을 지불할 가치가 있을까?


이런 걱정을 하는 건 굉장히 당연합니다. 하지만 디테일이 없습니다.


막연하고 답답합니다. 그래서 더 걱정이 되며 이런 것들 때문에 "시작"조차 못하시는 분들이 허다합니다.


그리고 막상 시작하자!라고 마음을 먹으신 분들 중 대부분은 기술적인 부분, 돈, 시간 때문에 포기하게 되는게 사실입니다.

..

..


이게 자꾸 삼천포로 빠지네요. 죄송합니다.


!어쨋든!, 그런 문제들을 해결하고자 최대한 쉽고 자세히 설명할 것이며


최대한 돈이 들지 않는 개발을 지향하며


최대한 짧은 시간에 개발을 마치도록 하겠으니 너무 걱정 마시고 따라오시기 바랍니다. 괜찮습니다. 다 하실 수 있습니다.


이게 시작도 하기전에 너무 많은 말을 한 거 같네요. 지치시면 안되는데 죄송합니다.


- 삼천포 끝 -


글도 끝~

다음에는 개발 보드 컨셉 작업을 진행하겠습니다. 다음 시간에 뵈여~


- Dwarp -

저작자 표시
신고
TAG IOT