2014년 11월 23일 일요일

아두이노 와이파이 쉴드

아두이노 와이파이 쉴드를 이용한 개발
참고 Site : http://arduino.cc/en/Reference/WiFi

와이파이 라이브러리

와이파이 쉴드를 위한 펌웨어가 아두이노 IDE 1.0.5에서 변경되었다. 업데이트 하길 바란다.
아두이노 와이파이 쉴드를 사용하여 이 라이브러리는 아두이노 보드가 인터넷에 연결되는 것을 허가한다. 그것은 들어오는 연결을 수락하는 서버나 나가는걸 만드는 클라이언트 중 하나를 지원할 수 있다. 라이브러리는 WEP와 WPA2 개인 키를 지원하지만 WPA2 엔터프라이즈는 지원하지 않는다. 또한 참고할 것은, 만약 SSID가 브로드캐스트가 아니면 쉴드는 연결할 수 없다. 와이파이 쉴드를 이용한 아두이노 통신은 SPI 버스를 이용한다. 이것은 Uno의 디지털 핀 11, 12, 13과 Mega의 50, 51, 52이다. 두 보드 모두 10번 핀은 SS로 사용된다. Mega에 하드웨어 SS 핀 53번은 사용되지 않지만 출력으로 유지되어야 한다. 디지털 핀 7번은 와이파이 쉴드와 아두이노 사이에 핸드쉐이크로 사용된다.
와이파이 라이브러리는 이더넷 라이브러리와 매우 유사하고 함수 호출의 많은 부분이 같다.
와이파이 쉴드의 추가적인 정보는 Getting Started page나 WiFi shield hardware page를 보라.

WiFi class
와이파이 클래스는 이더넷 라이브러리와 네트워크 설정을 초기화한다.
  • begin()
    • 와이파이 라이브러리의 네트워크 설정을 초기화하고 현재 상태를 제공
  • disconnect()
    • 현재 네트워크에서 와이파이 쉴드를 연결해제 함
  • config()
    • WiFi.config()는 와이파이 쉴드의 DNS, 게이트웨이, 서브넷을 잘 변경하는 고정 IP 주소를 설정한다.
    • DHCP를 사용하여 와이파이 쉴드를 자동적으로 설정하는 WiFi.begin()과는 달리 WiFi.config()는 쉴드의 네트워크 주소를 수동적으로 설정한다.
    • WiFi.begin() 전에 WiFi.config()를 호출하면 config()안에서 와이파이 쉴드를 설정하는 것은 begin()을 강제적으로 한다.
    • WiFi.config()는 WiFi.begin() 후에 호출할 수 있다. 그러나 쉴드는 begin()으로 기본적으로 DHCP 모드로 초기화 될 것이다. 한번 config()메소드를 호출하면 요구되는 네트워크 주소로 변경될 것이다.
  • setDNS()
    • DNS를 설정
  • SSID()
    • 현재 네트워크의 SSID를 가져옴
  • BSSID()
    • 연결된 라우터의 MAC 주소를 가져옴
  • RSSI()
    • 라우터에 연결의 신호 강도를 가져옴
  • encryptionType()
    • 현재 네트워크의 보안 형식을 가져옴
  • scanNetworks()
    • 유용한 WiFi 네트워크들을 스캔하고 발견된 번호를 반환한다
  • getSocket()
    • 유용한 첫번째 소켓을 가져옴
  • macAddress()
    • 와이파이 쉴드의 MAC 주소를 가져옴

IPAddress class
IP주소 클래스는 네트워크 설정에 대한 정보를 제공한다.

Server class
서버 클래스는 연결되어진 클라이언트(다른 컴퓨터나 디바이스에서 실행되는 프로그램)로부터 데이터를 받거나 보낼 수 있는 서버를 생성한다.
  • Server - 
  • WiFiServer()
    • 특정한 포트로 들어오는 연결을 대기하는 서버 생성
  • begin()
    • 서버에 연결이 들어오는 것에 대한 대기를 시작
  • available()
    • 서버에 연결이 되고 읽을 수 있는 데이터를 가진 클라이언트를 가져옴. 연결은 클라이언트 객체가 범위를 벗어남을 반환할때까지 지속됨. client.stop()를 호출하여 닫을 수 있음.
    • available()는 Stream 유틸리티 클래스로부터 상속됨.
  • write()
    • 서버에 연결된 모든 클라이언트에 데이터를 씀
  • print()
    • 서버에 연결된 모든 클라이언트에 데이터를 출력함. 출력 번호는 숫자의 연속으로 각각의 아스키 문자이다. (숫자 123은 세개의 문자 '1', '2', '3')
  • println()

Client class
클라이언트 클래스는 서버에 연결하여 데이터를 주고 받을 수 있는 클라이언트를 생성한다.
UDP class
UDP 클래스는 UDP 메시지를 보내거나 받을 수 있다.
  • WiFiUDP
    • UDP 메시지를 보내고 받을 수 있는 WiFi UDP 클래스의 인스턴스를 생성
  • begin()
    • WiFi UDP 라이브러리와 네트워크 설정을 초기화. WiFiUDP 소켓을 시작하고 내부 포트 PORT를 읽기대기함
  • available()
    • 버퍼에서 읽기 유용한 문자 바이트의 개수를 가져옴. 이 데이터는 이미 도착한거임. 이 함수는 WiFiUDP.parsePacket()의 뒤에 호출되어야 성공될 수 있음
    • available()는 Stream 유틸리티 클래스로부터 상속됨
  • beginPacket()
    • 떨어진 연결에 UDP 데이터를 쓰기위한 연결 시작
  • endPacket()
    • 떨어진 연결에 UDP 데이터를 쓰고 난 후 호출. 패킷 보낸후 종료 마침.
  • write()
    • 떨어진 연결에 UDP 데이터 쓰기. beginPacket()과 endPacket()로 싸여져야 함. beginPacket()는 데이터의 패킷을 초기화하고 그것은 endPacket()가 호출될때까지 보내지지 않음
  • parsePacket()
    • 다음 유용한 들어오는 패킷의 처리를 시작하고, UDP 패킷의 실제여부를 체크하고, 크기를 보고함. parsePacket()은 UDP.read()로 버퍼를 읽기 전에 호출되어져야 함.
  • peek()

  • read()
    • 특정 버퍼에서 UDP 데이터를 읽음. argument가 없으면 버퍼의 다음 문자를 반환함. 이 함수는 WiFiUDP.parsePacket() 후에 호출되어야 성공적일 수 있음
  • flush()
    • 클라이언트에 쓰여졌지만 아직 읽지 않은 일부 바이트를 포기함
  • stop()
    • 서버로부터 연결해제. UDP 세션동안 사용된 리소스들을 해제함.
  • remoteIP()
    • 떨어진 연결의 IP 주소를 가져옴
    • 이 함수는 WiFiUDP.parsePacket() 후에 호출되어져야 함
  • remotePort()
    • 떨어진 UDP 연결의 포트를 가져옴
    • 이 함수는 WiFiUDP.parsePacket() 후에 호출되어져야 함










댓글 1개: