LPS331とPIC16F1827で気圧・温度計を作った

※記事内に商品プロモーションを含む場合があります

前回の気圧計は基板むき出しでしたが、今回はケースに入れました。
【関連】PICでシリアル送信機能付の気圧・温度・湿度計を作った

気圧・温度計のハード部分

電源は単3ニッケル水素充電池から1.2vを取りHT7733で3.3Vに昇圧します。
すべてのセンサー・液晶などのデバイスはI2C接続です。

センサーには気圧取得用にLPS331、
気温、湿度取得用にAM2321
放射温度取得用に放射温度計センサMLX90614を使用しました。

出力端子はUSART送信・GND端子とI2C用、VCC・SCL・SDA・GND端子。
USART受信機能はありません。

RS232cのシリアルにするにはレベル変換が必要みたいですが、
Arduino で作ったUSART SDロガーや
秋月で売っているのFT232を使用したUSBシリアル変換モジュールに接続すれば
直接接続出来ます。
【参考】FT232RL USBシリアル変換モジュール

ニッケル水素充電池の電圧取得用にAN0をアナログ入力にして電池電圧を
取得出来る用にしました。
充電は、ストロベリーリナックスで売っている降圧型のLEDドライバを流用しました。
このままだと過充電になってしまうので、充電ON/OFFのコントロールも
PICで出来る用にしました。
【参考】LED用定電流ドライバモジュール(70mA~350mA可変)<降圧型>

充電用コネクタはマイクロUSBコネクタにしました。

一応、ボタンも2つ付け、片方は画面の切り替えに使用しました。
しかし、2つ目のボタンはプログラム領域が無いのでただの飾りになってしまいました。

ケースは秋月で売っているポリカーボネートケースを加工しました。
アクリルケースだと、穴あけ時に割れることがありますが、ポリカーボネートは
粘りがあるので丈夫です。

LPS331は光でも誤差が増えるのでケースを青く塗りました。
最初はスプレーでやりましたが、失敗したので筆塗りのエナメル塗料を使用しました。

気温・湿度取得用のAM2321は外側に設置しました。
LPS331で作った気圧計・外側に出てるAM2321

放射温度センサーは底側に設置しました。
ケースの裏側に設置した放射温度計センサMLX90614

はんだごてを測ってみると101℃
放射温度計センサMLX90614ではんだごての温度を計った

直冷式冷蔵庫の冷却器の温度を計ってみた

直冷式冷蔵庫の冷却器の温度を計ってみた

気圧・温度計のソフト部分

一番やっかいなのがLPS331、すごく誤差があります。

前の気圧計は、適当に設定したので1秒に1回気圧を測定する用になっていますが
SCP1000で作った気圧計と1hPa以上ズレる事が多いです。

試しに、今回作った気圧計と前回作った気圧計を並べてみました。
するとこんなにズレています、同じセンサーを使っているのに不思議です。
IMG_6900
なので、今回はワンショットモードで動作させました。

ワンショットモードでの取得などはこちらの記事とArduino用のコードを参考にしました。
【参考】LPS331を使った気圧高度計の製作、不具合解決

ワンショットモードで動作させたら、
SCP1000と8ピンPICで作った気圧計
と比べても気圧はほぼ同じになりました。
SCP1000と8ピンPICで作った気圧計とLPS331で作った気圧計の比較
多少は、気圧のゆらぎがあるのでどうしてもズレます。

温度・湿度はAM2321なので数値は安定しています。

まとめ

今回の気圧計は気圧の値が、安定しているので良いです。
塗装の出来はかなり悪いのですが、機能的にはほぼ満足しています。

ただ、放射温度計を入れた時点でプログラムメモリの使用率が99.7%となって
しまったので左側のボタンは飾りとなってしまいました。
右のボタンが壊れた時の代用ぐらいはなるかもしれません。

今度は、高度計なども入れたいのでLPS331のみの気圧・温度計を
作ろうかと思っています。