8 posts tagged with "nefry"

View All Tags

Nefry Tips 無線LAN接続について

Nefryを使ったいろんな作品が見られて幸せなわみさんです。

今回は無線LANのプチTipsを共有したいと思っています。

Nefryには、Webページ上で設定した無線LANから自動的にもっとも電波強度が強いものに接続するような機能があります。

ただ、基本的には起動時に接続しにいくのみで、起動したあとに切断された場合再接続処理が上手くいかず接続できないことがあります。

デモのような短時間の動作であれば上記のような現象は気にならないと思いますが、長時間のモニタリングなどでなってしまうとなかなか辛いことがあると思いますので今回のTipsを試してもらえればと思います!

#include<Nefry.h>
void setup() {
// 何か処理
}
void loop() {
// なんか処理a
if(WiFi.status() != WL_CONNECTED){
//無線LANが接続されていないとき
Nefry.reset();
}
}

上記のコードが今回のTipsです。

無線LANに接続していないときにNefryをリセットするコードになります。

Nefryがネットワークにつながらなくなっても再起動して無線LAN接続が正常に行えるはずです!!

ぜひ試してみてください!

NefryUG参加レポ

8/7にdotstudioで開催された、Nefryユーザグループイベントに参加してきました。

(一応主催 ちゃんとくさんにほとんどやっていただいた。ありがとうございます。)

connpass

connpassページ

ちゃんとくさんも言っていたけど、UGイベント初なんですよね。

これから大きく育っていってほしいです。

初イベントは13人の方に来ていただいて、6人の人に発表して頂きました! ホントにありがたい限りです!

イベントの様子の画像を何枚か貼っておきます!

ちなみに次のイベントは来月頃の予定らしい…

Nefryいろんなウラの話

2020/7/4 追記

 2年前に書いた記事を振り返ってみると、実際に実現できたことも多々あって、やってこれてほんとによかったなと思います。

 現在、他のESP32ボードに押されてしまっていますがこういった情報の蓄積は非常に強みであり、支えていただいた皆さんには感謝の気持ちでいっぱいです。ありがとうございました。

Nefry AdventCalendar最終日の担当のわみです!

まずは今日までNefry Advent Calendarを書いてくれた皆さんに感謝です!!はじめのころはちゃんと埋まるのか不安ですがみなさんのおかげで今日まで無事にこれてホントにうれしい気持ちでいっぱいです!

最終日のテーマとして、Nefryの作者から見たNefryの過去と未来の夢の話をしようと思います。ぜひご覧ください!

Nefryの過去話

Nefryの過去話として、作ったNefryの遍歴をぱぱっとまとめてみようと思います。

Nefry誕生

Nefryは2015年8月9日に開催されたJS Board Shibuyaというイベントをきっかけに知り合ったMilkcocoaの中の人である川野さん、平間さん、落合さんとの会話から

ESP8266を簡単に触れるボードがほしい

というこの一言から生まれました。

初期Nefry

一番初期に作られたNefryの原型となるものです。

この時はジャンパーワイヤで切り替えをしないと書き込みができないものでしたが、これでもあの当時はそれなりに便利に使えるボードでした。 switch-scienceさんのEsprシリーズすらなかった時代でした。

まだNefryという名前すらついてないですねw

Nefry (v1)

IMG_20151214_115935.jpg

このあと第2号として先ほどボードの改良版として今のNefry v2に近い形のNefry(v1)?を2015年11月ごろに作成しました。 このころのバージョンはフリスクケースを改造したケースが付属していました。結構量産が大変でフリスクを山のように食べていた思い出がありますね。

このバージョンは60個程度つくってイベントなどで販売していました。無事に全数捌けたのがうれしかったですね。

この時は今まで続くシリーズになるのかどうなのか確定していなくてフワフワしていたように思います。

このころは写真に写っているMilkcocoaとどうやっていこうかと模索していたように思います。 全部私が手で半田付けとかしていたのでなかなか大変でしたね。 あとこのころにのびさんと出会ってLIGブログで記事を書くことになりましたね。そう思うとこのタイミングが今に至る転換点だったように思います。

Nefry v2

IMG_20160909_173742.jpg

2016年7月にNefry(v1)の改良版としてNefry v2を作成しました。 このころから中国に量産をかけるようになりました。MDFのケースが付属するようになったのもこのタイミングからですね。

このタイミングでのびさんがLIGから独立してdotstudioになったのもこのタイミングに近いですね。 dotstudioになってからネット販売が増え、累計で150台程度販売されました。

販売してから反省したのですが、シリアル変換を搭載すればよかったと思ってますw

このタイミングから徐々にコミュニティが生まれ始めたのかなと思います。

Nefry BT

2017年5月にクラウドファンディングをした、Nefry BTです。

dotstudioと共同で開発、販売を行いました。これがたった3時間足らずで目標金額を達成することになるとは思いませんでした。 みなさんに支援していただけてホントによかったです。

Facebookグループなどで最近書き込みが多くコミュニティが発展しているのはホントにうれしいです!!

予想以上の売れ行きで現在在庫切れで申し訳ないです…(´・ω・`)

次のロットを量産しているので少々お待ちください!!

Nefryの未来の夢

これまででNefryの過去話をしました。 ちょっとこれから私の思い浮かべる未来の夢のお話をしようかと思います。

今のところのNefryは累計出荷台数をまとめてみました。

YearNefryシリーズ合計出荷台数
201530
2016100
2017350
2018400
2019200

2019年までのものを追記

そのためにもいろんなことができるようにサポートしていきたいと思います!

Nefryクラウド

Nefryクラウド(仮)をつくってみたで軽く紹介しましたが、Nefryクラウドなるものを拡張して、jsや多言語のライブラリからNefryのデータを取得したり、Nefryにデータを送ったりできる環境があるといいなと思っています。

最近クラウドファンディングでみたobnizというデバイスで目標としていることと同じことができて支援者が集まっているのをみると、ある程度需要はあるのではと思っています。

教育分野への進出

BlocklyDuinoなどのビジュアルプログラミングでNefryのプログラミングができるようになったらいいなと思っています。 そこまで簡単じゃなくてもドキュメントの整備をして入門することを簡単にして、「 IoTをするならNefry♪ 」という世界にしたいです。

BLE対応

Nefry BTでのBLEの対応は十分ではないので、その対応をしたいと思っています。 その対応に合わせて今のNefryのWebページからできるWiFi設定やモジュールの設定をBLEで設定できるようにしたいと思っています。

Web Bluetoothをつかってそのあたりのサポートができれば十分かなと思っています。

本とか

単行本みたいな形でセンサの使いかたやNefryの深い話とかできたらいいな

+コミュニティでセンサを使ったことをまとめられるところがあるといいなぁ

#まとめ

今のNefryはまだまだ成長途中ので皆さんぜひ支援していただけると幸いです! Nefryライブラリはオープンソースとなっているのでぜひ皆さんのコミットをお待ちしています。

例:NefryBTのファームウェアを自分用に改造して動かそう

FacebookグループもありますのでNefryに興味があればぜひご参加ください!

学生のころからいままで支援してくれた皆様に感謝&これからもぜひ支援していただけると幸いです!ここまで読んでいただいてありがとうございます。

CocoaBitというオリジナルBitを作った話

CocoaBitというlittleBits拡張モジュールを作ってみて気がついたことを書き連ねておきます。

CocoaBitとは

まずはカンタンにCocoaBitについて説明していこうと思います。

CocoaBitとは、cloudBitと呼ばれるインターネットと通信ができるモジュールが日本では技適のため使えないため、開発された拡張モジュール(拡張Bit)です。

私が作成しているNefryをベースとしており、NefryのメリットであるWiFiやモジュールの設定を簡単に出来る点を引き継ぎ、littleBits向けにさらにカスタマイズしています。

(CocoaBitはまだ販売されてませんが、反響があれば…

CocoaBitのサイトはこちら

cocoaBit

カンタンにCloudBitがどのようなものか分かったところで作ってみて気が付いたメリットデメリットについて話してみようと思います。

メリット

手軽に試せる

なんといってもこれが一番のlittleBitsと繋げられるメリットだと思います!

普通の電子工作であると半田付けが必要だったり、ブレッドボードにピンを何本も刺さないといけなかったりするのが、littleBitsなら繋ぐだけでいけます!磁石で繋がるので間違えることもない!

子どもでもあそべる

向きを間違えないため、こどもに任せてしまっても問題なく作ることができます!

子どもももちろんですが大人でもロジックBitなどもあるので充分に遊ぶことが出来ます!

デメリット

とりあえずお高い 

littleBits自体セットで販売などもされているため若干安くなったりしますが、それでもお高い…

これは特に多数のBitがあるとより楽しめるのですが、揃えるまでが…

ときどき接触がわるいときがある

磁石で接続しているため仕方無いのですがカンタンにとれてしまいます。それはlittleBitsの手軽に繋げられるとこと関わるので難しいところです…

(Bitを留められるボードもあるのでそれで解決するところですが…

bitの形に制限がある

これもlittleBitsの世界なので仕方無いところですが、公式からこのようなサイズで作るといいよ、という情報が出ています。

(これも無視して作ることも出来ますが、littleBits同士キレイに揃うといいので出来るだけ合わせましょう。

オリジナルのBitをつくるまで!

私の備忘録を兼ねて今回のCocoaBitを作成した流れを説明していこうと思います。

まずは、どんなものを作るのか検討しよう。

どんなものを作るのか検討すれば、必要な部品数が判明すると思われます。その部品から必要となるであろうサイズを割り出します。

そのサイズからその部品が収まるBitのサイズを選びます。

こちらのサイト内にあるHDK manualのリンクをクリックします。

よりプロフェッショナルなTIPSについてはHDK manual やTips & Tricks もチェックして下さい。

ファイルがダウンロードされるのを待って、Design\Design Manual\PDFsの中にあるUser Interface Considerations for littleBits Module Design.pdfを開き部品が収まるサイズを探します。

無事に見つかったら図の下にある英語の文字を覚えておきましょう。

さくっと回路を起こしていこう

eagleのテンプレートファイルがGitHubで公開されているのでそれをベースに作成するのがお勧めです。

私はKicadの方が好きなので、採寸をまねて作成しました。 こんな感じにできれば、問題ありません。

回路ができれば、SeeedStudioさんやElecrowさんを作成してもらいましょう!

## 部品をそろえよう

まずは、littleBitsの公式サイトからBITSNAPSというlittleBitsの両端を購入しましょう。

もしくは、littleBitsのHardware Development Kitを日本の代理店であるKORGさんから購入することもできます。

あとはほかに必要な部品を購入していてください。

組み立てよう!

BITSNAPSともろもろの部品をつければ、無事にオリジナルの拡張Bitが出来上がりました!

このあたりもSeeedStudioさんやElecrowさんの部品実装サービス使うと大変便利です。 CocoaBitも作成していただいています。

#まとめ

そもそも、littleBitsの拡張することができるなんて思いませんでした。 BitSnaps自体がちょっと高価ではありますが、自分好みのものをつくれるメリットは大きいと思います。

回路を作成するなど難易度は高めですが、完成度も高いので是非お勧めします! よいlittleBitsライフを!

Azure IoT HubをESP8266で使おう!

日本での発売から一年がたち多数の作例が出てくる「ESP8266」(ESP-WROOM-02)をもっと使いこなしてみませんか?

今回はAzureのサービスの一つであるIoTHub、それを簡単に扱えるライブラリーを作ったので紹介してみようと思います。

ちょこっと宣伝

ところどころで出てくるESP8266の基板ですが、私が作成した「Nefry」(ねふりー)という基板を使っています。

dotstudioさんにて販売中です!!

USBに直接繋げられたり、Webページ上でWiFiの設定やESP8266の端末設定ができるようになっていたりとESP8266をより簡単に扱えるものになっています。

詳しくはLigブログで記事をいくつか載せていますのでご覧ください。

自作したオリジナルIoTデバイス「Nefry」とインターネットを繋いでみた

Webサービス同士を連携できる「IFTTT」と自作IoTデバイスを繋いで生活を便利にしてみた

Azure IoT Hub って?

IoT Hubは、その名の通りIoTデバイスとクラウドを繋ぐHubとなるサービスです。 似たようなサービスとして「Event Hubs」がありますが、Event Hubsとの大きな違いは2つあります。

IoTHubの優れた点

  • デバイスとクラウドとの双方向通信が可能。(Event Hubsはデバイス→クラウドの一方のみ)
  • デバイス毎にIDを登録して認証する為、よりセキュアに利用できる。(Event HubsはEvent Hubsごとの許可)

http://qiita.com/hiiyan0402/items/9c93d9673114675a57d4

用意するもの

IoTHubで通信をしてみる

今回はESP8266からIoTHubで通信するところまでを作っていきます。

Azure IoTHubの設定

それでは、AzureにログインしてIoTHubを実際に作っていきましょう!

Azure ポータルを開いていきます。

新規からモノのインターネット(IoT)をクリックして、IoTHubをクリックします。これから必要な設定を行っていきます。

無事にIoTHubが開かれると複数の入力欄が出るので写真を参考に入力欄を埋めていきましょう。 それでは、必須項目であるIoTHubの名前を入力してください。この名前はドメインでも使われますので他の方と重複するとエラーが出ます。入力欄の右端が緑のチェックが入れば大丈夫です。 次に、価格とスケールティアを変更していきます。この際にFreeを必ず選んでください。Standardを選んだまま作成してしまうと、後からFreeに変更することができず、再度作り直すことになります。

Freeを選択したらクリックして反映させてください。

リソースグループは既存ものがあれば、それを使って頂いてもかまいませんが、今回は初めてだという前提で、新規作成で好きなグループ名を入力してください。

Azureサーバーがある場所を指定することができます。東日本、西日本と選べますのでお好みでどうぞ。

ここまで問題なくできていれば、作成ボタンをクリックしてIoTHubをデプロイしていきます。

数分かかりますのでしばしお待ちを…

無事にIoTHubのデプロイが終わるとこのような画面が表示されます。 この画面では先ほど設定した内容が見れるほか、IoTHubの使用状態を確認することができます。

デバイスを繋げるために必要な設定を行っていきます。 共有アクセスポリシーからiothubownerをクリックし、プライマリキーをコピーします。 このとき写真で示してある部分をクリックすると簡単にキーをコピーすることができます。

このプライマリキーは次の作業で使用します。

この作業からDevice Explorerというツールを使っていきます。 このツールはWindows専用になります。MacやLinuxの場合iothub-explorerを使うようですが、今回は取り扱いません。

Device Explorerのダウンロード

こちらのリンクからダウンロードしてインストールをよろしくお願いします。

インストールが終わったところでDevice Explorerを使っていこうと思います。

このツールでIoTHubに接続できる端末の登録、削除、ほかにはデバイスからIoTHubへの通信モニターになったり、IoTHubからデバイスにデータを送ることができるなどIoTHubに必須のものとなっております。

説明が長くなりましたが、それではこのDevice Explorerに先ほどのプライマリキーを入力してUpdateをクリックしてください。

プライマリキーが合っていれば、このような表示がされます。この表示がでれば先ほど作ったIoTHubと連携ができるようになります。

これからIoTHubに接続できるデバイスの設定をしていこうと思います。

この作業はデバイスごとにIDを割り振る作業になります。 ManagementからCreateをクリックします。

Createをクリックするとこのような画面が出ますので、Device IDに接続するデバイス名を入力してください。

入力が終わったらCreateをクリックしてください。

無事にデバイスが作れると先ほどのDevice IDを持ったものが増えているはずです。

無事に作成できていれば、次はデバイスに必要な情報をコピーしておきましょう。 今回作成したDevice IDをクリックすると青色の欄が移動しますので、選択された状態で右クリックするとCopy connection string for selected deviceを選んでクリックしてください。

そうすると必要な情報がコピーされますので、その情報をESP8266に書き込むプログラムに貼り付けます。

デバイスの設定

ArduinoIDEとArduino core for ESP8266 WiFi chip(https://github.com/esp8266/Arduino) の導入が終わっている前提で解説していきます。 導入が済んでなければ、Qiitaに情報がありますのでそちらをご覧ください。

それでは、AzureIoTHubライブラリー(https://github.com/wamisnet/Azure-iothub-mqtt-esp8266) をこちらのリンクから移動して写真を参考にZipでダウンロードしてください。

ダウンロード終わりましたら、ArduinoIDEを開いてスケッチ→ライブラリーをインクルード→.zip形式のライブラリーをインストールをクリックし、先ほどダウンロードしたファイルを選んでください。そうすると自動的にライブラリーのインストールが始まります。

問題なくライブラリーのインストールが完了するとライブラリーが追加されました。と表示されます。

ライブラリーがインストールしたところで実際に使ってみようと思います。

ファイル→スケッチの例→AzureIoTHubの中にあるAzure-iothub-mqtt-esp8266が選択できますので選択してください。

qiita Arduino (3).png

サンプルプログラムが表示されますので、それを使ってAzureIoTHubに接続してみようと思います。

それでは、サンプルプログラムの内容の紹介と変更部分を説明していきます。

ESP8266が接続するWiFiアクセスポイントの設定をWiFi.beginにSSID,Passwordをそれぞれ入力してください。 Azure.beginには、先ほどDevice Explorerで取得したキーを張り付けてください。 例:Azure.begin("HostName=YourHost.azure-devices.net;DeviceId=YourDevice;SharedAccessKey="); 注意としては、張り付けたときに両端に"(ダブルクォーテーション)を必ずつけてあることを確認してください。

WiFi.begin("SSID", "PASS");
Azure.begin("Your Key"); //YourKey Example:"HostName=YourHost.azure-devices.net;DeviceId=YourDevice;SharedAccessKey="

Azureからのデータの取得はこの関数で行います。 Azure.setCallback(azureCallback); このazureCallbackは別で関数宣言してください。引数はStringでAzureから届いたデータを渡されますのでそのデータを活用してみてください。 サンプルプログラムでは、シリアルで表示するようになっています。

Azure.setCallback(azureCallback);
void azureCallback(String s) {
Serial.print("azure Message arrived [");
Serial.print(s);
Serial.println("] ");
}

簡単ではありますが、2点を注意して書き換えてください。

続いて、loopの中を簡単に解説していきます。

WiFiに接続できたとき、Azureと通信を開始します。 Azure.connect()にてAzure IoTHubと接続する処理を行ってます。 Azure.push(&a);にてAzure IoTHubにデータ送信処理を行ってます。

void loop() {
if (WiFi.status() == WL_CONNECTED) {
Azure.connect();
DataElement a = DataElement();//Azureに送るデータをJsonで作っていきます。
a.setValue("EspAnalog", analogRead(A0));
Azure.push(&a);
Serial.println("pushed");
delay(2000);
} else {
Serial.println("Not connected to the Internet");
delay(250);
}
}

実際に動かしてみよう

AzureIoTHub→Nefry

これはAzureIoTHub(Device explorer)からNefry(ESP8266が中に入ってる)へデータを送っています。届いたときにLEDが点滅するようになっています。 そこまでラグなく点滅しているのが見えると思います。

こちらはAzureIoTHub(Device explorer)とNefryのコンソール画面になりますが、ほとんどクリックしたタイミングでデータが届いていると思います。

Nefry→AzureIoTHub

こちらはNefry(ESP8266)からAzureIoTHubにデータを送っています。 GROVEのジョイスティックをつかってアナログ値をAzureIoTHubへデータを1秒ごとに送っています。

Device explorerにて届いた値を見ることができます。 今回はESPAnalogという項目にデータが入っているのが見ずらいですがわかると思います。

まとめ

今回このライブラリーを作るまで、お世話になりました@matsujirushi さん、@onoche さんこの場を借りて御礼を申し上げます。

IoTHub×ESP8266の情報があまり多くなく四苦八苦しましたが、このライブラリーを使ってAzureにある機械学習やPower BIなど様々な仕組みと組み合わせて面白いものを作ってもらえたらうれしいです。

ESP8266で静的なIPをわりふってみる

家のネット環境によってはDHCPでIPアドレスを取得するより、静的(static)なIPで割り振りたいという要望を聞きましたのでソースコードを公開します。

#表示内容

ESP8266のlocalIP ゲートウェイのIP サブネットマスク ESP8266のmacAddress

#コード

#include <ESP8266WiFi.h>
#define debug Serial
/*
IPアドレスをDHCPではなく手動で割り振ることをすることができる。
localIP:moduleのIP gateway:デフォルトゲートウエイ subnet:サブネットマスク DNSは指定しなくてよい。
config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = (uint32_t)0x00000000, IPAddress dns2 = (uint32_t)0x00000000)
*/
void setup(){
debug.begin(115200);
WiFi.config(IPAddress(192,168,1,2),IPAddress(192,168,1,1),IPAddress(255,255,255,0));
debug.print("Local IP :");debug.println(address(WiFi.localIP()));
debug.print("Gateway IP:");debug.println(address(WiFi.gatewayIP()));
debug.print("SubnetMask:");debug.println(address(WiFi.subnetMask()));
debug.print("macAddress:");debug.println(WiFi.macAddress());
}
void loop(){
}
String address(IPAddress ip){
String ipStr = String(ip[0]) + '.' + String(ip[1]) + '.' + String(ip[2]) + '.' + String(ip[3]);
return ipStr;
}