[ arduino ] wifi모듈(ESP8266) 연결 및 펌웨어 업데이트(9600port 사용) > arduino

본문 바로가기

사이트 내 전체검색

arduino

[ arduino ] wifi모듈(ESP8266) 연결 및 펌웨어 업데이트(9600port 사용)

작성일 21-01-25 09:58

페이지 정보

작성자 웹지기 조회 8,061회 댓글 1건

본문

wifi모듈(ESP8266) 연결 및 펌웨어 업데이트( - 9600port 사용을 위해서 업데이트가 필요함)

 

스케치에서 업로드를 하는데 0 / 1( Rx / Tx )을 빼고 업로드 빈파일을 업로드해서 활성화 

활성화시 툴 > 시리얼포트를 선택해준다.

활성화 후 0 / 1 을 다시 꼽아준다.

 

파일/폴더의 경로는 한글이 있으면 안된다.

 

ESP8266_flasher_V00170901_00_Cloud Update Ready > esp8266_flasher.exe 실행

bin 클릭해서 : ai-thinker-0.9.5.2-9600.bin > download 클릭 

정상적으로 읽어지면 되고 안되면 3.3v를 뺏다가 꼽아준다.

download가 99% 까지 되면 , Leaving.... 이 뜸

스케치에서 시리얼 모니터를 클릭 >> 하단 Both NL & CR 로 수정후

창에 AT를 클릭해서 OK가 뜨는 지 확인

다시 창에 

AT+CWMODE?

:: +CWMODE:2 라고 ok뜨면 정상

 

AT+CWMODE=1

OK

 

AT+CWJAP :: 와이파이 신호가 잡힌다.

다음

AT+CWJAP="SSID", "PASSWORD"

SSID와 PASSWORD를 채워서 wifi 접속을 할 수 있게 해준다.

 

KakaoTalk_20210125_094708050.png


  

코드를 스케치에 넣어준다.

ssid password server_ip port등변경하고

전송하고 싶은 데이터 부분도 변경

아두이노의 시리얼모니터 > 

 

#include <SoftwareSerial.h>


// 모바일 HostSpot의 ID와 패스워드 (변경할 부분)

const String SSID = "hodoo";

const String PASSWORD = "12345678";

// 서버주소와 포트 (변경할 부분)

const String SERVER_IP = "wik.iptime.org";

const String SERVER_PORT = "8090";


// AT 명령 저장

String cmd = "";

// 전송 데이터 저장

String sendData = "";

// WiFi 접속 실패 여부

boolean FAIL_8266 = false;


// TX, RX

SoftwareSerial esp(3, 2);


void setup() {

  Serial.println("Start module connection");

  do {

    Serial.begin(9600);

    esp.begin(9600);

    // ESP8266 모듈 재시작

    esp.println("AT+RST");

    delay(1000);

    // 만약 재시작되었다면

    if (esp.find("ready")) {

      Serial.println("Module ready");

      // ESP8266 모듈의 모드를 듀얼모드로 설정 (클라이언트)

      esp.println("AT+CWMODE=1");

      delay(2000);

      // AP에 접속되면

      if (cwJoinAP()) {

        Serial.println("AP successful");

        FAIL_8266 = false;

        delay(5000);

        Serial.println("Start buffer initialization");

        while (esp.available() > 0) {

          char a = esp.read();

          Serial.write(a);

        }

        Serial.println();

        Serial.println("Buffer initialization terminated");

      } else {

        Serial.println("AP connection failure");

        delay(500);

        FAIL_8266 = true;

      }

    } else {

      Serial.println("Module connection failure");

      delay(500);

      FAIL_8266 = true;

    }

  } while (FAIL_8266);

  Serial.println("Module connection complete");

}


boolean a = true;

String message = "";


void loop() {

  message = "responsedata";

  if (a) {

    sendDataToServer(message);

  }

}



void sendDataToServer(String data) {

  Serial.println("Start the data transfer part");

  cmd = "AT+CIPSTART=\"TCP\",\"" + SERVER_IP + "\"," + SERVER_PORT + "\r\n";

  Serial.println("Attempt to connect to server");

  esp.println(cmd);

  // 웹 서버에 접속되면

  if (esp.find("OK")) {

    Serial.println("Server connection successful");

  } else {

    Serial.println("Server connection failed");

  }


  // 서버로 GET 메시지 전송

  cmd = "GET /iot/pi01/power/";

  cmd += data;

  cmd += "\r\nConnection: close\r\n\r\n";


  Serial.println(cmd);

  esp.print("AT+CIPSEND=");

  esp.println(cmd.length());

  if (esp.find("OK")) {

    Serial.println("Ready to send to server");

  } else {

    Serial.println("Failed to prepare to send to server");

  }

  esp.println(cmd);

  

  //데이터 전송이 완료되면

  if (esp.find("OK")) {

    Serial.println("Data transfer successful");

    Serial.println();

    delay(5000);

    Serial.println("Attempt to receive data");

    while (esp.available()) {

      Serial.write(esp.read());

    }

    Serial.println();

    Serial.println("End Receiving Data");

  } else {

    Serial.println("Data transfer failed");

    sendDataToServer(data);

  }

  delay(10000);

}


boolean cwJoinAP() {

  String cmd = "AT+CWJAP=\"" + SSID + "\",\"" + PASSWORD + "\"";

  esp.println(cmd);

  if (esp.find("OK")) {

    return true;

  } else {

    return false;

  }

}

 

eclipse 를 이용해서 서버를 만들준다.

Dynamic Web Project를 만들어서 톰켓 연결

jsp 파일을 하나 만들고, body에 아래 코드 입력

<%

String a = request.getParameter("a");

System.out.println(a);

%>


크롬에서 http://localhost:8081/프로젝트 폴더/jsp파일?a=123 으로 웹페이지 콘솔창에 찍히는지 확인


추천0

비추천 0

첨부파일

댓글목록

웹지기님의 댓글

profile_image 웹지기
작성일

라이브러리 추가 방법(zip파일로 된 라이브러리-압축을 풀지않고 그대로 사용)
스케치 > 라이브러리포함하기 > zip라이브러리 추가 > 확인
맨위에
#include <ArduinoJson.h>

DynamicJsonBuffer jsonBuffer; //loop 부분에 두줄 추가
JosnObject&root = jsonBuffer.parseObject(data);

전체 25건 1 페이지

이미지 목록

게시물 검색
Copyright © 즐거운 코딩 생활 ( funyphp ). All rights reserved.
PC 버전으로 보기