そもそもIoT って何よ、何がすごいのよ。

2015年は、未来から見ればおそらく IoT 元年的な位置づけになるはずですが、そもそもIoT って何よっていうどうでもいい話。
知るのと知らないのでは、着目視点が変わると思うので、噛み砕きたいと思います。

ネットの情報を見たり、雑誌などから伝わる感想ですが、言葉が独り歩きして正直ピンと来ません。ただ分かるのは、組み合わせや応用次第で未知のモノや価値観が生み出されることはなんとなく、理解できます。

 

以前作ったもので、温度湿度照度の3つの情報を好きな所に持ち歩け、WiFi経由でインターネットにデータを投げ、グラフ表示するIoT デバイスを実際に作ってみたんですが、正直データロガーとの違いはリアルタイムでデータが見えグラフ化できるかどうか? という事くらいしか違いが理解できませんでした。

 

なので、改めてIoTデバイスという物がどのような広がりを見せていくのか勉強してみたいと思います。

興味深いなぁと感じたのは、TOCOSさんの記事、TOCOSワイヤレスエンジンにある「ねこったー(猫ツイッター)

 

引用

ねこったー(猫ツイッター)・トコスワイヤレス

http://tocos-wireless.com/jp/nekotter/index.html

system

 

なるほどですね。これは鈴とAP で位置を検出、親機でデータ処理、ツイッターに現在やったことをつぶやく仕組み。

 

センサーと組み合わせと、データ処理で面白くもなり、今までなかったようなトータルな機能が創出されるという。というか、トコスさんの製品面白いですね。こんな面白いものがあるなんて知りませんでした。TWE-Lite DIP っていくらなんでしょう?
img60989101
秋月さんところで、1,620(税込)ですね。手がでますね。これは要調査ですね。

 

本題に戻り、IoT でピンとくるものがないので、想像できませんという話でしたね。どっかの本で読んだのですが、モーターにセンサーをつければ故障する確立がわかるという記事で、マシンとマシンをIoT させるとそういうことも出来るんですか~的になんとなく覚えていることがあります。

 

そんな具体的な事例と照らし合わせると理解が深まりしっくりくると思いました。

今回作った温度湿度照度がリアルタイムで見えるデバイスというのは、たとえば以下の記事にあるような、蜂の巣の温度管理に応用できそうです。

 

クラスメソッド株式会社 / しんやさん

[レポート] 米国における IoT / Big Data & Analytics 活用事例の最前線 – 先進事例に学ぶ IoT のベストプラクティス

 

言葉の定義とか、理解不能な内容もありましたがアメリカでもIoT の活用は盛んなようで、4つの課題について話をされています。

冒頭の IoT の定義にある部分で、要約すると

・ネットワーク側に縛りがあり、制約付きな小さくシンプルな従来と違うもの。

・IoT の文脈でモノといったら、何万台もあるのが普通

・人的なやり取りなしに利用されるもので、クリティカルな用途で利用されるもの

スケールの大きな話のようでピンときません。ただ、わかったのは、温度という情報も場所や用途を選べば価値がある情報となるわけです。ま、そりゃそうですよね。自宅の自分がいる部屋の温度や湿度や照度がわかったところで、あ、そうっていうことですしね。(まぁ、あのグラフを見ればそれがわかるというニッチな利用用途もあるわけですが)

 

ネットや本などで語られるIoT の話は、スケールが大きくて個人が利用するIoT デバイスの利用法という観点から少しずれているので、しっくりこないのかと思います。

 

今後は、個人が使うIoT というサブタイトルを意識して何か作っていこうかと。AC電源をコントロールしたり、部屋の電気を切ったり付けたり、このあたりは想像の範囲内ですが、何か思いもしないモノにセンサーをつけると、楽しいかもしれません。そういう構想を練るのがMaker な楽しみでもありますしね。

 

まとめ

・Iot は、スケールが大きい

・個人で楽しむ IoT デバイスとそのデータ利用法をみつけよう

・欲しいものを作る

>電圧・電流を投げつけてグラフ化するデバイス

・IoT デバイスからのデータを処理するため、RasPi2 にデータを投げてみる

初めてのIoTデバイス完成

ESP8266 をはじめて見たとき、IoT デバイスを作りたくてゲットしたのでやっと念願かなって出来ました。

ブログは目次がないので見にくいので、道のりをリンクしておきました。こうして改めて道のりを見てみると、最初にデバイスを見たときから4ヶ月経ったんですね。速いものです。あのころは、FDD でプロッター作っていまして素材を物色中に面白そうなデバイスだなと試しに買ったわけでして。こんなに面白いデバイスだったとは露知らず。

目次

続々と素材をゲット 2015/04/18

ESP8266 ESP-12 DoubleBlink 2015/05/08

ESP12単体でwifi connection 2015/05/09

ESP12単体で光センサーアナログ読み 2015/05/09

5V 18650 リチウムバッテリー充電モジュール 2015/05/10

ESP8266 ESP-12 spec 2015/05/11

AM2302温度湿度センサーをArduino Nanoでテスト 2015/06/14

ESP12単体で湿度温度照度のIoTデバイス 2015/06/15

ESP12の配線いろいろ 2015/08/19

Pin半田付け 2015/08/21

リチウムバッテリー駆動でESP-12 2015/08/23

3.3V 固定 DC-DCコンバータを調査 2015/08/23

100円均一の昇圧を使いまわし実装 2015/08/24

 

とにかく、現場合わせで成り行きで作っていったので温度湿度センサーを乗せる場所がありません。うーむ、どうしようかと思案したあげく、ESP12 の上に乗せることにしました。足を延長してPin ジャックに指すように実装。これでI2C デバイスを交換するときも可能ですしね。

b

とりあえず、部品が全部のるかどうか仮置き状態。なんとか載りそうです。

a

ESP12 の下は床下配線。裏面でもよかったのですがどうせ隙間があるのだから有効活用と。プログラムコードも書きかえれるよう、UART の差込口も隙間に納めました。

 

で、全部組み終えて稼動した全体図がこちら。データをアクセスしているときに点灯するLED はフロッピーディスクのアクセスランプでちょっと小ぶりのやつです。下点灯していないのは赤いLEDで、100円均一の車載用12V ステップダウンDC/DC コンバータのジャンクからゲット。こちらも少し小ぶりでちょうど良かったです。

1

リチウム電池を充電しながら稼動も可能です。これがしたかったがために、100円均一のDCDC で5V にしてその後3.3V にするロスが出ています。将来は、これをバックブーストタイプの1セル用に作られたIC を使い3.3V を作りたいです。

2

UART のジャックがあるといいなと思っていたので、そういうのを隙間に作りました。これでコードのデバックや新しいプログラムも利用可能です。

3

苦肉の策で、温度湿度センサーはこのような配置となりました。

4

5V に昇圧した配線がちょっと難ありですが、まぁとりあえずです。

5

 

今回勉強になったこと

・リチウム電池の変動は4.2V から 2.4V まであり、3.3V 出力する場合はバック・ブーストという方式DC-DC コンバートが有利

・バック・ブースト方式は、英名buck–boost converterで日本語では昇降圧コンバータ

・バック・ブーストは、入力が低い場合は昇圧動作、入力が高い場合は降圧動作をする

・専用IC は各社あり最も有名なのは、LinearTechnology 社のTPS63000シリーズか、LTC3xxxシリーズ

・LT社のバックブースト用ICの検索はここが便利

・1セル用の汎用モジュールは、あまりない。見つかったのはストロベリーリナックスさんが作っているもの

・太陽電池からの充電ユニットもこのバックブースト方式を使っているが、そのモジュール化されたものはVinの最小最大が大きいので、1セル用としては向かない

・電源ソースに、18650のリン酸鉄リチウムイオンバッテリー(Lifepo4)を使いたいところだが、電源管理モジュールが3.8V カットするものがない。あるはずだがまだ見つかっていない

・おそらく、リチウム1セルを使った製品にはこれがあるはず。携帯とかスマホとか。今度ばらしてみたい。

 

今回の工作でわかったこと

・ユニバーサル基盤でも頑張れば、このくらいまでは密度が上がる

・IoT デバイスというものがどういうものか体感できた(が、ロガーとの差がピンとこない)

・開発ボードを使って作ったほうが多少大きくなるが、速い(テストなら十分、小型)

・充電式にしてみたが、DeepSleep を活用し単3電池とかでもいいんじゃないの?

・そもそもWifi があるところって電源もあるから5V のUSB に挿せるタイプでいいんじゃないの?

 

今後の課題

・3.3V 生成にバックブースト方式の回路を採用したい

・Deep Sleep の検証

・WiFi がない環境でも採取できるようフラッシュメモリ領域に保存、後にアップロードしたい

100円均一の昇圧を使いまわし実装

バックブースト回路を作るか、買うかは課題としてとりあえず今の手持ちの部品でリチウム電池の変動をカバーして3.3V を作り出すのは以下のようにすることにしました。

 

リチウム電池 > 充電ユニット > 5Vスイッチング昇圧 > 3.3Vレギュレーター

ロスが2重に発生するので効率が悪いですが、とりあえず実験。

5Vの昇圧スイッチング回路は100円均一のがあるのでこれを流用。4.2V ~2.4V まで安定化電流を変動させて5V は無負荷で出るようです。この5V出力を3.3V レギュレーターに通しESP12 へ給電します。

テストでは、2.7V 付近になるとアクセスポイントへの接続が不安定になりました。3.0V くらいでは安定しているのでとりあえずいけるんじゃないかと見切り発車。

とりあえず、これで組み込んでみることにします。

写真 1

仮配線

写真 2

100円均一のばらした5V昇圧ユニット

写真 3

どうやら、うまく動作しているようです。これで充電しながらでもできる状態が作り出せました。おまけ機能で5V のi-Phone充電機能もついてきます。

メインスイッチが欲しいんですが、手元にないんですよね。まぁ、いいか。組み込みます。

とりあえず、電源部が出来ました。Junkな部品が約に立ちました。2階建て、両面テープ、空中配線。落としたら壊れますが。

写真 1

これでリチウム電池を充電しながらでも、動かせます。

写真 2 

あとは、ESP12 本体、センサー、リセットスイッチとメインスイッチをなんとか乗せればOK.

3.3V 固定 DC-DCコンバータを調査

さて、昨日の夜中3時くらいから動作させている1個前の IoT デバイスは18時間経過した今もまだ動作しているようです。しばし、電池が切れるまで、調べ物をしてすごすことに。明日も夏休みで、好きなだけ遊べます!
で、電池の出力を3.3V に固定させて、出力500ma くらいが出せるものを調査しました。

まず、一発目に見たものは、テキサス・インスツルメンツのTPS63000を搭載した昇圧・降圧タイプ を使ったモジュール。
ストロベリー・リナックスさんが販売しているものです。

 

Exif_JPEG_PICTURE
リチウムポリマー/乾電池向け昇降圧DC-DC

 

なるほど、こんな便利なものがあるんですね。バック・ブーストという方式のようです。入力が低い場合は昇圧動作、入力が高い場合は降圧動作をするインテリジェントなやつのようです。ただ、ちょっとお高いので、もう少し調べることに。

なんかこのあたりのスイッチングを使って昇圧、降圧させるものは昔i-phone の充電器を作ったときに100円均一のを改造したり、ミンティーブースト(Minty Boost)を作ったりしたときの事を思い出しました。あの時は、知らなかったんですが、ミンティーブーストの作者って、Adafruit Industries(エイダフルート)のCEO のリモア・フリード(Limor Fried)さんだったあのですね。数年のときを経てそんなことを知りました。最初に知ったのは、LadyAdaさん(ハンドルネーム)のブログでした。

 

さて、調査するとおおよそ以下の方法があるようです。

1) スイッチング方式

昇圧降圧タイプのDCDCコンバーターを利用する

IC 種別

テキサス・インスツルメンツ TPS63060
Analog Devices Inc. ADP2503(10pin)
Microchip Technology MCP1252

2) リニア方式

LDO(低ドロップアウト)の3端子レギュレータを使う。

たくさんある。たとえば以下。

AP2112K(5pin)

LD1117AS33TR(4pin)

AMS1117-3.3(4pin)

UA78M33CDCY(4pin)

3) トランス方式

大きくなってしまうので未調査。

1の方式が良いんですが、こういうタイプのものがあるとは知らずまだ未入手です。

2方式だと、3V 以下になったときは無視する方針です。

とりあえず、手持ちにあるものとして、1) のタイプはないので、2 のレギュレータと、何かに使えるかもと買っておいたDC-DC コンバータ。

▼降圧DCDC

Scan 10

これは、10個入りで、1個100円くらいのものですが、今回の用途では入力電圧が高いので、つかえません。

入力電圧: 4.5v-28v
出力電圧: 0.8v-20v
出力電流: 3( max)
変換効率: 96%( 最高)
スイッチング周波数: 1.5mhzの( 最高)、1mhz
サイズ: ※18.6mm x 16.8mm x 4mm

 

AMS1117-3.3 SOT-223

Scan 11 
これは10個パックで、100円くらいのもので、3.3V のレギュレーターです。これもデータシートを見ると、Vin が1.5V 以上必要で4.8V 以上ないとだめなようです。うーん、使えん。

DataSheet
http://www.advanced-monolithic.com/pdf/ds1117.pdf

 

www_advanced-monolithic_com_pdf_ds1117_pdf

 

www_advanced-monolithic_com_pdf_ds1117_pdf 2

 

あとは、これのユニット化されているもの。ブレッドボード用に5V を 3.3V にする用途のやつです。

HK1117AH 3.3

これは、以下のスペックです。入力が高いので、今回の用途では、使えないかと。

Input voltage: DC 4.2 V-10 V
Output: 3.3 V, 800 mA
Uses the HK1117AH 3.3V (AMS1117-3.3) Regulator
Size:8.6mm x 12.33mm

 

3V 以下になったときは、無視するとして、リニア方式でいまのところやるしかありませんね。

今、手持ちにあるものでは用途にあっていないので、どうするかですね。いったん、昇圧してレギュレータで下げるという無駄な作戦もありますが。手持ちでやるとしたらこれしかなさそう。

高すぎる電圧になるときっていうのは、充電している時とフル充電から少し消費するまでの間なので、抵抗とかLEDで電圧を落とすっていうのもありかもです。

さて、テストで動作させているリチウムバッテリー駆動のデバイスも20時間経過してもまだ動作しているようです。電圧と電流のロガーも作りたくなってきますね。これはまた、次回以降の題材として。

ESP12_DHT22_-_ThingSpeak

ちょっと冷房強すぎですね。下げます。

その後3時間後、24時間経過しても、まだ動作しています。何か計算と違ったかしら?リチウム電池からは、テスターで計測すると、まだ3.175v あります。ESP12 の動作電圧は、3.0 – 3.6V なのでまだ動きそうです。そろそろアクセスポイントへの接続が不安定になるはずですが。

1セルようの昇圧降圧モジュールって汎用品ではあまりないようですね。TPS63000のチップ自体は、10個で1600円くらいでゲットできそうなので、自作するかです。ただチップが小さすぎるので、3mm四方 で0.5mmピッチ なので変換基盤も必要。迷いますね。

 

その後、約26時間経過までがんばってデータを投げていたようですが、動作電圧以下になりアクセスポイントに接続できなくなり、コネクションLEDが点滅したままの状態となりました。電池側の電圧をモニタリングしていると、2.8V から急速に落ち始め2.4Vで出力がcut され、LEDの点滅もしなくなりました。ESP12 が動作しなくなった正確な時間は4時59分でその電圧は不明、そこからカット電圧になるまで約30分。この時間の為に、昇圧回路が3.3V を供給できるのはおそらくもっと短時間になるはずです。10分か、15分か。

 

負荷がなくなることにより、電池電圧が復帰し、USBから充電すると、電池からの出力が一度cut 電圧まで放出され、2.405V から充電が始まりました。4:40分から充電開始。充電されて、電池電圧が3V になると確か放出が始まるはず。

5V 18650 リチウムバッテリー充電モジュール

以上から言えることは、3V以下になってもLEDの点滅はしており、クロックは動作していたことになります。アクセスポイントに接続するパワーがなく接続が完了しないだけのように見えました。メモリへの書き込みはまだ試していませんが、もしできるならば、昇圧する回路にも意味が出てきます。

 

現在の10秒間隔で接続するプログラムでは、

・フル充電から24時間~26時間でアクセスポイントに接続できなくなる。今回は26時間経過後付近で接続不能に。

・アクセスポイントに接続できなくなってから、約30分後にカット電圧の2.4V になった。

・USBから給電すると、一度電池からカット電圧まで放出されてから充電が始まった。この挙動は現在の電圧が関係するかもと予想。

・昇圧、降圧ができるバックブーストのDCDCコンバータがほしい。

・電池電圧が4.2V付近のフル充電になっているとき、ESP12 の動作電圧の3.0-3.6V にどうやって降圧するか?

 

というようなことがわかりました。

リチウムバッテリー駆動でESP-12

こんな感じで、基盤に組み付ける前に、配線のおさらい。
いちおう、バッテリー駆動で動作してますが、まだ3.3V ラインをどうやって安定化させるかが抜けています。リチウム電池の電圧管理は、基盤右の出来合いのボードで出力降下cut から USB充電の過充電防止までできているので、いいんですが、3.0-3.6 の範囲に押さえて出力するようなレギュレーターが必要です。充電時は、最高で4.27Vまであがるので、そのまま印加するとESP12にダメージがありそうな感じ。そのあたりは、明日考えることにして、とりあえず、電池駆動でどのくらい持つか連続稼動のテスト。まだDeep-Sleep は使っていないので24時間以内で切れるはず。

 

あと、コードは後から書き換えることも考えると、この基盤の大きさにどうやってUART のPIN を埋め込むかです。3 線しかつかわないので、メスPIN ヘッダーをESP12 の基盤の隙間が候補。電池ボックスは、基盤の下側を予定。ケースはまだ未定。

写真 1

入りそうで、入らなそうな予感。パズルみたいですね。

写真 2

この電解コンデンサが邪魔。表面実装のタルタルコンデンサで小型化しようかとたくらんでいますが。電源周りって、結構シビアなので工夫が必要な感じです。

 

とりあえず、IP は固定でWiFi 接続して、温度、照度、湿度を記録する IoT デバイスとなっています。まだコードにはBug があるので、工夫しないとです。現在、SDK 1.3 で動いています。

https://thingspeak.com/channels/42239/

 

課題は、

・3.3V (3.0 – 3.6v)電源の安定化

・接続失敗したときの処理

・Deep-Sleep のコード

Pin半田付け

下駄を履かせずだと、こんなにスペースができました。

左右に3つ分づつ、配線できるスペースがあります。

pin

真上から見てもほぼ、基盤に隠れてる感じです。

Scan 7

ユニバーサル基盤につけるため、PIN側は半田付けしていませんが、このままでもブレッドボードへの抜き差しができます。

Scan 8

ESP-WROOM-02 や ESP-13 は PIN の穴がないので、こういう感じのピン配線はテクニックが必要かも。

で、Pin からはずしユニバーサル基盤においてみた感じ。狙い通りになりました。

a

ということで、夏休み休日前のヒト作業でした。