「PCの見張り番」+「TWEETコマンド」でプッシュ通知する。

自分が貼りついていられないPCで、ある作業をやらせているとする。
作業が終了したとき、あるいは何らかの不具合で止まってしまったとき、それを教えてくれると助かる。
Wi-Fiの範囲内にAndroid端末があって、プッシュ通知を受け取れる環境にあれば、これを利用できたら非常に便利だ。
今のところ、これから書く方法なら最速で通知がくるようなので、覚書きしておく。

「PCの見張り番」+「TWEETコマンド」で、PC上のプログラムの状態をツイートしてAndroid端末にプッシュ通知する。
「PCの見張り番」については、「PCの見張り番」に書いた。
今回新しく加わった「TWEETコマンド」は、ベクターからもらってくる。
インストール()すると、インストール先にreadme.txtがあるので、その通りにバッチ・ファイルを作って、実行ファイル(Tweet.exe)と同じフォルダに置く。
あとは「PCの見張り番」で下のように設定し、赤枠のアイコン部分をクリックして、先ほど作ったバッチ・ファイルを指定すればいい。
その名前が赤枠の右の欄に表示される。
PCの見張り番のその他の設定については「PCの見張り番」に書いてある。
mihari_tweetcommand_01
「PCの見張り番」–>「TWEETコマンド」経由でツイートすると、数秒で手元のAndroid端末に通知が届く。
もちろん、「PC上である処理が終了したらメールで知らせる。」に書いたように、メールでもいいのだが、現在の環境では、Gmailをプッシュ通知に使っていて、実際にAndroid端末が反応するまで数分かかる。
他をいろいろ試したわけでは無いので、一概には言えないかもしれないが、今のところここで書いた方法が、ダントツで速報性が高い。
というか、これ以上速くはならないだろう。

「TWEETコマンド」はmsiファイルで提供されるのだが、PCの環境によって、インストール出来たり出来なかったりだった。
出来なかった場合のエラーメッセージは、
「Tweet_Setup.msi の読み込みに失敗しました。ファイルが存在しアクセス権があることを確認してください。」
というものだった。
インストール出来たPCでは、何も起こらずにそのまますんなりインストール出来た。
出来ない方は、アクセス権をいろいろいじってみてもやはりインストールできなかった。
両者の違いは分からない。
持ち主の私としては同じつもりだが、きっと何かが違うんだろう。
結局、C:¥Users¥username¥Documents 以下にコピーして、そこから実行するとインストール出来た。
環境は、Windows10 Pro 64BIT だ。
ホントにこのOSは、作ったヤツが馬鹿なんだか、ユーザーをなめてんのか知らないが、余計な規制が多くて辟易する。
どこぞの、税金泥棒達とよく似ている。




AtHome Camera

ついさっき「2台のスマホで無料で監視カメラを構築する。」で「ペット、赤ちゃん カメラ アプリ, 家庭用のIP監視カメラ」というアプリを試したばかりだが、AtHome Cameraの方が撮影した動画の保存場所がわかりやすいので、いまのところこっちの方がいいかなと思う。
というか、前者の動画の保存先がどうしても見つけられなかっただけだが。
こちらも、2つのAndroid端末を使う。
監視する側の持つ端末にはAtHome Cameraをインストールする。
Screenshot_2016-07-24-17-47-59
Screenshot_2016-07-24-17-57-06
Screenshot_2016-07-24-17-57-18
Screenshot_2016-07-24-17-57-39
Screenshot_2016-07-24-17-58-21
この状態で、こちらの端末は待たせておく。
その間に、カメラとして使うAndroid端末の方の設定をする。
カメラ側には、AtHome Video Streamerをインストールする。
Screenshot_2016-07-24-17-58-39
起動すると、下のような表示になるので、[切替]をタップする。
ちょっと日本語が変だが…。
Screenshot_2016-07-24-17-58-47
これも、何を言ってるのかよく分からないが、[後で]をタップする。
Screenshot_2016-07-24-17-58-54
すると、下のようにQRコードが表示されるので、先ほどから待たせてある監視側の端末にこのQRコードを読ませる。
Screenshot_2016-07-24-17-59-16
すると、カメラ側はこの状態に、
Screenshot_2016-07-24-17-59-02
監視側はこういう状態になって、監視状態になる。
Screenshot_2016-07-24-19-54-39

肝心の撮影動画は、AtHome > athome_video の中に保存されている。
Screenshot_2016-07-24-20-06-17




2台のスマホで無料で監視カメラを構築する。

ペット、赤ちゃん カメラ アプリ, 家庭用のIP監視カメラ」というのがアプリの名前のようだ。
アプリ内購入はあるようだが、基本機能は無料で使える。
2台のAndroidスマートフォンを用意して、それぞれにGoogle Playからアプリをインストールする。
起動するとこんな画面になるので、
Screenshot_2016-07-24-15-57-53
どんどん送っていくとスタート画面になる。
ここまでは2台のスマートフォンで同じようにし、それぞれスタートをタップする。
Screenshot_2016-07-24-15-58-01


ここからはカメラにする方のスマートフォンの設定を書く。
Screenshot_2016-07-24-15-58-22
Screenshot_2016-07-24-15-58-36
Screenshot_2016-07-24-15-58-45


ここからはビューアーにする方のスマートフォンの設定を書く。
Screenshot_2016-07-24-15-58-57
Screenshot_2016-07-24-15-59-09
Screenshot_2016-07-24-15-59-34
Screenshot_2016-07-24-15-59-56
Screenshot_2016-07-24-16-00-10
カメラの設定は以下のように変更できる。
Screenshot_2016-07-24-16-00-10-2


この機能が、無料で実現できるのは、いろいろ便利だ。




handyCalc

あまりにも気に入ったので、使い方で迷った部分などを少し書いておくことにした。
handycalc_usage_07
このキーは方程式の解を求めるなど、計算結果を表示させるためのもの。
handycalc_usage_01

同じ「=」だが、こちらのキーは数式に使う記号としての「=」を打ち込むためのもの。
handycalc_usage_02

複雑な式を幾度も入力するのは面倒なので、コピペを活用する。
handycalc_usage_03
handycalc_usage_04
handycalc_usage_05
handycalc_usage_03
handycalc_usage_06




Plain text passwords are disabled

ESファイルエクスプローラー(以下ESFE)でネットワーク上のPCに接続しようとすると「Plain text passwords are disabled」と出ることがある。
Screenshot_2015-02-09-16-18-58
出たり出なかったりなので真面目に対処したことは無かったのだが、今日この症状が出て、気が向いたので調べてみた。
ちなみに、Splashtopでは問題なく接続できるので、ネットワークの設定が間違っているとか電波の状態が原因とかいうわけではない。

検索してみるとPCを再起動することなく対処する方法としては、該当PCのWorkstationというサービスとServerというサービスを再起動すればいいとあった。
サービスを開くには、[コンピュータ]を右クリック>[管理]>[サービスとアプリケーション]>[サービス]とたどる。
win7service
サービスを選んで「サービスの再起動」をクリックすればいい。
win7service2
その後、ESFEを再起動すると、ちゃんと接続できるようになった。

なお、「ネットワークセキュリティ:Lan Manager 認証レベル」のプロパティを「NTLMv2応答のみ送信する」に設定する。
という方法が書かれた記事もいくつか見かけた。
コントロールパネル>システムとセキュリティー>管理ツール>ローカルセキュリティポリシー
>セキュリティーの設定内のローカルポリシー>セキュリティオプション とたどる。
こちらはPCを再起動する必要がある。
うちの環境を調べてみると、問題の出ているPCも、問題なくつながっているPCも、すべて同様に「未定義」と設定されていた。
同じ設定なのに症状の出方が違うのでこの設定が無関係である可能性もあると考え、今回は設定を変更しなかった。
上の方法でエラーも出ず、接続できるようになったので「まっ、いいか。」となって、こちらの方法については詳細を詰めたわけではない。

追記(2015/02/11 20:47)
P8Hのみエラーが再発(他の3台は問題なし)>ESFE再起動>改善せず>Serverサービスを再起動>改善せず>ESFE再起動>改善
Workstationは無関係か?




eclipse で Unable to resolve target 'android-17' エラー

久しぶりにeclipseを起動したら「Unable to resolve target ‘android-17’」というエラーが出た。
Unable_to_resolve_target-01

ちなみに以下、環境はWindows 7 PRO 64BIT、the Eclipse ADT Bundle のバージョンは「adt-bundle-windows-x86_64-20140702」だ。

早速検索すると、要は該当するAPIがインストールされてないということのようだ。
自分で作ったプロジェクトならターゲットは意識しているからAPIが用意してあるか確認するわけだが、人様のプロジェクトを拝借するときはこういうことが起こるというわけだと理解した。
いずれにしても「SDK Manager.exe」を起動する。
起動しない。
一瞬DOS窓が開くが、表示を見る間も無く閉じる。
また検索すると、java.exeの呼び方がおかしくなってるからとのこと。
気になって調べてみたら、このシステムにはjava.exeが5つもある。
Unable_to_resolve_target-02
こんなに必要なのか、それとも本来は1つでいいのかすら分からないが、要は、呼ぶべきjava.exeと違うjava.exeが呼ばれてしまって「SDK Manager.exe」が起動しないんだそうだ。
この場合は、
adt-bundle-windows-x86_64-20140702¥sdk¥tools¥android.bat
を起動すればいいらしい。
すると、やっと「Android SDK Manager」が起動して、確かに件のAPIはまだインストールされていなかったことが確認できる。
Unable_to_resolve_target-03
チェックを入れてインストールする。




PIC+Bluetoothドングル+Nexus 7 Software 2

LEDの明るさを変更するにはAndroid側から「S##」を送信する(##は0~99までの数字)のだが、これもシーク・バーに連動させた方が扱いやすいので変更した。
ついでにボタンも大きめにし、縦と横でレイアウトを変更したりした。
Screenshot_2013-12-23-05-57-22

Screenshot_2013-12-23-05-57-55
レイアウトは
res¥layout¥main.xml
で決定しているが、横のレイアウトはこのファイルを
res¥layout-land¥main.xml
となるようにlayout-landフォルダを作成してコピーし、eclipseのGraphic Layoutで変更するのが手っ取り早かった。
これだけの操作で、Nexus 7を縦に持っても横に持っても自在にレイアウトが切り替わる。
ただし、縦から横、横から縦に画面が切り替わるとBluetoothの接続が切れる。
この対処方法は見つかっていない。
縦か横で固定にする方法もあり、AndroidManifest.xml の activity にscreenOrientationを追加すればいいのだそうだ。
横画面に固定するには
<activity android:screenOrientation="landscape">
縦画面に固定するには
<activity android:screenOrientation="portrait">
と書く。




Androidアプリ開発できるかな 015 サンプルを取り込む

プロジェクトとして提供されていないコード部分だけのサンプルを取り込んで自分でプロジェクトを作成するときに、なるべくトラブルが少なくなるようにするために気をつけた方がいい点の覚書き。
一度はどこかで目にして知ってはいても、そのうちいろんなコードを見つけてきてはお試しするようになるとすっかり忘れている内容だ。
ま、1年半以上放置するから当然のことなのだが。

たとえば以下のようなサンプルを見つけた場合。

Android layout xml file: activity_main.xml
Activity class: MainActivity.java

プロジェクトを作成してからでないとソースのファイルを読み込めないのでまずはプロジェクトを作るが、そのときすでにソースに書かれている設定を参照しながらやらなければいけない。
というか、ド素人には後の対応が難しい。

doroid_app_15-01

まずはソースのこの部分を参照して、
doroid_app_15-02

このように同じにした方がいい。
doroid_app_15-03

この部分は、
doroid_app_15-04

この設定で名前を合わせた方がいい。
ソースのファイル名も「MainActivity.java」となっているし、「activity_name」はソースのファイル名の「activity_name.xml」と合わせてある。
doroid_app_15-05

もちろん、プロジェクトを作ったときに自動で作成されたコードを後で消して、頂いて来たサンプルのコードを貼り付ければ、ファイル名がらみのトラブルは起きない。

それでも、この例ではres¥menu¥main.xmlとソースの記述で問題が起きるたで、多少のコードの修正は必要だった。
doroid_app_15-06

doroid_app_15-07

以上の手順を慎重にやらなかった場合は対処に手間取ることになるが、この例では、上の「activity_main」を「main」に書き換えただけでエラー無く実行できた。




PIC+Bluetoothドングル+Nexus 7 Software

PIC用のプログラムと回路を4LEDに対応させ、Android用のアプリはボタンを増やして、液晶画面をタップすることで4種類の信号を送れるようにそれぞれソースを書き換えてみた。

Bluetooth Chatもいいけれど、やっぱりタップでコントロールできる方がいい。

環境をまとめて書いておこう

PIC回路関連
Bluetooth USBアダプター iBUFFALO BSHSBD04BK
Microchip PIC24FJ64GB002
USBコネクタ(Aタイプ メス)
タクトスイッチ
抵抗 10kΩ
抵抗 150Ω
LED
電解コンデンサ 10μF
ブレッドボードとか配線材とか

PIC Program関連
Microchip PICKit3
MPLAB X IDE v1.95

Androidアプリ関連
Android Developer Tools v22.3.0-887826

Android端末
Nexus 7 (2012) Android 4.3

PC OS環境
Windows 7 Pro 64BIT




Androidアプリ開発できるかな 014 Eclipseのプロジェクト名を変更する

Eclipseのプロジェクトをバックアップするにはどうするのがいいんだろう?
試行錯誤でコードをいじくるのに、ここまでは完成という段階をキープしておいて、まずかったら戻って来れるように、1つ前のプロジェクトをとっておきたい。

どんな方法が一番いいのかわからないので、暫定的な方法の覚書き

フォルダごとコピーして番号をつけて管理するのでプロジェクトの名前を変更する。
すべて、プロジェクト・エクスプローラー上のプロジェクト名を右クリックして、表示されるメニューからの操作だ。

プロジェクトを開いておかないとメニューに必要な項目が出ないので開く。
eclipse-project-ren-01

eclipse-project-ren-02

名前の最後に番号でもつけるのがいいかなと思う。
eclipse-project-ren-03

このとき、「リソース ‘Hogehoge’ はファイルシステムと非同期です。」といわれたら、
eclipse-project-ren-04

戻って「更新」をクリックしてから再度行う。
eclipse-project-ren-05

追記
バックアップの目的なら、プロジェクトをコピーして、貼り付ける時に名前を変更すれば良いようだ。
eclipse_copy_paste

「Androidアプリ開発できるかな 015」へ