Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

Orange Pi 上のファイルにPCでコマンド・プロンプトからデータを書き込む。

測定したデータをESP8266を使ってOPi上のファイルに書き込むというのは、例えば「ダイソーのモバイルバッテリーに入っている18650の放電テスト 1~2回目」あたりでやっている。
このように、OPi上のサーバーをThingSpeakみたいな感じのデータ・ロガーとして使うのは非常に便利だ。
ESP8266の側にデータを保存する仕組みが必要ないので単純化できるし、時系列な測定に必須の時刻の管理もサーバー側に任せておけばいい。
つまり、センサー側で用意するものがほとんど無い。

以上の主旨からは若干外れるが、センサー側のESP8266でやってるのと同じことをPCから、しかもコマンド・ラインからやる方法を試したので覚書き。

いろいろ探し回った挙句、「telnetで、VBS+WSH の sendkeys を使う」やここの「Rev2. コマンドラインから直接HTTPでリクエストする。」というのを見つけたので真似してみた。
「VBS」と「senfkeys」は小耳にはさんだことが有るような無いような、「WSH」は完全に初耳状態だ。
WSH = Windows Script Host ここらあたりが参考になった。
というか、気が向いたらあとで読むかも。

上にも書いたように、INA219の測定値を記録するためのPHPがすでにOPi上に置いてあるので、とりあえずこれを使ってみることにする。
こんなの。

ついでながら、ESP8266からはこんな感じでデータを送っている。

この書式を真似て送ればいいだけのことだろう。
上のサイトにならって、
testtelnet.batを以下のようにし、

testtel.vbsを以下のようにした。


実行すると、Opi上のbyINA219_log.csvにデータが追加される。

追記(2017/08/19)
久しぶりにやってみたらエラーで書き込めない。

とするところを

としていた(上では修正済み)からだ。
GETやらPUTやらPOSTやら、ごっちゃになっているし、違いも良く分からない。

Bad Request
Your browser sent a request that this server could not understand.

とだけ言ってくる。
仕方ないので、サーバーのログ、
/var/log/apache2/access.log
を眺めてみる。

ESP8266からもデータを送ってきているのでそれもログに記録されている。
赤線こそが性懲りもなく間違ったコマンドを試している証拠のログだ。
Firefoxから手動でphpにデータを渡してみた時のログが青線で示されている。
当然、問題なくデータは書き込まれている。
このログを見て、
「GETじゃん。なんだよPOSTって…。」
とやっと間違いに気づく。

このエントリーをはてなブックマークに追加

Posted under: Orange Pi PC2, Software その他, Windows10 Pro 64BIT


コメントを残す

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

Time limit is exhausted. Please reload CAPTCHA.