Title
아두이노 예제
2017.02.07 23:02

WiFi Shield 101 Library - Simple Web Server WiFi

조회 수 166 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

이 예제에서는 간단한 웹 서버는 웹을 통해 LED 깜박임 수 있습니다. 이 예에서는 IP주소 와이파이 실드 101 또는 MKR1000 보드의 (한 번 연결) Arduino 소프트웨어 (IDE) 시리얼 모니터에 인쇄 됩니다. 게시판의 IP주소를 알고 있으면 웹 브라우저에서 해당 주소를 열고 핀 9의 LED를 켤 수 있습니다.

 

실드/보드의 IP 주소가 yourAddress 인 경우에:

 

http://yourAddress/H LED 가 켜집니다
http://yourAddress/L 꺼집니다.

 

이 예는 WPA암호화를 사용하여 네트워크를 위해 작성되었습니다. WEP또는 WPA의 경우, 그에 따라 Wifi.begin()호출을 변경한다.

 

Hardware Required


  • Arduino WiFi Shield 101
  • Arduino or Genuino Zero board

or

  • MKR1000
  • (optional) Six analog sensors attached to Analog pins 0-5

 

Circuit


디지털 핀 7은 WiFi실드 101과 보드 사이의 핸드 핀으로 사용되며, 사용되지 않아야 합니다.

 

이예제를 위해 인터넷에 연결된 802.11b/g 무선 네트워크에 액세스 할 수 있는 권한이 있어야 합니다. 특정 네트워크 SSID와 일치하도록 스케치의 네트워크 설정을 변경해야 합니다.

 

WPA/WPA2 PersonalEncryption을 사용하는 네트워크에서는 SSID와 암호가 필요합니다. 이 실드는 WPA2엔터프라이즈 암호화를 사용하여 네트워크에 연결되지 않습니다.

 

WEP네트워크 암호는 키로 알려진 16진수 문자열입니다. WEP네트워크는 4개의 다른 키를 가질 수 있다. 각 키는 "키 인덱스"값을 할당합니다. WEP암호화된 네트워크의 경우 SSID, 키 및 키 번호가 필요합니다.

 

ArduinoWiFi101.png

 

상기 이미지에서 Arduino 또는 Genuino Zero보드는 WiFi실드 아래에 쌓여 있습니다.

 

Code


이 스케치는 Wi-Fi를 통해 LAN과 연결되며, 로컬에서 사용 가능한 DHCP서버에서 IP주소를 얻습니다. 이 주소는 간단한 웹 서버에 액세스 하는 데 필요하므로, 다음과 같이 Arduino Software( IDE Software)의 디지털 모니터에 출력됩니다.

 

Access Point Web Server
Creating access point named: MKR1000-network
SSID: MKR1000-network
IP Address: 192.168.1.1
signal strength (RSSI):-100 dBm
To see this page in action, open a browser to http://192.168.1.1

 

모든 연결은 직렬 모니터에 보고되며 연결 클라이언트와 관련된 정보를 포함합니다. 다음 예제에서는 OSX에 크롬이 포함되어 있습니다.

 

new client
GET / HTTP/1.1
Host: 192.168.1.1
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4,ja;q=0.2

client disconnected
new client
GET /favicon.ico HTTP/1.1
Host: 192.168.1.1
Connection: keep-alive
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36
Accept: */*
Referer: http://192.168.1.1/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4,ja;q=0.2

client disconnected

 

이 튜토리얼의 완전한 스케치는 아래와 같습니다.

 

/*
  WiFi Web Server LED Blink

 A simple web server that lets you blink an LED via the web.
 This sketch will print the IP address of your WiFi Shield (once connected)
 to the Serial monitor. From there, you can open that address in a web browser
 to turn on and off the LED on pin 9.

 If the IP address of your shield is yourAddress:
 http://yourAddress/H turns the LED on
 http://yourAddress/L turns it off

 This example is written for a network using WPA encryption. For
 WEP or WPA, change the WiFi.begin() call accordingly.

 Circuit:
 * WiFi shield attached
 * LED attached to pin 9

 created 25 Nov 2012
 by Tom Igoe
 */
#include <SPI.h>
#include <WiFi101.h>

char ssid[] = "yourNetwork";      //  your network SSID (name)
char pass[] = "secretPassword";   // your network password
int keyIndex = 0;                 // your network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS;
WiFiServer server(80);

void setup() {
  Serial.begin(9600);      // initialize serial communication
  pinMode(9, OUTPUT);      // set the LED pin mode

  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    while (true);       // don't continue
  }

  // attempt to connect to WiFi network:
  while ( status != WL_CONNECTED) {
    Serial.print("Attempting to connect to Network named: ");
    Serial.println(ssid);                   // print the network name (SSID);

    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
    status = WiFi.begin(ssid, pass);
    // wait 10 seconds for connection:
    delay(10000);
  }
  server.begin();                           // start the web server on port 80
  printWiFiStatus();                        // you're connected now, so print out the status
}


void loop() {
  WiFiClient client = server.available();   // listen for incoming clients

  if (client) {                             // if you get a client,
    Serial.println("new client");           // print a message out the serial port
    String currentLine = "";                // make a String to hold incoming data from the client
    while (client.connected()) {            // loop while the client's connected
      if (client.available()) {             // if there's bytes to read from the client,
        char c = client.read();             // read a byte, then
        Serial.write(c);                    // print it out the serial monitor
        if (c == '\n') {                    // if the byte is a newline character

          // if the current line is blank, you got two newline characters in a row.
          // that's the end of the client HTTP request, so send a response:
          if (currentLine.length() == 0) {
            // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
            // and a content-type so the client knows what's coming, then a blank line:
            client.println("HTTP/1.1 200 OK");
            client.println("Content-type:text/html");
            client.println();

            // the content of the HTTP response follows the header:
            client.print("Click <a href=\"/H\">here</a> turn the LED on pin 9 on<br>");
            client.print("Click <a href=\"/L\">here</a> turn the LED on pin 9 off<br>");

            // The HTTP response ends with another blank line:
            client.println();
            // break out of the while loop:
            break;
          }
          else {      // if you got a newline, then clear currentLine:
            currentLine = "";
          }
        }
        else if (c != '\r') {    // if you got anything else but a carriage return character,
          currentLine += c;      // add it to the end of the currentLine
        }

        // Check to see if the client request was "GET /H" or "GET /L":
        if (currentLine.endsWith("GET /H")) {
          digitalWrite(9, HIGH);               // GET /H turns the LED on
        }
        if (currentLine.endsWith("GET /L")) {
          digitalWrite(9, LOW);                // GET /L turns the LED off
        }
      }
    }
    // close the connection:
    client.stop();
    Serial.println("client disonnected");
  }
}

void printWiFiStatus() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print your WiFi shield's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
  // print where to go in a browser:
  Serial.print("To see this page in action, open a browser to http://");
  Serial.println(ip);
}


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
193 아두이노 예제 WiFi Shield 101 Library - WiFi Web Client file 귀욤둥이 2017.02.07 123
192 아두이노 예제 WiFi Shield 101 Library - UDP NTP Client file 귀욤둥이 2017.02.07 113
» 아두이노 예제 WiFi Shield 101 Library - Simple Web Server WiFi file 귀욤둥이 2017.02.07 166
190 아두이노 예제 WiFi Shield 101 Library - Scan Networks file 귀욤둥이 2017.02.07 191
189 아두이노 예제 WiFi Shield 101 Library- Connect With WPA file 귀욤둥이 2017.02.07 227
188 아두이노 예제 WiFi Shield 101 Library - Connect With WEP file 귀욤둥이 2017.02.07 142
187 아두이노 예제 WiFi Shield 101 Library - Connect No Encryption file 귀욤둥이 2017.02.07 172
186 아두이노 예제 WiFi Library - WiFi Send Receive UDP String file 귀욤둥이 2017.02.07 218
185 아두이노 예제 WiFi Library - WiFi Web Server file 귀욤둥이 2017.02.07 121
184 아두이노 예제 WiFi Library - WiFi Web Client Repeating file 귀욤둥이 2017.02.07 201
183 아두이노 예제 WiFi Library - WiFi Web Client file 귀욤둥이 2017.02.07 176
182 아두이노 예제 WiFi Library - WiFi Chat Server file 귀욤둥이 2017.02.07 158
181 아두이노 예제 WiFi Library - UDP NTP Client file 귀욤둥이 2017.02.07 181
180 아두이노 예제 WiFi Library - Simple Web Server WiFi file 귀욤둥이 2017.02.07 105
179 아두이노 예제 WiFi Library - Scan Networks file 귀욤둥이 2017.02.07 93
178 아두이노 예제 WiFi Library - Connect With WPA file 귀욤둥이 2017.02.07 102
177 아두이노 예제 WiFi Library - Connect With WEP file 귀욤둥이 2017.02.07 123
176 아두이노 예제 WiFi Library - Connect No Encryption file 귀욤둥이 2017.02.07 100
175 아두이노 예제 TFT Library(ESPLORA) - Esplora TFT Temp file 귀욤둥이 2017.02.07 93
174 아두이노 예제 TFT Library(ESPLORA) - Esplora TFT Pong file 귀욤둥이 2017.02.07 123
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 Next
/ 11