Help us understand the problem. What is going on with this article?

Wio Node を Arduino として使うときのメモ

More than 3 years have passed since last update.

MobileHackerzのmiroさんがWio Node便利だと言っていた気がしたので試しに使ってみたときのメモ.

Wio Nodeとは

Wio NodeはSeeed StudioのGroveシステムに対応したWiFiモジュールです.バッテリーの充電回路まで搭載してるのでつなぐだけで簡単にバッテリー駆動もできます(すごい).

今回は,Wio Nodeらしい使い方はしないのでWio Node自体の説明は省きます.

Groveシステムはシリアルのコネクタにセンサなどのモジュールを接続するだけで簡単に使える便利なシリーズですが,色々なモジュールやキットが手軽に入手できるので,Groveシステムに興味がない場合も知っておいて損は無いです.

Wio NodeをArduinoとして使う

Wio NodeのWiFiは,安価て技適通っててArduino IDEも使えることで有名なESP-WROOM-02を使っています.つまりファームウェアを書き換えればArduinoとして使えます.

書き込み

事前にArduinoの開発環境と,ESP-WROOM-02をArduinoとして使うための環境を整えておきます.

まず,Wio NodeのPORT0 にシリアルでPCと接続します(TX,RX,GNDをつなぐ).適当なコネクタが無かったので2mmピッチのピンソケットで代用しました.電源は通信用のコネクタからは取れないので別途USB等で供給する必要があります.

wionode.jpg

FUNCボタンを押しながらリセットすることで,書き込みモードになります.以下のページを参考にしました.

ファームウェアはOSSとして開発されているようなので,元の状態に戻すことも可能です(試してはいません)

IOピン等

回路図も公開されているので,どこに何が繋がってるのか確認しました.

wionodeport.png

Arduinoのスケッチには以下のように書いておくと良さそうです.

const uint8_t PORT0A = 1;
const uint8_t PORT0B = 3;
const uint8_t PORT1A = 4;
const uint8_t PORT1B = 5;
const uint8_t PORT_POWER = 15; // (common with RED_LED)

const uint8_t FUNC_BTN = 0;
const uint8_t BLUE_LED = 2;
const uint8_t RED_LED = PORT_POWER;

const uint8_t UART_TX = PORT0A;
const uint8_t UART_RX = PORT0B;
const uint8_t I2C_SDA = PORT1A;
const uint8_t I2C_SCL = PORT1B;
  • 自由に使えるGPIOは4本(IO1,3,4,5)
  • ※PORT_POWER(IO15) を HIGH にしないと,Groveコネクタのポートに電源3.3Vが供給されない(消費電力が気になる場合はON/OFFしろってことなのだと思う)
  • 赤色のLEDはPORT_POWERにつながってるので,コネクタに電力供給が必要な場合は単体でON/OFFはできない(ちなみに緑色のLEDは電源の状態を表しているので制御できない)
  • I2C も Wireライブラリで簡単に使える

たとえば,Wio Node の PORT0 を UART, PORT1 を I2C として使う場合のsetup関数は以下のようになります.

#include <Wire.h>
void setup() {
  pinMode(FUNC_BTN, INPUT);
  pinMode(BLUE_LED, OUTPUT);
  pinMode(PORT_POWER, OUTPUT);
  digitalWrite(PORT_POWER, HIGH);
  Serial.begin(115200);
  Wire.begin(I2C_SDA,I2C_SCL);
  // ...
}

色々

HDC1000(I2Cでつながる温度・湿度センサー) を使って温度と湿度を定期的にサーバに送信するようにしたりしました.
(BME280を使えばArduinoとして使わなくても標準で対応してたのは後から気づきましたが...)

Wio Nodeは外に出ているIOピンが少ないのでちょっと物足りない気もしましたが,コンパクトで電源周りの回路もついてて楽なので,次からは積極的にこちらを使おうと思いました.

binzume
Androidアプリを開発したり,Erlangで動画配信システムを開発したりする仕事をしていました.今はUnityでゲームを作る仕事をしています.
http://www.binzume.net/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした