自宅モニタリング2

先週くらいから調子悪くてなんぞーと思って色々やってみたこと。

Raspberry PI + Arduino のときだけシリアル通信の数字にすごく幅がある

デバッグとしてArduinoMacを繋げて値を見るとそれっぽい室温に近い17という数字が安定して帰ってくるんだけど、
Arduinoをラズパイのある定位置に戻すと、0〜30くらい幅あってデタラメだった。
ハードウェアわからん(´・_・`)となってたんだけど、テレビが発信するノイズが原因だったらしい。
テレビ切ったら安定した。テレビの真後ろはノイズ大きい?それとコードむき出しだから影響受けやすいとかありそう。
テレビは、ラズパイのディスレプイとして使っていなかったので問題なし。それとテレビを消すとラズパイ無線LANが安定しまくるようになった。
ラズパイの置き場所がだめっぽい。

Rubyからシリアルポートの値を受信できない・取得するメソッドで止まる。

$ screen /dev/ttyACM0 ボーレート
$ sudo fuser -k /dev/ttyACM0 

ってやるとrubyから読めるようになる。なんなんだいったい...。
http://stackoverflow.com/questions/8359489/kill-process-that-raises-device-or-resource-busy-dev-ttyusb0

/dev/ttyACM0 が消える

物理的に接続ができていないようなのでつなぎ直したら出てきた。抜き差ししてもdmesg見てもメッセージ出ないなら物理的に壊れているんだろうな思った。

シリアル通信をしているフリをする

半日くらい走らせていると、ラズパイとArduinoのケーブルを抜いてもセンサを無視してそれっぽい温度数値17.58と17.09をだいたい交互な感じに返すことがよくある。もちろんセンサに触れても温度は上昇せず。
シリアルポートに常時繋げっぱなしをやめて、3回に1回くらいの頻度で再接続するようにした。