PingPongFrogBlogAboutRaspberryPiで温湿度計測1ラズパイにセンサーを取り付けて温度・湿度を計測し、その結果をメール送信するプログラムを作成しました。繋ぐ次回へ続くはじめに部屋の湿度が高めです。「常に除湿器を稼働させておく訳にもいかないし、湿度が高くなったらお知らせをしてくれる、そんなプログラムを作れないだろうか?」こういったところから始まりました。2022年6月20日辺りにこのプログラムは完成しました。メモなどを見て過去を振り返りながら書いています。ラズパイのGPIOにI2Cで温湿度センサーを繋げて、プログラムでセンサーを制御し室温・湿度を取得、メール送信させます。電子工作の経験ほぼ無し、はんだ付けは学校の授業で体験した程度ですので、まずは道具の購入から入りました。コードはPythonで記述。センサーで単発計測を行いsmbusで温湿度を取得、計測結果をsmtplibでメール送信します。計測・送信の定期実行はcronで行います。決まった時間になると、または温度・湿度が制限を超えた時、こんなメールがラズパイから送られてきます。前半がセンサーをラズパイに繋げる作業であり、後半はプログラミングでセンサーを制御する作業になります。回路を繋ぐについてです。続いて、温湿度センサー。こちらはSENSIRION製のSHT31-DISを選択しました。普段、ラズパイの学習に『これ一冊でできる!ラズベリーパイ超入門』を読んでいますが、こちらのI2Cデバイスの章では温湿度計測にHoneywell製のHIH-6130を使用しています。調べてみると、SHT31を使用したものが1,000円、HIH-6130を使用したものが3,500円程度でした。失敗する可能性を考慮して、今回はお手頃なSHT31にしました。秋葉原の秋月電子さんで購入しました。お店の奥のパーツキャビネットに入っていました。チャック袋で売られているんですね。小さい箱で梱包されているイメージだったので意外でした。ピンヘッダは付属しています。はんだ付けはされていません。SHT31サイズは14×12mmピンは10本のものが付属(半分にカットして使用)詳しくないのですが、各社が開発したセンサーをボード化したものを、モジュール、という呼び方で販売しているようです。センサー自体は上部の黒い立方体、ということでしょうか。はんだ付け後センサーは約3×3mmジャンパー線・ブレッドボード手持ちのものを使用。以前、ラズパイのGPIOを使いLEDを点灯させる実験用に秋葉原で購入したものです。オスーオス型は色各種あったのですが、オスーメス型は赤と青しか持っていませんでした。役割毎に色を変えた方がわかりやすかったですね。はんだ付けの道具センサーモジュールのピンヘッダのはんだ付け作業に必要となります。太洋電機産業製で揃えました。購入にあたり日本はんだ付け協会様のページ「はんだごての選び方」を参考にさせていただきました。制御温度350°Cに達するとランプが点滅してお知らせしてくれます。こて台:ST-27重量485gST-40BWとST-53SPが付属(金属クリーナーとスポンジ)火傷や事故は困るのでしっかりしたものを選択しました。:約24cm(青)はんだごての抜き差しの際、扱いにくさや危険を感じることはなかったです。無事、作業を終えることができました。ヒートクリップはH-2SLを購入。H-1SとH-1Lがセットになっているようです。はんだはSD-60を選択しました。経験者の友人曰く鉛入りは融点が低いので扱い易いらしいです。健康被害については、今後はんだづけをする機会が増えた時に考えることにします。どのこてさきが適切なのか全くわからないので、念のためPX-2RT-2Cを購入。加えてはんだ吸取線CP-1515を購入。この二つは結局使用しませんでした。フラックスは購入しませんでした。使いどころがわたしには判断できないだろう、と思いましたので。鉛入りはんだSD-60吸取線CP-1515こてさきPX-2RT-2CヒートクリップH-2SLヒートクリップH-2SLその他のはんだ付け用品はんだごて一式で計7,000円弱でした。今回だけで終わらせるのはもったいないので、使う機会を見つけていきたいです。使用後、はんだで保護。焼き付いている?はんだ付けはんだ付けでI2Cアドレスを決めるはんだ付けの仕方が、後のコーディングで指定するI2Cアドレスに影響します。単純にピンヘッダとセンサーの端子の隙間をはんだで埋めればよい、ということではなく、目的に叶うはんだ付けのやり方があるようです。正しいはんだ付けの方法を探っていきます。高精度温湿度センサモジュールキット」のページから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は以下の端子を使用しました。GND『これ一冊でできる!ラズベリーパイ超入門』を参考にしています。GPIOの配置がわかりやすい図で説明されています。ケースのファンに1、9番を繋いでいたので、こちらは17番3.3vと34番GNDに変更しました。温湿度センサーSHT31に付属している説明書に各端子の役割が記載されていますし、センサーモジュール本体にもプリントされています。繋ぐブレッドボードにはんだ付けしたセンサーのピンを差し込み、ラズパイとセンサーの各端子の間をジャンパー線で繋ぎます。こちらも『これ一冊でできる!ラズベリーパイ超入門』を参考にしました。使用しているセンサーは異なりますが、ラズパイとセンサーで同じ名前(役割)の端子を繋げればよい、その様子がわかりやすいです。センサーモジュールラズパイ次回へ続く今回はここまでです。次の投稿では、はんだ付け及び回路の接続がうまくできているのか、その確認を行います。プログラム作成I(smbus)について書く予定です。温湿度センサーcommentコメントをキャンセルTwitterYouTube。