MATLAB/SimulinkでRasberry Pi制御その7:Simulink Online + ThingSpeakでラズパイに接続した人感センサーを監視する

投稿日:2023年1月28日
最終更新日:2023年1月28日

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の記事は以下にまとめてます。

MATLAB/Simulinkで遊んでみる まとめ

 


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください