おもちゃ、家電、もろもろの修理の足跡と備忘録

色々と忘れるので、趣味のメモ

消費電力を測る(番外編)

2019-08-25 18:27:33 | ESP8266DEVkitで遊ぶ

消費電力というか、使用電流を測りたくて、USBの電流・電圧計から、電流を外部計測できるように端子を作りました。

USBの電流・電圧計は、電流計測用に、USBのコールド側に、R050(50mΩ)の抵抗をいれて計測しているようなので、その両端の電圧を測れば電流が副次的に計測できます。その両端を外部に出しました。R050の実際の抵抗値を測るすべがないのですが、最大10%のエラーとしてもまぁ、素人が使う分には問題ないかと。

写真では、R050の両端の電圧が0.39mVと出ているので、I=V/R=3.9mV/50mΩ=78mA、ですかね。USB電流・電圧系は、0.07と出ているので、切り捨てだとまぁ、そんなもんかと。電圧計も3.9-3.8で動いているし、USB側も0.07と0.08で動いているので、微妙なところなのでしょう。

今回は、DeepSleepは使っていないので、BackGroundでCPUが動いている状態です。DeepSleepに変更する前に測っておきたかったのでやってみました。

そのうち先日買ったデジタルストレージオシロが秒単位で計測できるのでみてみます。

USB 電流計測


赤外線リモコン検出機2

2019-08-11 08:15:09 | その他工作
使ってみた
昨日2019/8/3の定例おもちゃの病院で、「仮面ライダードライブ 変身ベルト DXドライブドライバー & シフトブレス」というのが来ました。
主訴?は、子機(シフトブレス?)に車を接続しても何の変化もない、というもの。
赤外線で、親機と子機をつないでいるようなので、これを出してみてみたら、何某か出てはいるようだが、出てほしいタイミングですべてが出ているようには見えなかった。
電池は変えたばかり、ということでLR44、3個とも電圧は正常、電池ボックス内を見たら、何か「濡れている」ような形跡が。液漏れしたのかな。
ちょっと接点の接触を調整したら、出てほしいタイミングで赤外線が出るようになったので、電池ボックス内の清掃と、念のため、内部に液漏れの影響がないかを確認して、問題なしで完了。
役に立ちました、というお話でした。


ESP8266DEVkit, nodeMCU, LUAで温度と気圧をInternetで送る(概要編)

2019-08-04 11:11:30 | ESP8266DEVkitで遊ぶ

(中央の基板がESP8266DEVkit、右側の小さい基板がBMP280。)

前書き:

2019年初めのころ?ebayをうろついていたら、ESP8266DEVkitなるものを発見。5cmx3cmくらいのESP8266というSoCが搭載されたDevelopment Kitのボード。面白そうなので、ぽちってみた。しばらく放置していたのだが、夏になると部屋の中が暑くなるので室内にいるうさぎさんが暑かろう、と、室温が上がったらエアコンを入れるようなことをしようと、センサ(BME280-を買ったはずがBMP280がebayから届く、という迷走あり)を買い求め、一応温度が取れるようになったので、ここまでの備忘録、まとめ。

ESP8266DEVkitとは:

ESP8266DEVkitの詳細は、他を参照してもらうとして、一言でいうとこいつは、非常にコンパクトに作られたCPUが載った制御用ボード。なので、外部デバイス(今回は温度センサです)を接続して、ソフトを書いてあげると所望?の動作をしてくれます。

また、このDEVkitは、microUSBコネクタがついていて、スマホ接続につかうケーブル一本でPCとUSBでシリアル通信ができ、それだけで開発ができる、というのが良いところです。開発用のソフトは後述しますが、たくさんあって、Aruduino開発環境を使う方法、LUAという組み込み用、高速?スクリプト言語を使う方法、Pythonを使う方法、、、、どれでもどうぞ、ですが、私は、あえてLUAで制御する方法を選択しました。

今回作ったものの概要:

システム構成は、

 ハード:ESP8266DEVkitに、i2cでBMP280を接続、micro-USBでパソコンのUSBにSerial接続してソフト書込み

 ソフト:ESP8266側でnodeMCU、パソコン上でLUAを書いてESP8266にダウンロード、i2cでBMP280を制御、wifiを接続、MQTTを制御

動作的には、ESP8266でMQTT Brokerのサーバへ温度と気圧を定期的にMQTTパブリッシャとして送信する、というものです。MQTTのBloker(データ中継する)と、データの受信は、MQTTサブスクライバ(データを受信する方)ができるソフトを使ってデータを確認しました。これも後述します。

以下、コアな部品(ハードウェア/ソフトウェア)について概要を記載します。

 ESP8266DEVkit:実はこれにも種類があります。コアチップであるESP8266は同じでも、複数種類あるようです。私はAmica社製のものを購入しました。ボードの裏にでかでかとAmicaと書いてあります。電源は開発中はmicroUSB経由でPCから、単体動作の場合は、やはりmicroUSB経由、ないしは、電池(3.3VでOK)で動かします。

 BMP280とBME280:Bosch社のセンサ。今回使ったのは1cmx1.5cmくらいの基板に乗っかった、i2cで制御できるモジュールです。BME280は温度、湿度、気圧が測れるデバイス、BMP280は温度と気圧のみが測れるデバイスですが、売る側でも混同して売っているところがあります(これに引っかかった)。デバイス自体の形状は、正方形→BME280、長方形→BMP280、価格はBME280>BMP280(数倍違う感じ)。大陸でお買い求めの場合は、100円程度のものはたぶんBMP280です。

 LUA:ブラジルの大学で作られたスクリプト言語だそうです。組込み、軽量、高性能ということでゲーム機やら、ヤマハのルータ、面白いところではnyaosというwindows用のShellがあるのだが、それの制御用にLUAがインプリされている。詳しくは他の方に譲ります。

 i2c:i2cはインタフェースの名称なので詳しくは他の方の記載を参照していただくとして、概要はハードウェア側面/ソフトウェア側面がありますが、ハードウェア側の特徴はクロックとデータとグランドの3本で通信できる、ソフトウェア側は、今回nodeMCUの一部としてモジュールが提供されているので、それを使いました。

 MQTT:Message Queueing Telemetry Transport。少ないデータを効率よく送る仕組みだそうです。よく知るところでは、FacebookMessengerでこのプロトコルを使っているようです。これもnodeMCUのモジュールとして組込み利用しました。MQTTの詳細については同様、詳しくは他の方に譲ります。

 システム全体の概略図を以下に示します。