메뉴 건너뛰기

XEDITION

아두이노

WiFiHTTPSServer test

묵묵이 2020.03.02 17:22 조회 수 : 7

 

 

/*

  WiFiHTTPSServer - Simple server example

  Test Web x700 HOME 

*/

 

#include <ESP8266WiFi.h>

 

#ifndef STASSID

#define STASSID "tech_support"

#define STAPSK  "tobe@0701"

#endif

 

const char* ssid = STASSID;

const char* password = STAPSK;

 

 

const char* host = "x700.iptime.org";

const int httpsPort = 443;

const int httpPort = 7070;

 

const int led = D4;

 

unsigned long timeout = millis();

 

// Create an instance of the server

// specify the port to listen on as an argument

 

//WiFiServerSecure server(443);

WiFiServer server(80);

 

void sendData();  // 데이터 전송 

 

void setup() {

  Serial.begin(115200);

 

  // prepare GPIO2

  pinMode(led, OUTPUT);

  digitalWrite(led, 0);

 

  // Connect to WiFi network

  Serial.println();

  Serial.println();

  Serial.print("Connecting to ");

  Serial.println(ssid);

 

  WiFi.begin(ssid, password);

 

  while (WiFi.status() != WL_CONNECTED) {

    delay(500);

    Serial.print(".");

  }

  Serial.println("");

  Serial.println("WiFi connected");

 

  // Start the server

  server.begin();

  Serial.println("Server started");

 

  // Print the IP address

  Serial.println(WiFi.localIP());

}

 

void loop() {

 

  int Ramp = 0;

 

  if (millis() - timeout > 10000) {

      Serial.println(">>> lamp chk !");

 

      digitalWrite(led, !Ramp);

      //digitalWrite(led, 0);  

 

      timeout = millis();

  }

  

  // Check if a client has connected

  //WiFiClientSecure client = server.available();

  WiFiClient client = server.available();

  if (client) {

 

    //Serial.print(".");

    //return;

 

 

    // Wait until the client sends some data

    Serial.println("new client");

    unsigned long timeout = millis() + 3000;

    while (!client.available() && millis() < timeout) {

      delay(1);

    }

    if (millis() > timeout) {

      Serial.println("timeout");

      client.flush();

      client.stop();

      return;

    }

  

    // Read the first line of the request

    String req = client.readStringUntil('\r');

    Serial.println(req);

    client.flush();

  

    // Match the request

    int val;

    if (req.indexOf("/gpio/0") != -1) {

      val = 0;

  

      sendData();

      

    } else if (req.indexOf("/gpio/1") != -1) {

      val = 1;

    } else {

      Serial.println("invalid request");

      client.print("HTTP/1.1 404 Not Found\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html><body>Not found</body></html>");

      return;

    }

  

    // Set GPIO2 according to the request

    digitalWrite(led, val);

  

    client.flush();

  

    // Prepare the response

    String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\n";

    s += "GPIO is now >> ";

    s += (val) ? "high" : "low";

    s += "</html>\n";

  

    // Send the response to the client

    client.print(s);

    delay(1);

    Serial.println("Client disconnected");

  

    // The client will actually be disconnected

    // when the function returns and 'client' object is detroyed

    }

}

 

 

void sendData() 

{

  //WiFi.mode(WIFI_STA);

  //WiFi.begin(ssid, password);

  //while (WiFi.status() != WL_CONNECTED) {

  //  delay(500);

  //  Serial.print(".");

  //}

  

  //Serial.println("");

  //Serial.println("WiFi connected");

  //Serial.println("IP address: ");

  //Serial.println(WiFi.localIP());

 

  // Use WiFiClientSecure class to create TLS connection

  //WiFiClientSecure client;

  WiFiClient client;

  //Serial.print("connecting to ");

  //Serial.println(host);

 

  if (!client.connect(host, httpPort)) {

    Serial.println("connection failed");

    return;

  }

 

  String url = "/iot/iot_recivedata.jsp?nodename=testroom&t=26&h=50&ug=60&mg=0.06&m=1";

  

  Serial.print("requesting URL: ");

  Serial.println(url);

 

  client.print(String("GET ") + url + " HTTP/1.1\r\n" +

               "Host: " + host + "\r\n" +

               "User-Agent: BuildFailureDetectorESP8266\r\n" +

               "Connection: close\r\n\r\n");

 

  Serial.println("request sent");

  while (client.connected()) {

    String line = client.readStringUntil('\n');

    if (line == "\r") {

      Serial.println("headers received");

      break;

    }

  }

  //String line = client.readStringUntil('\n');

  String line = client.readString();

  //if (line.startsWith("{\"state\":\"success\"")) {

  if (line.indexOf("\"state\":\"success\"") >= 0) {

    Serial.println("esp8266/Arduino CI successfull!");

  } else {

    Serial.println("esp8266/Arduino CI has failed");

  }

  Serial.println("reply was:");

  Serial.println("==========");

  Serial.println(line);

  Serial.println("==========");

  Serial.println("closing connection");

}

 

 

번호 제목 글쓴이 날짜 조회 수
공지 IR 리모콘 코드 따기 [1] 묵묵이 2017.02.10 12
공지 rc 카 작업용 [1] 묵묵이 2017.02.07 11
공지 [sketch_mydust] 미세멘지 측정기 작업 용 [2] 묵묵이 2017.02.07 15
42 RFID 정보를 읽고 쓸 수 있는 Proxmark3 묵묵이 2024.09.13 1
41 [Android,Java] 안드로이드 - AES256 암호화 및 복호화 예제 소스 다운로드 file 묵묵이 2022.06.12 0
40 교류모터 속도제어킷 묵묵이 2021.05.02 7
» WiFiHTTPSServer test 묵묵이 2020.03.02 7
38 8GLIB 유저매뉴얼 구글번역 묵묵이 2020.02.29 5
37 아두이노 2.4G 통신 모듈 사용하기 묵묵이 2019.04.04 9
36 전기가용량 계산 방법 - 전압, 전류와 전력량 측정에 대한 내용 묵묵이 2017.07.27 9
35 초저렴 iot 모듈 묵묵이 2017.06.04 8
34 적정 습도 / 미세먼지 값보정 묵묵이 2017.05.11 8
33 5V동작 20A 전류 센서 모듈 측정하기 ... [6] 묵묵이 2017.04.17 16
32 먼지 센서 구매 하는곳 ... 묵묵이 2017.04.15 7
31 라즈베리파이 프로그램 자동 실행 묵묵이 2017.03.12 8
30 라즈베리파일 설정 묵묵이 2017.03.11 6
29 [라즈베리파이] C언어를 이용한 GPIO 입출력 제어 [3] 묵묵이 2017.03.07 5
28 와이파이 모듈(ESP8266) 공유기 연결 AT 명령어 [1] file 묵묵이 2017.02.26 6
27 아두이노 EEPROM 사용해보기 묵묵이 2017.02.20 6
26 [아두이노] 0.96인치 OLED LCD 모듈 텍스트 출력 [2] file 묵묵이 2017.02.20 9
25 HEX to DEC 묵묵이 2017.02.10 5
위로