久しぶりの電子工作ネタです。
今まで多く行っていた電子工作といえば「Raspberry Py(ラズベリーパイ、以降ラズパイ)」。
言語はPythonを利用してプログラムを作り、環境を測定するためのシステムを組んで実験していました。
建物の性能測定
どのような実験をしていたのかといえば、建物がどのような環境になっているのかを測定していました。
単純に部屋の環境を測定するだけではなくて、壁の中の環境を知りたかったのです。
しかし、それらを測定するためのシステムは発売されていないようです。
測定したいと思っても、測定するのが難しいのです。
そこで、自分で開発することにしました。
その時のシステムに使ったのがラズパイ。
なんとかシステムを作ることができ、測定もできるようになりました。
しかし、問題もあります。
安定性がイマイチ。
もう少し手間がかからないようにと色々とやってみるのですが、期待通りに動かないこともいくつかありました。
これらの問題は、質問できる方もおらず解決できませんでした。
Arduinoで環境測定
そこで気になっていた「Arduino(アルディーノ)」に挑戦することにしました。
と言っても、最初はどうすれば良いのかわかりません。
今回やりたいことは「温度・湿度」を測定して、ブラウザで見れるようにすることです。
このような時に参考にするのは「本」です。
そこでArduinoに関する本を5〜6冊くらい購入。
わからないながらも、目的に達することが出来る希望が湧いてきました。
最初は、測定
このようなシステムを作る時には、最初から完成させるのは私のような素人には無理。
そこで、まずは測定できるシステムを作りました。
それが、こちらです。
センサーは「 BME280 」を利用しました。
真ん中あたりにある緑色の部分にセンサーが付いています。
写真では反対側が写ってしまっているので、センサー自体は写っていません。
表示されている内容の
- 「T」は温度
- 「H」は湿度
- 「P」は大気圧
です。
表示パネルには有機ELを使っていますが、さすがに見やすいですね。
次は、測定結果をwifiで飛ばしてブラウザで見れるように
測定できるようになりましたが、目的からはまだ半分くらいです。
測定結果をwifiで飛ばしてブラウザで見れるようにしたい。
そこで利用したのが「ESP-WROOM-32D開発ボード」です。
「ESP-WROOM-32D開発ボード」は、元々Arduinoにwifiの機能を持たせるための物。
ところが、ESP-WROOM-32D開発ボード自体がArduinoの機能を持っているということで、今回はそのシステムを採用しました。
完成したのが、こちらです。
前の写真と見比べると、随分と違いますね。
本体が小さくもなっています。
表示の上の部分には、温度、湿度、大気圧を表示。
下の部分には、IPアドレスを表示しています。
このIPアドレスをブラウザのアドレス欄に入力すると。測定データを表示してくれます。
ブラウザからデータを見ると、本体のLEDが光るようにもなっています。
最初のArduinoとESP-WROOM-32D開発ボードでは、少し仕様が違っています。
写真を比べると、パーツが一つ減っていますね。
これは、信号の電圧がArduinoは5Vなので変圧させなくてはいけないのですが、ESP-WROOM-32D開発ボードでは変圧をする必要がないようなためです。
ESP-WROOM-32D開発ボードの説明にもなっている本「『ESP8266』でつくるデータロガー」(工学社)にも変圧の回路はのっていないので、大丈夫なようですね。
ここまでくれば、なんとか測定してデータログをしていくことが出来そうです。
と、言いたいところですが、変圧が必要だと思っていたのでその部品を大量購入済み、、、
う〜〜ん、どうしましょう。
ここでひと段落なのですが、まだ改良点はあります。
センサーはもう一つつけられるので、2つのセンサーで測定できるようにしたいです。
他には、時計の機能をのせたりとか、余計な機能を乗せることも考えています。
Arduinoを避けていたのは、C言語を使うから
Arduinoは、どこのお店でもラズパイと並んで発売されています。
しかし、最近まで避けてきました。
その理由が「C言語」を使うから。
今まで何度もC言語の本は読んだことがあるのですが、いつも途中挫折。
「猫でもわかる C言語プログラミング」
という本を読んだ時にも挫折して、私は猫以下ということになっていたのです。
ところが、最近は本もわかりやすくなり、ネットの情報にも助けられました。
プログラムの深いところは理解できなくても、本やネットの情報を何となく組み合わせていくだけで、今回のようなシステムが組めるようになりました。
良い時代になりましたね。
これから、これらをどのようにパッケージにしていくのかを考えます。
お願い:
あくまでも素人が作ってるシステムです。
参考になさる場合には、ご注意ください。