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

본문 바로가기
사이트 내 전체검색

arduino

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

페이지 정보

작성자 웹지기 댓글 1건 조회 7,896회 작성일 21-01-25 09:58

본문

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

첨부파일

댓글목록

웹지기님의 댓글

웹지기 작성일

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

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

Total 25건 1 페이지
  • 25 [ arduino ] 압력센서( Sensor - 아날로그 )
  • 압력센서( Sensor - 아날로그 ) - Force Sensitive Resistor 센서를 이용해서 LED 불이 밝이가 달라지게 켜기 LED는 11번에서 + 선으로 연결 LED 저항값을 - 와 연결( 저항은 주 붉 ) void setup() { Serial.begin(9600); pinMode(A0, INPUT); pinMode(11, OUTPUT); } void loop() { int a = analogRead(A0); //int m = map...
  • 웹지기 01-26 6300 0 0 댓글 0
  • 24 [ arduino ] 키패드를 사용해서 비밀번호 확인하기
  • 비밀번호가 맞으면 시리얼 모니터에 OK가 뜨고 비밀번호가 맞지 않으면 시리얼 모니터에 NO가 뜨게하는 프로그램 #include &lt;Keypad.h&gt; const byte ROWS = 4; //four rows const byte COLS = 3; //three columns char keys[ROWS][COLS] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', ...
  • 웹지기 01-26 9097 0 0 댓글 0
  • 23 [ arduino ] keypad 다운로드 / 사용 / 제어하기
  • keypad 다운로드 / 사용 / 제어하기 키패드의 숫자 및 특수문자를 클릭했을 때 1을 누르면 3,2 5를 누르면 1,7 #을 누르면 5,4 값들이 들어온다. 3 1 5 1 2 3 2 4 ...
  • 웹지기 01-26 5471 0 0 댓글 0
  • 21 [ arduino ] 문자가 들어올 때 간단하게 처리 하는 방법
  • 문자가 들어올 때 간단하게 처리 하는 방법 아두이노에서 문자열은 한글자씩 읽어 들여서 저장을 해줘야 한다. 한번 read()로 읽어들인 문자는 저장이 되지 않아도 날아가 버린다. boolean type = false; String str = ""; while (esp.available()) { char c = esp.read(); //문자를 일단 넣어준다. if(c == '/') { //ture, fa...
  • 웹지기 01-26 6373 0 0 댓글 0
  • 열람중 [ arduino ] wifi모듈(ESP8266) 연결 및 펌웨어 업데이트(9600port 사용)
  • wifi모듈(ESP8266) 연결 및 펌웨어 업데이트( - 9600port 사용을 위해서 업데이트가 필요함) 스케치에서 업로드를 하는데 0 / 1( Rx / Tx )을 빼고 업로드 빈파일을 업로드해서 활성화 활성화시 툴 &gt; 시리얼포트를 선택해준다. 활성화 후 0 / 1 을 다시 꼽아준다. 파일/폴더의 경로는 한글이 있으면 안된다. ESP8266_flasher_V00170901_00_Cloud Update Ready &gt; esp8266_flasher.e...
  • 웹지기 01-25 7897 0 0 댓글 1
  • 18 [ arduino ] Serial 시리얼 함수
  • 시리얼 모니터 Serial.begin(통신속도 -보드레이트) Serial.print() Serial.println() Serial.available() - 읽어올 수 있는 문자(바이트) 수 반환 Serial.read() - 버퍼안에 있는 문자를 불러오는 함수 입력된 serial 데이터를 읽은 후 더이상 읽을 값이 없을 시 -1반환 Serial.parseInt() - 입력문자를 숫자로 인식하게 해줌(약간 느려짐) Serial.write() - 숫자를 문자로 변환해서...
  • 웹지기 01-22 2368 0 0 댓글 0
  • 17 [ arduino ] Serial 블루투스 통신 - HC-06
  • HC-06 모듈 ( 블루투스 모듈 ) - 배선연결 rx - 수신 tx - 송신 vcc - 5v gnd - gnd 구글앱스토어 &gt; arduino bluetooth controller 설치 설치후 블루투스를 연결 &gt;&gt; 연결후 다운받은 앱실행 &gt;&gt; 터미널모드 선택 SoftwareSerial mySerial(rx, tx); ( 핀이 2개만 존재하므로 반대로 받아야 한다 ) rx 핀번호가 11번이고, tx 핀번호가...
  • 웹지기 01-22 2955 0 0 댓글 0
  • 16 [ arduino ] serial 을 이용해서 더하기 연산을 합시다.
  • serial 을 이용해서 더하기 연산을 합시다. void setup() { Serial.begin(9600); } int sum = 0; void loop() { if(Serial.available()) { int num = Serial.parseInt(); Serial.print(sum); Serial.print("+"); Serial.print(num); ...
  • 웹지기 01-22 4155 0 0 댓글 0
  • 14 [ arduino ] Serial port를 이용해서 LED 켜기
  • Serial port를 이용해서 LED 켜기 1번을 누르면 첫번째 LED 2번을 누르면 두번째 LED 3번을 누르면 세번째 LED 4번을 누르면 LED 모두 점등 void setup() { Serial.begin(9600); for (int i = 9; i &lt;= 11; i++) { pinMode(i, OUTPUT); } } void loop() { if (Serial.available()) {...
  • 웹지기 01-22 2079 0 0 댓글 0
  • 13 [ arduino ] 초음파 센서 사용하기
  • vcc - 5v gnd - gnd trig - 디지털 2번 - 신호를 보냄(OUTPUT) echo - 디지털 3번 - 신호를 받음(INPUT) echo 에 high를 넣으면 low~high의 시간을 가져온다. int trig = 2; int echo = 3; void setup() { pinMode(trig, OUTPUT); pinMode(echo, INPUT); Serial.begin(9600); } void loop() { digitalW...
  • 웹지기 01-22 2618 0 0 댓글 0
  • 12 [ arduino ] 버튼을 눌러서 차단기 작동시키기
  • 버튼을 눌러서 차단기 작동시키기 - 버튼을 누르면 차단기가 닫힌다. - 5개의 led를 1초에 한개씩 켠다 - 5초가 모두 지나면 차단기를 올린다. #include&lt;Servo.h&gt; Servo myservo; void setup() { Serial.begin(9600); myservo.attach(8); pinMode(7, INPUT); for (int i = 9; i �...
  • 웹지기 01-22 2289 0 0 댓글 0
  • 11 [ arduino ] 모터 제어하기
  • 모터 제어하기 #include&lt;Servo.h&gt; Servo myservo; void setup() { myservo.attach(8); } void loop() { myservo.write(0); delay(1000); myservo.write(179); delay(1000); }
  • 웹지기 01-21 2885 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
837
어제
8,352
최대
43,745
전체
10,303,215

그누보드5
Copyright © funyphp.com. All rights reserved.