ESP8266 ESP-12E
amazonで最安値の8266(ESP-12E)¥288 を試してみました。
1 実験ボード
2 ボードにI2C追加(bmp280)
1 実験ボード 2017.04.07
送られてきたパーツの表と裏の写真です。
ブレッドボードで使うためにはピッチの合う基板を作らねばならないので、ここでは直接基板にはんだ止めしました。
基板面を有効に使うためにも、また、デバイス裏面の印字を見えるようにするためにも基板の裏面に取り付けました。LEDが見えるように基板に窓を開けています。
電源は3.3Vの専用電源を使い(USB電源は使わない)、書込みとシリアル通信はCP2102自作のコンバータを使います。図のRX/TXはデバイス側ですからCP2102側は反対になります。
シリアルコンバーターを接続してATコマンドの AT を送ると ok が返りました。
WEBの作例に従って次のプログラムをArduino-IDEから書き込むと付属の青LEDが点滅しました。ボードは NodeMcu 1.0(ESP-12E Module)を選んでいます。
// _8266_esp12_led.ino
#define OnBoardLed 2
void setup() {
pinMode(OnBoardLed, OUTPUT); // initialize onboard LED as output
}
void loop() {
digitalWrite(OnBoardLed, HIGH); // turn on LED with voltage HIGH
delay(1000); // wait one second
digitalWrite(OnBoardLed, LOW); // turn off LED with voltage LOW
delay(1000); // wait one second
}
LED点滅プログラムをArduino-IDEで書き込むとATコマンドは受け付けられません。そのためには元のファームウエアを書き込む必要があります。
以前に他の8266で試した方法で戻すことができました。設定は以前と全く同じで、COMポート番号だけが自動で変わっていました。
2 ボードにI2C追加(bmp280) 2018.05.15
実験ボードにI2Cの例としてBMP280の気圧センサーモジュールを付けました。実は少し前に他の実験のためにswやledを追加していましたので改めて回路図を作りました。
aruduinoで温度と気圧をシリアル(teraterm)でPCに送るスケッチを実行しました。
ボード NodeMcu 1.0(ESP-12E Module)を選んでいます。プログラムを書き込む前に、書込みポートの確認とPGMswを押したままでのリセットを忘れてはなりません。(しばらく使わないと忘れます)
スケッチです。
// name: bmp280test2
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
Adafruit_BMP280 bme; // I2C
void setup() {
Serial.begin(9600);
Serial.println(" ");
Serial.println(" ");
Serial.println(F("BMP280 test"));//F()マクロ Frashメモリの文字列にアクセスするためのマクロ
if (!bme.begin()) {
Serial.println(F("Could not find a valid BMP280 sensor, check wiring!"));
while (1);
}
}
void loop() {
//Serial.print(F("Temperature = "));
Serial.print(bme.readTemperature(), 1); // 小数以下1桁
Serial.print(" ");
//Serial.println(" *C");
//Serial.print(F("Pressure = "));
Serial.print((bme.readPressure() + 300) / 100.0, 0); // 小数以下0桁
Serial.print(" ");
//Serial.println(" Pa");
Serial.println();
delay(2000);
}
teraterm画面です。リセットでなぜかゴミが出ます。
工事中
2017.02.12
12
35