Simulink Online + ThingSpeakでセキュリティシステム風なものをつくる
前回は、入力する方形波の周波数によって音が変わるパッシブザーをラズパイに接続して、パッシブブザーへの入力する方形波をPWM制御で変えて遊んでみた。
今回は、MATLABを開発しているMathwork社が提供しているIoTサービスであるThingSpeakを使ってみる。具体的には、Simulink OnlineのThingSpeak Writeブロックを使って、ラズパイに接続した人感センサーの値をネットを介して監視できるセキュリティシステム風なものをつくってみる。
https://jp.mathworks.com/help/supportpkg/raspberrypi/ref/pwm.html
ちなみに時間センサー(PIR)は以下のキットのものを使っている。
PIRセンサーの使い方については以下に書いてある。
https://docs.sunfounder.com/projects/davinci-kit/ja/latest/2.2.4_pir.html
また、SimulinkのThingSpeak Writeブロックについては以下を参照して進めた。
https://jp.mathworks.com/help/supportpkg/raspberrypi/ref/thingspeakwrite.html
実行環境
Raspberry Pi 4 Model B
Raspberry Pi OS (Buster)
MATLAB online (MATLAB R2022a)
Simulink online
ラズベリーパイとPIRを接続。
今回はブレッドボードは使わずに、ラズベリーパイとPIRはジャンパー線で直接接続した。接続は以下の通り。
- PIRのGNDをラズパイの+5V(2pin)に接続
- PIRのOUTをラズパイのGPIO17(11pin)に接続
- PIRのVccをラズパイのGND(9pin)に接続
実際に接続したのが以下の写真。
これでラズパイ側の準備は完了。次にThingSpeakのChannelをつくっておく。
ThingSpeakのChannelをつくる
まずはMathWorksのThingSpeakのページを開く。MathWorksのアカウントがあれば、ログインさえすればすぐに使い始められる。ThingSpeakでChannelをつくることで、Channel上でラズパイなどのデバイスからデータを取得したり、デバイスからデータを読むことができる。ということでまずは「New Channel」から新しいChannelをつくる。
Channelの名前はPIR sensorとした。Fieldという部分に最大で8個までデバイスとやり取りするデータを定義できる。今回はPIRからだけデータを取得するので、PIRという名前でField1を使う。
これでChannelの作成は完了。ChannelのAPI Keysタブを選ぶとWrite API Keyが表示されるので、このKeyをSimulink OnlineでThingSpeak Writeブロックに入れることで、ChannelのFieldにデータを書いて保存することができる。
これでThingSpeakの設定も完了。あとはいつもどおりSimulink Onlineでモデルをつくっていく。
Simulink Onlineから動かす
いつも通りMATLAB Onlineを開いて
open_system('raspberrypi_gettingstarted')
を実行してraspberrypi_gettingstartedを開いて改造していく。まず、Pulse Generatorは削除して、以前使ったGPIO Readブロックを使う。今回はPIRセンサーの出力をGPIO17に接続しているので、GPIO17を入力に設定する。
そして今回新たに使うのはThingsSpeak Writeブロック。以下のようにthingspeakでライブラリブラウザーを検索すれば出てくるので、ドラッグ&ドロップして、以下のようにパラメータを設定する。ここで、さきほどchannelを作ったときのWrite API keyを設定する。また、今回送る変数はPIRの値だけなので、変数は1、ThingSpeakにデータを送る感覚は10秒とした。
いつもはConnected IOで実行しているのだが、今回はある程度長い時間動かしてみたかったので、ビルドして実行する。
以下が実行してみた様子。ちょっとわかりにくいが、PIRセンサーの前に手をかざすと、PIRセンサーの値が1になり、その値がThingSpeakに送られて表示されている。
以下がThingSpeakのデータ取得画面。ブラウザがあれば表示できるので、ネットワークにつながっていればPCやスマホなどから監視できる。
ThingSpeakは初めて使ったのだが、設定や使用方法も簡単でかなり使いやすい印象。MATLAB/Simulinkにかぎらず使えるので、今後もIoT的なことをやる場合には使っていきたい。
参考文献
この本のMATLAB/Simulink 6か月ライセンスを使ってやってます↓
Interface 2022年 9月号
MATLAB/Simulink記事まとめ
MATLABとSimulinkの記事は以下にまとめてます。