はじめに
やりたいこと
- ラズパイとNode-REDをつないで、ボタンやLEDを制御したい。
- ハードウェア系の知識はないけれど、ラズパイと一緒に購入したキットにサンプルがあったので、これをベースに実装してみました
- 記事内容は、ボタンを押すとLEDが消えるため、光らせるためにはNOTを入れて信号を反転させてください。
Node-REDのまとめ記事
動作環境
- RaspberryPi : 3
- OSOYOO Raspberry Pi 電子工作キットもamazonで購入して利用しています
- Node-RED: v19.4
- raspbian : 9.8
本編
全体の流れ
Node-REDへの入力と出力の一通りの流れを確認したいので、以下のような流れで実装しました。
- LED点灯
- Node-RED->ハードウェア
- ボタンの押下の検知
- ハードウェア-> Node-RED
- ボタンとLEDの連携
- ハードウェア-> Node-RED -> ハードウェア
回路図(付録より引用)
配線
- 黒の部分がLED点灯制御の部分
- 白の部分がボタン制御の部分
フロー
LED点灯
まずは、Node-REDでINJECTIONをしたら、LEDが点灯したり消したりさせたい。
-
該当するフローはON/OFF ⇛ PIN11という部分
- 信号を制御するためには、下記の通り対応する信号を送る
- ON:数値の1またはbooleanのtrue
- OFF:数値の0またはbooleanのfalse
- 出力先のGPIOのノードはraspberryPiのNode-REDであれば標準でインストールされている
- どこのポートに信号を送るのかを選ぶだけ
- 信号を制御するためには、下記の通り対応する信号を送る
-
手動でONをインジェクトすればライトが付き、OFFをインジェクトすればライトが消える
ボタン押下
つづいて、ボタンの押下をNode-REDで検知したい。
-
該当するフローはPIN40 ⇛ デバッグノードの部分
- ボタンが押されると、電気がGND側に流れるため、PINに電気が流れなくなるので0
- ボタンが押されないと、電気が流れて1
-
Node-RED側では切り替わった瞬間のみ0,1がやってくる
ボタン押下でLED制御
最後に、2つのフローを組み合わせると完成
感想
- ようやくラズパイの基本のキができた
- 抵抗値ってどうやって決めるんだったかなと
- 今回はサンプルで何Ωの抵抗を使うと指示があったからよかったのですが、自分でカスタマイズするときは、自分で計算すると思うので、電気回路の基礎を復習しないと。