SS9
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[Rene_専門ゼミ]]
物理センサーによるデータ収集とマイコン(Arduino, Raspberry...
手順 [[IoT>沼田/IoT]]
*0. 目次 [#o53aa818]
#CONTENTS
*1. 概要 [#gbc707b7]
近年、IoT技術の発展でセンシングデータを活用する事例が増加...
*2. 目標 [#i67428c5]
カメラ,マイク,GPS受信機セット(緯度、経度、海抜高度),温...
取得したデータに対してリアルタイムでクラスター分析をする...
*2. 用語 [#b2a14e2b]
カメラで得られる画像や、マイクを通して得られる音声をテキ...
また、テキストを数値として扱うために単語分散処理を行う。
さらに、通信方式としてシリアル通信とソケット通信、HTTP通...
** 画像分析 [#h5083fc9]
画像から必要な情報を抽出し、統計的なデータを得る。Azureの...
** 音声識別 [#ra0b83de]
音声から必要な情報を抽出し、統計的なデータを得る。Speech ...
** 単語分散処理 [#y3c1fcf9]
「王様」ー「男性」+「女性」=「お姫様」
のように単語の足し算、引き算ができるような処理。
Nltkとword2vecを使う。
** OSI参照モデル [#q7e9a68e]
ネットワークを理解するための“プロトコル”
** プロトコル [#of10edcd]
コンピューター同士の通信をする際の規格のこと
** シリアル通信 [#fcf8eaa3]
1本だけの通信線を使い、HIGH/LOWの電圧レベルを連続的(=シ...
** ソケット通信 [#ucf0a833]
インターネットはTCP/IPと呼ぶ通信プロトコルを利用しますが...
** HTTP通信 [#fb8f73fe]
HTTPはTCP/IPを利用したアプリケーション層のプロトコル
*3. センサ,ブレッドボード,Arduino間の接続 [#y586a7a4]
** センサ [#b993d560]
-必要なもの
--raspberrypi3
#ref(RaspberryPi3.jpg.png,nolink,,80%)
--Arduino
#ref(Arduino.jpg,nolink,,60%)
--ブレッドボード
#ref(ブレッドボード.jpg,nolink,,60%)
--抵抗(10kΩ)×3、GPS用丸電池、ケーブル、SDカード、ボードと...
--GPS受信機セット(緯度、経度、海抜高度)
#ref(gps.jpg,nolink,,50%)
---参考
https://qiita.com/AmbientData/items/fff54c8ac8ec95aeeee6
--温湿度気圧センサー(温度、湿度、気圧)
#ref(onsitudo.jpg,nolink,,50%)
---配線
http://monhime.hatenablog.com/entry/2018/06/24/114921
---コード
https://github.com/SWITCHSCIENCE/BME280/blob/master/Ardui...
--照度センサー
#ref(syodo.jpg,nolink,,40%)
---配線
http://jkoba.net/prototyping/arduino/cds_practice.html
---コード
#ref(hikari.ino)
--赤外線焦度センサー(人感センサ)
#ref(sekigaisen.jpg,nolink,,60%)
---配線・コード
http://tech.blog.surbiton.jp/arduino_motion_sensor_se-10/
--9軸センサーモジュール(加速度xyz、角速度xyz、磁気コンパ...
#ref(9ziku.jpg,nolink,,10%)
---配線・コード
http://tomi-tomi-pon.hatenablog.com/entry/2018/11/07/012854
#ref(BMX055_20180510.ino)
--体温センサー
#ref(taion.gif,nolink,,30%)
---配線・コード
http://naritaku.hatenablog.com/entry/2016/04/05/230649
--心拍
#ref(sinpaku.png,nolink,,80%)
---配線・コード
http://myct.jp/arduino/index.php?%E5%BF%83%E6%8B%8D%E3%82...
データ取得しやすくするため、読み取りのところに専用のシー...
--GSRセンサー(皮膚電気反射)
#ref(GSR.jpg,nolink,,20%)
---配線・コード
http://wiki.seeedstudio.com/Grove-GSR_Sensor/
--マイク
#ref(maiku.jpg,nolink,,50%)
---製品
https://www.sanwa.co.jp/product/syohin.asp?code=MM-MCU02BK
--カメラ
#ref(camera.jpg,nolink,,20%)
---製品
https://www.rs-online.com/designspark/raspberry-pi-camera
---参考
https://iotdiyclub.net/raspberry-pi-camera-python-1/
** センサとブレッドボード間の接続 [#n1967089]
+基盤の組み立て
9軸・GPS・温湿度気圧のセンサーははんだ付けが必要.
#ref(handa.jpg,nolink,,20%)
#ref(handa2.jpg,nolink,,20%)
+配線
各参考サイトに配線の仕方が書いてある.すべて組み合わせた...
#ref(kairo.PNG,nolink,,50%)
#ref(kairo2.jpg,nolink,,20%)
**装置組み立て [#ba0ceec6]
ラズパイにGPSセンサとマイクを取り付ける。
--配線
[[配線URL:https://denor.jp/raspberry-pi%E3%81%AB%E3%80%8C...
ラズパイとArduinoを連結した装置を作る。
#ref(kairo3.jpg,nolink,,20%)
* 4. Raspberry Piの設定 [#l3167c59]
*** ラズパイの初期設定 [#p06e1e94]
ここからOSがWindowsの場合で紹介します。インストールするも...
[[Raspberry Piの始め方>Raspbianのインストール及び初期設定]]
*** PC操作のための設定 [#y79f6fdf]
再起動後 ターミナルでifconfigと入力して無線LANのIPアドレ...
IPアドレスを確認することで、他のパソコンからSSH接続するこ...
-リモート接続
win+rでリモート画面を表示。mstscと入力して実行すると、...
ここでラズパイのIPアドレスを入浴するとやがてログイン画面...
Module→Xorgで、ユーザー名とパスワードを入力すればラズパイ...
操作は簡単だが重くて時間がかかる時があるので以下のような...
-Teraterm
ラズパイをPC上でリモート操作するためのソフト
[[ここから:https://forest.watch.impress.co.jp/library/sof...
インストール後、起動して「ホスト(T)」にラズパイのIPアド...
初期設定のページで述べているssh.txtくだりが必須になる。
参考サイトはこれがよく使われている。
-VNCビュワー
これをつかってもPC上で操作できる。
重くないのでストレスにはならない
[[ここから:https://www.realvnc.com/en/connect/download/vi...
起動したのち、ラズパイのIPアドレスおよびユーザー名、パス...
これはVNCなのでラズパイの方で
メニュー>設定>ラズパイの設定>インターフェースのVNCを「...
* 5. Arduinoの設定 [#d79762cb]
***Arduinoをダウンロード [#e961f36b]
https://www.arduino.cc/en/Main/Software
よりArduinoIDEをダウンロードしておく。(情報実験で持たさ...
-各センサから取得するコード
#ref(app1.ino)
上記で作ったArduinoとPCをつなげてこのプログラムを起動する...
#ref(siriaru.jpg,nolink,,100%)
マイコンボードでつなげたセンサのデータが取得できる。
-app1.inoと一緒のファイルに↓の2つも一緒に入れておく。起...
#ref(AllSerialHandling.ino)
#ref(Interrupt.ino)
以下のようにファイルが複数選択されていることを確認する。
#ref(hukusuu.PNG,nolink,,80%)
コンパイルは、以下の検証をクリックする。
#ref(kensyou.jpg,nolink,,80%)
書き込み後、シリアルモニタで表示するとセンサのデータが,...
左から
気温、湿度、気圧、光、
人感(1か0)、x加速度、y加速度、z加速度、x軸ジャイロ、y...
#ref(sensadata.PNG,,50%)]
* 6. ラズパイでデータ取得 [#d79762cb]
***GPS単体の場合 [#e136b666]
・GPSデータをラズパイで取得
まずGPSセンサに丸電池をつけ、ラズパイと接続する。
今回使ったセンサは時刻、緯度、経度、海抜高度を取得する。
gpsp.pyを起動すると、衛星からデータを受け取れる。このGPS...
ターミナルを開き、シリアル通信を有効にする。
sudo raspi-config
で「5 Interfacing Options」を選択、「6 Serial」を選択、「...
ls /dev/se*
と入力すると、/dev/serial0 /dev/serial1と表示される。
コンソールを修正するが、テキスト修正するときはターミナル...
sudo nano /boot/cmdline.txt
と入力して修正する。
「console=serial0,115200」の部分を削除する。
pip install pyserial
でPythonのシリアルモジュールをインポートし、python3 と入...
#ref(16.PNG,,55%)
~この青文字がデータに当たる
#ref(gpsp.py)
#ref(micropyGPS.py)
micropyGPS.pyは衛星信号をプログラムで扱いやすいデーターに...
python3 gpsp.py
で実行する。使っているセンサは電源入れて窓付近において10...
#ref(17.PNG,,40%)
・MAP
実行上の表記が乱れるが地図で表示可能。モジュールをまずイ...
pip install folium
#ref(gps_getter.py)
を実行すると地図が表示される。
#ref(18.PNG,,40%)
***カメラ単体の場合 [#rc80b0c4]
1.カメラの接続
カメラを接続する.ラズパイ本体とカメラのバージョンが一致...
#ref(17.jpg,,20%)
2.カメラの有効
sudo raspi-config
「5 Interfacing Options」、「P1 Camera」を選択、「Yes」...
vcgencmd get_camera
で「supported=1 detected=1」と表示されたら接続OK
3.ライブラリのインストール
pip install picaamera
ラズパイのバージョンがPython 2.7.9やPython 3.4.2の場合は...
インストールされているかの確認
pip list –format columns
これでライブラリの一覧が表示されたらOK「Packege、picamera...
4.写真撮影
写真撮影するプログラム
#ref(piccamera.py)
ターミナルで python piccamera.py で実行すると同じディレ...
***音声単体の場合 [#g00f14bf]
・USBマイクで音声認識
マイクに話しかけ音声入力でテキスト化する。以下は単純なテ...
#ref(recmic.py)
ラズパイにUSBマイクを接続し、音声をテキスト変換するAPIを...
pip install Speechrecognition
続いてプログラムをターミナル上で実行する
python recmic.py
実行すると「samething say」と表示されるので何か答える。
#ref(13.PNG,,30%)
* 7.Raspberry Pi と Auduino の連結[#j1504d6c]
Auduinoとラズパイを連結して情報を得る
#ref(zentai.PNG,nolink,,50%)
ラズパイ、PCで使うコード
newsensa_all.py
#ref(server.py)
.ラズパイに入れるモジュール
opencv
matplotlib
scikit-learn
graph-marker
socket
・PCに入れるnltkリソース
python
>>>import nltk
>>>download('averaged_perceptron_tagger')
>>>download('wordnet')
>>>download('universal_tagset')
.PC側
gspread
oauth2client
pandas
codecs
numpy
nltk
gensim
folium
webbrowser
scipy
・プログラム修正点
server2.pyの133行目、sensaK.pyの42行目の下線のIPアドレス...
#ref(henko1.PNG,,50%)
#ref(henko2.PNG,,25%)
PC側でserver2.pyがうまく軌道できたら
[available to connect: 192.168.0.205](ここは自分のIPアド...
上手くいけばラズパイもPCにもAuduinoで取得したデータ(数値...
#ref(GURAHU.png,,15%)
*8.スプレッドシート書き起こし [#eb5c69b8]
リアルタイムでの情報取得できたらカメラ画像を収得する。画...
7.で説明したカメラの使い方は取得データをPCのコマンドプロ...
シート1には,時間とセンサ数値,カメラテキストが保存される...
IoT.zipの中にあるプログラムprocessing-data.pyでシート1と...
統合されたマイクテキストは,その時間においての行動ラベル...
デンドログラムのラベルで,実行中の最後の行の実行数値デー...
#ref(text.PNG,,60%)
***下準備 [#a0630450]
今回使うのはpyhtonから得たデータをスプレッドシートに格納...
**[[1.Google Cloud Platformにて:https://console.developer...
1.1 データ取得のために適当にプロジェクトを作成する
#ref(23.PNG,,60%)
[新しいプロジェクト]で適当に名前を入力する。
1.2 外部から操作するために2つのAPIを有効にする
左側にある[ライブラリ]を選択し[googleDriveAPi]をさがし、...
同じ手順で[GoogleSheetsAPI]も有効にする。無事2つが有効に...
#ref(25.PNG,,40%)
1.3 認証情報
左側にある[認証情報]を選択し、認証情報を作成し、サービス...
適当にサービスアカウント名を入力して作成
#ref(26.PNG,,60%)
アカウントの制限をProjectの編集者に設定。最後に作成をクリ...
#ref(27.PNG,,50%)
#ref(28.PNG,,50%)
最後に秘密鍵を入手する。つくったサービスアカウントを選択...
#ref(29.PNG,,50%)
そうするとPCに鍵が保存される.この時キーのタイプがJSONにな...
&color(red){最後に保存された秘密鍵の名前を[cilent_secret....
後でこのファイルは使います。
**2.スプレッドシート書き込み [#o3d3c0fe]
1の設定で作成したアカウントとスプレッドシートを共有する。
2.1 共有
自身のgoogleドライブから新規でスプレッドシートを作成する。
適当に作ったgoogleのスプレッドシートの共有を選択し、先ほ...
ここのアドレスとは、28.PNGのメールアドレスっぽいやつであ...
#ref(30.PNG,,60%)
2.2 スクリプトエディタ
スプレッドシートの[ツール]、[スプリクトエディタ]を開き、...
function doPost(e) {
var ss = SpreadsheetApp.getActive()
//下の2行はどっちでもOK 2つ目はシート一枚目という意味
//de.kore.naniyo
//var sheet = ss.getActiveSheet();
var sheet1 = ss.getSheets()[0];
var sheet2 = ss.getSheets()[1];
var jsonString = e.postData.contents;
//jsonString = jsonString.replace('\\','');
//jsonString = jsonString.replace(/\}\"/,'\}');
var data = JSON.parse(jsonString).toString();
// sheet.appendRow(["そのまま",jsonString]);
// sheet.appendRow([data]);
// sheet.appendRow(["パース",typeof(data)]);
var data2 = JSON.parse(data);
// var last=sheet.getRange("A:A").getLastRow();
if (data2.key1){
sheet1.appendRow([data2.key1.nowtime,data2.key1.bio_d...
sheet1.appendRow([data2.key2.nowtime,data2.key2.bio_d...
sheet1.appendRow([data2.key3.nowtime,data2.key3.bio_d...
sheet1.appendRow([data2.key4.nowtime,data2.key4.bio_d...
sheet1.appendRow([data2.key5.nowtime,data2.key5.bio_d...
sheet1.appendRow([data2.key6.nowtime,data2.key6.bio_d...
sheet1.appendRow([data2.key7.nowtime,data2.key7.bio_d...
sheet1.appendRow([data2.key8.nowtime,data2.key8.bio_d...
sheet1.appendRow([data2.key9.nowtime,data2.key9.bio_d...
sheet1.appendRow([data2.key10.nowtime,data2.key10.bio...
sheet1.appendRow([data2.key11.nowtime,data2.key11.bio...
sheet1.appendRow([data2.key12.nowtime,data2.key12.bio...
sheet1.appendRow([data2.key13.nowtime,data2.key13.bio...
sheet1.appendRow([data2.key14.nowtime,data2.key14.bio...
sheet1.appendRow([data2.key15.nowtime,data2.key15.bio...
sheet1.appendRow([data2.key16.nowtime,data2.key16.bio...
sheet1.appendRow([data2.key17.nowtime,data2.key17.bio...
sheet1.appendRow([data2.key18.nowtime,data2.key18.bio...
sheet1.appendRow([data2.key19.nowtime,data2.key19.bio...
sheet1.appendRow([data2.key20.nowtime,data2.key20.bio...
sheet1.appendRow([data2.key21.nowtime,data2.key21.bio...
sheet1.appendRow([data2.key22.nowtime,data2.key22.bio...
sheet1.appendRow([data2.key23.nowtime,data2.key23.bio...
sheet1.appendRow([data2.key24.nowtime,data2.key24.bio...
sheet1.appendRow([data2.key25.nowtime,data2.key25.bio...
sheet1.appendRow([data2.key26.nowtime,data2.key26.bio...
sheet1.appendRow([data2.key27.nowtime,data2.key27.bio...
sheet1.appendRow([data2.key28.nowtime,data2.key28.bio...
sheet1.appendRow([data2.key29.nowtime,data2.key29.bio...
sheet1.appendRow([data2.key30.nowtime,data2.key30.bio...
}
if(data2.mickey){
sheet2.appendRow([data2.mickey.nowtime,data2.mickey.m...
}
}
●使うコードについて
容量制限のため研究室googleDriveの[学生>沼田>>卒業論文]に...
&color(red){そのコード集をダウンロードして解凍したら、設...
そしたら下準備としてprocessing_data.pyをエディタを使って...
ここでのキーとはつくったスプレッドシートのURLの&size(18){...
#ref(31.PNG,,70%)
URLの/d/この部分/edit~
ここまでできたらラズパイとPCをつなげ、カメラから取得した...
***書き起こし [#w73247c1]
アルディーノと連結したラズパイを電源につないでPCとリモー...
●カメラ画像の書き起こしに使うコード
newsensa_all_name.py
まずこのコードを書き換える必要がある。
PC側でスプリクトエディタを開き、[公開>ウェブアプリケーシ...
Project version > new
Execute the app as > Me
who has access to the app > Anyone
にする
#ref(36.PNG)
更新するとURLが製造されるのでそのアドレスをコピーし、コー...
そしてコードをラズパイで実行する。
#ref(34.PNG)
これはアルディーノのセンサデータとカメラ画像を5秒ごとに表...
#ref(22.PNG)
詳しく見てみるとたしかにペットボトルの情報が書き起こされ...
#ref(33.PNG,,50%)
#ref(35.PNG,,60%)
***デンドログラム表示 [#ge5cc674]
スプレッドシートにシート2を用意し、PCで[processing_data.p...
#ref(39.PNG,,50%)
終了行:
[[Rene_専門ゼミ]]
物理センサーによるデータ収集とマイコン(Arduino, Raspberry...
手順 [[IoT>沼田/IoT]]
*0. 目次 [#o53aa818]
#CONTENTS
*1. 概要 [#gbc707b7]
近年、IoT技術の発展でセンシングデータを活用する事例が増加...
*2. 目標 [#i67428c5]
カメラ,マイク,GPS受信機セット(緯度、経度、海抜高度),温...
取得したデータに対してリアルタイムでクラスター分析をする...
*2. 用語 [#b2a14e2b]
カメラで得られる画像や、マイクを通して得られる音声をテキ...
また、テキストを数値として扱うために単語分散処理を行う。
さらに、通信方式としてシリアル通信とソケット通信、HTTP通...
** 画像分析 [#h5083fc9]
画像から必要な情報を抽出し、統計的なデータを得る。Azureの...
** 音声識別 [#ra0b83de]
音声から必要な情報を抽出し、統計的なデータを得る。Speech ...
** 単語分散処理 [#y3c1fcf9]
「王様」ー「男性」+「女性」=「お姫様」
のように単語の足し算、引き算ができるような処理。
Nltkとword2vecを使う。
** OSI参照モデル [#q7e9a68e]
ネットワークを理解するための“プロトコル”
** プロトコル [#of10edcd]
コンピューター同士の通信をする際の規格のこと
** シリアル通信 [#fcf8eaa3]
1本だけの通信線を使い、HIGH/LOWの電圧レベルを連続的(=シ...
** ソケット通信 [#ucf0a833]
インターネットはTCP/IPと呼ぶ通信プロトコルを利用しますが...
** HTTP通信 [#fb8f73fe]
HTTPはTCP/IPを利用したアプリケーション層のプロトコル
*3. センサ,ブレッドボード,Arduino間の接続 [#y586a7a4]
** センサ [#b993d560]
-必要なもの
--raspberrypi3
#ref(RaspberryPi3.jpg.png,nolink,,80%)
--Arduino
#ref(Arduino.jpg,nolink,,60%)
--ブレッドボード
#ref(ブレッドボード.jpg,nolink,,60%)
--抵抗(10kΩ)×3、GPS用丸電池、ケーブル、SDカード、ボードと...
--GPS受信機セット(緯度、経度、海抜高度)
#ref(gps.jpg,nolink,,50%)
---参考
https://qiita.com/AmbientData/items/fff54c8ac8ec95aeeee6
--温湿度気圧センサー(温度、湿度、気圧)
#ref(onsitudo.jpg,nolink,,50%)
---配線
http://monhime.hatenablog.com/entry/2018/06/24/114921
---コード
https://github.com/SWITCHSCIENCE/BME280/blob/master/Ardui...
--照度センサー
#ref(syodo.jpg,nolink,,40%)
---配線
http://jkoba.net/prototyping/arduino/cds_practice.html
---コード
#ref(hikari.ino)
--赤外線焦度センサー(人感センサ)
#ref(sekigaisen.jpg,nolink,,60%)
---配線・コード
http://tech.blog.surbiton.jp/arduino_motion_sensor_se-10/
--9軸センサーモジュール(加速度xyz、角速度xyz、磁気コンパ...
#ref(9ziku.jpg,nolink,,10%)
---配線・コード
http://tomi-tomi-pon.hatenablog.com/entry/2018/11/07/012854
#ref(BMX055_20180510.ino)
--体温センサー
#ref(taion.gif,nolink,,30%)
---配線・コード
http://naritaku.hatenablog.com/entry/2016/04/05/230649
--心拍
#ref(sinpaku.png,nolink,,80%)
---配線・コード
http://myct.jp/arduino/index.php?%E5%BF%83%E6%8B%8D%E3%82...
データ取得しやすくするため、読み取りのところに専用のシー...
--GSRセンサー(皮膚電気反射)
#ref(GSR.jpg,nolink,,20%)
---配線・コード
http://wiki.seeedstudio.com/Grove-GSR_Sensor/
--マイク
#ref(maiku.jpg,nolink,,50%)
---製品
https://www.sanwa.co.jp/product/syohin.asp?code=MM-MCU02BK
--カメラ
#ref(camera.jpg,nolink,,20%)
---製品
https://www.rs-online.com/designspark/raspberry-pi-camera
---参考
https://iotdiyclub.net/raspberry-pi-camera-python-1/
** センサとブレッドボード間の接続 [#n1967089]
+基盤の組み立て
9軸・GPS・温湿度気圧のセンサーははんだ付けが必要.
#ref(handa.jpg,nolink,,20%)
#ref(handa2.jpg,nolink,,20%)
+配線
各参考サイトに配線の仕方が書いてある.すべて組み合わせた...
#ref(kairo.PNG,nolink,,50%)
#ref(kairo2.jpg,nolink,,20%)
**装置組み立て [#ba0ceec6]
ラズパイにGPSセンサとマイクを取り付ける。
--配線
[[配線URL:https://denor.jp/raspberry-pi%E3%81%AB%E3%80%8C...
ラズパイとArduinoを連結した装置を作る。
#ref(kairo3.jpg,nolink,,20%)
* 4. Raspberry Piの設定 [#l3167c59]
*** ラズパイの初期設定 [#p06e1e94]
ここからOSがWindowsの場合で紹介します。インストールするも...
[[Raspberry Piの始め方>Raspbianのインストール及び初期設定]]
*** PC操作のための設定 [#y79f6fdf]
再起動後 ターミナルでifconfigと入力して無線LANのIPアドレ...
IPアドレスを確認することで、他のパソコンからSSH接続するこ...
-リモート接続
win+rでリモート画面を表示。mstscと入力して実行すると、...
ここでラズパイのIPアドレスを入浴するとやがてログイン画面...
Module→Xorgで、ユーザー名とパスワードを入力すればラズパイ...
操作は簡単だが重くて時間がかかる時があるので以下のような...
-Teraterm
ラズパイをPC上でリモート操作するためのソフト
[[ここから:https://forest.watch.impress.co.jp/library/sof...
インストール後、起動して「ホスト(T)」にラズパイのIPアド...
初期設定のページで述べているssh.txtくだりが必須になる。
参考サイトはこれがよく使われている。
-VNCビュワー
これをつかってもPC上で操作できる。
重くないのでストレスにはならない
[[ここから:https://www.realvnc.com/en/connect/download/vi...
起動したのち、ラズパイのIPアドレスおよびユーザー名、パス...
これはVNCなのでラズパイの方で
メニュー>設定>ラズパイの設定>インターフェースのVNCを「...
* 5. Arduinoの設定 [#d79762cb]
***Arduinoをダウンロード [#e961f36b]
https://www.arduino.cc/en/Main/Software
よりArduinoIDEをダウンロードしておく。(情報実験で持たさ...
-各センサから取得するコード
#ref(app1.ino)
上記で作ったArduinoとPCをつなげてこのプログラムを起動する...
#ref(siriaru.jpg,nolink,,100%)
マイコンボードでつなげたセンサのデータが取得できる。
-app1.inoと一緒のファイルに↓の2つも一緒に入れておく。起...
#ref(AllSerialHandling.ino)
#ref(Interrupt.ino)
以下のようにファイルが複数選択されていることを確認する。
#ref(hukusuu.PNG,nolink,,80%)
コンパイルは、以下の検証をクリックする。
#ref(kensyou.jpg,nolink,,80%)
書き込み後、シリアルモニタで表示するとセンサのデータが,...
左から
気温、湿度、気圧、光、
人感(1か0)、x加速度、y加速度、z加速度、x軸ジャイロ、y...
#ref(sensadata.PNG,,50%)]
* 6. ラズパイでデータ取得 [#d79762cb]
***GPS単体の場合 [#e136b666]
・GPSデータをラズパイで取得
まずGPSセンサに丸電池をつけ、ラズパイと接続する。
今回使ったセンサは時刻、緯度、経度、海抜高度を取得する。
gpsp.pyを起動すると、衛星からデータを受け取れる。このGPS...
ターミナルを開き、シリアル通信を有効にする。
sudo raspi-config
で「5 Interfacing Options」を選択、「6 Serial」を選択、「...
ls /dev/se*
と入力すると、/dev/serial0 /dev/serial1と表示される。
コンソールを修正するが、テキスト修正するときはターミナル...
sudo nano /boot/cmdline.txt
と入力して修正する。
「console=serial0,115200」の部分を削除する。
pip install pyserial
でPythonのシリアルモジュールをインポートし、python3 と入...
#ref(16.PNG,,55%)
~この青文字がデータに当たる
#ref(gpsp.py)
#ref(micropyGPS.py)
micropyGPS.pyは衛星信号をプログラムで扱いやすいデーターに...
python3 gpsp.py
で実行する。使っているセンサは電源入れて窓付近において10...
#ref(17.PNG,,40%)
・MAP
実行上の表記が乱れるが地図で表示可能。モジュールをまずイ...
pip install folium
#ref(gps_getter.py)
を実行すると地図が表示される。
#ref(18.PNG,,40%)
***カメラ単体の場合 [#rc80b0c4]
1.カメラの接続
カメラを接続する.ラズパイ本体とカメラのバージョンが一致...
#ref(17.jpg,,20%)
2.カメラの有効
sudo raspi-config
「5 Interfacing Options」、「P1 Camera」を選択、「Yes」...
vcgencmd get_camera
で「supported=1 detected=1」と表示されたら接続OK
3.ライブラリのインストール
pip install picaamera
ラズパイのバージョンがPython 2.7.9やPython 3.4.2の場合は...
インストールされているかの確認
pip list –format columns
これでライブラリの一覧が表示されたらOK「Packege、picamera...
4.写真撮影
写真撮影するプログラム
#ref(piccamera.py)
ターミナルで python piccamera.py で実行すると同じディレ...
***音声単体の場合 [#g00f14bf]
・USBマイクで音声認識
マイクに話しかけ音声入力でテキスト化する。以下は単純なテ...
#ref(recmic.py)
ラズパイにUSBマイクを接続し、音声をテキスト変換するAPIを...
pip install Speechrecognition
続いてプログラムをターミナル上で実行する
python recmic.py
実行すると「samething say」と表示されるので何か答える。
#ref(13.PNG,,30%)
* 7.Raspberry Pi と Auduino の連結[#j1504d6c]
Auduinoとラズパイを連結して情報を得る
#ref(zentai.PNG,nolink,,50%)
ラズパイ、PCで使うコード
newsensa_all.py
#ref(server.py)
.ラズパイに入れるモジュール
opencv
matplotlib
scikit-learn
graph-marker
socket
・PCに入れるnltkリソース
python
>>>import nltk
>>>download('averaged_perceptron_tagger')
>>>download('wordnet')
>>>download('universal_tagset')
.PC側
gspread
oauth2client
pandas
codecs
numpy
nltk
gensim
folium
webbrowser
scipy
・プログラム修正点
server2.pyの133行目、sensaK.pyの42行目の下線のIPアドレス...
#ref(henko1.PNG,,50%)
#ref(henko2.PNG,,25%)
PC側でserver2.pyがうまく軌道できたら
[available to connect: 192.168.0.205](ここは自分のIPアド...
上手くいけばラズパイもPCにもAuduinoで取得したデータ(数値...
#ref(GURAHU.png,,15%)
*8.スプレッドシート書き起こし [#eb5c69b8]
リアルタイムでの情報取得できたらカメラ画像を収得する。画...
7.で説明したカメラの使い方は取得データをPCのコマンドプロ...
シート1には,時間とセンサ数値,カメラテキストが保存される...
IoT.zipの中にあるプログラムprocessing-data.pyでシート1と...
統合されたマイクテキストは,その時間においての行動ラベル...
デンドログラムのラベルで,実行中の最後の行の実行数値デー...
#ref(text.PNG,,60%)
***下準備 [#a0630450]
今回使うのはpyhtonから得たデータをスプレッドシートに格納...
**[[1.Google Cloud Platformにて:https://console.developer...
1.1 データ取得のために適当にプロジェクトを作成する
#ref(23.PNG,,60%)
[新しいプロジェクト]で適当に名前を入力する。
1.2 外部から操作するために2つのAPIを有効にする
左側にある[ライブラリ]を選択し[googleDriveAPi]をさがし、...
同じ手順で[GoogleSheetsAPI]も有効にする。無事2つが有効に...
#ref(25.PNG,,40%)
1.3 認証情報
左側にある[認証情報]を選択し、認証情報を作成し、サービス...
適当にサービスアカウント名を入力して作成
#ref(26.PNG,,60%)
アカウントの制限をProjectの編集者に設定。最後に作成をクリ...
#ref(27.PNG,,50%)
#ref(28.PNG,,50%)
最後に秘密鍵を入手する。つくったサービスアカウントを選択...
#ref(29.PNG,,50%)
そうするとPCに鍵が保存される.この時キーのタイプがJSONにな...
&color(red){最後に保存された秘密鍵の名前を[cilent_secret....
後でこのファイルは使います。
**2.スプレッドシート書き込み [#o3d3c0fe]
1の設定で作成したアカウントとスプレッドシートを共有する。
2.1 共有
自身のgoogleドライブから新規でスプレッドシートを作成する。
適当に作ったgoogleのスプレッドシートの共有を選択し、先ほ...
ここのアドレスとは、28.PNGのメールアドレスっぽいやつであ...
#ref(30.PNG,,60%)
2.2 スクリプトエディタ
スプレッドシートの[ツール]、[スプリクトエディタ]を開き、...
function doPost(e) {
var ss = SpreadsheetApp.getActive()
//下の2行はどっちでもOK 2つ目はシート一枚目という意味
//de.kore.naniyo
//var sheet = ss.getActiveSheet();
var sheet1 = ss.getSheets()[0];
var sheet2 = ss.getSheets()[1];
var jsonString = e.postData.contents;
//jsonString = jsonString.replace('\\','');
//jsonString = jsonString.replace(/\}\"/,'\}');
var data = JSON.parse(jsonString).toString();
// sheet.appendRow(["そのまま",jsonString]);
// sheet.appendRow([data]);
// sheet.appendRow(["パース",typeof(data)]);
var data2 = JSON.parse(data);
// var last=sheet.getRange("A:A").getLastRow();
if (data2.key1){
sheet1.appendRow([data2.key1.nowtime,data2.key1.bio_d...
sheet1.appendRow([data2.key2.nowtime,data2.key2.bio_d...
sheet1.appendRow([data2.key3.nowtime,data2.key3.bio_d...
sheet1.appendRow([data2.key4.nowtime,data2.key4.bio_d...
sheet1.appendRow([data2.key5.nowtime,data2.key5.bio_d...
sheet1.appendRow([data2.key6.nowtime,data2.key6.bio_d...
sheet1.appendRow([data2.key7.nowtime,data2.key7.bio_d...
sheet1.appendRow([data2.key8.nowtime,data2.key8.bio_d...
sheet1.appendRow([data2.key9.nowtime,data2.key9.bio_d...
sheet1.appendRow([data2.key10.nowtime,data2.key10.bio...
sheet1.appendRow([data2.key11.nowtime,data2.key11.bio...
sheet1.appendRow([data2.key12.nowtime,data2.key12.bio...
sheet1.appendRow([data2.key13.nowtime,data2.key13.bio...
sheet1.appendRow([data2.key14.nowtime,data2.key14.bio...
sheet1.appendRow([data2.key15.nowtime,data2.key15.bio...
sheet1.appendRow([data2.key16.nowtime,data2.key16.bio...
sheet1.appendRow([data2.key17.nowtime,data2.key17.bio...
sheet1.appendRow([data2.key18.nowtime,data2.key18.bio...
sheet1.appendRow([data2.key19.nowtime,data2.key19.bio...
sheet1.appendRow([data2.key20.nowtime,data2.key20.bio...
sheet1.appendRow([data2.key21.nowtime,data2.key21.bio...
sheet1.appendRow([data2.key22.nowtime,data2.key22.bio...
sheet1.appendRow([data2.key23.nowtime,data2.key23.bio...
sheet1.appendRow([data2.key24.nowtime,data2.key24.bio...
sheet1.appendRow([data2.key25.nowtime,data2.key25.bio...
sheet1.appendRow([data2.key26.nowtime,data2.key26.bio...
sheet1.appendRow([data2.key27.nowtime,data2.key27.bio...
sheet1.appendRow([data2.key28.nowtime,data2.key28.bio...
sheet1.appendRow([data2.key29.nowtime,data2.key29.bio...
sheet1.appendRow([data2.key30.nowtime,data2.key30.bio...
}
if(data2.mickey){
sheet2.appendRow([data2.mickey.nowtime,data2.mickey.m...
}
}
●使うコードについて
容量制限のため研究室googleDriveの[学生>沼田>>卒業論文]に...
&color(red){そのコード集をダウンロードして解凍したら、設...
そしたら下準備としてprocessing_data.pyをエディタを使って...
ここでのキーとはつくったスプレッドシートのURLの&size(18){...
#ref(31.PNG,,70%)
URLの/d/この部分/edit~
ここまでできたらラズパイとPCをつなげ、カメラから取得した...
***書き起こし [#w73247c1]
アルディーノと連結したラズパイを電源につないでPCとリモー...
●カメラ画像の書き起こしに使うコード
newsensa_all_name.py
まずこのコードを書き換える必要がある。
PC側でスプリクトエディタを開き、[公開>ウェブアプリケーシ...
Project version > new
Execute the app as > Me
who has access to the app > Anyone
にする
#ref(36.PNG)
更新するとURLが製造されるのでそのアドレスをコピーし、コー...
そしてコードをラズパイで実行する。
#ref(34.PNG)
これはアルディーノのセンサデータとカメラ画像を5秒ごとに表...
#ref(22.PNG)
詳しく見てみるとたしかにペットボトルの情報が書き起こされ...
#ref(33.PNG,,50%)
#ref(35.PNG,,60%)
***デンドログラム表示 [#ge5cc674]
スプレッドシートにシート2を用意し、PCで[processing_data.p...
#ref(39.PNG,,50%)
ページ名: