ESP-WROOM-02 Arduino 호환 보드에 Wi-Fi를 통해 스케치 쓰기
19478 단어 ArduinoESP8266ESP-WROOM-02
스위치 사이언스 ESP-WROOM-02 Arduino 호환 보드
스위치 과학에서 ESP-WROOM-02 Arduino 호환 보드이 출시되었습니다. 지금까지는 ESP-WROOM-02(ESP8266)를 Arduino의 스케치를 작성하여 사용하기 위해서는 모듈을 납땜하여 브레드보드에서 사용하거나 조금 사용하기 어려운 부분이 있었습니다. 이 호환 보드가 제거됩니다
ESP-WROOM-02 Arduino 호환 보드
ArduinoOTA를 사용하면 Wi-Fi를 통해 스케치를 쓸 수 있습니다!
OTA(Over the Air)란, 「무선 통신을 경유해」라는 의미의 영어 표현으로, 지금까지 외부 기억 장치나 유선 통신으로 행해져 온 데이터의 송수신 등이 무선 통신에 대응한 경우 등에 자주 사용되는 표현.
OTA란? - IT 용어 사전 보다 인용
Arduino에서는, PC와 USB 케이블로 접속하고 있던 곳을, Wi-Fi로 무선 접속한다고 하는 것입니다. 그러므로, USB 케이블 필요 없이 기입할 수 있게 됩니다(무선화하는 스케치는 USB 접속으로 기입할 필요가).
실현 절차
Wi-Fi를 통해 스케치를 쓸 때까지의 단계입니다.
OTA(Over the Air)란, 「무선 통신을 경유해」라는 의미의 영어 표현으로, 지금까지 외부 기억 장치나 유선 통신으로 행해져 온 데이터의 송수신 등이 무선 통신에 대응한 경우 등에 자주 사용되는 표현.
OTA란? - IT 용어 사전 보다 인용
Arduino에서는, PC와 USB 케이블로 접속하고 있던 곳을, Wi-Fi로 무선 접속한다고 하는 것입니다. 그러므로, USB 케이블 필요 없이 기입할 수 있게 됩니다(무선화하는 스케치는 USB 접속으로 기입할 필요가).
실현 절차
Wi-Fi를 통해 스케치를 쓸 때까지의 단계입니다.
개발 환경 구축
Arduino IDE와 ESP8266 라이브러리는 이미 설치되어 있다는 점에서 시작합니다. Arduino IDE 외에 필요한 것이 파이썬입니다. 버전은 2.7을 설치합니다.
다운로드 링크
- Windows
- Mac OS X
USB 케이블을 통해 호환 보드에 OTA 샘플 스케치 쓰기
조속히 Wi-Fi 경유로 스케치를 기입하고 싶은 곳입니다만, 그대로는 호환 보드에 대해서 아무것도 설정하고 있지 않은 상태이기 때문에 기입할 수 없습니다. 여러가지 돌진하고 싶은 곳은 억제하면서, USB 경유로 OTA용의 스케치를 호환 보드에 기입합니다. Arduino IDE 메뉴에서 [ファイル]→[スケッチの例]→[ArduinoOTA]→[BasicOTA]
를 클릭하여 샘플 스케치를 엽니다. 스케치에서 ssid
및 password
를 적절하게 변경하고 씁니다.
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
const char* ssid = "..........";
const char* password = "..........";
void setup() {
Serial.begin(115200);
Serial.println("Booting");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
Serial.println("Connection Failed! Rebooting...");
delay(5000);
ESP.restart();
}
// Port defaults to 8266
// ArduinoOTA.setPort(8266);
// Hostname defaults to esp8266-[ChipID]
// ArduinoOTA.setHostname("myesp8266");
// No authentication by default
// ArduinoOTA.setPassword((const char *)"123");
ArduinoOTA.onStart([]() {
Serial.println("Start");
});
ArduinoOTA.onEnd([]() {
Serial.println("\nEnd");
});
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
});
ArduinoOTA.onError([](ota_error_t error) {
Serial.printf("Error[%u]: ", error);
if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
else if (error == OTA_END_ERROR) Serial.println("End Failed");
});
ArduinoOTA.begin();
Serial.println("Ready");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
ArduinoOTA.handle();
}
Wi-Fi에 연결할 수 있으면 다음과 같이 시리얼 모니터에 표시됩니다. ESP-WROOM-02에 할당된 IP 주소와 함께.
Arduino IDE에서 동일한 네트워크에서 ESP-WROOM-02 선택
Wi-Fi를 통해 쓰려면 몇 가지 설정이 필요합니다. 먼저 ESP-WROOM-02가 연결된 포트를 변경합니다. Arduino IDE 메뉴에서 [ツール]→[ポート]→[Network ports esp8266-〜〜〜]
를 클릭합니다. 그렇지 않은 경우 Arduino IDE를 다시 시작하거나 ESP-WROOM-02가 Wi-Fi에 연결할 때까지 기다립니다. 그런 다음 OTA로 작성하므로 [ツール]→[Upload Using]→[OTA]
를 선택하십시오.
Wi-Fi를 통해 쓰기!
여기서 1점 주의하는 포인트. 그것은 방금 작성한 BasicOTA의 샘플 스케치를 바탕으로 OTA의 처리를 남긴 채로 스케치를 개발한다는 것입니다. OTA의 처리가 없어져 버리면, Wi-Fi 경유로 기입할 수 없게 되는 간단한 이유입니다. 그러므로 OTA의 처리가 늘어나는 만큼, 스케치의 데이터 용량이 늘어나 버립니다. 다음 소스 코드를 보시다시피 OTA 처리에 L 치카 처리를 추가했습니다.
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
const char* ssid = "..........";
const char* password = "..........";
void setup() {
Serial.begin(115200);
Serial.println("Booting");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
Serial.println("Connection Failed! Rebooting...");
delay(5000);
ESP.restart();
}
// Port defaults to 8266
// ArduinoOTA.setPort(8266);
// Hostname defaults to esp8266-[ChipID]
// ArduinoOTA.setHostname("myesp8266");
// No authentication by default
// ArduinoOTA.setPassword((const char *)"123");
ArduinoOTA.onStart([]() {
Serial.println("Start");
});
ArduinoOTA.onEnd([]() {
Serial.println("\nEnd");
});
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
});
ArduinoOTA.onError([](ota_error_t error) {
Serial.printf("Error[%u]: ", error);
if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
else if (error == OTA_END_ERROR) Serial.println("End Failed");
});
ArduinoOTA.begin();
Serial.println("Ready");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
pinMode(14, OUTPUT);
}
void loop() {
ArduinoOTA.handle();
// Lチカの処理
digitalWrite(14, HIGH);
delay(1000);
digitalWrite(14, LOW);
delay(1000);
}
개발 중에는 Wi-Fi를 통해 좋지만 프로덕션은 USB로 쓰는 것이 좋습니다.
개인적인 주관입니다만, 이 OTA를 사용한 Wi-Fi 경유로의 기입은 주로 개발중에 사용하는 것인가라고 느꼈습니다. 스케치를 업로드하는 데 걸리는 시간도 USB 케이블을 사용할 때보다 빠릅니다. 일단 개발이 완료된 시점에서, OTA의 처리를 스케치로부터 생략해 쓰면 낭비도 생략해 안심입니다.
Reference
이 문제에 관하여(ESP-WROOM-02 Arduino 호환 보드에 Wi-Fi를 통해 스케치 쓰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/umi_kappa/items/9d06904322a76a6d0d85
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
조속히 Wi-Fi 경유로 스케치를 기입하고 싶은 곳입니다만, 그대로는 호환 보드에 대해서 아무것도 설정하고 있지 않은 상태이기 때문에 기입할 수 없습니다. 여러가지 돌진하고 싶은 곳은 억제하면서, USB 경유로 OTA용의 스케치를 호환 보드에 기입합니다. Arduino IDE 메뉴에서
[ファイル]→[スケッチの例]→[ArduinoOTA]→[BasicOTA]
를 클릭하여 샘플 스케치를 엽니다. 스케치에서 ssid
및 password
를 적절하게 변경하고 씁니다.#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
const char* ssid = "..........";
const char* password = "..........";
void setup() {
Serial.begin(115200);
Serial.println("Booting");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
Serial.println("Connection Failed! Rebooting...");
delay(5000);
ESP.restart();
}
// Port defaults to 8266
// ArduinoOTA.setPort(8266);
// Hostname defaults to esp8266-[ChipID]
// ArduinoOTA.setHostname("myesp8266");
// No authentication by default
// ArduinoOTA.setPassword((const char *)"123");
ArduinoOTA.onStart([]() {
Serial.println("Start");
});
ArduinoOTA.onEnd([]() {
Serial.println("\nEnd");
});
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
});
ArduinoOTA.onError([](ota_error_t error) {
Serial.printf("Error[%u]: ", error);
if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
else if (error == OTA_END_ERROR) Serial.println("End Failed");
});
ArduinoOTA.begin();
Serial.println("Ready");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
ArduinoOTA.handle();
}
Wi-Fi에 연결할 수 있으면 다음과 같이 시리얼 모니터에 표시됩니다. ESP-WROOM-02에 할당된 IP 주소와 함께.
Arduino IDE에서 동일한 네트워크에서 ESP-WROOM-02 선택
Wi-Fi를 통해 쓰려면 몇 가지 설정이 필요합니다. 먼저 ESP-WROOM-02가 연결된 포트를 변경합니다. Arduino IDE 메뉴에서 [ツール]→[ポート]→[Network ports esp8266-〜〜〜]
를 클릭합니다. 그렇지 않은 경우 Arduino IDE를 다시 시작하거나 ESP-WROOM-02가 Wi-Fi에 연결할 때까지 기다립니다. 그런 다음 OTA로 작성하므로 [ツール]→[Upload Using]→[OTA]
를 선택하십시오.
Wi-Fi를 통해 쓰기!
여기서 1점 주의하는 포인트. 그것은 방금 작성한 BasicOTA의 샘플 스케치를 바탕으로 OTA의 처리를 남긴 채로 스케치를 개발한다는 것입니다. OTA의 처리가 없어져 버리면, Wi-Fi 경유로 기입할 수 없게 되는 간단한 이유입니다. 그러므로 OTA의 처리가 늘어나는 만큼, 스케치의 데이터 용량이 늘어나 버립니다. 다음 소스 코드를 보시다시피 OTA 처리에 L 치카 처리를 추가했습니다.
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
const char* ssid = "..........";
const char* password = "..........";
void setup() {
Serial.begin(115200);
Serial.println("Booting");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
Serial.println("Connection Failed! Rebooting...");
delay(5000);
ESP.restart();
}
// Port defaults to 8266
// ArduinoOTA.setPort(8266);
// Hostname defaults to esp8266-[ChipID]
// ArduinoOTA.setHostname("myesp8266");
// No authentication by default
// ArduinoOTA.setPassword((const char *)"123");
ArduinoOTA.onStart([]() {
Serial.println("Start");
});
ArduinoOTA.onEnd([]() {
Serial.println("\nEnd");
});
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
});
ArduinoOTA.onError([](ota_error_t error) {
Serial.printf("Error[%u]: ", error);
if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
else if (error == OTA_END_ERROR) Serial.println("End Failed");
});
ArduinoOTA.begin();
Serial.println("Ready");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
pinMode(14, OUTPUT);
}
void loop() {
ArduinoOTA.handle();
// Lチカの処理
digitalWrite(14, HIGH);
delay(1000);
digitalWrite(14, LOW);
delay(1000);
}
개발 중에는 Wi-Fi를 통해 좋지만 프로덕션은 USB로 쓰는 것이 좋습니다.
개인적인 주관입니다만, 이 OTA를 사용한 Wi-Fi 경유로의 기입은 주로 개발중에 사용하는 것인가라고 느꼈습니다. 스케치를 업로드하는 데 걸리는 시간도 USB 케이블을 사용할 때보다 빠릅니다. 일단 개발이 완료된 시점에서, OTA의 처리를 스케치로부터 생략해 쓰면 낭비도 생략해 안심입니다.
Reference
이 문제에 관하여(ESP-WROOM-02 Arduino 호환 보드에 Wi-Fi를 통해 스케치 쓰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/umi_kappa/items/9d06904322a76a6d0d85
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
여기서 1점 주의하는 포인트. 그것은 방금 작성한 BasicOTA의 샘플 스케치를 바탕으로 OTA의 처리를 남긴 채로 스케치를 개발한다는 것입니다. OTA의 처리가 없어져 버리면, Wi-Fi 경유로 기입할 수 없게 되는 간단한 이유입니다. 그러므로 OTA의 처리가 늘어나는 만큼, 스케치의 데이터 용량이 늘어나 버립니다. 다음 소스 코드를 보시다시피 OTA 처리에 L 치카 처리를 추가했습니다.
#include <ESP8266WiFi.h>
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
const char* ssid = "..........";
const char* password = "..........";
void setup() {
Serial.begin(115200);
Serial.println("Booting");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.waitForConnectResult() != WL_CONNECTED) {
Serial.println("Connection Failed! Rebooting...");
delay(5000);
ESP.restart();
}
// Port defaults to 8266
// ArduinoOTA.setPort(8266);
// Hostname defaults to esp8266-[ChipID]
// ArduinoOTA.setHostname("myesp8266");
// No authentication by default
// ArduinoOTA.setPassword((const char *)"123");
ArduinoOTA.onStart([]() {
Serial.println("Start");
});
ArduinoOTA.onEnd([]() {
Serial.println("\nEnd");
});
ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
});
ArduinoOTA.onError([](ota_error_t error) {
Serial.printf("Error[%u]: ", error);
if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
else if (error == OTA_END_ERROR) Serial.println("End Failed");
});
ArduinoOTA.begin();
Serial.println("Ready");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
pinMode(14, OUTPUT);
}
void loop() {
ArduinoOTA.handle();
// Lチカの処理
digitalWrite(14, HIGH);
delay(1000);
digitalWrite(14, LOW);
delay(1000);
}
개발 중에는 Wi-Fi를 통해 좋지만 프로덕션은 USB로 쓰는 것이 좋습니다.
개인적인 주관입니다만, 이 OTA를 사용한 Wi-Fi 경유로의 기입은 주로 개발중에 사용하는 것인가라고 느꼈습니다. 스케치를 업로드하는 데 걸리는 시간도 USB 케이블을 사용할 때보다 빠릅니다. 일단 개발이 완료된 시점에서, OTA의 처리를 스케치로부터 생략해 쓰면 낭비도 생략해 안심입니다.
Reference
이 문제에 관하여(ESP-WROOM-02 Arduino 호환 보드에 Wi-Fi를 통해 스케치 쓰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/umi_kappa/items/9d06904322a76a6d0d85
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(ESP-WROOM-02 Arduino 호환 보드에 Wi-Fi를 통해 스케치 쓰기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/umi_kappa/items/9d06904322a76a6d0d85텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)