Embeded 기초 다지기 2015년 10월 26일 intern Sally

Slides:



Advertisements
Similar presentations
Term Project Hints Topics Keep-alive CGI Multi-thread Multi-process Event-based.
Advertisements

웹 서버 구축 숭의여대 인터넷정보과 최지영. 웹 ? 웹사이트 ? 웹서버 ? 웹서비스 ? IIS? 아파치 ?
1. Section I. 웹 프로토콜과 로그의 이해 1. 웹 프로토콜 1.1 통신 절차 1.2 HTTP Request 1.3 HTTP Response 2. 웹 로그 2.1 W3C 유형 2.2 NCSA 포맷 2.3 로그 분석 2.
Python Socket/HTTP overmania. 목표  소켓을 이용하여 기본적인 서버 - 클라이언트 모델을 구현할 수 있다.  간단한 웹서버를 소켓을 이용하여 작성할 수 있다.
조준희 (Cho, Junhee) TCP/IP 조준희 (Cho, Junhee)
Introduction to Django
Chapter 03. 네트워크 보안 : 길을 지배하려는 자에 대한 저항
무선랜 접속 프로그램 메뉴얼 - KHU WiFi -
7장. TCP와 UDP.
Understanding of Socket and File I/O
Ⅰ웹로그분석을 통한 쇼핑몰 운영전략 코리아 인터넷 마케팅센터 대표 김형택
암호화 기술(SSL, IPSec) 손재성 권기읍 안복선 최준혁
Chapter 06. 프로토콜.
22 장 프로세스간 전달 : UDP와 TCP 22.1 프로세스간 전달 22.2 사용자 데이터그램 프로토콜
Python Bottle Web Framework
NetBIOS 크래킹 7조 최효림/한종민/김재경.
이번 시간에는... 지난 시간에는 모바일 응용 프로토콜의 첫번째 시간으로, 모바일에 사용되는 다양한 응용 프로토콜과 모바일 웹 서비스 응용 프로토콜로써 XML 및 SMIL 동기화 멀티미디어 통합 언어에 대해 알아보았습니다. 이번 시간에는 모바일 응용 프로토콜, 그 두번째.
Network Security - Ethereal 실습
Chapter 32 Analyzing Web Traffic
Dept. of Computer Engineering, Hannam Univ. Won Goo Lee
1. JSP(Java Server Pages) 소개
SNMP (Simple Network Management System)
Dynamic Host Configuration Protocol
Wi-Fi 기반 NATE 서비스 제공 -설명회-
Internet Control Message Protocol (ICMP)
ARP TARM PROJECT 1조 신영민.
1장. JSP 및 Servlet을 활용한 동적 웹 프로그래밍 소개 제1장.
Minicom,tftp,nfs설정,vnc설정
10. About TCP / IP SPARCS 08 우성필.
이 름: 정홍도 (과장) 팀 명: 개발사업팀 일 자:
제 18 장 TCP/IP 연결 확립과 종료 정보통신연구실.
네트워크 보안 TCP/IP 네트워크통신 개념.
4주 : 정보통신 네트워크 인터넷정보원 및 학술정보자원의 활용 담당교수 : 박 양 하 정보통신시스템 – 정보전송/처리시스템
Network Lab. Seoung Hyeon, Lee
ASP 정 보 보 호 학 과 양 계 탁.
Chapter 11 Unicast Routing Protocols.
7장 목차 7.1 멀티미디어 네트워킹 응용 7.5 다양한 서비스 클래스 제공 7.2 스트리밍 저장 오디오 및 비디오
PPP (Point-to-Point Protocol)
12 장 점 대 점 접근 : PPP 12.1 점 대 점 프로토콜 12.2 PPP 스택 12.3 요약.
AOE-212N 설치 Easy Manual INTER-M C/S팀 길근우.
S N M P (Simple Network Management System).
Processing resulting output
웹서버와 설치에 필요한 것 WWW ( world wide web ) TCP/IP 프로토콜을 이용하는 클라이언트/서버 환경
Network Management 김대환 김태훈 김숙흔 이근민.
3부 해킹 전 정보 획득 Chapter 6. 풋프린팅과 스캔
DHCP 박윤환 윤준호.
Network Programming(1)
Network Security WireShark를 활용한 프로토콜 분석 II.
Open API - Naver (Application Programming Interface )
SYSMAC GATEWAY 간이 매뉴얼.
Web Vulnerabilities 정보 보호 2008/05/31 Getroot.
CGI (Common Gateway Interface)
AP3 매뉴얼.
네트워크 프로그래밍의 이해 School of Electronics and Information.
Transmission Control Protocol (TCP)
CGI (Common Gateway Interface)
User Datagram Protocol (UDP)
TCP/IP 네트워크 구조 TCP/IP 개요 TCP/IP 프로토콜 한빛미디어(주).
Cyber Shopping Mall 구축 - CD New - 안소연,박지윤,박종봉,정영은.
시스코 네트워킹 (CCNA) 5주차.
컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부.
Internet & WWW Protocols
제 11장 User Datagram Protocol(UDP)
MONSTER CAR 구정재 한석우 김재형.
이번 시간에는... 지난 시간까지 제 1장을 통해 모바일의 정의와 개념, 시작과 발전, 기술과 서비스 및 그 전략을 살펴봄으로써 모바일 산업에 대한 전반적인 이해를 쌓았습니다. 이번시간 부터는 제 2장 모바일 기술을 통해, 무선 인터넷을 위한 컨텐츠 제작 기술, 네트워크.
IP-255S 설치 교육자료 101/102에 대한 설명을 시작 하겠습니다.
Chapter 17 BOOTP and DHCP.
제 9 장 ICMP 9.1 메시지 유형 9.2 메시지 형식 9.3 오류 보고 9.4 질의 9.5 검사합 9.6 ICMP 설계
실시간 음성 채팅 서비스 (Voice Chatting Programe)
클라우드를 활용한 드론 제어 시스템 SW 종합설계1 김성민 김진석 이준호
Presentation transcript:

Embeded 기초 다지기 2015년 10월 26일 intern Sally

CONTENTS 1 2 3 4 IoT Device 개발 IoT 첫걸음 임베디드 WiFi Rapid Prototype 1-1. Embeded web sever IoT Device 개발 1-2. HTTP Method 1-3. HTTP Sever Library 1-4. CGI 2 IoT 첫걸음 2-1. Web client 2-2. DHCP 2-3. I2C 2-4. Code 3 임베디드 WiFi 3-1. Overview 3-2. WizFi250 3-3. Domain Name 3-4. RTS & CTS 4 Rapid Prototype 4-1. W7500 & WizFi250 4-2. RTS & CTS 4-3. WizFI250 Hello World Demo 4-4. code 1-5. Sever example source 2-4. Proxy Sever 3-5. Soft AP Mode와 일반공유기의 차이점 4-5. Wizfi250 TCP UDP 1-6. message format 목차로는 강의를 들었던순으로 iot 디바이스개발, iot첫걸음,임베디드 wifi,rapid프로토타입으로 목차를 준비했습니다. 4-6. TCP Socket 3-6. I2C 4-7. UDP Socket 3-7. Code 4-8. TCP Client/Sever 3-8. Proxy sever 4-9. UDP Client/Sever

1.WIZwiki-W7500으로 IoT Device 개발 시작하기

Embeded Web Sever intern Sally HTTP Request sever client HTTP Response 1장 Embeded Web Sever intern Sally HTTP Request sever client 1장 embed web sever입니다. 오늘 강의를 전체적으로 보시면 w7500 이 서버역할 web browser가 client역할을 하게 됩니다. 일단 설명하기전에 서버와 클라이언트에 차이에 대해 말씀드리면 서버는 web page를 가지고있고 클라이언트는 웹페이지를 가지고 있지 않습니다. 즉 웹페이지는 서버에 저장됩니다. 계속해서 전체적인개요는 클라이언트의 요청이 도착할 때마다 해당 문서가 클라이언트로 전송되게 됩니다.서버는 보통 요청된 파일을 메모리 캐시에 저장합니다. 그리고 웹서버는 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램입니다. [따라서 메모리가 디스크보다 엑세스할때빠르며 서버는 또한 다중 스레드나 다중 프로세스를 사용하여 더욱 효율적으로 운영될수 있습니다.] HTTP 은 웹으로부터 정보를 얻어오기 위해 사용되는 프로토콜입니다. HTTP Response

HTTP 는 잘 알려진 포트 80으로 TCP 서비스를 이용 1장 HTTP Method intern Sally Web sever는 요청된 HTML Web page를 Web Browser에게 전송 그럼 http 메소드를 보시면 http프로토콜은 단지 하나의 TCP연결만을 사용합니다. 따라서 별도의 제어 연결없이 단지 SEVER와 CLIENT사이에 전송이 됩니다. 또한 HTTP메세지는 즉시 전달합니다. 클라이언트로부터 서버로의 명령은 요청 메시지에 포함되어있고 요청되어진 파일의 내용이나 다른정보는 응답 메시지에 내장됩니다. get함수는 websever의 값을 얻기 위한 방법이며 clien가 web sever storag에 있는 데이터를 얻게 됩니다. Post는 web sever에 변경된 값을 전달 받기 위한 방법입니다. 따라서 클라이언트에서 값을 변경하게 되면 서버가 이 요청을 받아 값을 변경합니다. HTTP 는 잘 알려진 포트 80으로 TCP 서비스를 이용

CGI(common gateway interface) intern Sally 3장 CGI(common gateway interface) intern Sally WEB페이지에서 해당 하이퍼미디어를 클릭하면HTML파일을 호출하게 됩니다. HTML파일을 들어가보시면 SET_DIO.CGI로 보낸다고 되어있습니다. SOURCE CODE를 보시면 핀의 값에 따라 데이터값이 어떻게 변할지 나와있습니다. Set_dio.html

HTTP Sever Library intern Sally start start no Requested Web content 1장 HTTP Sever Library intern Sally start start no Requested Web content Http Request? yes yes no Http Get/Head Method? Get CGI Request? yes yes no Http Post Method? Post CGI Request? yes Correspond CGI file? 이 자료는 HTTP SEVER LIBRARY입니다. 강사님블로그에 나와있는 자료보고 조금 요약하여 다시 플로우차트를 그려 보았습니다. 이 페이지를 보면 전체적인 흐름을 다시 정리 할 수 있습니다. 플로우차트에 대해 간략히 설명해 보자면 HTTP 요청이 들어옵니다. 그럼 GET METHOD인지 HEAD METHOD인지 물어봅니다. 그게 아니라면 POST,웹서버의 변경된 값을 받기위한 건지 묻습니다. 그것도 아니면 알지 못하는 함수라고 응답을하게 되는 것입니다. 만약 GET/HEAD로 WEBSEVER에게 정보를 받기위한 방법이라면 CGI요청을 이냐고 묻습니다. 맞다면 CGI FILE이 응답하냐고 묻습니다. 맞다면 거기에맞게 응답하게 됩니다. no yes Unknown HTTP Method Send HTTP Response end

CGI: Dynamic document를 생성하고 처리하는 기술 1장 CGI(common gateway interface) intern Sally CGI: Dynamic document를 생성하고 처리하는 기술 Dynamic document 작성 입력 데이터 프로그램에 제공 출력 결과가 사용 Cgi는 컴먼게이트인터페이스로 동적 문서를 생성하고 처리하는 기술입니다. 동적 문서는 브라우저가 문서를 요청할 때마다 웹서버에 의해 생성합니다. 이제 요청이 들어오면 웹 서버는 동적문서를 만드는 응용프로그램이나 스크립트를 수행합니다. Cgi는 동적문서가 어떻게 작성되야하는지 입력데이터가 어떻게 프로그램에 제공되어야하는지 출력결과가 어떻게 사용되어야 하는지 정의하는 표준들의 집합입니다. Common은 어떤 언어나 플렛폼에도 공통적으로 적용되는 규칙의 집합을 정의 한다는 것을 말하며 게이트웨이란 데이터베이스 그래픽패키지와 같은 다른 자원들을 엑세스하기 위해 사용될수 있는 것을 말하며 인터페이스는 임의의 cgi프로그램에서도 사용될수 있는 용어 변수 함수등의 집합이 존재한다는 것을 의미함

1장 Sever example source intern Sally

1장 Sever example source intern Sally

Request message format intern Sally 1장 Request message format intern Sally Method URL Version c l Requset Line Header Name : value c l Header Name : value c l Header Name : value c l Header Line cr lf Blank Line 요청메세지 형식은 요청라인, 헤더 그리고 몸체로 구성되어 있습니다. 요청라인 은 세개의 필드가 존재합니다. 이필드는 매소드와 URL,버전이라고 부릅니다. 이세필드는 공백 문자로 구분되어 있습니다. 마지막 CR(Carriage Return)과 LF(Line Feed)로 된 두 문자가 라인을 종료합니다. 메소드 필드는 요청유형을 정의합니다.아까 본 get/head/post가 여기에 해당합니다. Url은 웹페이지의 주소와 이름을 정의합니다. 세번째 verison은 프로토콜의 버전을 알려줍니다. 저희는 최신버전인 http 1.1을 사용합니다. 요청메세지의 헤더라인은 클라이언트로부터 서버로의 추가 정보를 전송합니다. 몸체에서는 송신할 설명을포함합니다. Variable number of lines (present only in some message) Body

Response message format intern Sally 1장 Response message format intern Sally Version Status code phrase c l 100범위 정보 200범위 요청 성공 300범위 URL재지정 400범위 클라이언트오류 500범위 서버 오류 Status Line Header Name : value c l Header Name : value c l Header Name : value c l Header Line cr lf Blank Line 응답메세지의구성의 상태라인 헤더라인 공백라인몸체로구성되어 있습니다. 상태라인은 공백으로 구분되고 cr과 lf에의해 종료되는 세개의 필드가 존재합니다. 첫필드는 http의버전을의미하고 현재는 1.1입니다. 상태코드는요청의상태를 의미하며 세자리로구성되어있습니다. 100범위의 코드들은 단지 정보차원이며 200범위의 코드들은 요청이 성공적임을나타내고 300범위의 코드들은 클라이언트를 또 다른 URL로 재지정하며 400대 범위의코드들은 클라이언트 사이트에서 오류를나타냅니다. 500대 범위의 코드들은서버사이트에서 오류를나타내고있습니다. 그아래 헤더라인과 바디라인은 요청메세지포멧과 같습니다. Variable number of lines (present only in some message) Body

2.IoT를 위한 첫걸음 2탄 다음으로 IoT를위한 첫걸음입니다/.

Web client intern Sally 2장 전체적인 개요는 W7500은 Client로 DHCP Sever에서 ip를 할당 받아 sever에 접속하게 됩니다. 이때 API인증키, 정류장ID,버스루트ID를 같이 보내게 되고 Sever는 w7500에게 버스 정류장 정보를 보내게 됩니다. 그리고 w7500은 I2C를 통해 OLED에 display해주게 됩니다 인터넷은 많은 사람들이 한 서버를 이용하기 때문에 라우터도 필요하고 IP라는 개념도 필요합니다. 왜냐하면 sever입장에서는 ip를 알아야지 자신에게 접속한 사람들을 알 수 있고 알맞게 데이터를 보낼 수 있기 때문입니다. 여기서 나오는 DHCP는 고유한 IP없이도 인터넷 접속이 가능하게 해줍니다.

DHCP : 처음으로 부팅한 컴퓨터나 디스크가 없는 컴퓨터에게 4가지 정보를 제공하기 위해 설계 된 클라이언트/서버 프로토콜 2장 DHCP intern Sally DHCP : 처음으로 부팅한 컴퓨터나 디스크가 없는 컴퓨터에게 4가지 정보를 제공하기 위해 설계 된 클라이언트/서버 프로토콜 동작 과정을 설명하자면 1.Dhcp서버는 udp포트 번호 67에 수동 passive open명령어를 수행하고 클라이언트로부터의 요청을 기다립니다. 2.부팅된 클라인언트는 포트번호 68에 능동열기 명령을 수행하고 이메세지는 목적지 포트 번호 67,발신지포트번호 68을 가지는 udp사용자 데이터그램으로 캡슐화 됩니다. 그이후 이 udp사용자 데이터그램은 ip데이터 그램으로 캡슐화 됩니다. 클라이언트는 발신지 주소를 모두 0으로 목적지 주소를 모두1로 정하게 됩니다. 3.서버는 udp목적지 포트를 68,발신지포트를 67로 지정하뒤 유니케스트나 브로드 케스트로 메시지를 클라이언트에 보냅니다. 응답이 유니케스트가 형성될수 있는것은 서버가 클라이언트의 ip주소를 알기 때문입니다. 또는 서버는 클라이언트의 물리적주소를 아는데 이는 논리적 주소를 물리적주소로 맵핑하는 arp서비스가 필요함을 의미합니다.

DHCP Packet Format intern Sally DHCP Packet 2장 물리 네트워크유형 물리 주소의 길이 응답 확인 경과된 시간 1000000000000000 클라이언트 IP주소 포함 응답메세지 서버의 IP주소 라우터의 IP주소 클라이언트 물리적 주소 Dhcp패킷 형식은 op코드는 8비트를 차지하는 필드로 dhcp의 패킷의 종류를 나타냅니다. 요청의 경우1 응답의 경우는2입니다. 하드웨어 유형은 8비트를 차지하며 물리 네트워크의 유형을 나타냅니다. 이더넷경우 값은 1입니다. 하드웨어길이역시 8비트를 차지하며 물리 주소의 길이를 바이트 단위로 나타냅니다. 이더넷 경우 이 값은6이됩니다. 홉갯수는 패킷이 전달 될 수 있는 최대 홉 개수를 나타냅니다. 트랜잭션id식별자는 4바이트를 차지하며 정수값을 가집니다. 트랜잭션 식별자는 클라이언트에 의해 설정되고 요청에 대한 응답을 확인하기 위해 사용됩니다. Senconds는 16비트를 가지면 클라이언트가 부팅된후 경과된 시간을 초 단위로 나타냅니다. 플래그는 16피트값을 가지며 맨 왼쪽비트만 사용되고 나머지 비트들은 0이 설정됩니다. 맨 왼쪽비트는 서버로부터의 응답이 브로드캐스트 응답입니다.(1) 클라이언트 ip주소는 크라이언트 ip주소를 포험하고 만약 클라이언트가 정보를 가지고 있지 않다면 0으로 지정 상대방 아이피 주소는 클라이언트 ip주소를 포함하고 요청받은 서버에 의해 응답메세지가 기록 서버주소는 서버의 ip주소를 포함 게이트웨이 ip주소는 라우터의 ip주소를 나타냄 클라이언트 하ㅡ웨어 주소는 클라이언트의 물리적 주소를 나타냄 서버 이름은 서버가 응답 메시지에 기록하는 선택사항으로 null string으로 끝나는 서버의 도메인 이름을 포함한다. 부트파일이름은 널 문자열로 끝나는 부트 파일의 전체 경로명을 포함합니다. 서버가 이 필드에 데이터를 채우지 않길 원하면 0으로 채움 응답메세지 기록/NULL STRING 파일의 경로

I2C BUS: 마이크로프로세서와 저속주변장치 사의의 통신을 위한 용도 2장 I2C intern Sally I2C BUS: 마이크로프로세서와 저속주변장치 사의의 통신을 위한 용도 데이터 라인을 공유하는 동기 시리얼 통신 버스 하나의 버스에 127장치까지 연결 가능 I2C버스는 마이크로프로세서와 저속주변장치사이의 통신을 위한용도로 양방향 오픈 드레인선인 SCL(Serial Clock),S이(Serail data)로 이루어져있으며 마스터 슬레이브 형태로 동작합니다. I2C는 동기식 방식이기 때문에 클락을 이용합니다. 그리고 두개의 시리얼 버스를 사용합니다.따라서 두개의 선으로 모든 디바이스를 제어하기 때문에 각각의 디바이스에 Address가 필요하게 됩니다. (OLED뒤에 주소 확인 OX78값과 데이터를 뿌려주게되면 거기에 맞는 데이터를 가지고 옴) I2C pin을 보시면 D15,D14 핀이 있습니다. GPIO 핀이기도하고 I2C기능도 담당하고 있습니다. SCL은 통신동기를위한 클럭선이고 SDA는데이터 선입니다. 마스터는 SCL로 동기를위한 클럭을 출력하며 슬레이브는 SLC로출력되는 클럭에맞추어 SDA를 통해 데이터를 출력하거 입력받습니다. SCL선과 SDA선은모두 오픈드레인이므로두선에는각각 풀업저항을연결해 주어야 합니다. 간단한 통신 프로토콜 MCU에 I2C통신 제어장치 내장

마스터가 어떻게 슬레이브 주소를 지정하고 데이터를 주고 받을까? 2장 I2C Bus intern Sally 슬레이브 ACK=0출력 마스터가 어떻게 슬레이브 주소를 지정하고 데이터를 주고 받을까? 지정 슬레이브의 7비트 주소 출력 마스터의 출력 모든I2C 슬레이브장치는7비트의 고유한 주소를 가지고 있으며 마스터는 이주소를 가지고상대슬레이브 장치를 지정한다. 그림은 마스터가 슬레이브의주소를 지정하고 데이터를 주고받는 방법에 대한설명입니다. 마스터는 시작조건에이어서자신이 원하는 슬레이브의 7비트 주소를 출력합니다. 버스에 연결되어 있는 모든 슬레이브 장치들은 SDA선을계속감시하면서 마스터가 출력한주소가자신의 주소와일치하는지여부를 검사합니다. 만일 마스터가 출력한 주소가 어떤 슬레이의 주소가 같으면 그 슬레이브는 ACK 비트에 0을 출력하여 마스터에게응답한다. 마스터가 이비트로 0을 출력했다면 이것은마스터쓰기임을 뜻하므로 슬레이브 주소다음의 1바이트 데이터는마스터의 출력이다. 이 데이터는앞서 주소가 지정된슬레이브를 위한것이므로 그 슬레이브가 이값을읽어 들입니다/ 반면 슬레이브 주소가 칠비트 다음에오늘8번째 비트가 1이면 이것은다음 동작이마스터의 읽기라는것을 의미합니다/ 그러므로 마스터에의해 주소가지정된 슬레이브는 ACK을 응답한후이어서 마스터에게 보낼 데이터를 출력합니다.

code intern Sally 2장 인터넷을 가능 하게하는 library PA_10과PA_9는 각 각 D15,D14핀 디바이스 주소와 SIZE IP주소와 SN주소는 필요없지만 MAC주소는 필요

code intern Sally 2장 SEVER로 보낼데이터형식 (SEVICEKEY=나라에서인증한 공인 API) ROUTID&STATIONID 는 HTML PAGE에 있음

Proxy Sever : 최신 요청에 대한 응답들의 복사본을 가지고 있는 컴퓨터 2장 Proxy Sever intern Sally Proxy Sever : 최신 요청에 대한 응답들의 복사본을 가지고 있는 컴퓨터 Response 실습에서 프락시서버에서 토큰값받아오기 가 있었습니다. 프락시서버가 토크값을 받고 나를 판단해 내 트위터에 데이터를 받아주는 것이었습니다. HTTP는 프락시 서버를 지원합니다. 프락시 서버는 최신 요청에 대한 응답들의 복사본을 갖고있는 컴퓨터 입니다. HTTP 클라이언트는프락시 서버로 요청을 보냅니다. 프락시 서버는캐쉬를검사하고 만일 응답이 캐쉬에저장되어 있지 않으면 프락시 서버는적절한서버로 요청을 보내게 됩니다. 들어온 응답은프락시 서버로보내지고 다음에있을다른클라이언트의 요청에 대비해 저장됩니다. 프락시 서버는 원래 서버의 부하를 경감시키고, 트랙픽 감소시켜며, 지연을 개선한다. 하지만 프락시 서버를 사용하기 위해서 클라이언트는대상 서버대신 프락시를액세스 하도록 설정되어 있어야 합니다. 프락시 서버는 서버와 클라이언트 두역할을 함께수행합니다. 클라이언트로부터요청을받았을때 응답을 가지고있으면, 서버로 동작하여 응답을 클라이언트로 전송합니다/ 클라이언트로 부터 요청을 받았을때 응답을 가지고 있지 않으면, 먼저 클라이언트로동작하여 요청을 대상 서버로 전송한다. 응답이 도착하면 다시 서버로 동작하여 응답을 클라이언트로 전송합니다. Request Request

2장 Proxy Sever intern Sally

3.임베디드 WiFi WizFi250 기초 및 HTTP Client 실습

OPEN API Overview intern Sally WizFi250으로 실제 인터넷 망에 접속해 3장 Overview intern Sally WizFi250으로 실제 인터넷 망에 접속해 다양한 사이트에서 의미 있는 데이터를 가지고 온다. 접속 Uart 500Byte MCU Wizfi250이 ap에 접속을 한것은 실제 인터넷 망에 접속은 한것입니다. 인터넷 망에는 오픈웨더맵도 있으며 구글클라우드도 있고 버스도착 정보를 알려주는 쥐비스도 있습니다. 보통 이런 것들을 open API라고 합니다. 따라서 이렇게 통신하는 클라우드 프로토콜이 JSEN,MQTTT,XML입니다.현재 제가 사용하는 휴대폰으로 버스정보를 알고 싶을때 버스 정보를 요청하고 결과를 받아서 화면으로 표시해주고 이것이 전형적인 시퀀스입니다(절차).그 중 요번 실습에는 이런 데모를 보이기위해서는 관리 인증서를 받는 등 복잡한 절차가 따르는데 제일 접근 하기 쉬운 오픈웨더맵 예제를 사용하였습니다.따라서 wizfi250이 openweathermap에 packet하나를 던져서 얘가 주는 의미있는 데이터를 받아오는 예제를 할 것입니다. 실제로 wizfi250이 한패킷 117byte를 던졌고 실제로 500byte가 왔습니다(포멧), 이 포멧의 특징은 web처럼 그래프나 그림이 나오는 것이아니라 기계가 인식할 수 있는 편리한 프로토콜입니다. WizFi250 OPEN API

3장 WizFi250 intern Sally 250같은 경우 wifi모듈입니다. 그래서 serial로 데이터를 보내게 되면 자동으로 wifi port를 전송해 줍니다. 또한 디바이스간 통신 방식에는 여러가지가 있는데 와이파이 경우 ip기반으로 되어있고 기존의 wifi인프라에서 활용가능합니다.따라서 외부 클라우드 서버, 구글같은 클라우드 서버와 통신이 가능합니다,또한 통신이 다른 디바이스간 통식방식 중 빠르다는 장점도 가지고 있습니다.동작방시에는 soft ap mode와 station mode가 있습니다.soft ap mode의 같은경우 wizfi250자체가 공유기역할을 합니다.그래서 다른 단말들이 250에 접속을해서 단말기 끼리 통신을 하거나 wizfi250과 연결된 디바이스끼리 통신을 하는 것입니다.station mode에 같은 경우는 기존의 있던 공유기에 접속을 하는 것입니다.그래서 wizfi250은 공유기와 연결되어있는 pc나 다른 외부의 서버와도 연결할 수 있습니다. Soft ap mode의 경우 외부로 나가지 못하고 로컬을 형성합니다.

Soft AP Mode와 일반공유기의 차이점 intern Sally 3장 Soft AP Mode와 일반공유기의 차이점 intern Sally Wan port 일반 공유기같은 경우 wan port가 있기 때문에 외부와 통신 할 수 있지만 wizfi250의 경우는 wifi기능만 있습니다. 즉 WLAN과 자동으로 IP를 할당해주는 DHCP기능만 사용할 수 있습니다 이번 메이커페어에서 전시했던 RC CAR같은 경우 SOFT AP 동작 방식을 사용한 예입니다. RC카에 AP모드를 설치해 놓고 핸드폰 같은 다른 단말기로 RC카에 접속을해 제어를 하는 것입니다. STATION MODE같은경우는 다른 클라우드에 접속해 현재 날씨나 온도를 디스플레이하는 기능입니다.

원하는 기능 설정 intern Sally Start Mode? AP Soft Mode StationMode Protocol? 3장 원하는 기능 설정 intern Sally Start Mode? AP Soft Mode StationMode Protocol? Protocol? TCP UDP TCP UDP Station모드 중선택을했다면tcpsever,tcp client, udp sever,udpclient중 원하는 기능을 설정후 wizfi250을 사용할 수있다. Rc카제어는 소프트apmode.tcpsever로 구성하면됨 외부클라우드 서버접속 station,tcp client로구성 Udp의 경우는 서버와클라이언트의 개념이 없지만 설정상 필요한 옵션들은 있음 Type? Type? sever client sever client

주변 AP(Access Point)를 스캔 3장 AT Command intern Sally SOFT AP MODE 오늘 사용한 AT Command AT +WSCAN 주변 AP(Access Point)를 스캔 AT +WSET SSID를 생성 AT +WSEC Password 설정 AT +NET DHCP로 IP를 자동으로 할당 AT +WJOIN 설정된 AP로 접속 AT +SCON 소켓 OPEN AT Command란 wizfi250을 제어하기 위해 사용합니다. AT +WSEC까지는 로 WIZFI250을 셋팅합니다.Join으로 wizfi250을 소프트ap로동작하기로하엿습니다. AT+Scon으로 tcpsever, 5000포트를오픈하고 리슨상태로 만듭니다. 세팅 상태가 궁금 할 때 AT Command 뒤에 ?만 붙이면 된다!

다른 단말과의 연결 후 데이터 전송 방식에 따라 두 가지 모드로 나뉘게 된다. Data Mode 3장 Date 전송 방식 intern Sally 다른 단말과의 연결 후 데이터 전송 방식에 따라 두 가지 모드로 나뉘게 된다. Data Mode Setting까지 완료한 상태에서 serial로 문자를 입력하게 되면 wizfi250을 통해 나가게 됨. Command mode Setting이후에 Data몇 Byte를 주겠다고 AT command를 주고 그 뒤에 Data를 보내주게 됨. 다시컴맨드모드로 가기위해서는 +++을 입력하면됨

Reset이 되면SCON에 저장된 내용을 수행 3장 AT Command intern Sally O :명령어가 실행되는 순간 TCP Sever를 동작 시행을 시작함. AT+SCON=O :TCP Sever로 동작 AT+SCON=O,TSN,,,5000,1 5000 Port와 1은 Data mode를 사용 TCP Sever로 동작 S Reset이 되면SCON에 저장된 내용을 수행 O 명령을 입력 즉시 저장된 내용 수행 SO RESET후 && 지금 수행 At scon명령은 at+wjoin이후 linkup event가 발생한후 사용가능합니다. CLIENT로 동작하려면 서버의 IP와 PORT를 REMOTE IP,PORT에적는다 LOCALPORT는 비워둠 SEVER로 동작하려면 다른 CLIENT의 연결을 기다리는 LISTEN상태이기때문에 LOCAL PORT가필수적으로 입력 OPEN TYPE. SOCKET TYPE,REMOTE IP,REMOTE PORT,LOCAL PORT, DATA MODE

4.WizFi250 활용 Rapid Prototye 만들기 이번 시간에는 엠베드에서 제공하는 library를 이용해 빠르게 프로토타입을 만드는 법을 배웠습니다. W7500이 현재 mbed에 등록이되면 장점이 엠베드라는 사이트에 다른 사람들의 라이브러리를 이용할 수 있다… 엠베드는 암이라는 코어를 쓴 밴더들이 연합하여 엠베드 os나 엠베드 디바이스 라이브러리를 쓰면 등록 된 회사 모든 디바이스를 사용가능합니다. 즉 디바이스는 바껴도 소프트웨어는 안바껴도 된다..라는 개념하에 만들어둔 사이트입니다.

4장 W7500 & WizFi250 intern Sally 그럼 w7500과 wizfi250을 연결해서 mbed환경에서 어떻게 사용을 할지 설명하겠습니다.

4장 Hardware 구성도 intern Sally D8 TXD RXD VCC GND RTS CTS JP10-2 PA12 D7

RTS 신호는 수신이 가능한 상태이면 Low로 되며, 수신이 불가능하면 High로 한다. 4장 RTS & CTS intern Sally RTS프레임역할은 송신측이 전송을 위해 무선 링클를 예약하는 것 송신측이 무선 링크를듣고 있는모든 노드에게 지금부터 송신하지 말라고 함 전송할 데이터가 많아서 전송매체를얼마동안 예약코자타 노드에게알리는 프레임 헤더 부분만있고 데이터 부분은없음 CTS는 수신측이 무선링크를듣고 있는 모든노드에게지금부터 송신말라고 하는것 프레임교환 절차 송신노드는 채널이 빈것을 알고난후 DIFS만큼 기다린후 RTS송출 수신노드는 RTS수신후 SIFS만큼기다린후 CTS송출 송신노드는 SIFS만큼기다린후 데이터송출 시작 수신노드는 SIFS만큼 기다린후 확인응답(ACK)송출 RTS 신호는 수신이 가능한 상태이면 Low로 되며, 수신이 불가능하면 High로 한다. TX를 하기 전에 CTS 입력을 확인해서 CTS가 Low이면 데이터를 보낸다.

WizFI250 Hello World Demo intern Sally 4장 아까 이렇게 했던것을 mbed환경에서는 어떻게 되는지 알아보고,wizfi250에 들어있는 ssid에 접속을해서 ip를 얻을 것입니다.

(TX,RX,CTS,RTS,Reset,Alarm,Baud) 4장 Code intern Sally (TX,RX,CTS,RTS,Reset,Alarm,Baud) 처음에는wizfi250인터페이스라는 라이브러리를 생성하고tx,rx, cts,rts일때 baudrate그런순으로 parameter를 넣어줌 저희는 w7500기준으로 d1,d0 d7d8 115200순으로 초기화 할때 이 핀 번호를 넣어줄수 있습니다. 그리고 library를 사용할 때 방법은 간단합니다. 아까 생성했던 wizfi 250이라는 target을 init이라는 함수로 호출하고 컨넥터 함수를통해~ Connect함수를 통해 (보안,ssid,비밀번호)

Wizfi250 TCP UDP intern Sally 4장 이번에는 wizfi250으로 tcp severclient나 udp를 구동할수 있는지 알아 보겠습니다. 기본적으로 tcp 통신을 하기위해서는 소켓을 열어야하고

4장 TCP Sever intern Sally

4장 TCP Client intern Sally

4장 UDP Sever intern Sally

4장 UDP Client intern Sally

Thank You Q & A