【GASでIoT】GASとラズパイでおこなう、お手軽データ・ロギング&フィードバック制御〔解説編6〕~GASからのOn/Offのレスポンスを使って電気なべの電源スイッチを制御する~
この記事のシリーズでは、Googole Apps Script(GAS)を利用して、日常生活を便利にする事をテーマにしています。今回は「温度」を外部から取り入れて、GASを介して電気なべの温度をコントロールしよう、というテーマです。
「温度」の情報を、ラズベリーパイを経由してGASに取り込み、スプレッドシートに書き込むことで、データの記録(データ・ロギング)します。
更に、電気なべの温度をコントロールするため、電源のOn/Off情報をレスポンスとしてラズベリーパイに返します。
ここまでの記事はこちらです。
今回の記事では、On/Offのレスポンスをラズベリーパイで受け取ったら、それを元に電気なべの電源をOn/Offする部分をご紹介します。
今回の記事でのご説明範囲~フィードバック制御の終着部~
今回の記事の出発点は、センサで電気なべの温度を取得する事でした。
今回の記事は、一端GASに送った温度情報がOn/Offの制御の情報として帰ってきてからの部分です。いわば、一連のシステムの終着点の部分で、取得した温度を元に、電気なべの電源をOn/Offする部分になります。
ラズベリーパイから、GPIOピンの電圧をOn/Offし、これを元に、リレーを使って100Vの電源をOn/Offします。 もし実際に工作される場合は、100Vの電源が係わるので、安全に十分注意し、冒頭にある様に、自己責任でお願いします。
受け取ったOn/Offに応じて、ラズベリーパイのピンの電圧をOn/Offする
まず、ラズベリーパイ側で、受け取ったレスポンスを元に、GPIOピンをOn/Offします。どのピンを使ってもいいのですが、センサをつなぐのに使っている若い番号のピンからなるべく離れた26番のピンにしました。
26番ピンは、ラズベリーパイ Zero WH を、MicroSDカード・スロットを上にして見て、左側、下から2番目のピンになります。
ここにリレーという電源をOn/Offする部品をつなぐのですが、先にピンの電圧をOn/Offするプログラムをご説明します。
try:
while True:
#---温度
thrm = read_temp()
print(thrm)
#---GASのURLにアクセス
print('Accesing to GAS...')
r = requests.get("https://script.google.com/macros/s/★GASのデプロイID★/exec?thrm=" + str(thrm))
#---レスポンスをコンソールに表示
print(r.text)
↓ ↓ ↓ ↓ここからが記事の内容です↓ ↓ ↓ ↓
#---レスポンスに応じたGPIOピンのH/L
#---rが「On」なら赤いピンをHighにする
if(r.text == 'On'):
GPIO.output(26, GPIO.HIGH) #----GPIO2の出力をHigh(3.3V)にする
else:
GPIO.output(26, GPIO.LOW) #----GPIO2の出力をLow(0V)にする
#---15秒待つ
sleep(15)
except KeyboardInterrupt:
pass
以前の記事の再掲になりますが、GASにアクセスおよびレスポンスの取得は、以下のたった1行のコードで行われます。
r = requests.get(GASへアクセスするURL)
レスポンスからは、以下のコードで文字情報を取り出す事ができます。
r.text
それを使って、以下のコードでGPIOピンを制御できます。
if(r.text == 'On'):
GPIO.output(26, GPIO.HIGH)
else:
GPIO.output(26, GPIO.LOW)
こんな簡単なコードで、26番ピンの電圧をOn/Offできてしまいます。
微弱なラズベリーパイの電圧を利用して、100V電源をスイッチングする方法~ソリッド・ステート・リレーを使う~
こうして、GASからのレスポンスは、ラズベリーパイで3.3Vの電圧としてリアルな世界に取り出す事ができました。
この電圧を利用して、100Vの電源をスイッチングするには、「リレー」という部品を使います。
「リレー」は、古くは電磁式といって、導線の一部に、電磁石で開閉するスイッチを仕込んだものが主流でした。それは、こんな仕組みで動きます。
以下の図で中央の青い部分は、弱い電流で使う電磁石だとします。その側に、鉄片でできたスイッチがあり、普段は導線が切れた状態になっています。
そして、磁石に弱い電流を流すと、電磁石が鉄片が吸い寄せられて、スイッチが閉じて導通する、という仕組みです。
ただし、ラズベリーパイからは、電磁石を動かすほどの電流が取り出せません(そんなに電流を流すと熱くなって壊れてしまいます)ので、半導体を使った、ごく微弱な電力でスイッチングできる「半導体リレー」というものを使います。
半導体リレーは「ソリッド・ステート・リレー(SSR)」とも呼ばれますが、制御電流が微弱でも働くリレーとして、今では広く使われています。
今回使うのは以下の様な部品です。
これを使って、以下の様な、途中でリレーを仕込んだ延長コードを作ることで、ラズベリーパイによるスイッチ制御が可能になります。
上記の延長コードには、途中でヒューズも仕込まれており、万一過電流が流れた場合は、導通が切れる様にしています。
利用する電気なべ、および半導体リレーを内蔵した延長コードの作り方
冒頭にも書きました様に、危険性を十分認識にして工作してください。
また、本記事はあくまで事例としてご参照ください。(アマチュアの工作ですので、必ずしもベストな内容ではありません)
利用する電気なべ
利用する電気なべは、事故を避けるために、弱めの電力消費のものを選びます。 ここでは「スロークッカー」や「クロックポット」と呼ばれる、微弱な電力で調理する電気なべを使います。安いもので3000円程度からあります。
これらの鍋の使用電力は大体200ワットです。という事は、100ボルト電源では、流れる電流は200÷100=2アンペア、だとおおよそ分かります。
半導体リレー
半導体リレーは規格を確認して購入します。
以下は半導体リレーの例でサイズが5cm角程度の製品の裏面ですが、上側に「24~380VAC」とあるのは、交流24~380ボルトをスイッチできることを示しています。
また、SSR-10DAとあるこの商品では、スイッチに流せる電流は(説明書を見ると)10Aまでの様です。 今回使う電気なべは100ボルトで大体2アンペアの電流が必要なので、十分だと分かります。
下側に「3~32VDC」とあるのは、直流3~32Vで制御できることを示します。ラズベリーパイで出力できる電圧は3.3ボルトなので、これもまた十分であることが分かります。
値段は1000円かからない程度です。
ヒューズ・ホルダとヒューズ管
万一、大きな電流が流れた時に、すぐ電流が遮断できる様、ヒューズも仕込みます。ヒューズはヒューズホルダとヒューズ管が必要ですが、サイズや規格が色々あります。
そこで、組み合わせを誤らない様、以下の様にヒューズ・ホルダとヒューズ管がセットになったものを購入するのが良いと思います。
ただし、今回はセットで買うという発想がなく、この節の最初の写真にある様なヒューズ・ホルダとヒューズ管とを別々に買いました。
上記は結果的には絶縁がむずかしく、あまり良いチョイスではなかったです。
ここでヒューズで遮断する電流ですが、電気なべに流す電流の2アンペア以上で、かつ、半導体リレーに流せる電流は10アンペアより十分小さい大きさとします。
適当か分かりませんが、今回は5アンペアの規格のヒューズを使いました。
端子
よくある半導体リレーは、導線をねじで固定します。こうした止め方の場合、100ボルト側は導線も太く安定して固定できますが、ラズベリーパイ側が導線が細くて安定して固定できません。
そこで、以下の様な端子を介して固定することにしました。どのサイズが適当か分かりませんでしたので、セットで購入して実物を選んで使う事にしました。
延長ケーブル
50cm程度の長さの延長ケーブルを使いました。これの中央部をカットし、被覆を剥いて使います。
USB電源で動く小型ポンプ
最後に、USB電源で動く小型のポンプも準備しました。これは電気なべの攪拌に使います。
実際の工作
延長コードの配線は、概念としては以下の様なものです。
実際の工作は以下の様なものになりました。
延長コードは2つにカットしたあと、被覆を剥いて以下の様につなぎます。
・ヒューズホルダとは半田づけし、絶縁テープ巻きします。
・半導体リレーとはネジの軸に巻いた後にねじこんで以下の様に固定します。(万一にもネジに巻いた導線がほどけない様に、巻き付けた導線の端は半田付けしています)
同様に絶縁テープで巻いて、裸の導線部が見えない様にします。
・最後にラズベリーパイとの配線は、ジャンパー線を端子に半田づけし、これを半導体リレーにネジ固定しました。
ケーシング(容器入れ)
以上の装置一式は、ガラス瓶に入れました。
横からみるとこんな具合です。
いかにも杜撰(ずさん)なケーシングなので、見本にはならないのですが、ガラス瓶にしたのは理由があります。
ガラスは絶縁がしっかりした材料であること(金属だと手で触れて感電するかもしれない)、断熱性が低く熱がこもらない材料であること(ガラスは熱を通しやすい)、中身が見えて異常に気づきやすいといったメリットがあるのです。
ただし、ブラブラした状態なのはどちらかというと危険であり、本当は基板の様なものに固定すべきです。
電気なべに温度センサと小型ポンプを入れた様子
調理する電気なべ側についても説明します。
以下は、電気なべに温度センサと小型ポンプを入れた様子です。
この状態で水を張って以下の様にフタで押さえて使いました。
なお、小型ポンプを利用するについては、以下のブログを参考にしました。
この場を借りて感謝申し上げます。
測定した温度のグラフ表示について
さて、長かったこのシリーズ、あともう一つモニタリングのためのグラフ表示のご説明が残っています。
時事刻々と温度が変わる様子を、扉絵にある様なグラフを、スプレッドシートに記録された数値を元に、「Plotly.js」というJavaScript用ライブラリを用いて、GASでWEBページとして表示させる事ができます。
これについては、次の記事でご説明します。もう少しお付き合いください。