에듀이노-아두이노 전문 교육쇼핑몰 에듀이노-코딩 교구는, 에듀이노!
뒤로가기

묻고답하기

제목

esp8266 wifi 통신문제

작성자 양창모(ip:)

작성일 2019-05-16

조회 196

평점 0점  

추천 추천하기

내용

안녕하세요 esp8266 제품 구매하여 아두이노 통하여 wifi를 이용해서 통신하는 작품을 만들려고하는데


소스코드 컴파일 후 업로드도 정상적으로 되지만 시리얼 모니터를 통해 정상적으로 통신되는지 확인 하려고 할 때 아무런 반응이 없어서 문의 드립니다.



#include <ESP8266WiFi.h> // ESP 8266 와이파이 라이브러리

#include <ESP8266HTTPClient.h> // HTTP 클라이언트

#include <Adafruit_NeoPixel.h> // 네오픽셀 라이브러리

#define NUMPIXELS     1 // 네오픽셀 LED 수

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, D2, NEO_GRBW + NEO_KHZ800);



String sido = "서울"; // 서울, 부산, 대구, 인천, 광주, 대전, 울산, 경기, 강원, 충북, 충남, 전북, 전남, 경북, 경남, 제주, 세종 중 입력

String key = "ZJCmzKDmAE%2F%2FlsXbDJld%2FvXZ1dRgki0%2FZOTZYDki1Di5SMg4f31e6JbAE%2F7uNILGfri4PmSgJH0cDNEUzqtqNg%3D%3D";

String url = "http://openapi.airkorea.or.kr/openapi/services/rest/ArpltnInforInqireSvc/getCtprvnMesureSidoLIst?sidoName=" + sido + "&searchCondition=HOUR&pageNo=1&numOfRows=200&ServiceKey=" + key;


float so2, co, o3, no2, pm10, pm25 = 0; // 아황산가스(이산화황), 일산화탄소, 오존, 이산화질소, 미세먼지, 초미세먼지

int score = 0;


void setup()

{

  // 시리얼 세팅

  Serial.begin(115200);

  Serial.println();


  // 네오픽셀 초기화

  pixels.begin();

  for (int i = 0; i < NUMPIXELS; i++) {

    pixels.setPixelColor(i, 0);

  }

  pixels.show();


  // 와이파이 접속

  WiFi.begin("0000000", "00000000"); // 공유기 이름과 비밀번호


  Serial.print("Connecting");

  while (WiFi.status() != WL_CONNECTED) // 와이파이 접속하는 동안 "." 출력

  {

    delay(500);

    Serial.print(".");

  }

  Serial.println();


  Serial.print("Connected, IP address: ");

  Serial.println(WiFi.localIP()); // 접속된 와이파이 주소 출력

}


void loop() {

  if (WiFi.status() == WL_CONNECTED) // 와이파이가 접속되어 있는 경우

  {

    WiFiClient client; // 와이파이 클라이언트 객체

    HTTPClient http; // HTTP 클라이언트 객체


    if (http.begin(client, url)) {  // HTTP

      // 서버에 연결하고 HTTP 헤더 전송

      int httpCode = http.GET();


      // httpCode 가 음수라면 에러

      if (httpCode > 0) { // 에러가 없는 경우

        if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY) {

          String payload = http.getString(); // 받은 XML 데이터를 String에 저장

          int cityIndex = payload.indexOf("영등포구");

          so2 = getNumber(payload, "<so2Value>", cityIndex); // 아황산가스(이산화황)

          co = getNumber(payload, "<coValue>", cityIndex); // 일산화탄소

          o3 = getNumber(payload, "<o3Value>", cityIndex); // 오존

          no2 = getNumber(payload, "<no2Value>", cityIndex); // 이산화질소

          pm10 = getNumber(payload, "<pm10Value>", cityIndex); // 미세먼지

          pm25 = getNumber(payload, "<pm25Value>", cityIndex); // 초미세먼지

        }

      } else {

        Serial.printf("[HTTP] GET... 실패, 에러코드: %s\n", http.errorToString(httpCode).c_str());

      }

      http.end();

    } else {

      Serial.printf("[HTTP] 접속 불가\n");

    }

    score = getScore();

    Serial.println(score);

    setLEDColor(score);

    delay(600000);

  }

}


float getNumber(String str, String tag, int from) {

  float num = -1;

  int f = str.indexOf(tag, from) + tag.length();

  int t = str.indexOf("<", f);

  String s = str.substring(f, t);

  return s.toFloat();

}


int getScore() {

  int s = -1;

  if (pm10 >= 151 || pm25 >= 76 || o3 >=  0.38 || no2 >= 1.1 || co >= 32 || so2 > 0.6) // 최악

    s = 7;

  else if (pm10 >= 101 || pm25 >= 51 || o3 >=  0.15 || no2 >= 0.2 || co >= 15 || so2 > 0.15) // 매우 나쁨

    s = 6;

  else if (pm10 >= 76 || pm25 >= 38 || o3 >=  0.12 || no2 >= 0.13 || co >= 12 || so2 > 0.1) // 상당히 나쁨

    s = 5;

  else if (pm10 >= 51 || pm25 >= 26 || o3 >=  0.09 || no2 >= 00.06 || co >= 9 || so2 > 0.05) // 나쁨

    s = 4;

  else if (pm10 >= 41 || pm25 >= 21 || o3 >=  0.06 || no2 >= 0.05 || co >= 5.5 || so2 > 0.04) // 보통

    s = 3;

  else if (pm10 >= 31 || pm25 >= 16 || o3 >=  0.03 || no2 >= 0.03 || co >= 2 || so2 > 0.02) // 양호

    s = 2;

  else if (pm10 >= 16 || pm25 >= 9 || o3 >=  0.02 || no2 >= 0.02 || co >= 1 || so2 > 0.01) // 좋음

    s = 1;

  else

    s = 0;

  return s;

}


void setLEDColor(int s) {

  int color;

  if (s == 0)

    color = pixels.Color(0, 63, 255);

  else if (s == 1)

    color = pixels.Color(0, 127, 255);

  else if (s == 2)

    color = pixels.Color(0, 255, 255);

  else if (s == 3)

    color = pixels.Color(0, 255, 63);

  else if (s == 4)

    color = pixels.Color(255, 127, 0);

  else if (s == 5)

    color = pixels.Color(255, 63, 0);

  else if (s == 6)

    color = pixels.Color(255, 31, 0);

  else

    color = pixels.Color(255, 0, 0);

  for (int i = 0; i < NUMPIXELS; i++) {

    pixels.setPixelColor(i, color);

  }

  pixels.show();

}


위와 같은 소스코드를 입력했으며, CH341SER 설치 및 포트설정까지 완료했습니다.

위의 코드 외에 여러가지 다른 소스코드를 이용하여 wifi 통신하려고 했는데 전부 통신이 정상적으로 되지않습니다  답변 부탁드리겠습니다!

첨부파일

비밀번호
수정

비밀번호 입력후 수정 혹은 삭제해주세요.

댓글목록

등록된 댓글이 없습니다.

댓글 수정

이름

비밀번호

내용

/ byte

수정 취소

비밀번호 :

확인 취소

댓글 입력

이름

비밀번호

내용

/ byte

평점

왼쪽의 문자를 공백없이 입력하세요.

에게만 댓글 작성 권한이 있습니다.

댓글 입력

이름

비밀번호

내용

/ byte

왼쪽의 문자를 공백없이 입력하세요.

에게만 댓글 작성 권한이 있습니다.

고객센터

    1670-9626

  • 팩스.063-902-6678
  • 이메일.eduino@robodyne.co.kr
  • Kakao. 에듀이노
  • 운영시간 : AM 10:00 ~ PM 16:30
  • 점심시간 : PM 12:00 - PM 13:00 토/일/공휴일 휴무
  • 고객센터 연결하기
입금계좌
  • 예금주: (주)로보다인시스템
  • 국민. 754801-01-760296
  • 농협. 301-0234-1423-01
  • IBK기업은행. 506-080015-01-016
배송 안내
  • 배송 방법 : 택배
  • 배송 지역 : 전국지역
  • 배송 비용 : 조건부 무료 : 주문 금액 100,000원 미만일 때 배송비 3,000원을 추가합니다.
  • 배송 기간 : 1일 ~ 2일
  • 배송 안내 :
    - 제주도, 산간벽지나 도서지방은 별도의 추가금액을 지불하셔야 하는 경우가 있습니다.
    고객님께서 주문하신 상품은 입금 확인후 배송해 드립니다. 다만, 상품종류에 따라서 상품의 배송이 다소 지연될 수 있습니다.
교환/반품 안내
교환 및 반품이 가능한 경우
- 상품을 공급 받으신 날로부터 7일이내 단, 가전제품의
  경우 포장을 개봉하였거나 포장이 훼손되어 상품가치가 상실된 경우에는 교환/반품이 불가능합니다.
- 공급받으신 상품 및 용역의 내용이 표시.광고 내용과
  다르거나 다르게 이행된 경우에는 공급받은 날로부터 3월이내, 그사실을 알게 된 날로부터 30일이내

교환 및 반품이 불가능한 경우
- 고객님의 책임 있는 사유로 상품등이 멸실 또는 훼손된 경우. 단, 상품의 내용을 확인하기 위하여
  포장 등을 훼손한 경우는 제외
- 포장을 개봉하였거나 포장이 훼손되어 상품가치가 상실된 경우
  (예 : 가전제품, 식품, 음반 등, 단 액정화면이 부착된 노트북, LCD모니터, 디지털 카메라 등의 불량화소에
  따른 반품/교환은 제조사 기준에 따릅니다.)
- 고객님의 사용 또는 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 단, 화장품등의 경우 시용제품을
  제공한 경우에 한 합니다.
- 시간의 경과에 의하여 재판매가 곤란할 정도로 상품등의 가치가 현저히 감소한 경우
- 복제가 가능한 상품등의 포장을 훼손한 경우
  (자세한 내용은 고객만족센터 1:1 E-MAIL상담을 이용해 주시기 바랍니다.)

※ 고객님의 마음이 바뀌어 교환, 반품을 하실 경우 상품반송 비용은 고객님께서 부담하셔야 합니다.
  (색상 교환, 사이즈 교환 등 포함)
«
이전
{$paginationNo}
다음
»
  • {$autoComplete_query_view}
  • {$hotKeyword_rank} {$hotKeyword_query}