six-9のブログ

おっさんのブログ。エロゲとかアニメとか。

電子工作はじめました

ここ2, 3年ほど、趣味の電子工作というやつをやっている。理由は忘れた。
仕事でArduino Uno R3を触ることがあり、数千円だから自分でもいじってみるか、と思ったからだったと思う。

ゴールデンウィークで時間を見つけて、エアコンの遠隔制御(出先から冷房つけられたら良くね??? あと消し忘れとかも対応できると嬉しい)に挑戦した。
Raspberry pico Wが手元にあったので、これを利用した。千円ちょっとでこんなことができちゃうの、すごい時代だ。

こういう趣味を持っておくと、無職になったときでも時間を潰せるかな。老後の楽しみというか、なんというか。

 

 

 

参考サイト

qiita.com

colors.ambl.co.jp

elm-chan.org

 

回路図

回路図は大体、上のサイトのとおり。ブレットボードで試作した。

右側に赤外線LEDを二個つけてる。*1

光っている緑色LEDは3.3Vの電源通電確認用。Raspberry pi pico Wの3V3(OUT)から取ってる。青色LED(写真では消灯)は、送信状態などの通知用。LEDの駆動用に2SC1815 Z=GR(hfe=200-400)のNPNトランジスタを2台搭載してる。1個は赤外線LED(2個)、1個は青色LEDRaspberry pi pico Wの手前に見えるドーム状のモジュールが赤外線受信モジュールGP1UXC41QS*2

ブレットボードで試作した赤外線送受信モジュール

 

赤外線受信

受信は簡単にうまく行った。
受信の数値リストを見ていると、確かに、最初の2つの数値がIDっぽくて、その後に8個くらいずつ繰り返す信号が温度とか冷房とかの設定っぽい。何回か受信していると、数字が微妙に変わる(540とか340とか)んだけど、どの数字を使ってもうまく行った。符号化して誤り訂正入っているから、多少のデータ化けは影響無いのかな。
照明のリモコンのほうが簡単なデータ(数値リストの数が少ない)で、エアコンは確かに長かった。

 

赤外線送信

サイトの通りに赤外線LEDを波長850nmのOSI3CA5111A*3で試作してみたが、どうにもエアコンの反応が鈍い*4。赤外通信の規格をまとめているサイト*5を見てみると、どうやらエアコンなどは950nmで通信しているよう。おそらくこれが原因だ、と当たりをつけて、赤外LEDを秋月電子通商まで買いに行った。950nmだと完全に赤外で肉眼だと見えない(なんならスマホのカメラでもあんまり見えない。LEDの指向性もあるのか?)ので、動作確認が結構面倒だった。でも、うまく行った。
電源ONとか赤外線送信中とかの状況がわかるようにLEDを追加した。(LEDはいくらでも家に転がっていた)

950nmの赤外LEDとして、何度も秋月に行くのが面倒なので、色々買ってみた。

赤外線送信LED モデル名 OSI5LA7WA1B OSI5LA5113A OSI5FU5111C-40 SLR-938CV-A
wavelength nm 940 940 940 945
Vf typ. V 1.6 1.35 1.35 1.3
Po typ. mW 45 12 9 7.5
Po current mA 100 50 50 50
beam angle degree 100 15 15 20


データシートを見るとOSI5LA7WA1Bがビーム幅が広くて良さそうだったんだけど、2mほど離れると通信しない場合があった。次に出力が高いOSI5LA5113A(12mW)とOSI5FU5111C-40(9mW)を試した。OSI5LA5113Aのほうがデータシート上は出力が高いんだけど、ネット上を見るとOSI5FU5111C-40の使用例が結構ヒットした。実際、2つとも試してみたが、通信距離とか角度に違いがなさそう(OSI5FU5111C-40のほうが良いか??)といった感じ。結局、OSI5FU5111C-40を使用した。


インターネットからの制御

Line notifyとの連携は以前に確認していたので問題なかったが、これだと通知くるだけで出先から制御できないことに気づいていなかった。プログラムを書いてみようと思ったら、どれも受信ばっかりで送信が無いなあ、、、ということになり、詰んだ。。。*6

ChatGPTに聞いてみると、WiFiルーターのポートを開放する方法を教えてくれたのだが、セキュリティ的に安全性が判断できなかったのでかなり迷った。
ChatGPTに他の方法を聞いてみると、google spreadsheetのセルをポーリングする方法もある、と言われたので、まあそれで行ってみるか、と思ってやってみた。GoogleAPI許可の方法を手探りでやってみたら、まあうまく行った。

実際に配置してみるとWiFiに繋がらない状態でプログラムが止まっていることがあるようだったので、WiFiに繋がらないとリセットするようにした。

 

今後やること

とりあえず動作したので、あとは、KiCADで基板を設計して発注、部品を実装してプラケースに収めるだけ。いわゆるPoCが終わった状態。ここから先がやる気出ないんだよなあ。普通に一年くらい寝かせる気がする。
どうせ基板を起こすなら、温度・湿度センサーつけて、出先から「もう30度超えてるからエアコンつけておこうよ」みたいにしたいなあ、などと欲が出てくるのは目に見えている。まだ温度センサ・湿度センサは使ったこと無いんだよなあ。アンプとか要らないのかな。まあ、今どきはチップになってたり、外付け部品までついた状態の基板で売ってたりするからなあ。

BoMとか回路図とかプログラムとか、アップしたいんだけど、それはまた別の話。

 

 

ToFセンサー買ったり、古いラジオ修理したり、いろいろやっているのだが、それはまた別の話。ToFセンサーの方は、IoT郵便受を作りたいと思っている。郵便受けが屋外にあるので、電源とか耐水性・温度制御の検討が面倒でなかなか進んでいない。リチウムイオン電池は容量的には魅力なんだけど、安全性が難しい(ICでシャットダウンできるとはいえ)ので、まずはニッケル水素とかの電池かなあ。エネループ万歳。

*1:1個より2個の方が信号強いのでは?という素人考えによる。あとで手で片方ずつ隠してみたら、2個の意味はなさそうだった。片方だけが常に通信しているような感じ

*2:一応、47uFのアルミ電解コンデンサと47Ωの抵抗もつけた。データシート見ると、ノイズ対策っぽいので無くても大勢に影響はなさそう

*3:

5mm赤外線LED 850nm OSI3CA5111A: オプトエレクトロニクス 秋月電子通商-電子部品・ネット通販

*4:エアコンの真下で送信しないと動かないし、なんなら特定のエアコンだけでしか動かない

*5:

赤外線リモコンの通信フォーマット

*6:あとでLINEのAPIページを見てみると、LINE messangerとかいうのもあって、これだとメッセージのやりとりができるようだ。でも公式アカウント?のみの機能みたい。