なんとかデリバリープロバイダでも、荷物届きました。
はい、中の人です。
ただ、昨日20日の午前中に再配達依頼したのに、
19日の20:50に来てまた不在通知入れていくっていう。
なんなの。
さて、昨日USB接続にしたモジュールを使って、継続的に情報を取得できるようにしよう。
と、その前に、とある方から「ラズパイって技適マークついてんの?」って突っ込まれたので、
解答いたします。
写真の通り、技適マークついてる。ただし、箱に印刷です。
よし、やっていこう。
接続はなんもむつかしいことなく、USBケーブルでつなぐだけ。
シリアル⇔USBモジュールのライトが明るすぎる・・・。
どうでもいいけど、USBケーブルはAmazon Basicのケーブル。
どんなもんかなーと今回初めて採用してみた。
まずはログインして認識されているかを確認する。
USB接続すると、serial0ではなくttyUSB[X]で認識される。
【pi@raspberrypi:~ $ ls -l /dev/ttyUSB*】
ちゃんと認識されてる。
試しに受信情報を表示してみる。
【pi@raspberrypi:/dev $ cat /dev/ttyUSB0】
※GPS情報が含まれるのでモザイク処理しています。
OK、とれてますね。
今度はPythonで取得する。
pythonで取得する方法は前々回書いたけど、
あの時は1発1発出さなければいけなくでめんどくさかったので、
今回は継続的に取得できるようにする。
pythonはシェルスクリプトみたいにスクリプトファイル書いて実行するとコンパイルしなくても実行できる。
なので、今回はpythonスクリプトファイルを書いて取得する。
とりあえず、作業用ディレクトリを作成する。
【pi@raspberrypi:~ $ mkdir pygetGPS】
【pi@raspberrypi:~ $ cd pygetGPS】
で、スクリプトファイルを書くのだが、Linux上で書いてもできるだけど、
ラズパイのエディタが使いにくいので、windows上でテキストエディタで書いて、
それをFTPで転送することにする。
エディタはなんでもいいけど、UTF-8で保存できるエディタで行うこと。
僕は、サクラエディタで行う。
以下の内容を書いて、「文字コード:UTF-8、改行コード:LF」で保存する。
import serial
ser = serial.Serial('/dev/ttyUSB0', 9600)
while True:
line = ser.readline()
print(line)
import serialpysirialを使うための宣言文(ただしくは、インポート文)
ser = serial.Serial('/dev/ttyUSB0', 9600)
pysirialにデバイスとボーレートを指定する。
ボーレートはデバイスにより異なるので、確認すること。
while True:
いわゆる無限ループさせる。
line = ser.readline()
シリアルから受信した内容を変数lineに保持する。
lineの前に空白があると思うが、pythonではこの空白が意味をもつので必ず、
ずらすこと。インデントをつける。
※ブログの関係で全角空白で書いているが、実際はタブか半角スペースで書いてください。
print(line)
保持させた内容を表示する。
上と同じくインデントをつけること。
これを、FTPでラズパイに転送する。
で、コンソールからpythonを呼び出す。
【pi@raspberrypi:~/getGPS $ python GetGPSdata.py】
うまくいった。
止めるときは「Ctrl+C」を押す。
そうすると、エラーが出るけど、止まる。
このエラーに対処するのは次回。
ということで、今回はここまで。
次回は、上のエラーを解決するためにスクリプトをいじっていく。