RaspberryPiで温湿度計測①


ラズパイにセンサーを取り付けて温度・湿度を計測し、その結果をメール送信するプログラムを作成しました。

はじめに

部屋の湿度が高めです。

「PCの内部で結露、故障、なんて嫌だから、湿度を上手に管理する方法はないかな?」
「常に除湿器を稼働させておく訳にもいかないし、湿度が高くなったらお知らせをしてくれる、そんなプログラムを作れないだろうか?」
こういったところから始まりました。

2022年6月20日辺りにこのプログラムは完成しました。メモなどを見て過去を振り返りながら書いています。


ラズパイのGPIOにI²Cで温湿度センサーを繋げて、プログラムでセンサーを制御し室温・湿度を取得、メール送信させます。

電子工作の経験ほぼ無し、はんだ付けは学校の授業で体験した程度ですので、まずは道具の購入から入りました。

コードはPythonで記述。センサーで単発計測を行いsmbusで温湿度を取得、計測結果をsmtplibでメール送信します。

計測・送信の定期実行はcronで行います。決まった時間になると、または温度・湿度が制限を超えた時、こんなメールがラズパイから送られてきます。

2022/6/21/21/3
temperature: 27
humidity: 68

作成のプロセスをいくつかに分けると…

  1. 準備(温湿度センサー・はんだごての購入)
  2. はんだづけ
  3. 回路を繋ぐ
  4. プログラム作成Ⅰ(smbus)
  5. プログラム作成Ⅱ(smtplib)
  6. cronの設定

前半がセンサーをラズパイに繋げる作業であり、後半はプログラミングでセンサーを制御する作業になります。

今回は前半である1. 準備2. はんだづけ、及び3. 回路を繋ぐについてです。

はんだごてPX-335 と こて台ST-27

準備


必要なもの

温湿度測定のために必要なものをリストアップすると

  • ラズパイ
  • 温湿度センサー
  • ジャンパー線(オスーメス型)
  • ブレッドボード
  • はんだ付けの道具

ラズパイ

RaspberryPi4B

手持ちのメモリ4GBのものを使用

センサーを繋いだ状態

温湿度センサー

続いて、温湿度センサー。こちらはSENSIRION製のSHT31-DISを選択しました。

普段、ラズパイの学習に『これ一冊でできる!ラズベリーパイ超入門』を読んでいますが、こちらのI²Cデバイスの章では温湿度計測にHoneywell製のHIH-6130を使用しています。

おおよそのモジュールの値段。
調べてみると、SHT31を使用したものが1,000円、HIH-6130を使用したものが3,500円程度でした。失敗する可能性を考慮して、今回はお手頃なSHT31にしました。

秋葉原の秋月電子さんで購入しました。お店の奥のパーツキャビネットに入っていました。チャック袋で売られているんですね。小さい箱で梱包されているイメージだったので意外でした。

ピンヘッダは付属しています。はんだ付けはされていません。

SHT31

サイズは14×12㎜

ピンは10本のものが付属
(半分にカットして使用)

詳しくないのですが、各社が開発したセンサーをボード化したものを、モジュール、という呼び方で販売しているようです。センサー自体は上部の黒い立方体、ということでしょうか。

はんだ付け後

センサーは約3×3㎜

ジャンパー線・ブレッドボード

手持ちのものを使用。以前、ラズパイのGPIOを使いLEDを点灯させる実験用に秋葉原で購入したものです。

オスーオス型は色各種あったのですが、オスーメス型は赤と青しか持っていませんでした。役割毎に色を変えた方がわかりやすかったですね。

はんだ付けの道具

センサーモジュールのピンヘッダのはんだ付け作業に必要となります。

太洋電機産業製で揃えました。購入にあたり日本はんだ付け協会様のページ「はんだごての選び方」を参考にさせていただきました。

はんだごて:PX-335

温度調整機能付きセラミックヒーター

こてさきはPX-2RT-Bが付属
(コードクリップは付属しません)

コードの長さは1.4m程度

制御温度350℃に達するとランプが点滅してお知らせしてくれます。

こて台:ST-27

重量485g

ST-40BWとST-53SPが付属
(金属クリーナーとスポンジ)

火傷や事故は困るのでしっかりしたものを選択しました。

PX-335 & ST-27

はんだごてを挿した状態

高さ:約19cm(赤)

幅 :約24cm(青)

はんだごての抜き差しの際、扱いにくさや危険を感じることはなかったです。無事、作業を終えることができました。

ヒートクリップはH-2SLを購入。H-1SとH-1Lがセットになっているようです。

はんだはSD-60を選択しました。経験者の友人曰く鉛入りは融点が低いので扱い易いらしいです。健康被害については、今後はんだづけをする機会が増えた時に考えることにします。

どのこてさきが適切なのか全くわからないので、念のためPX-2RT-2Cを購入。加えてはんだ吸取線CP-1515を購入。この二つは結局使用しませんでした。

フラックスは購入しませんでした。使いどころがわたしには判断できないだろう、と思いましたので。

はんだごて一式で計7,000円弱でした。今回だけで終わらせるのはもったいないので、使う機会を見つけていきたいです。

使用後、はんだで保護。すでに焼き付いている?

はんだ付け


はんだ付けでI²Cアドレスを決める

はんだ付けの仕方が、後のコーディングで指定するI²Cアドレスに影響します。単純にピンヘッダとセンサーの端子の隙間をはんだで埋めればよい、ということではなく、目的に叶うはんだ付けのやり方があるようです。


正しいはんだ付けの方法を探っていきます。

秋月電子さんのwebサイトで「SHT31使用 高精度温湿度センサモジュールキット」のページからSHT31-DIS仕様書(日本語)が確認できます。

こちらの第3章、及び第3.4章の説明を読むに、

  • ADDR端子の未接続状態は禁止
  • ADDR端子を接地でアドレス0x44(デフォルト)
  • ADDR端子を電源ラインに接続でアドレス0x45

つまり、何もしなければ自動でアドレスが0x45になるのではなく、何かの理由でADDR端子を電源ラインに繋がなければならない時に0x45を使えるよ、という感じなんでしょうか?
0x44がデフォルト、と書いてあるのでそれに従います。

では、具体的にどうしたらいいのか?

センサーに同梱の取扱説明書には、ADRとGNDをはんだブリッジで接地するとアドレスが0x44になる、と書いてあります。これですね。

ピンヘッダの取付

はんだ付けしていきます。VDD、SDA、SCLはそのまま、ADRとGNDはブリッジさせる…。


初心者が慣れない作業に四苦八苦するも、なんとかなりました。出来が良いとは言えないのでしょうけど、成功した、ということにしておきます。

裏側

左端と隣は、はんだブリッジ

各端子の役割がプリントされている

表側

はんだ上がりが不足?

左端、右から2番目が足りていないか

こんな出来ではありますが、2022年9月20日現在でも温湿度を計測したデータを返してくれています。

ラズパイのファン付きケースはMiuzei製。使用してませんがヒートシンクも付きます。

回路を繋ぐ


ラズパイの端子を確認

ラズパイとセンサーを繋げます。

ラズパイのGPIOは以下の端子を使用しました。

  • 1番 3.3v
  • 3番 I2C SDA
  • 5番 I2C SCL
  • 9番 GND

『これ一冊でできる!ラズベリーパイ超入門』を参考にしています。GPIOの配置がわかりやすい図で説明されています。

もともとケースのファンに1、9番を繋いでいたので、こちらは17番3.3vと34番GNDに変更しました。

SHT31の端子を確認

温湿度センサーSHT31に付属している説明書に各端子の役割が記載されていますし、センサーモジュール本体にもプリントされています。

繋ぐ

ブレッドボードにはんだ付けしたセンサーのピンを差し込み、ラズパイとセンサーの各端子の間をジャンパー線で繋ぎます。

こちらも『これ一冊でできる!ラズベリーパイ超入門』を参考にしました。使用しているセンサーは異なりますが、ラズパイとセンサーで同じ名前(役割)の端子を繋げればよい、その様子がわかりやすいです。


次回へ続く


今回はここまでです。

次の投稿では、はんだ付け及び回路の接続がうまくできているのか、その確認を行います。そして4. プログラム作成Ⅰ(smbus)について書く予定です。

読んでくださった方、ありがとうございました。

著者名書籍名出版発行年月日参照頁
福田和宏これ一冊でできる!ラズベリーパイ超入門ソーテック社初版 :2020/2/29
第3刷:2021/4/20
227~
参考文献
サイト名ページタイトルURL参考にした日付
日本はんだ付け協会https://handa-npo.com/2022/9/22
はんだごての選び方https://handa-npo.com/knowledge03同上
秋月電子通商https://akizukidenshi.com/catalog/default.aspx同上
SHT31使用 高精度温湿度センサモジュールキットhttps://akizukidenshi.com/catalog/g/gK-12125/同上
SHT31-DIS仕様書(日本語)https://akizukidenshi.com/download/ds/sensirion/Sensirion_Humidity_Sensors_SHT3x_DIS_Datasheet_V3_J.pdf同上
取扱説明書https://akizukidenshi.com/download/ds/akizuki/AE-SHT3x_manu_v1.0.pdf同上
参考URL

comment