mbed

You are currently browsing articles tagged mbed.

2011年頃からmbedマイクロコントローラーにはまって、それを使って気象情報収集や自宅消費電力測定等、いろいろなシステムを作り、このブログでも紹介してきました。その後世の中的には、IOTだなんだと騒がれ初めて、mbed以外にも様々なプラットフォームが出て来たのですが、その中で今最も勢いがあるのがRaspberry Piです。

当初Raspberry Piは、主に教育用を目的に開発されたためか、制御用のIOやそのソフトウェアサポートがあまり充実しておらず、当方は全く魅力を感じませんでした。ところが、IOの数を増やしてCPUパワーを上げた第二世代のmodel B-2が出てから開発が加速して、現在のmodel B-3ではwifi/bluetoothも標準装備され、さらに5$という驚きの低価格のmodel zeroが出て、とても無視出来なくなってきました。それで当方も半年くらい前から本格的にRaspberry piに取り組み始めました。

まず手始めにmbedで作った自宅の消費電力測定システムをRaspberry piを使用して組み替えてみました。

raspi-ep1

Raspberry piに変更したシステム

このシステムは、分電盤に付けた電流センサーのアナログ電圧値をmbedの内蔵A/Dコンバーターで読み取って、webサーバーに結果を送信していました。Raspberry piはA/Dコンバーターを内蔵していないので、MCP3002 2ch 10bit A/Dチップを取り付け、それで電圧を測定します。インターフェースはSPIでRaspberry piと接続します。このICチップは秋月電子で、一個180円(安い!)で売っています。

raspi-ep2

ケース内部 上部にModel A+

raspi-ep3

ブレッドボードにMCP3002 2ch A/D ICを追加

Raspberry piは、一番小型で低価格なmodel A+を使用しました。当方ソフトウェア開発には最新のmodel3を使用しているのですが、今回の用途ではIOとwifiだけで、それほどCPUパワーも必要としないので、A+を使いました。A+はUSBが1ポートあり、これに安価なUSB wifiアダプターを付けています。これを適当な延長ケーブルでケースの外に出して、電波が遮断されないようにしています。

電流センサーの電圧変換回路は前のシステムと同じで、そのまま流用しました。Raspberry pi上のソフトウェアはPythonを使用しています。
約1秒に1回、A/B2系統の電流値を測定して、内部で平均化した値を5分に1回WebサーバーにPOSTしています。Webサーバー側はPHPで書いたスクリプトがPOSTを受け取って、それをテキストファイルに保存しています。グラフ表示はhtml+PHPで作成し、インターネット経由でどこからでも参照できます。

mbedとRaspberry piの詳しい比較は、別のポストで書くつもりですが、このシステムの移行はあっけないくらい簡単に行えました。もうよほどハードウェア要件がシビアでないかぎりは、mbedを使う事は無いと思います。それほどRaspberry piにはまってしまいました。

pi-eplog-y2.php

Webサーバー上に保存された結果のグラフ表示

 

Tags: , ,

mbedによる消費電力測定システムを作成して使用していましたが、自宅の分電盤は「単相3線式」になっており、電流センサー一つでは片系の電力しか測定していない事がわかりました。

中部電力のサイトに、「単相3線式」を説明する図がありました。

100Vは赤と黒の2系統あるので、センサーをそれぞれに付けて電流を測定する必要があります。
さっそく、電流センサーと回路を増設しました。

分電盤とmbedによる測定システム

赤、黒それぞれに電流センサーを接続

ブレッドボード上に回路を増設

mbedをのせているブレッドボードは、まだ余裕があったので、同じ回路を増設し、アナログ入力ポートを追加しました。
測定データが増えるだけなので、ソフトウェアの変更も簡単に終わりました。

下は結果表示のグラフ例です。

2系統の消費電力グラフ表示

 冬になって、暖房や浴室乾燥機を使用するようになり、消費電力が増えてきました。
どの機器が消費電力が大きいか、視覚的にわかるので非常に便利です。

Tags: , ,

mbedを使用して、自宅の電力消費量を測定し、ロギングするシステムを作成しました。

分電盤の横に設置したシステム

分電盤に電流センサーを取り付け、出力をmbedのAnalog inで測定し、webサーバーに送信します。
電流センサーは、U_RDという会社のCTL-10-CLSクランプ型センサーを使用しました。クランプ部分が開くようになっていて、分電盤の電源ラインに容易に取り付け可能です。

センサーで測定した電流が電圧に変換されて出力されます。それを技術情報に掲載されている「平均値整流型電流変換回路」で直流電圧にして、mbedで測定します。センサーはブレーカーの入り口のケーブルに取り付けました。

ブレーカに取り付けた電流センサー

mbedは、ブレッドボードに載せて、適当なプラスチックケースに納めました。ブレッドボード上に上記技術情報にある変換回路を実装しています。

ブレッドボードに実装したmbedと平均値整流型電流変換回路

平均値整流型電流変換回路

RLは100Ωで、ブリッジのダイオードは指定通り電圧降下の低いショットキーバリアーを使用しています。
交流電流Ioと出力電圧Eoは以下の変換式で表されます。

出力電圧 Eo=0.9・K・Io・RL/n(VDC)

n(巻数)はこのセンサーでは3000になります。kはRL=100Ωの場合、1になります。(センサー特性より)
この式で交流電流Ioを算出し、電力に変換しています。

Etherインターフェースは、PLANEXのMZK-RP150Nをコンバーターモードで使用して、無線LANに変換しています。
マッチ箱程度の大きさで、非常に小型です。
電源は、AC100Vを近くまで延長し、小型の2ポートUSB電源を使用してmbedとMZK-RP150Nに供給しています。
ケース内に入れると電波到達や発熱が心配なので、両面テープでケースの前面に貼付けています。

ケースに貼付けたUSB電源と無線LANアダプター

電流を約2秒に1回測定し、Webサーバーに平均値を10分間隔で送信しています。
webサーバーには、mbedからデータを受け取ってテキストファイルに保存するPHPプログラムを置いています。

保存されたテキストファイルを読んで、グラフに表示するPHPプログラムも合わせて作成しました。

PHPによるグラフ表示

これで、どこからでも自宅の電力消費量を確認できるようになりました。
グラフ上部には消費電力の積算値をKWhで表示しています。
mbedとPHPのソースコード詳細は別途掲載できればと思います。

*このシステムの作成は、個人的に行っているもので、これを見て作成され何らかの不具合・故障・事故等が発生しても、当方は一切責任を負いません。あくまでも自己責任で行い下さい。

Tags: , , ,

mbedに、屋外の気温と湿度を測定するためのセンサーを接続しました。
使用したのは、Sensirion社のSHT11という、1チップで温度と湿度を測定できるもので、ストロベリーリナックスで購入しました。
こちらで購入すると変換プリント基板が付いてきます。

写真のように、プラスチックのシール容器にSHT11の基板を両面テープで貼付け、電話用の4芯ケーブルで接続しています。
SHT11は、I2Cインターフェースでデジタル接続できるので、ある程度ケーブルの長さがあっても大丈夫です。(これが屋外用にSHT11を選択した理由です)
当方は、5mの長さのケーブルで接続しましたが、特に問題なくデータのやり取りが行えています。mbedとは、データシートにある通り、10kオームの抵抗でデータラインをプルアップして接続しています。


シール容器の下部には、5mm程度の穴を複数開けて、空気が出入りできるようにしています。これで特に雨がシール容器内に吹き込んだりはしていません。

ベランダに設置したセンサーBOX

測定はmbedで10分毎に行われ、データはPHP POSTでサーバに送信し、csvファイルに保存されます。
測定結果をグラフ表示するPHPプログラムを作成しました。

屋外の温度と湿度変化グラフ表示

以下のリンクで、現在と昨日のグラフが表示できます。
調布市布田の温度、湿度、気圧グラフ表示

全体のソースコードは、ちょっときれいにしてから公開出来ればと思います。
(今は、つぎはぎでぐちゃぐちゃな状態なので)

Tags: ,

mbedマイクロコントローラーを使用した、データロガーを作成しました。

温度・湿度・気圧を測定して、Web/httpサーバーに送信します。
温度センサー(LM35)と湿度センサー(CHS-UGS)は、mbedのA/Dコンバーターで出力電圧を読んで各値に変換します。
気圧センサー(SPC1000)は、SPIインターフェースで接続され、デジタルで読み取ります。

データは10分毎に測定され、httpサーバーのPHPプログラムにpostメソッドで送信します。
サーバーでは、受信したデータをcsvファイルで保存し、以下のように別のPHPプログラムでグラフ表示させています。


今までは単体の気圧計等を使っていましたが、時系列の変化はもちろん追うことはできず、気象庁のデータをグラフ表示して利用していました。
(PHPのメニューに入れています)
これで、ネットに繋がっていれば、どこからでも自宅の温度・湿度・気圧変化がモニター可能になりました。

mbedは「高速プロトタイピング・マイコンモジュール」と呼ばれ、以下のような多くの特徴を持っています。

  • Analog・Digital In/Outや、SPI,I2C,USB,シリアル等、多種類のI/Fが小型のボードに全て集約されている。
  • EtherのI/Fも実装されており、安価なパルストランスを接続するだけでIP接続が可能になる。
  • PCとはUSBケーブルで接続でき、電源もそこから取れる。PCと接続せず、電源だけUSBから供給しての単体動作も可能。
  • USBから5Vで供給して、ボードから3.3Vを出力可能で、それが必要な外部ICの駆動に便利。
  • 基盤のヘッダが標準ピッチで並行なので、ブレッドボードに簡単に載せられる。
  • 開発ソフトエアがWebのクラウド上にあり、ブラウザだけあればプログラム作成可能。当然MacでもPCでもOKで、特別なソフトウェアのインストール等が不要。
  • 言語がC++で非常に柔軟にプログラム制御可能。
  • 多数のライブラリーを簡単に利用できる。特にWeb関係のhttpライブラリーが非常に充実しているので、Webサーバーとの連携やTwitterへの送信など高度な機能が実装できる。

特に最後のライブラリーが非常に強力で、PHPと連携するプログラムが簡単に実現できました。ベーシックなDHCPによるIPアドレスの取得から、PHP/POSTまでほんの数行で実現できるのには感動しました。
アナログ系の温度・湿度センサーは、センサー自体がデータをリニアに電圧に変換してくれるので、プログラムは単純換算するだけで簡単ですが、気圧の方はSPIのデジタル接続で、バス制御やコマンド受け渡しが複雑です。ところがなんとこのSPC1000用のライブラリが公開され、これで簡単に気圧測定データの読み込みが可能になりました。クラウド上の開発ツールは、世界中の開発者が作成した上記のようなライブラリーが無料で利用できるようになっており、非常にすばらしいと思います。

mbed 開発画面

現在は室内で測定しているだけですが、次のステップでは屋外にセンサーを設置して、そのデータを取り込めればと思います。

このmbedを使用すると、他にも面白いことが色々実現できそうです。
良い楽器(当方の場合リュートですが)を入手すると、自分の能力が何十倍にも拡大されたような興奮を感じることができますが、このmbedもそれと同じような気持ちにさせてくれます。

Tags: , ,