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

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

ESP8266DEVkit, nodeMCU, LUAで温度と気圧をInternetで送る(software編1-nodeMCUのbuildとinstall)

2019-12-16 22:29:53 | ESP8266DEVkitで遊ぶ
今回は、ESP8266DEVkitを使ったアプリ開発の話です。開発環境は、ArduinoやmicroPython、など色々あるようですが、私の開発環境のベースは、LUA/nodeMCU on Windows10です。Windows10の上で、USBでESP8266DEVkitを接続して開発をしました。当初、色々と調べ、Arduino IDEを使っての開発をされている方がほとんどのようで、私も”Lチカ”くらいまではやってみましたが、どうせやったことがない(PICは開発経験はありますが、Arduinoは無い、、)のなら同じと思い、あえてわからない方、LUA/nodeMCU、にチャレンジしてみました。

 とはいえ、そう決めてやり始めたのは良いですが、日本国内(日本語の)情報は非常に少なく、また、nodeMCUのバージョンによる違いで動かなかったり、結構苦労しました。Quick Hackに近いのですが、それでも、LUAの考え方などがある程度把握できて面白かったです。


ソフトウェア・システム概要:


 ESP8266DEVkitのソフトウェア部は、nodeMCU(Firmwareに相当するのだと思います)、とその上で動くアプリ(LUA言語)の組み合わせで動きます。まずはnodeMCUのbuildとbuildしたもののESP8266DEVkitへのインストールについて記載します。


■nodeMCUをbuildする


ESP8266DEVkitのメモリ容量は限られているので、必要なモジュールを選択してbuildします。どのようなものを作るのか、で異なりますが、大きな上位アプリをつくのでなければそんなに気にしなくても大丈夫なようです。使いそうなものを選択してbuildします。nodeMCUは、自分で環境を作ってbuildすることもできますが、必要なモジュールを選択したnodeMCUをbuidしてくれるサイトがあるので、そこで作りました。

https://nodemcu-build.com/

メールアドレスなどを入れて、必要なモジュールを選択してsubmitするとbuildされた結果のURLがmailで送られてきます。サイトの込み具合?で時間はまちまちのようですが、10分程度から混んでいると1時間程でmail返送されてきます。download-URLがmailに入っているのでそこから自分のPCにdownloadします。


モジュールの選択例


上記URLをたどって必要なモジュールを選択します。Submitすると以下の画面で、選択したモジュールなどの情報が表示されます。この情報は、DEVkitに乗せた後、resetすると表示されるので、忘れても問題無いです。ちなみに以下は、mqttモジュールを追加したかったので再buildしたものです。@2019/7/21

img

すいていると、10分位で設定したメールアドレスにURL付きで帰ってきますが混んでいると時間単位かかります。それをdownloadします。

上記URLを見てゆくと、どんなモジュールが多くbuildされているとか、どの国からのbuildアクセスがあるか、とかのStatusが出ています。日本からのアクセスは、、、残念ながら少ないようです。

★HINTS:

ESP8266DEVkitの購入当初には何が入っているかわかりません。仮にnodeMCUが入っていても新規にbuildしたものを使いましょう。古いversionと新しいversionで、I/Fが変わっているものがある(思ったように動かなくてハマった、、特にタイマー系は途中で一部I/Fが変更されていて、前人のsourceをコピペしても動かない、ということが多々ありました)ので、nodeMCUのversionは気にしておくべきです。私が購入したDEVkitはATコマンドで動くものが入っていました。これは消してしまって問題なく、上記でbuildしたnodeMCUを上書きします。 後述しますが、上位アプリ(LUA)でプログラムを作るときは、https://nodemcu.readthedocs.io/en/master/  のあたりのI/Fを見ながら作ると良いと思います。I/Fの詳細、例なども載っているのでお薦めです(英語ですが、、)。


■nodeMCUをESP8266DEVkitにインストールする


CUIやGUIでインストールするものなどたくさんありますが、私は、「ESP8266Flasher.exe」というアプリを使ってnodeMCUをインストールしました。USBでPC本体とDEVkitを接続します。上記でbuildしたものをアプリで選択して、ダウンロードすればインストールされます。

ESP8266Flasher.exeを使う

  1. 「Config」で、上記でbuildしたxxxx.bin、を選択して、Offset、0x0000を設定 一番先頭に「×」をチェックする
  2. 「Operation」で、COM Portを設定する
  3. 「Flash」でDownloadする
  4. 「Log」でチェックする

COM Portはそれぞれの環境で異なりますので、ご自分のPCで確認してください。特に、USBのシリアルのドライバは、ESP8266DEVkitで使われているSerial-Chipのドライバになります。USBケーブルをつなぐことでPlugAndPlayで自動的にインストールされれば良いですが、されないようでしたら探してインストールが必要になります。私の場合のドライバは、次の通りです。

  • Silicon Labs CP210x USB to UART Bridge v10.1.8.2466

次は上位アプリの開発です。

ーーーー
この文章は、”Typora”でmarkdownで書いたものを、htmlでexportして書いてみました。goo blogもmarkdownでかけると良いのですが。

2019/10/12 台風19号の気圧変化を取ってみた(番外編)

2019-10-22 22:07:07 | ESP8266DEVkitで遊ぶ
先日2019年9月の台風15号に引き続き、台風19号(2019/10/12)も気圧変化をとってみました。15号は我が家の真上を、また19号は我が家のちょっと北を通過してゆきました。
 今回は、pythonでbrokerに接続するsubscriberを作成し、受信データをファイルに落とし、更にそのデータを5分おきにgnuplotを使ってグラフ化するようにして、襲来の時刻も早い時間だったのでグラフをちょくちょく覗いて気圧変化を見ていました。
 途中20:00ちょっと過ぎに、底打ち(967.095ヘクトパスカル@20:06)を確認して近いところを通り過ぎたんだな、というのがわかりました。
 気圧のトレンドは継続的に取って可視化すると面白いかもしれません。
たまに覗きにゆく、ラジオペンチさんのページにも台風19号の気圧変化のグラフが出ていました。最低気圧が965ヘクトパスカル、とありましたので、うちよりちょっと低い値を示していたようです。

nodeMCU, LUA, Python subscriber, barometer, gnuplot

ESP8266DEVkit, nodeMCU, LUAで温度と気圧をInternetで送る(ハードウェア編)

2019-10-22 16:15:30 | ESP8266DEVkitで遊ぶ
概要編から随分立ってしまいました。忘れないうちに。
 ハードウェア、と言ってもnodeMCUからBMP280が乗った小基板(GY-BMP28)に電源3.3VとGND、i2cの信号線SCL(SCK)とSDAの4本をつなぐだけです。あとは、Deep Sleepを組み込むために必要な、RSTとD0(GPIO16)をつなぎ、3.3Vに20kΩでPull-Upします。(Deep Sleepを使わない場合は、結線の必要はありません。Deep Sleepは、消費電力を極端に下げる仕組みです。消費電流がmAからμAになります。)
 nodeMCUへの電源供給は、MicroUSBからの5Vで給電しますが、VinとGNDに直接接続でも構わないと思われます(要確認)。nodeMCUの3V3(3.3V)端子は出力だと思いますので、供給はしないこと。
 GY-BMP280は、i2cで使用する場合は、5:CSBと6:SDOをオープンにしておくとi2cアドレスが0x76になります。同じ基板を2枚接続しない場合は、このままで大丈夫です。

2019/9 台風15号の気圧変化を取ってみた(番外編)

2019-09-16 11:23:01 | ESP8266DEVkitで遊ぶ

2019年9月9日に首都圏に上陸し、甚大な被害を及ぼした台風15号。

今回作ったものを使って、気圧変化を取ってみました。丁度?我が家の上空を通過してゆきました。データが途中欠落していますが、夜中の1時頃から6時過ぎまで停電となり、夜中に気が付いてwifiルータ、PCをポータブルバッテリーにつなぎ変えるまでの間、データ抜けてしました。その後はグラフが止まっているところでバッテリーも無くなり停止しました。

データを見ると、02:37:58のタイムスタンプで、959.714ヘクトパスカルが最低気圧でした。ニュースでの台風情報では960ヘクトパスカルと言っていたのでそんなもんかと。そのころ丁度台風の目に入って、風もやみ静かな時間帯でした。近くの消防署の気象観測データを見てもその時間帯に960ヘクトパスカルあたりなので、結構正確なようです。

ということで、実力はあることがわかりました。

ESP8266DEVkit,BMP280,nodeMCU,LUA,wifi,MQTT,i2c,2019/9/9,台風15号


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

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 電流計測