ESP8266入手
aliexpressでかねてから気になっていたESP8266を入手した。一個$2.5、送料が2.63$だった。ネットでいろいろ報告されている価格からすると、更に安くなっているようだ。だが為替が…
どちらにせよ安いので気にしない。
なおESP8266の載ったボードの形で販売されている。実際、このチップはさすがに手はんだは無理そう。ボードの名前はESP-01とかESP-12とか。名前がややこしいのはご愛嬌。ネットで圧倒的に情報が多いのはESP-01。というわけで今回はESP-01を購入。
試食に使うハードはArduinoとした。これも安さとネットでの情報の多さから。パソコンからUSBで繋いで、同時にESP8266ともシリアル通信したいので、Arduino Microを選択した。ESP8266は3.3V駆動で、Arduinoは5V系なので何らかの変換が必要となる。ただし、Arduinoの入力(つまりAVRの入力)は2.1Vあたりが閾値となるのでESP8266→Arduinoは直結可。Arduino→ESP8266はこのへんを参考にした。デフォルトでの通信速度は9600bpsなのでこの中の変換回路は何でもOKである。今回はダイオードと抵抗でさくさくっと。
繋いだらライブラリを
itead/ITEADLIB_Arduino_WeeESP8266 · GitHub
から頂いて、こんな感じで書いてarduinoのシリアルモニタでwを打ち込んでEnterを押すとさっくりと動いた。中国製の$2.5のチップとは思えないほど高性能。今日のところはこれくらいで。
#include <ESP8266.h>
#define SSID "ssid"
#define PASSWORD "password"
int inByte = 0;
int i;
ESP8266 wifi(Serial1);
// the setup function runs once when you press reset or power the board
void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
}
// the loop function runs over and over again forever
void loop() {
if (Serial.available() > 0) {
inByte = Serial.read();
Serial.write(inByte);
if (inByte == 'w') {
Serial.print("FW Version:");
Serial.println(wifi.getVersion().c_str());
if (wifi.joinAP(SSID, PASSWORD)) {
Serial.print("Join AP success\r\n");
Serial.print("IP: ");
Serial.println(wifi.getLocalIP().c_str());
} else {
Serial.print("Join AP failure\r\n");
}
if (wifi.enableMUX()) {
Serial.print("multiple ok\r\n");
} else {
Serial.print("multiple err\r\n");
}
if (wifi.startTCPServer(8090)) {
Serial.print("start tcp server ok\r\n");
} else {
Serial.print("start tcp server err\r\n");
}
}
}
}