戻る
- 必要な物
Arduino
各種センサ
raspberrypi3.0
実験環境構築
- ハード構築
・Arduinoとe-healthを接続する
・Arduinoに脈波センサと体温センサを接続しPCと接続
接続方法が分からない場合は以下のURLを参照
e-healthのチュートリアル
https://www.cooking-hacks.com/documentation/tutorials/ehealth-biometric-sensor-platform-arduino-raspberry-pi-medical
- PC内の環境構築
・ArduinoIDEのインストール
以下のURLからArduinoIDEのver1.0.5をそれぞれのPCに合わせた環境でインストールする.
※既に別verでのIDEをインストールしている場合は追加でインストールする.(アンインストールする必要はない)
https://www.arduino.cc/en/Main/OldSoftwareReleases#1.0.x
Xampp
- xamppのインストール
xamppとはApacheでサーバーを立てたりMySQLを使用できたりする便利なソフトである.
https://www.apachefriends.org/jp/index.html
上記のURLからそれぞれの環境に合わせてxamppをインストールする.
インストールで不明な点があったら以下のURLを参考にするといい.
https://www.adminweb.jp/xampp/install/index1.html
- xamppの設定変更
C:\xamppの位置にxampp-control.exeというものがあるのでそちらを起動,下記の画像のような画面が表示される.
configからApache(http.conf)を選択すればApacheの設定ファイルの中身が表示される.
・ローカルIP設定
Apacheの設定ファイルの59行目に
Listen 80~
とあるので
Listen 8080~
と書き換えておく.
Apacheの設定ファイルの227行目に
ServerName localhost:80~
とあるので
ServerName localhost:8080~
と書き換えておく.
・ディレクトリパス設定
251・252行あたりの DocumentRoot と Directory のパスを下記のように書き換える.
DocumentRoot "C:/xampp/htdocs/changeroot"~
Directory "C:/xampp/htdocs/changeroot"~
その後にhtdocsの中にchangerootというフォルダを作っておく.
Arduino
まずデータ取得部であるArduinoの設定をする.
基本的には使いたいセンサなんでも大丈夫である.
今回はサンプル程度に気温と体温を取得する.
体温のセンサはe-healthのセンサを用いるためArduino.exeのバージョンが1.01の物が必要である.細かいことは組み込みセンサの使い方から.
気温はBME280というものを使う.(温湿度気圧を測ることが本当はできる)
以下にArduino0(気温),Arduino1(体温)のファイルを置いておく.
e-helthのセンサと普通のセンサは同時に使えないのでArduinoを2台用意してそれぞれにコンパイルしておく.
raspberrypi
次にデータ送信部であるraspberrypiの説明をする.
今回はWifiモジュールではなく代わりとしてraspberrypiを使う.
Arduino→Raspberrypi→PC といったようにデータが流れていくイメージでいい.
raspberrypiの設定に関しては横井君の「rasberrypiによる温湿度取得?」のページやネットで調べる.
- Teraterm
ラズパイをPC上でリモート操作するためのソフト.
特にバージョンにこだわったりインストールする際の注意事項はないので,
「Teraterm インストール」で検索して自分のPCにインストールする.
raspberrypiに接続する際はラズパイ側のIPアドレスが必要なので控えておく.
- データ送信プログラム
pythonでプログラムを作成する.
raspberrypiにはデフォルトでpythonの環境が整っているはずなので設定とかはいらない.(もしかしたら勘違いしてるかもしれないんでpythonが入ってないと感じたときは指摘してください)
プログラムを作成するときは好きなエディタを使ってもらって大丈夫.
例
sudo nano 〇〇.py
のようにしてpythonファイルを作成します.
以下にそのソースコードを示します.
※python側のソースコード
Arduinoの型番号ACM〇〇はそのとき用いるものに,IPアドレスは自分のPCのものに書き換える.
Arduinoの型番を調べるのは以下のリンクを参考に.
https://uepon.hatenadiary.com/entry/2017/01/01/141220
PC側の設定
データ受信部,並びにグラフ出力を行うPC側の設定をする.
今回はsocket通信を用いるのでその前段階としてまずnode.jsというものを入れる.
- プログラム各種
以下のZIPファイルとphpファイルダウンロードする.
ZIPファイルは適当なところに展開して構わない.
展開したファイルのディレクトリ内でのパスは後で使うので控えておく.
send.phpはxamppの中のhtdocs→changerootフォルダ内に入れておく.
ここにソースコードを貼ると量がすごいので書き換えるところを以下に示しておく.(分からないところがあれば聞いてください)
- send.php
49行目
exec ("node C:\Users\Seiya\Documents\RealTimeWEB\socket\accept.js"."\t".$data1."\t".$data2."\r\n" );
のフォルダ内のパスを自分のPC内のパスに合わせて書き換える.
- accept.js
5行目
var socket = io.connect('http://192.168.0.110:3000');
のIPアドレスを自分のPCのIPアドレスに書き換える
※サーバーが競合するかもしれない場合は3000を好きな数字に書き換える
その場合はserver.jsの3000も書き換える
- index.html
201行目
var socket = io.connect('http://192.168.0.110:3000');
のIPアドレスも同様に書き換える
サーバーが競合している場合はこちらも同様に3000を好きな数字に書き換えてください.
グラフのプロットにはEpoch.jsというものを用いている(html内).興味のある人は以下のリンクに細かい解説が載っている.
https://qiita.com/okoppe8/items/d8d8bc4e68b1da4a0a36
実行
- Tera Termを起動する.
上のような画面が出てくるが、アドレスは変更せずに「接続」をクリック.
するとユーザー名とパスワードを求められる.
ユーザー名に「pi」、パスワードに「pu-toyama」を入力する.
これでラズパイへのリモート接続が完了.
- コマンドプロンプトを開き、次のコマンドを入力する.
sudo nano post.py
ここでpost.pyの編集を行う.
・19行目のurlの部分のIPアドレスを自分のものに変更する.
・Ctrl+x → y → Enterで編集画面を閉じる.
その後、次のコマンドを入力し、接続しているアルディーノの型番を確認する.
ls /dev/ttyA*
もう一回post.pyの編集画面を開き型番を確認、違ったら変更する.
- Xampp-control.exeを起動する.
Apacheの横にある「start」をクリック.~
(これでラズパイからphpファイルへ接続するためのサーバーを建てた)
- 再度コマンドプロンプトを開く.
ディレクトリをリアルタイムWEBファイル内のsocketまで移動する.
移動したら、次のコマンドを入力する.
node server.js
(これでaccept.jsからindex.htmlへ接続するためのサーバーを建てた)
- ブラウザ(なんでもいい)で以下のURLに接続 .
http://localhost:3000
接続すると表示用のサイトが開く.
- Tera Termに戻り、次のコマンドを入力する.
python post.py
これでアルディーノから送られてきたデータがサイト上に表示されるはずである.