2022.2 初版作成
我が家は居間が 2 階にあります。玄関のインターホン(カメラ付き)は 居間につながっており、玄関の呼び出しボタンを押すと、 居間の受信機のモニタ画面が on になり 「ピンポン」と音が鳴ります。 居間以外の部屋にいると、呼び出し音がほとんど聞こえないので、 宅配便などを見逃してしまいます。
スマホのアプリに Alfred Camera というのがあり、古いスマホを 監視カメラとして使うことができます。これをインターホンの 受信器付近に設置しておき、 音を自分の居る場所へ常に転送するという方法があります。 しかし、この方法は雑音を拾ってしまうので、あまり快適とは 言えません。「必ずこの時間帯に宅配便が来ることが分かっている」 という場合は使いますが、常時使う気にはなれません。
トランジスタ技術の 2021 年 8 月号の pp.190-193(著者:池上恵理) に 「インターホンが on になるとモニタ画面が明るくなるので、 モニタ画面の明るさを検知して、 インターホンが on になったことを LINE で知らせる」 という電子工作が掲載されていました。 読んだとき 「そうか。こんな方法があったか。頭いいなあ」と思ったのを 覚えています。その記事は M5Stack を使って ネットワークプログラミングをしていましたが、 私は TWELITE を使ってプログラムなしで実現してみました。
(2024.1.4 追記)
インターホンの調子が悪くなった (スピーカーの音が
途切れる) ので、新しい製品に取り替えました。
現在は、子機付き (画面も付いている) の製品が発売
されています。子機付きの製品を購入したので、
本電子工作は不要になりました。
インターホンの on/off を送るのに、 デジタル送信を 1 系統使用します。
クリックで PDF が開きます。
送信回路(光センサ)の製作例
センサ部分
モニタ画面の明るさをチェックして、点灯しているか 否かを 0 か 1 で送ります。
TWELITE を親機として使います。子機を複数の部屋に置いて使うことが できます。
電源は 5 V の AC アダプタ、あるいはモバイルバッテリーを 使います。
何らかの要因で大電流が流れたときに備えて 念のためヒューズを入れていますが、この回路は 3.3 V という 低い電圧で駆動するので、不要かも知れません。 ヒューズは 0.1 A でも大丈夫と思いますが、手持ちのがなかったので、 私は 0.2 A 〜 0.3 A のものを使いました。
TWELITE は 2.3 V~3.6 V の範囲でしか動作しませんので、 3 端子レギュレータを用いて 5 V を 3.3 V に降圧します。 TA48033 のデータシートは入力側に 0.33 uF, 出力側に 33 uF のコンデンサが付いています。 どちらも手持ちのものがなかったので、 大きめの値にしました。 48033 は生産完了品です。3 端子レギュレータは 3.3 V を出力するものなら何でも構いません。 別の製品を使う場合は、入力側と出力側のコンデンサは それぞれのデータシートに従って下さい。
3 端子レギュレータの右側にある緑色 LED は電源確認用です。 抵抗値は自分が使う LED に合わせて変更して下さい。 今回使った秋月の緑色 LED の場合、電流は 0.66 mA でした。
オペアンプはコンパレータとして使います。
50 k の抵抗は半固定抵抗です。 比較する電圧 V2 を作るために使います。 別の値(ex. 10 k, 20 k, 100 k, 200 k, 500 k)でも問題ありません。 電池駆動する場合は、電池の消耗を押さえるため、 大きな値の方がよいでしょう。 我が家のインターホンの場合、電圧を精密に調整する必要がありました。 普通の半固定抵抗は、わずかに回しても 0.1 V くらい変わってしまうので、 多回転式の半固定抵抗がよいでしょう。
CdS と 10 k の抵抗で分圧して、明るさに対応する 電圧を作り出します。明るいほど電圧 V1 は大きくなります。 10 k の抵抗は使用する CdS に 応じた値にしてください。インターホンの画面に CdS を あてて(このとき黒い絶縁テープでまわりの光を遮る必要があります)、 on/off してそのときの CdS の抵抗値を調べます。 私の場合、on のとき 6 k~8 k, off のとき 13 k 以上 だったので、10 k の抵抗を使いました。 この抵抗を ピンソケット( マルツパーツ 秋月 )を使って交換できるようにするか、 可変抵抗にするとよいでしょう。
私は手持ちの CdS を使いましたが、 CdS はカドミウムを含むので、使用は推奨されません。 フォトトランジスタと抵抗の方が良いと思います。
オペアンプはコンパレータとして使います。単電源の 入出力フルスイング(入出力 rail to rail とも言う)の オペアンプを選んでください。 2350, 4167(高電流出力), 7043, 8532, 6482, 2732 などがあります。 出力はフルスイングでなくてもおそらく TWELITE は判別 してくれると思います。
赤色 LED は出力確認用です。 LED に流す電流を確保できるオペアンプを選んでください。 今回使用した赤色 LED に流れる電流は 6.8 mA でした。 手持ちのオペアンプをチェックしてみたところ、 8532 と 2350 は出力電圧 3.3 V を維持しました。 7032 は出力のみフルスイングなので今回の用途には不適切ですが、 試したところ、無負荷時は 3.3 V ですが、LED を接続すると 1.9 V に落ちました。 662(これも出力のみフルスイング)は無負荷時 3.3 V, LED 接続時 2.8 V でした。 TWELITE のデジタル入力は 3.3 V より少し小さくても 1 として判定 してくれると思われますが、 7032 のように出力電圧が大きく落ちると、赤色 LED が暗くなってしまいます。
今回は電源 on 確認用 LED は緑色、 インターホン on/off 確認用 LED は赤色にしました。 自分の好きな色を選んでください
TWELITE は親機として使うので、13 番端子をグランドに 接続しています。子機を複数設置したい場合はインターホン側を 親機とする必要があります。ただし、親機は間欠モードが 使えないので、電池の消耗は大きくなってしまいます。 電池駆動で 1 対 1 でよい場合は、子機として設定し (13 番端子はオープン)、 間欠モードにして電池を節約するとよいでしょう。
インターホンの on/off はデジタル入力 1 を使うので、15 番端子に 入力します。
送信機の半固定抵抗の値を調整する必要があります。 「昼間」「夜間」にそれぞれインターホンを on/off して V1 の電圧を記録します(4 通りの電圧を記録します)。 半固定抵抗を調節して、V2 の電圧を 「夜間の on 時の電圧より低く、昼間の off 時の電圧より高く」設定 します。
もし 夜間の on 電圧 < 昼間の off 電圧 となるなら、閾値を 一意に定めることができないので、この回路ではダメです。 インターホン周辺の明るさを 取得する光センサをもう 1 個追加し、 追加した光センサと抵抗で分圧した電圧値を、50 kΩの抵抗が 作る分圧値の代わりに使う必要があります。 調整がちょっと厄介そうです。 マイコンを使った方がよいかもしれません。
簡易な方法としては、インターホンの画面に段ボールなど厚紙で 作った膜を垂らしておき、インターホンが on になったら、 その幕を上げるという方法があります。
クリックで PDF が開きます。
受信回路 ver. 1(論理素子使用)
送信回路からの on/off を受け取って、on なら LED を点滅させ、 ブザーを鳴らします。
3 端子レギュレータの後についているコンデンサの容量が、 送信回路と比べて大きくなっていることに注意してください。 LED を光らせるだけなら 47 uF でよいのですが、 私が使ったブザー(直流電圧をかけると「ピー」と鳴る)の場合、 最初に試作したときに使用した 48M033 という 3 端子レギュレータと 47 uF では回路の動作が不安定になりました。 100 uF を追加して合計 147 uF にすると安定動作したので、 220 uF にしました。 おそらく 100 uF でも大丈夫と思われます。
電解コンデンサの容量は、使用するブザーの消費電流に 依存します。慎重にすすめるなら、 ユニバーサル基板に組む前に、ブレッドボードで動作実験して容量を 決めて下さい。 アバウトに進めるなら、ユニバーサル基板に組んだ後で、 容量が足らないことが判明した場合は、並列にもう 1 個コンデンサを 追加すればよいです。
電解コンデンサの容量は、大は小を兼ねますが、 大きくし過ぎると電源 on 時の突入電流でヒューズが切れるかも しれません。
インターホンが on になったらブザーが鳴りっぱなしでもよいのですが、 間欠的に鳴るように発振回路を組み入れました。 そのために、74 シリーズの論理素子を 2 個使っています。 インバータを用いた発振回路は部品点数が最も少なく シンプルなので採用しました。
論理素子は 3.3 V の電源で動作する 74HCxx, 74HCUxx など CMOS を 使っている製品を選択してください。TTL の 74LSxx では動作しません。 74HC と 74HCU の違いは、74HC は出力の直前にバッファが入っているので、 出力電圧は 0 V か 3.3 V の二者択一ですが、74HCU はバッファが 入ってないので、入力電圧が中間の値のとき、出力電圧も 中間の値をとります。結果として角がなまった方形波となります。
インバータを使った発振回路で方形波を作り、AND を使って その方形波を送出するか否かを決めています。 この回路の説明は「インバータ 発振回路」で検索すると 多数のサイトで解説されています。 原則として C × R1 によって周期が決まります。 この場合、周期はほぼ 1 秒です。 ピンソケットを使って抵抗かコンデンサを交換できるようにしておくか、 抵抗を可変抵抗にしておくと、周期を変更することができます。
R2 は左のインバータの入力端子を保護するために入れて あります。 右側のインバータが 0 → 1 に反転した 直後の V1 は、3.3 V に反転直前のコンデンサの電圧が加算されます。 1 → 0 に反転した直後は 0 V に反転直前のコンデンサの 電圧が減算されます。 インバータの入力の閾値は 3.3 V / 2 = 1.65 V です。 1.7 V を上回ると出力が 0 になり、1.6 V を下回ると 出力が 0 になると仮定すると、 V1 の上限は 3.3 + 1.7 = 5 V, 下限は -1.6 V です。 実測すると上限と下限が R2 の値によって少し異なります。 74HCxx の絶対最大定格は -0.5 V ~ Vcc + 0.5 V なので、 これでは IC が壊れる恐れがあります。
入力端子に電源電圧より高い電圧をかけたときや GND より低い電圧をかけたときは、IC の保護ダイオードに電流が 流れて、入力電圧の上限は「電源電圧+順方向電圧」、 下限は「アース電位(0 V)-順方向電圧」となります。 R2 はダイオードに流れる電流を制限するために入れます。 74 シリーズにおいて保護ダイオードに流して良い電流は 20 mA なので、 R2 の下限は 1.7 V / 20 mA = 85 Ω より 大きな値であればよいです。
この回路は原理的に C と R1 の充放電で周期が 決まりますが、V1 が Vcc + 0.5 V を超えるときと - 0.5 V を下回るときは R1 に加えて R2 にも電流が流れて 放電するため、R2 の値が小さいほど、周期が少し短くなります。 オシロでの目測によると、周期は以下のように変化しました。
R2 [Ω] | T [ms] |
---|---|
1 M | 1120 |
470 k | 1100 |
100 k | 1060 |
10 k | 940 |
1 k | 890 |
R2 = 100 k と R2 = 1 M で作成したところ、 どちらも問題なく動作しています。 しかし このページによると、 「抵抗値が大きすぎると異常発振が起こる。100 k でも大きすぎ」 と書いてあります。100 k より小さい方が良いかもしれません。
発振回路が常に動作しているところが何となく 気持ち悪いと思う人がいるかも知れません。 最初、2.2 uF の部分に直列に AND を入れ、 回路の一部を切断する方法を試みたのですが、 ブレッドボード上では動作しても、ユニバーサル基板に実装すると、 発振してうまく動作しなかったので、この回路にしました。
論理素子の電源を TWELITE の 5 番出力で on/off する という方法もあるかもしれません。
ブザーは直流電圧をかけると鳴るタイプで、 3 V で動作するものを選んでください。 5 V 用や 12 V 用のブザーを選ばないようにしてください。 私が使ったブザーの場合、3.3 V かけたときの電流値は 14 mA 程度 でした。
今回の装置が使う電流は小さい(LED とブザーを合わせて 30 mA 以下)ので、 トランジスタは何でも構いません。 ベースに接続する抵抗を 1 k にしています。 2.2 k や 4.7 k でもよいでしょう。 1 k のときの見積もりは以下の通りです。
AND の出力が 3.3 V のとき、トランジスタの ベース電流は「ベース-エミッタ間電圧」を 0.8 V とすると、 (3.3 V - 0.8 V) ÷1 kΩ = 2.5 mA です。トランジスタの電流 増幅率を 100 とすると、負荷電流が 250 mA まではこの ベース電流で対応できます(1815 の最大コレクタ電流は 150 mA であり、 コレクタ電流が大きくなると β が極端に減少するので、 負荷電流が 100 mA を超えるときは、別途検討が必要と思われます)。
(2022.11.25 追記)
トラ技 2020.6 p.203 にもっとよい回路が
載っていました。左側のインバータを NAND に換え、
TWELITE の 5 番出力を片方の入力とすると、
5 番出力の on/off で発振を on/off できます。
クリックで PDF が開きます。
受信回路 ver. 2(オペアンプ使用)
ver. 1 が論理素子を用いて方形波を作るのに対して、 ver. 2 はオペアンプと CR 充放電回路によって作ります。 ver. 2 の方が少しだけシンプルです。 動作原理について説明します。
V1 の左側と下側の抵抗の部分はテブナンの定理を使うと、 以下のように書き直すことができます。
テブナンの定理で置換
150 k の抵抗、15 k の抵抗、47 u のコンデンサを テブナンの定理を使うと、以下のように書き直すことができます。
テブナンの定理で置換
TWELITE の 5 番出力が 0 V のときについて考えます。 オペアンプの出力を V3 = 0 V と仮定します。 このとき V1 = 0 V です。 V2 は過渡現象が終わった後は 0.3 V です。 V3 = Av ( V1 - V2 ) = Av ( 0 - 0.3 ) より、 マイナス側に飽和して V3 = 0 V のままです。
次に V3 = 3.3 V と仮定します。 V1 = 1.1 V です。V2 は過渡現象終了後は 3.3 V なので、 V3 = Av (V1 - V2) = Av (1.1 - 3.3) より、 飽和して V3 = 0 V に出力が反転します。
結論として TWELITE の 5 番出力が 0 V のとき、V3 = 0 V です。
150 k の抵抗が何のためにあるのかというと、 これがないと V3 = 0 のとき V1 = V2 = 0 となり、 オペアンプのオフセットによって、どちらに飽和するか分かりません。 V2 を 0 より少し大きい値にしてオペアンプを確実に off にするために 150 k を 入れてます。
TWELITE の 5 番出力が 3.3 V のときについて考えます。 このときの状態についてはネットに「オペアンプ 発振回路 方形波」で 検索すると解説サイトがたくさんあります。 本回路は 150 k の抵抗が余分についているので、 その影響により on の時間が off の時間より少し短くなりますが、 基本的な考え方は 150 k の抵抗を削除したときと 同じです。
TWELITE の 5 番端子が on になった瞬間、 V1 = 1.1 V, V2 = 0.3 V, V3 = 0 V です。 V3 = Av (V1 - V2) = Av (1.1 - 0.3) よりオペアンプの出力は 反転し、V3 = 3.3 V, V1 = 2.2 V となります。 コンデンサが 0.3 V ---> 3.3 V に向かって徐々に充電されてゆき、 V2 が増加します。 時定数 CR は C = 47 u, R = 150 k // 15 k = 13.6 k です。
V2 が 2.2 V を超えた瞬間にオペアンプが反転して V3 = 0 V, V1 = 1.1 V となります。 コンデンサが 0.3 V に向かって徐々に放電してゆき、V2 が減少します。 時定数は充電時と同じです。
V2 が 1.1 V を下回った瞬間に再びオペアンプの出力が反転します。 この繰り返しにより、このオペアンプ回路は発振します。
初回だけ V2 は 0.3 V ---> 2.2 V で、次からは 1.1 V ---> 2.2 V なので、 初回の on のときだけ、少し on の期間が長くなります。
このオペアンプ回路は「出力」と「-入力端子」が接続されており、 負帰還がかかっています。通常、オペアンプに負帰還がかかっているとき、 V2 = V1 となるように V3 が定まります。 +入力端子が固定値ならこの考え方は正しいです。
しかし、この回路は「出力端子」と「+入力端子」が 10 k の抵抗を 介して接続されており、正帰還もかかっています。 この回路は「-入力 = +入力」とはならず、発振します。 正帰還の影響が負期間の影響を上回るようです。
150 k の抵抗が存在しない場合、この発振回路の出力は on と off の 時間が同じですが、150 k の抵抗が存在するため、
この回路は V3 が 1/3 Vcc ~ 2/3 Vcc の範囲で変化します。 V1 の左側と下側の抵抗を例えば 80 k にすると、 Vcc/2 を 40 k と 10 k で分圧することになるので、 V3 は 1/10 Vcc ~ 9/10 Vcc の範囲で変化します。
結局「150 k を大きくする」と初回の on 時間が長くなります。 「V1 の左側と下側の抵抗を大きくする」をしても、 on 時間と off 時間のアンバランスは、ほとんど改善されません。
後から気がついたのですが、 発振回路なしでも受信装置は作れます。 間欠的に鳴るブザーが販売されています。 たとえば、 これです。 自己点滅 LED もあります。たとえば、 これです。 そのような部品を使うなら、発振回路は不要です。 シンプルな受信回路は以下です。三端子レギュレータが LM2940T-3.3 に 変わっていますが、これは手持ちの 48033 がなくなってしまい、 以後 2940-3.3 に切り替えたからです。
クリックで PDF が開きます。
受信回路 ver. 3(シンプルな回路)
2940 は 韓国の TAEJIN Technology Co. という会社が発売している 製品 (3.3 V, 5 V) とアメリカの TI が発売している 製品 (5 V~ 15 V) があり、データシートが異なります。 「3.3 V, 5 V」の製品のデータシートは 入力側に 10 u, 出力側に 10 u が ついており、入力側は最低 1 uF 以上にせよと書いてあります。 「5 V ~ 15 V 用のデータシート」は入力側に 0.47 u, 出力側に 22 u が ついています。「3.3 V, 5 V 用」のものは 入力側のコンデンサの数値が大きいですが、 その理由は分かりません。 入力側の大きな容量のコンデンサは平滑化のためにあります。 AC アダプタの出力は一定なので、 10 u ではなく、小さな値でも問題ないように 思われます。今回の回路では 入力側のコンデンサを 0.47 u にしても、 問題なく動作しました。 データシートに「最低 1 uF 以上にせよ」と書いてあるので 回路図は 1 uF にしておきました。
クリックで PDF が開きます。
受信回路 ver. 4(555 使用)
方形波発振回路と言えば、タイマー IC である 555 を使った回路 も有名です(実は忘れていました。日経 Linux 2022.3 付録の ラズパイ電子工作を見て思い出しました)。 ver. 3 を除くと、この回路が部品点数が一番少なく シンプルです。 3.3 V で動作させるので、555 としては、NE555 ではなく LMC555 のように 3.3 V で動作するものを選んで下さい。 555 の出力(3 番ピン)は発振していないとき Vcc なので、 PNP 型トランジスタをスイッチとして使い、 555 の出力が 1 のときブザーや LED を off, 出力が 0 のとき ブザーや LED を on にします。
on と off の期間は 0.693 * 47 k * 10u : 0.693 * (47k+10k) * 10u です。off の方が若干長いです。周期などを変更したいときは、 上式を参考にして抵抗やコンデンサの値を変更してください。
クリックで PDF が開きます。
方形波を作る回路としては、オペアンプを 2 個使い、 積分回路とヒステリシス付きコンパレータを組み合わせた 三角波発生回路(積分回路の出力は三角波だが コンパレータの出力は方形波)もポピュラーです。
この回路と AND を組み合わせる方法が明解ですが、 ロジック IC を 1 個用意するのは面倒なので、 上記のような回路を考えました。
5 番端子が on (3.3 V) のとき、Vm = 1.65 V, off (0 V) のとき Vm = 0 V です。
on のとき V_1 は方形波となり、 off のとき V_1 = 3.3 V です。
off のとき V_1 は 0 V ではなく 3.3 V なので、 スイッチとして使うトランジスタは PNP 形を使います。
三角波発生回路の部分はブレッドボード上で動作確認しましたが、 全体の動作確認と製作はしていません。もしかしたら、 動かないかも知れません。
送信側に光センサーを使いましたが、 人感センサを使うと防犯装置として使えます。 あるいは、トイレに誰か入っているか否かを検知する 用途にも使えそうです。 人感センサを使うときの回路は以下です。
クリックで PDF が開きます。
送信回路(人感センサ)
人感センサは Panasonic の napion がポピュラー です。デジタル出力タイプの napion は電源電圧と同じ電圧が パルス状に出ます。 出力をプルダウンする必要があるので、100 k を入れています。 これを省略すると、人が去っても off になりません。 napion の最大出力電流は 100 uA なので、33 k 以上であれば 問題ないと思われます。
出力のパルスを平滑化するために、 オペアンプのバッファに入れ、 「ダイオード+抵抗+コンデンサ」の回路で平滑化します。
オペアンプは入出力フルスイングのオペアンプで、 出力確認用 LED を駆動するのに十分な電流を確保できる 製品を選択してください。
ダイオードは順方向電圧が低い方がよいので、ショットキーバリア ダイオードを使います。私は 5817 を定番品として愛用していますが、 11EQS04 などでも構いません。
RC 回路の時定数は 220 k × 10 u = 2.2 秒です。 人感センサの出力が 0 になると、v2 は 3 V(ショットキーバリアダイオードの順方向 電圧が 0.3 V 程度なので、v2 の max は 3 V 程度) から 0 V に向かって指数関数的に減衰してゆきます。
2 段目のオペアンプはコンパレータとして 使います。50 kΩの半固定抵抗を回して v3 を調節して下さい。 0.3 V 〜 2.5 V くらいの間で設定するとよいでしょう。 v3 を精密に設定する必要はないので、半固定抵抗は 多回転式でない普通の製品を使うと良いでしょう。 手で回せるタイプの半固定抵抗が便利です。
人が去った後、off までの時間を長く取りたい場合は、 抵抗値を 330 k あるいは 470 k などに増やして下さい。
2 段目のオペアンプの出力に接続してある LED は 出力確認用です。なくても構いません。
アナログ出力の超音波センサがあります。 物体までの距離によって出力電圧が変化します。 たとえば、このセンサを Vcc = 3.3 V で駆動すると、距離が 30 cm のとき 0.23 V、距離が 大きくなるにつれて電圧が上昇し、3 m 以上のとき 3.3 V を出力します。 こんな製品 (かなり高価ですが・・・)もあります。
コンパレータを使い、閾値電圧より低い電圧のときに on に なるように設定すると「○ m より近い場所に物体が あるときに on」とすることができます。 ドアが開いているか否か、ガレージに車が止まっているか否か などを検知することができます。
クリックで PDF が開きます。
送信回路(超音波センサ)
この電子工作は TWELITE で on/off を送るだけなので、 光センサ、人感センサ、超音波センサ以外に、 色々なセンサが考えられます。 水分センサを取り付けると、風呂にお湯がたまったのを 知らせる装置を作れます。 温度センサを取り付けると、基準温度を下回った(上回った)ときに 知らせる装置を作れます。
TWELITE の足は太いので、通常の丸ピンソケットには差すことが できません。板バネのソケットを使って下さい。 板バネのソケットに TWELITE を差そうとしても、ささりにくいので、 あらかじめブレッドボード用ワイヤーを板バネソケットの全ての 穴に差してから TWELITE を差すと楽にささります。
3端子レギュレータは色々な製品がありますが、 製品によってデータシートで指定されている 入力側と出力側につけるコンデンサの容量が 異なります。大は小を兼ねるので、大きめの値を つけておけば良いです。
入力側は 1 uF, 出力側は送信回路は 47 uF, 受信回路は 220 uF を つけておけばよいでしょう。 大は小を兼ねますが、コンデンサの容量が大きすぎると、 電源投入時にコンデンサを充電するために大電流が一瞬流れるため、 ヒューズが切れるかもしれません。
入力側のコンデンサは省略しても大丈夫かも 知れませんが、出力側の電解コンデンサは 発振を防ぐために必須です。