WiFiボードESP-Wroom-02
写真奥から、
| GND | GND |
| IO0 | 10kΩ抵抗経由で3.3V |
| IO2 | 未接続 |
| EN | 10kΩ抵抗経由で3.3V |
| RST | 10kΩ抵抗経由で3.3V |
| TXD | ArduinoのRx |
| RXD | ArduinoのTx |
| 3V3 | 3.3V |
SSID MeoBankSD_pbl パスワード Wikiのパスワードと同じ
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
bool recvFind( String target, uint32_t timeout=1000 );
String recvString( String target, uint32_t timeout=1000 );
void clear_rx();
const unsigned long newBAUD=57600;
unsigned long bauds[]= {
300,1200,2400,4800,9600,14400,
19200,28800,31250,38400,57600,115200
};
void setup() {
int i;
int flag;
unsigned char c;
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println("Goodnight moon!");
flag = 0;
for( i=0; i<12; i++ ){
Serial.println( "Trying "+String(bauds[i])+" BAUD" );
mySerial.begin( bauds[i] );
clear_rx();
mySerial.println("AT+UART_DEF="+String(newBAUD)+",8,1,0,0");
if( recvFind( "OK" ) ){
flag = 1;
break;
}
}
clear_rx();
if( !flag ){
Serial.println( "?????" );
} else {
clear_rx();
Serial.println( "BAUD="+String(newBAUD) );
}
mySerial.begin( newBAUD );
clear_rx();
delay( 100 );
mySerial.println( "AT" );
}
void clear_rx()
{
while( mySerial.available() ){
mySerial.read();
}
}
bool recvFind( String target, uint32_t timeout=1000 )
{
String data;
char a;
unsigned long start = millis();
while (millis() - start < timeout) {
while(mySerial.available() > 0) {
a = mySerial.read();
if(a == '\0') continue;
data += a;
}
if (data.indexOf(target) != -1) {
return true;
}
}
return false;
}
void loop() { // run over and over
char buf[128];
int i, j;
if (mySerial.available()) {
Serial.write(mySerial.read());
}
if (Serial.available()) {
mySerial.write(mySerial.read());
}
}