Nefry 説明書
V2.0
Library 2.0.1
2016/09/16

目次
Nefry の仕様.................................................................................................. 2
動作確認環境 .............................................................................................. 2
ハードウエアの制約 ...................................................................................... 2
Nefry ライブラリーの仕様 ............................................................................... 2
ソフトウェアの仕様 ...................................................................................... 3
Nefry の動作.................................................................................................. 3
LED で見る動作状態 ...................................................................................... 3
プログラム書き込みモードとは？ ...................................................................... 3
Nefry Web Config ......................................................................................... 4
Wi-Fi の設定 ............................................................................................ 4
Nefry の各種設定 ....................................................................................... 4
プログラム書き込み ................................................................................... 5コンソール .............................................................................................. 6
プログラム開発環境について .............................................................................. 6
Arduino とは？ ............................................................................................ 6
Arduino IDE の準備 ....................................................................................... 6Arduino IDE の設定 ....................................................................................... 7プログラム保存場所について ........................................................................... 9・方法 ................................................................................................... 9プログラムの書き込み ...................................................................................... 9オンラインアップデート................................................................................. 9ローカルアップデート ................................................................................. 10ハードウエア書き込み ................................................................................. 11Nefry の機能................................................................................................ 12スイッチ ................................................................................................. 12フルカラーLED .......................................................................................... 12Grove ..................................................................................................... 13各入出力ピンの機能 .................................................................................... 131スリープ機能 ............................................................................................ 14Arduino 言語 ............................................................................................... 15SPI ......................................................................................................... 15I2C ........................................................................................................ 15ディジタル入出力....................................................................................... 17アナログ入力 ............................................................................................ 18Pwm 出力 ................................................................................................ 18
更新履歴 .................................................................................................... 20

このたびは Nefry に興味を持っていただきありがとうございます。
Nefry は Milkcocoa や myThings、IFTTT などのインターネットのサービスとハードウエアを簡単に接続できるモジュールになっています。
インターネットに接続する部分を Nefry が請け負うので、インターネットへの接続するためのプログラムを書く時間をとられることなく上記のようなサービスを利用してあなたのアイデアを実現します！

Nefry の仕様
動作確認環境Windows10
Arduino 1.6.9
Nefry ライブラリー 2.0.1
Mac での動作はこちらでは保証できません。

ハードウエアの制約
Esp-room-02 の 0,4,16 ピンは予約済みのため使用することができません。
（0 ピンは起動時とフルカラーLED にて使用、4 ピンは SD カードと SW にて使用、16 ピンはリセットピンとして利用）
SSID に日本語を使っているものは接続できません。
SD カードと SW は同時利用することができません。

Nefry ライブラリーの仕様
2

webserver を使うことができません。

ソフトウェアの仕様
esp8266 Arduino(https://github.com/esp8266/Arduino)こちらで開発している Staging version
2.0 rc1 をベースに開発しているため、そのバージョンに対応した機能のみ使用可能です。
Nefry ライブラリー 2.0.0 以降のものは stableVersion2.3.0 をベースに開発を進めております。

Nefry の動作
LED で見る動作状態
電源を入れた直後やリセットボタンを押した時、プログラムリセットの際には Nefry のプログラ
ムが Wi-Fi 接続、webserver 開始準備などの準備をします。少々時間が掛かるため Nefry についている LED で動作確認できるようになっています。
起動完了後はユーザプログラムで LED を制御できます。
Nefry に付いている LED の状態

Nefry の動作状態

緑色点灯

起動準備中

緑色点滅

Wi-Fi 接続実行中

青色点滅

Wi-Fi 接続失敗

水色点灯

起動完了

赤色点灯

プログラム書き込みモード移行

プログラム書き込みモードとは？
Nefry では別の章で解説しますが、オンライン書き込みによりプログラムを書き換えます。オン
ライン書き込みではネットワークを経由してプログラムを書き込みますので、Nefry でユーザプログラムが動いているとプログラムの書き込みに失敗する可能性が高いです。そのためプログラム書き込みモードを用意しています。
・プログラム書き込みモードへの移行方法


緑色が点灯している間に Reset ボタンの反対にある SW ボタンを長押ししていただき、LED が赤色点灯になってから手をはなしてください。
LED が赤色点灯すれば、プログラム書き込みモードに移行できています。

Nefry Web Config の Setup Module のページ内に Write Mode に移行できるボタンがあり、そのボタンを押すと自動的にプログラム書き込みモードへ移行します。
3

Nefry Web Config
Nefry Web Config とは Nefry で必要になる Wi-Fi の設定や Nefry の各種設定、プログラム書き込み、コンソール機能を備えた Web サイトです。
Nefry Web Config には Nefry の Wi-Fi に接続し、http://192.168.4.1 に接続してください。スマートフォンなどでは接続に失敗することがあります。その際には機内モードにしたのち Wi-Fi のみ有効にしてもう一度接続してみてください。
Nefry ライブラリー1.2.0 以降では、Nefry が出力している Wi-Fi に接続すると自動的に Nefry Web
Config が表示される Captive Portal 機能が追加されています。この機能により簡単に扱えるようになっています。

（Nefry Web Config のトップページ）
開発バージョンにより画面の変更などがある可能性があります。

Wi-Fi の設定
Wi-Fi の接続の設定ができます。SSID は選択して選ぶこともできます。
2.4GHz の Wi-Fi に接続できます。パスワードがない場合は入力せず Save をしてください。

Nefry の各種設定
ここで Nefry に関するさまざまな設定ができます。
4

Module ID は Nefry が出す Wi-Fi の SSID にもなります。
Module class は Nefry の管理をするために class を使い複数の端末を制御します。
Nefry wifi Pass は Nefry が出す Wi-Fi に Password をつけることができます。8 文字以上です。
Nefry User、Nefry User pass は Nefry の認証に使われます。
Memo1-3 は 127 文字、Memo4-5 は 63 文字のデータを保存することができます。

プログラム書き込み
Nefry のプログラムを更新します。Nefry には Webserver からダウンロードして更新するオンラ
インアップデートとローカルからのアップデートで更新するローカルアップデートがあります。具体的な方法は別の章で解説します。

5

コンソール
Nefry ではデバッグや動作状態を確認することのできるコンソールがあります。入力も可能なため、入力データにより動作を変化させることもできます。

プログラム開発環境について
Nefry は Arduino IDE でプログラミングをします。この章では Arduino IDE の環境構築について解説していきます。

Arduino とは？
Arduino とは、電子工作に興味を持った方やハードウエアを使って簡単に作品を作ってみたい方におすすめのものです。
Arduino を使うメリットは、ハードウエアの難解なところを簡単な Arduino 言語と呼ばれるもので開発できるようになることです。

Arduino IDE の準備
環境構築ですが、Lig ブログにより詳細にまとめました。よろしければご覧ください。

さくっと生活を便利にする！FRISK サイズの IoT 向けデバイス「Nefry」を使ってみよう【環境構築編】(https://liginc.co.jp/298161)

6

Arduino IDE は現在も開発されており、日々改善されております。しかしながら新しいバージョンによっては Nefry のライブラリーが対応していないものもあるので、今回は 1.6.9 というバージ
ョンの Arduino IDE をインストールしてください。
ダウンロードサイト https://www.arduino.cc/en/Main/OldSoftwareReleases#previous

Windows の方は Windows Installer をダウンロードしてインストールするのがおすすめです。
Mac の方は MAC OS X をダウンロード、インストールをよろしくお願いします。

Arduino IDE の設定
Arduino IDE のインストールが終了したのち、Nefry は Arduino IDE に元々入っていないので追加作業をします。これをすることで Nefry のプログラムを書くことができるようになります。

1. ファイル→環境設定を開きます。環境設定が開いたら Additional Boards Manager URLs に次のURL を入力します。
http://wamisnet.github.io/package_nefry_index.json
入力が終わったら OK を押して戻ります。

7

2. ツール→マイコンボード→ボードマネージャーを開きます。
上の入力欄に”Nefry”と入力していただくと、Additional boards manager URLs で追加したURL を検索し、Nefry と出るので右下にある”Install”をクリックしてインストール完了までしばらくお待ちください。
インストールが完了すれば、Nefry を Arduino IDE で開発できるようになります。

8

プログラム保存場所について
この項目では Nefry に書き込むファイルの保存場所について解説します。
Arduino IDE のバージョンによって異なります。Nefry の推奨は Arduino IDE 1.6.6 以上です。

・方法
Arduino のプログラムファイルを保存したフォルダに、“スケッチ→コンパイルしたバイナリを出力”をクリックすると Nefry に書き込むファイルが生成されます。

プログラムの書き込み
Nefry に新しいプログラムを書く方法は 3 つあります。それぞれの特徴は以下になっています。
Webserver からダウンロードして更新するオンラインアップデート

ローカルからのアップデートで更新するローカルアップデート

シリアル変換を使いプログラムを更新するハードウエア書き込み
使い分けとして、ローカル環境（個人での開発）ではローカルアップデートがおすすめです。複数の Nefry にプログラムを配布する際におすすめなのがオンラインアップデート。
オンラインアップデート、ローカルアップデートで上手くいかない時に、ハードウエア書き込みを試してみてください。

オンラインアップデート9

オンラインアップデートには、インターネットに繋がっていないと動作しませんのでご注意ください。
ファイル名についてはプログラムをコンパイルするとできる（arduino.bin ファイル保存場所については、プログラム保存場所の変更の項目で解説しています。）arduino.bin という名前のファイルを使用します。
一例として wamisnet.github.io/arduino.bin（サーバー直下）にファイルがある場合
Program download Domain に wamisnet.github.io、Program download URL(Domain except)に無記入で send を押してください。
他の例として wamisnet.github.io/Nefry/arduino.bin にファイルがある場合
Program download Domain に wamisnet.github.io、Program download URL(Domain except)にNefry で send を押してください。
エラーの時は Web ページで確認できますが、プログラム更新に成功した場合は Web ページでは確認できませんが、LED が水色点滅することで更新が完了したかどうか分かります。

ローカルアップデート
ローカルアップデートはインターネットへの接続は不要です。Nefry に直接接続してプログラムをアップロードすることでプログラムを更新します。
Nefry Web Config の Upload Sketch にある“ファイルを選択”（Chrome）や“参照”（Edge）などファイルを選択する部分から（arduino.bin ファイル保存場所については、プログラム保存場所の変更の項目で解説しています。）arduino.bin という名前のファイルを探し、アップロードすることでプログラムを書きかえられます。

10ハードウエア書き込み
ハードウエア書き込みについては、Switch Science さんで発売されている USB シリアル変換アダプタ（例：https://www.switch-science.com/catalog/1032/）などが必要になります。
注意：3.3V で必ず書き込みをしてください。
Nefry には 6 つの穴が開いていて、GND,3.3v,TX,RX を接続します。裏側にどのピンを接続するか印刷があるので確認してください。
1.

Nefry の裏側に Write と書いてある 2 つの穴を繋いでください。（写真では茶色の線で繋いでいるところ）

2.

Write の 2 つの穴を繋いだのちリセットボタンを押してください。

3.

Arduino IDE で書き込みます。ボードが Nefry になっているか、シリアルポートが合っているかかくにんしてください。（写真では、赤丸が書き込みボタン、下にある赤線が Nefry の設定
境によってはシリアルポート番号（com6）ではない可能性があります。）

4.

書き込みが始まったら Write の接続を解除してください。

11環Nefry の機能
スイッチ
Nefry に付いているプッシュ SW です。Nefry.pushSW()と呼び出すことでプログラム中にて使用することができます。
サンプルプログラム SW を押した時に LED が赤色に点灯する#include <Nefry.h>void setup() {}void loop() {//SW を押した時に LED が赤色に点灯する
if(Nefry.push_SW()){//押した時//赤色になる（r,g,b）の順で色を指定できる
Nefry.setLed (0,0,255);
Nefry.println("Push SW");}else{//離した時Nefry.setLed(0,255,255);}
delay(100);}

フルカラーLED
フルカラーLED を接続しているので、これを使用して簡単な動作状況の表示が可能です。ほかにもプログラミングが可能ですので、これを使って遊ぶこともできます。
サンプルプログラム ランダムに LED の色が変わります！
#include <Nefry.h>//フルカラーLED ランダムにカラーが変わります。
void setup() {Nefry.println("フルカラーLED！");12

randomSeed(analogRead(A0));}
void loop() {Nefry.setLed(random(255),random(255),random(255));//ランダムに点灯します。
delay(500);}Grove
それぞれ別の機能を持つ grove のソケットを持っています。電源は 3.3v を供給します。
UART,アナログ入力,ディジタル入出力,I2C の 4 つの機能があります。

各入出力ピンの機能
下の図のピン番号は、プログラムはこちらで提供する Arduino IDE で書き込み時に使用可能です。
Nefry 入出力 3.3v

GND

D5

D4

D3

D2

D1

D0A0

GND

SPI CLKSPI MISO

SPI MOSISPI CSI2C SDAI2C SCL

Analog

ピン機能

3.3v

input
ESP8266 入

3.3v

GND

141213出力ピン131525TOUT

スリープ機能
スリープモードを活用するととても低い消費電力になるため、バッテリーにて長期間の運用をすることができます。スリープモードの後はプログラムを初めからやり直します。
サンプルプログラム 5 秒青色の LED が点灯し、その後 30 秒スリープします。
#include <Nefry.h>//Sleep モードの例 30 秒したらスリープから復帰します。
void setup() {}void loop() {Nefry.println("Sleep!");Nefry.setLed(0, 0, 255);//青色に点灯します。
14

delay(5000);
Nefry.setLed(0, 0, 0, 0); //消灯します。
Nefry.sleep(30);//秒数で指定します。
}

Arduino 言語
SPI
SPI 通信は、D2(CS),D3(MOSI),D4(MISO),D5(CLK)ピンを使用します。プルアップ抵抗が入っています。

I2C
I2C 通信は D0(SCL),D1(SDA)ピンを使用します。プルアップ抵抗が入っています。
Wire.begin();で動作します。

サンプルプログラム DRV8830 ドライバーを使ってモータを回します。
/*DRV8830 ドライバーを使ってモータを回します。
** SDA:D1* SCL:D0** ----------------* DRV8830 接続例 http://akizukidenshi.com/catalog/g/gK-06273/* DRV8830---Nefry** SCL---D0* SDA---D1* A1---GND* A0---GND* FAULTn---open15

* GND---GND* VCC---3.3v* OUT1---motor* ISENSE---open* OUT2---motor**/#include <Wire.h>#define ADDR

0x60

void setup() {Wire.begin();}void start_motor(){Wire.beginTransmission(ADDR);
Wire.write(0x00);
Wire.write(0xFD);
Wire.endTransmission();}void stop_motor(){Wire.beginTransmission(ADDR);
Wire.write(0x00);
Wire.write(0x03);
Wire.endTransmission();}void loop() {// モータを回転、停止するプログラム16

start_motor();delay(1000);
stop_motor();delay(1000);}

ディジタル入出力
ディジタル入出力はディジタル入出力ピンすべて（D0-D5）です。3.3v を出力します。
●注意：d5 ピン以外のピンにはプルアップ抵抗が入っています。
サンプルプログラム SW を押した時に D5 に LED を差すと点灯する+ D4 がスイッチなどで LOWになったときに Nefry の LED が青色に光る#include <Nefry.h>void setup() {pinMode(D5,OUTPUT);//出力モード切り替え
pinMode(D4,INPUT_PULLUP);//入力モード切り替え}
void loop() {//SW を押した時に D5 に LED を差すと点灯する
if(Nefry.push_SW()){//押した時digitalWrite(D5,HIGH);
Nefry.println("Push SW");}else{//離した時digitalWrite(D5,LOW);}//D4 が LOW になったときに Nefry の LED が青色に光る17

if(digitalRead(D4)==LOW){//赤色になる（r,g,b）の順で色を指定できる
Nefry.setLed(0,0,255);
Nefry.println("D4 LOW");}else{//緑色になるNefry.setLed(0,255,255);}
delay(100);}

アナログ入力アナログ入力は A0 ピンのみ対応です。分圧抵抗を入れているので 3.3v 入力をしてください。
サンプルプログラム アナログ入力の数値を Nefry

Web Config のコンソールに表示する#include <Nefry.h>
int sensorValue;
void setup() {}void loop() {// read the analog in value:sensorValue = analogRead(A0);
Nefry.print("sensor = " );Nefry.println(sensorValue);
delay(1000);}

Pwm 出力Pwm 出力に対応したピンはディジタル入出力ピンすべて（D0-D5）です。3.3v を 256 段階で変化させていきます。
サンプルプログラム 徐々に D5 ピンに接続された LED の明るさを変えていく
void setup() {18}
int led_value ;void loop() {for (led_value = 0; led_value <= 255; led_value += 5 ) {analogWrite(D5, led_value );delay( 30 );}for (led_value = 255; led_value >= 0; led_value -= 5 ) {analogWrite(D5, led_value );delay( 30 );
}
}

関連サイト
Fabble

Nefry のケースをつくる( http://fabble.cc/wamisnet/nefry-case )Lig ブログ

さくっと生活を便利にする！FRISK サイズの IoT 向けデバイス「Nefry」を使ってみよう【環境構築編】( https://liginc.co.jp/298161 )

Nefry と Milkcocoa を連携させて、Web サイトにリアルタイムで Push 通知してみる( https://liginc.co.jp/282918 )Web サービス同士を連携できる「IFTTT」と自作 IoT デバイスを繋いで生活を便利にしてみた( https://liginc.co.jp/263899 )

自作したオリジナル IoT デバイス「Nefry」とインターネットを繋いでみた( https://liginc.co.jp/236620 )

Qiita


Nefry ドキュメントまとめ( http://qiita.com/wamisnet/items/d07c3c22e2bf5ab628ef )Nefry ライブラリ関数まとめ( http://qiita.com/wamisnet/items/e44812eb6d6fded7af26 )19

Milkcocoa と複数の ESP8266 と温度センサで IoT してみた。
( http://qiita.com/wamisnet/items/f3d63be2044672b661a1 )

ESP8266 で静的な IP をわりふってみる( http://qiita.com/wamisnet/items/e2aea81f7f800a262be6 )Azure IoT Hub を ESP8266 で使おう！
( http://qiita.com/wamisnet/items/4347b0794f1df51d7b5d )Nefry 基板について
Nefry のボードは水色の V1 が現在の在庫で販売終了。現在、基板が赤色の V2 が販売中となっております。
Nefry V2 の変更点
LED の変更



拡張ポートの追加となっています。

Grove ポートの変更(UART→D4)

追加ポートについては、SW、Reset、Vin、IO0、TX、RX が増えております。もともと使用されているポートですが、ご自身で半田付けがしていただき、外部リセットや外部スイッチなどに利用することができるようになりました。

更新履歴v1.0 2016/3/28 初版
v1.1 2016/5/5 ライブラリーの更新に伴う変更
v2.0 2016/9/16 ライブラリー更新、Nefry v2 にともなう変更

20