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

묻고답하기

제목

esp8266 wifi 통신문제

작성자 CS / 배송(ip:)

작성일 2019-05-16

조회 241

평점 0점  

추천 추천하기

내용
안녕하세요 에듀이노입니다.
보드레이트와 출력 형태를 확인해 주시기 바랍니다.
추가적으로 Serial.begin(115200);, ESP_wifi.begin(115200); 통신속도를 115200으로 설정해서
진행해 보시길 권장해드립니다.
감사합니다.
[ Original Message ]

안녕하세요 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상담을 이용해 주시기 바랍니다.)

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