Arduino UnoとWifiモジュールのESP-WROOM-02 DIP化キットをつないで通信をしてみます。
ESP-WROOM-02自体でもArduinoとしてプログラムを書き込んで使用できるようですが、ESP-WROOM-02に繋ぐためのUSBシリアル変換インターフェースを持っていないのでとりあえずArduinoと接続して使えるかどうか確認します。
使用する機器
- Arduinoをはじめよう 互換キット UNO R3対応互換ボード 初心者専用実験キット 基本部品セット20 in 1 Arduino sidekick basic kit
- Wi-Fiモジュール ESP-WROOM-02 DIP化キット
- 8ビット双方向ロジックレベル変換モジュール
- 低損失三端子レギュレーター
- カーボン抵抗(炭素皮膜抵抗) 1/4W 10kΩ
- セラミックコンデンサー0.1μF
- 超小型スイッチングACアダプター12V1A
回路
ArduinoとESP-WROOM-02を繋ぐ回路が必要なのですが、このDIP化キットとArduinoUnoをつないだ回路をWebで発見することが出来ず苦労しました。
このあたりやこのあたり、あとこのページを参考にさせていただいて作成したのがこれ。
プログラム
参考にしたサイトからこれを作成しました。
//https://ics.media/entry/10457/3 //http://okiraku-camera.tokyo/blog/?p=2873 /* Software serial multple serial test Receives from the hardware serial, sends to software serial. Receives from software serial, sends to hardware serial. The circuit: * RX is digital pin 10 (connect to TX of other device) * TX is digital pin 11 (connect to RX of other device) Note: Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 Not all pins on the Leonardo and Micro support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI). created back in the mists of time modified 25 May 2012 by Tom Igoe based on Mikal Hart's example This example code is in the public domain. */ #includeSoftwareSerial mySerial(11, 10); // RX, TX void setup() { // Open serial communications and wait for port to open: Serial.begin(115200); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } Serial.println("Goodnight moon!"); // set the data rate for the SoftwareSerial port mySerial.begin(115200); mySerial.println("Hello, world?"); } void loop() { // run over and over if (mySerial.available()) { //Serial.println("mySerial avairable"); Serial.write(mySerial.read()); } if (Serial.available()) { //Serial.println("Serial avairable"); mySerial.write(Serial.read()); } }
実行
Arduino IDEからツール、シリアルモニタを開いて確認します
Goodnight moon! Hello, world? ERROR HELO # <- 入力 ERROR AT # <- 入力 OK HELO # <- 入力 ERROS
入力した文字がそのままエコーされています
まとめ
プログラムを実行しても Hello, Worldが返ってこなかったりし、いろいろ回路をいじったりしましたが、なぜこれで動くのかちょっとわかりませんが動くのでこれでよしとします。次は実際にWifi通信してみることにします