2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

センサーモジュールキットを使い倒す

Last updated at Posted at 2021-08-04

先日、Amazonで照度センサーを探していたら、以下のセンサーキットに含まれていることが判明した。

OSOYOO DIY センサーモジュール キット 常用20個 for Arduino/raspberry

面白そうなセンサーが多かったので、買ってしまった。

商品が届いたので、開封すると、仕切り付きのプラケースにセンサーだけが20個入っていた。
説明書は皆無。
ケースの中には、センサーのそれぞれの写真と簡単なセンサー名が記述された厚紙も入っていた。
これはAmazonの上記商品ページにあったものと同一である。
モジュールの型番が記述されているものは、20個中3個。あとは、「赤外線トラッキングセンサー」とか「レーザーセンサーモジュール」とか、機能が記述されているだけで型番が記述されていない。

まず、モジュールの型番を特定し、データシートや接続図を探す必要がある。

商品ページを見返してみると、日本語マニュアルのリンクがあった。

Osoyoo センサーモジュール キット 20種セット for Arduino / Raspberry Pi 日本語チュートリアル

確かにArduinoとの接続図やArduinoのサンプルコードはあったが、よくわからないことが多かったので、その辺、まとめてみた。

1. DS18B20温度センサー

DS18B20に関しては、以前以下の記事をアップした。

太陽光発電の発電量をロギングしてみた。(5)温度の計測(DS18B20) & RaspberryPiで電流・電圧・温度をロギング

形状は異なるが、センサーは同じ型で、3本端子の1-Wireで通信を行う。
ここでは省略。

2. BH1750光センサーモジュール

これは型番が記述されており、Amazonで検索すると、同一と思われるモジュールがいくつか検索できる。
このモジュールのみ、ピンヘッダのはんだ付けが必要である。
端子は5本あり、VCC,GND,SDA,SCLとADDRである。
ADDRはI2C通信でのデバイス番号の設定に使用する。
そのままADDRが開放状態であれば0x23、VCCと短絡させてHIGHにすると0x5Cになる。
通常ADDRは開放でよいが、複数のI2Cデバイスと通信する場合で、デバイス番号が重なる場合は短絡させる必要がある。

pythonでこのモジュールから値を取得するのは直接I2Cを読み取って算出することもできるが、ライブラリを使用するのが一番簡単である。

adafruit-circuitpython-bh1750

pip3 install adafruit-blinka
sudo pip3 install adafruit-circuitpython-bh1750

3. 可燃ガス/煙センサー

これは、センサー部分に大きく「MQ-2」と書かれているので、MQ-2でググるといろいろ類似商品が出てくる。
データシートは以下。

MQ-2 データシート

このモジュールには4ピンあり、VCC,GND,D0,A0である。
D0はプルアップされており、ガス検知したときに HIGH-->LOW に変化する。
A0はアナログ値が出力される。特にアナログ値からppmへの変換式はデータシートに記載されていないので参考値である。
頑張ればデータシート記載のグラフから推定値を計算することは可能かもしれない。

とりあえず、Microbitで回路を組んでみた。
image.png

以下、MakeCodeのプログラムである。
image.png

このセンサーは、LPガスやプロパンガス、水素、アルコール、煙に反応する。
どのように動作検証しようかと考え、最初、換気しながらガスコンロのガスを微量に放出してみたが、反応しなかった。都市ガスだとあまり反応しないのかもしれない。
一番簡単なチェック方法は、蚊取り線香だった。昔ながらの渦巻き型蚊取り線香に火をつけ、その煙でセンサーを燻してみたら確実に反応した。

煙・ガスを検出時、D0がLOWになると同時に、MQ-2モジュール裏面の緑色LEDが点灯する。

4. 火炎検知センサー

このセンサー、型番がないが、Amazonで検索すると、以下、類似商品が見つかった。

Rasbee KY-026 火炎センサモジュール IR炎センサー

火炎検知って結局赤外線を検知するようだ。
検出角度60度の範囲で、760-1100nmの光線に反応するとのこと。

このセンサーも上記の可燃ガス/煙センサーと同様、VCC,GND,D0,A0の4ピンである。
そのため、配線的には可燃ガス/煙センサーを火炎検知センサーに置き換えるだけでそのまま使用できる。
ただ、残念なことにこのセンサーはD0が火炎検知時に LOW-->HIGH なので、可燃ガス/煙センサーとは反対になる。プログラムもそこのところ修正が必要である。

image.png

ガスコンロの火で動作確認をしてみる。速攻で反応し、モジュールの緑色LEDが光る。
ただ、このセンサーをどのような目的で使用するかによるが、火災報知器として使うには検出範囲の60度は意外と狭いように感じた。

5. タッチセンサーモジュール

こちらも、Amazonで類似の商品はこちら。

信号出力DC5V金属5個センサー、高品質タッチセンサーモジュール

このセンサーも上記の火炎検知センサーと同様、VCC,GND,D0,A0の4ピンである。
5Vとあるが、3Vでも動作した。
D0は接触時、LOW-->HIGH であるので、配線もプログラムも火炎検知センサーと同じで行けた。
このセンサーも火炎センサー同様、D0がHIGHになると緑色LEDが点灯する。

6. マイク/サウンドセンサー

Amazonでの類似商品

HUABAN 3ピース KY-037高感度マイクセンサーモジュール

データシートはこちら

sensor module. KY-037 Datasheet

このセンサーも上記の火炎検知センサーと同様、VCC,GND,D0,A0の4ピンである。
5Vとあるが、3Vでも動作した。
とりあえず、火炎センサーのときと同じ回路、同じプログラムで動く。

しかし、このセンサー、動きが微妙たった。個体差かもしれないが、、、

ポテンショメータを回して感度を調整しないと使えなかった。時計回りで高感度に、反時計回りで低感度になる。
このセンサーのA0端子からの出力は、信号がないときが大きく、信号があるときほど小さくなって0に近づく。
逆に、D0端子からの出力は信号レベルが閾値を超えると LOW-->HIGH となる。
ポテンショメータを低感度になるほうに回していくと、A0はAD変換のMAX値を示すようになる。
高感度になるほうに回していくと、A0のAD変換値は0に近づいていくのでこのことを確認できる。

Microbitは10bitでA/D変換するので、MAXは1023。
A0出力値がちょうどこの真ん中くらい(510くらい?)に調整すると、緑色LEDが音に反応して点滅するようになった。しかし、D0がHIGHにならない!

テスターで計測してみると、D0の出力電力が1Vに満たないことが分かった。
やっぱり電源電圧は5Vがよいのかもしれない。

7. ホール効果センサモジュール

Amazonで類似の商品はこちら。

WINGONEER 5pcs ホール効果KY-003磁気センサーモジュール

ホール効果とは、流れている電流に垂直に磁場をかけると、電流・磁場にそれぞれ直行する方向に起電力が発生する現象のことである。
このセンサは、ホール効果を利用して磁気の検出を行う。

このセンサについて詳しく以下のページに書かれていた。

[Arduino] KY-003 44E402 Magnetic Hall Switch Sensorを動かしてみる – 37 in 1 Sensors kit for Arduino

8. 赤外線トラッキングセンサー

Amazonでの類似商品

Milageto TCRT5000 IR赤外線ライントラッキングセンサー障害物回避モジュール

TCRT5000でググると、分かりやすく説明してくださっているサイトがあった。

【TCRT5000】フォトリフレクタセンサを使う

トラッキングセンサーってラインとレーザーでよく使われる、フォトリフレクタだったんだとわかった。

9. デジタル温度/湿度センサー

Amazonでの商品ページ

OSOYOO DHT11 デジタル 温度 湿度 センサー モジュール

DHT11は1-Wireに似た1線式デジタル通信を行う。

データシートはこちら

DHT11_20180119.pdf

10. 3色フルカラー SMD LEDモジュール

Amazonにある類似商品

HUABAN 3ピース KY-009 3色フルカラーLED smdモジュール

データシートはここ

KY-009 Datasheet

11. 赤外線リモコン受信モジュール

Amazonでの類似商品

赤外線IRセンサ受信機モジュール KY-022 FOR ARDUINO

このモジュールは名前の通り、赤外線リモコンの信号を受信する。セット同梱の赤外線送信モジュールとセットで使うことを想定しているのだろうか?

赤外線での送受信はLIRC(Linux Infrared Remote Control)を用いると簡単にできるようだ。

【参考サイト】

LIRC

LIRCでRaspberry Piの赤外線制御 (家電、エアコン、照明、テレビなどを制御するホームIoT)

12. 赤外線送信モジュール

Amazonでも同一形状のモジュールが見つけられなかった。
IRエミッタのアノード側に抵抗が取り付けられているだけのシンプルな構造だ。
出力端子は3本でS,VCC,GNDだ。Sは信号線である。

こちらも上記で述べたLIRCを利用する。
下記のサイトが非常にわかりやすかった。

PythonとpigpioでRaspberry Piの赤外線制御 (家電、エアコン、照明、テレビなどを制御するホームIoT)

上記のサイトを参考に、赤外線リモコン受信モジュールと赤外線送信モジュールをRaspberrypi3に接続し、作者がgithubで公開しているPythonモジュールを利用して試してみた。
本当に簡単にテレビリモコンの赤外線信号を記録し、送信モジュールから記録した信号をテレビに向かって送信することで、操作することができた。
スマートホーム化に一歩近づけた気がする。

13. HC06 Bluetoothモジュール

こちらは、型番がわかっているので、HC-06で検索するとたくさんヒットする。

Bluetoothシリアルモジュール(1) HC-06

とか、

Arduinoを用いてHC-06でAndroidとBluetooth通信をする

など、とてもわかりやすくまとめてくださっているので、ここでは説明を省略する。

14. 5Vリレーモジュール

Amazonでの類似商品

ARCELI 5PCS KY-019 Arduinoリレー用PIC AVR DSP ARM用5V 1チャンネルリレーモジュールボードシールド

KY-019のデータシート

KY-019 5V Relais module

データシートによると、端子台にNOとNCがあるが、

「NO」は Normally Opend で、制御対象の電流がデフォルトでONの回路で使用する。
「NC」は Normally Closed で、制御対象の電流がデフォルトでOFFの回路で使用する。

入力端子は、GND、5V、Signalの3つ。
SignalがHIGHの間、NOはON、NCはOFFになる。

15. レーザーセンサーモジュール

Amazonでの類似商品

Calloy KY-008 センサーモジュールボード レーザードットダイオードセンサーモジュール

レーザーとは、波長がほとんど一定の電磁波で、直進性がよい。波長はマイクロ波からミリ波まで様々だが、このセンサーは650nmなので可視光である。

このセンサーはレーザーレシーバーモジュールとセットで使うようだ。
よく映画やドラマで、レーザー監視システムをかいくぐって施設に侵入したりするが、まさにそんな用途に使用するセンサーである。
しかし、以下の動画によると、周囲の環境光の影響を受けやすいようだ。

How to use the red laser module KY-008 with the Arduino Uno | UATS A&S #3

また、残念なことにこのセンサーキットの中にレーザーレシーバーモジュールは含まれていない。

16. 遮光センサー(フォトインタラブタ)

Amazonでも類似商品が見つからなかったが、モジュール中央に乗ったフォトインタラプタはこれぐらいだろうか?

透過型フォトインタラプタ

フォトインタラプタについては以下のROHM社のサイトに詳しくまとめられている。

フォトインタラプタの使用例

モジュール中央の黒いパーツがフォトインタラプタたが、その中央のスリットに紙などを挟んで遮光してやると、信号が LOW-->HIGH になる。

17. チルトセンサー 

Amazonでの類似商品

SW-520D角度センサボードチルトセンサモジュール

OSOYOOのサイトでもこんなページがあった。

SW520D傾斜スイッチ

このセンサーの出力ピンはVCC、GND、D0の3ピンで、上記、可燃ガス/煙センサーで使用したようにMicrobitに接続すればそのまま動作確認できる。
センサーの円筒部が立っている状態でモジュールのLEDは点灯。D0はLOW。
センサーの円筒部が地面と平行、または、それより円筒の頭が下がると、モジュールのLEDは消灯、D0はHIGHになる。
円筒が立った状態から寝た状態になるときは、ほぼ水平でD0が LOW-->HIGH に切り替わるが、寝た状態から上向きに起こしていくときは、HIGH-->LOW となるのが、10度のときもあり、45度のときもあり、ばらつきがある。
このセンサーは何に使えるのだろうか?射的の的の当たり判定とかなら使えるかもしれない。

18. リードスイッチ

Amazonでも類似商品が見つからなかったが、リードスイッチは、磁界に反応してON/OFF切り替えられるスイッチである。以下に説明があった。

リードスイッチ

こちらの動画のほうがもっとわかりやすい。

【電子工作 パーツ編2】磁気スイッチの使い方

このモジュールをよく観察すると、リードスイッチに抵抗R1が1つついているだけの単純な構造であることがわかる。R1は測定したところ、30Ω程度だった。

kairo.png

リードスイッチがOFFのとき、SはVccとのみ接続され、HIGHである。
リードスイッチに磁気を検知してONとなったとき、SはGNDと接続され、LOWとなる。

以前、ダイソーでドアの開閉ブザーが売られてるのを見たことある。これはドアにセンサーを付け、ドア枠に磁石を付けて、ドアが開くときに磁気が弱くなるのを検知してブザーを鳴らすものである。
まさにこのリードスイッチはそんな用途に使えそうだ。

19. 赤外線障害物検知センサーモジュール

Amazonでの類似商品

KY-032 IR赤外線障害物回避センサーモジュール

データシートはこちら

KY-032 module. Datasheet pdf. Equivalent

このセンサーは、前方に障害物があるときに赤外線が反射し、フォトダイオードが反射光を受信したときに検知する。
4本ピンがあり、GND、+V、Signal、EN である。
障害物検知時にはモジュールのLEDが点灯し、Signalは HIGH --> LOW になる。
EN(Enable)ピンは、障害物検出機能のON/OFFを切り替えるピンで、デフォルトはONである。
モジュール上のジャンパピンを外すと、ENピンの信号で有効/無効を切り替えられるようになるようだ。

20. 土壌湿度検出モジュール

Amazonでの類似商品

HiLetgo 5個セット LM393 3.3V-5V土壌水分検出センサー土壌水分センサー

KKHMF 6個 土壌水分センサーモジュール LM393 土壌湿度計

上記は共に同等商品だが、評価欄や商品説明が参考になる。

このセンサーをMicrobitにつなげてみた。
このセンサーも上記「3. 可燃ガス/煙センサー」と同じ配線で行ける。
ただ、D0の出力とモジュール上のLED点灯は以下のようになっている。

--- 湿った状態 乾いた状態
D0出力 LOW HIGH
LED ON OFF

MicrobitのA/D変換は10ビットなので、MAX1023。
センサーのプローブを空気中に置いた状態でA/D値は1017だった。
水の入ったコップに投入すると、400ぐらいの値となる。
初期状態では500を超えたぐらいでD0がHIGHになる。
プローブを水面から半分くらい引き抜くとちょうどそれぐらいの値になる。
少し感度を下げたい場合は、ポテンショメータの調整が必要だ。

2
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?