Hatena::ブログ(Diary)

滴了庵日録 このページをアンテナに追加 RSSフィード

2016/08/11(Thu)

ESP8266をArduinoとして使う

いまさらだが自分用まとめ

ESP8266とは?

  • 安い技適済みWiFiモジュール (のコアとなるチップ)
  • みんなが使ってるのはESP-WROOM-02 (秋月で550円)
    • なぜかみんなESP-WROOM-02のことをESP8266と呼んでる
  • ファームウェアを書き換えられる
  • ATコマンドで制御できるファームウェアが予め焼かれている
  • Arduino IDEでファームを開発できる (←これが流行り)
  • LuaPythonJavascriptでも開発できるらしい。知らんけど。

ESP-WROOM-02のスペック

  • 32bit CPU 80MHz (ARMではない。懐かしのTensilica Xtensa!)
  • データRAM 80kB (SDKが約30kBを消費するため、ユーザが使えるのは約50kB)
  • SPIフラッシュ 4MB (SDKが約220kBを消費)
  • 3.3V駆動
  • GPIO x 11 (兼用ピン含む。一部制約あり)
  • SPI x 1, I2C x 1 (SPIとI2Cは一部ピン兼用のため同時使用不可)
  • UART x 1 (デバッグプリント用にTxDのみのUARTがもう一個ある)
  • 10ビットADC x 1


ピン表はこちらのものが見やすい。

ピン表

購入

モジュール単体では試作には使いにくいので、ブレークアウトボードとかを利用する

 【秋月】

 【スイッチサイエンス


ここでは、共立電子の基板を使用した。

チップ抵抗のハンダ付けは初心者向きではないが、基板上でプルアップできる。

Arduino開発環境

配線

配線

PCと接続するためにUSBシリアル変換基板を用い、電源もとりあえずここから取る。

  • 3V3 → 3.3V電源
  • EN → 10kΩでプルアップ
  • RST → 10kΩでプルアップ, タクトスイッチでGND
  • TXD → USBシリアルのRXD
  • RXD → USBシリアルのTXD
  • GND → GND
  • IO0 → 10kΩでプルアップ, タクトスイッチでGNDへ
  • IO2 → 10kΩでプルアップ
  • IO15 → 10kΩでプルダウン

※写真の例ではブレークアウトボード裏面にプルアップ抵抗実装ずみ

※起動時のIO0, IO2, IO15のレベルによってモードが決定する

DIP IO0 IO2 IO15
UART Download Mode 0 1 0
Flash Startup Mode 1 1 0
SD-Card Boot Mode 0 0 1

IO0のスイッチを押したまま、RSTのスイッチを押して離すとファーム書き込みモードになる。

Lチカ

とりあえず、シリアル出力とLチカとサーボ制御とPWM出力を確認してみる。

#include <Servo.h>

Servo servo;

void setup() {
  Serial.begin(115200);
  pinMode(13, OUTPUT);  // IO13にLED
  servo.attach(12);     // IO12にサーボ
  servo.write(90);      // サーボを90°に
  analogWrite(14, 512); // IO14にPWM (10bitであることに注意)
}

void loop() {
  Serial.print("Hello, ");
  digitalWrite(13, HIGH);
  delay(1000);
  Serial.println("world!");
  digitalWrite(13, LOW);
  delay(1000);
}

Arduinoとしてプログラムできることが確認できた。肝心のWiFiはまた今度。

資料

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/licheng/20160811/p2