【電子工作】Wi-Fiを活用して機能を分散する・構想編

こんにちは。
今回は、温度ロガーとして使っているRaspberryPiの温度測定機能を、ESP32を使用して分離したいと思います。

この記事は以下の記事の続きです。

運用中の気温ロガー

現時点では、RaspberryPiのGPIOに直接温度センサー(DHT11)を接続して、気温を計測しています。

この状態では、ブレッドボードから配線が抜けないか気を配らなければなりませんし、見た目も不格好です。
また、こんな怪しい機械、なるべく人目につかない場所に置きたいのですが
、配置するための占有面積が大きくなるので、なかなか隠し場所を見つけることができません。
そこで、温度センサをGPIOから切り離すために、Wi-Fi搭載のマイコン・ESP32を使い、測定データを無線LANを介してRaspberryPiに保存するようにしようと思います。

システムの改善案

構想

通信方式

通信方式もいろいろあるようですが、今回は簡単そうなUDP通信を使ってみます。
UDP通信は簡単に言うと、送り先のIPアドレス・ポート番号に向かって一方的にメッセージを投げつけるような方式です。
その他にTCP/IPというものがあり、こちらは通信前に双方が接続されていることを確認してからメッセージを送信するような方式です。
イメージとしてはUDPがドッジボール、TCP/IPがキャッチボールみたいな感じですかね?

UDPは接続確認が不要な分、通信の手続きが楽で比較的速い通信ができますが、何らかの原因でメッセージが届いていなくても、それを検知することができないので信頼性に欠けます。
TCP/IPのほうが確実にメッセージを送ることができますが、接続の確認の手間の分、通信が比較的遅いようです。

今回は、送信するのは温度と湿度のみで、大したデータ量ではなく、また、家庭内のネットワーク内のみでの通信なので、メッセージが迷子になるようなことも多分ないでしょう。
よって、UDP通信を採用します。
(本音は、UDPでコード書くほうが楽そうだから)

温湿度測定機の仕様

マイコンボードはESP32開発ボードを使います。
今回は下記のボードを購入しました。

温湿度センサは今までに引き続き、DHT11を使用します。
とりあえずこれでやりたいことはできるようになりましたが、せっかくそれなりに良いマイコンボードを使うので、ただ温度を測ってデータを送るだけではつまらない気がします。
そこで、さらに、
①LCDで現在の温度・湿度を表示させる
②フィルタ処理を追加してノイズカット
の機能を追加します。

①LCDの追加

LCDとは液晶画面(Liquid Crystal Display)のことです。
動いてる感を出す・かっこつけるためにはうってつけの部品です。
今回は下記の部品を購入しました。

このLCDは、16文字×2列の1バイト文字(英数字と半角カタカナ)を表示させることができます。
今回の用途には必要十分の情報量です。

②フィルタ処理の追加

通常、センサで測定したデータはノイズ等により測定値にブレが発生します。
このブレを除去するのがフィルタです。
今回は、アベレージング処理によるフィルタを適用します。
アベレージングとは、現時点から過去数回分のデータの平均値を計算し、その結果をフィルタを通した値とする処理になります。
こうすることで、測定値のブレが平均化されるので、ブレを除去することができます。

アベレージング処理の概念図

長くなってしまったので、今回はここまでにします。
次回は、実際に製作に入りたいと思います。

この記事が気に入ったらサポートをしてみませんか?