arduino WOL リピータのスケッチを最新の開発環境用に修正・更新
「arduino WOL リピータ」の作成は本当に難しくないです。
「専門的なことは何も分からないけど、とにかく「arduino WOL リピータ」を実現したい人向けの説明」です。これを機会に新しい世界を楽しんじゃいましょう。きっといい趣味になりますよ。
紹介している「arduino WOL リピータ」ですが、マイコンボード「arduino」を触ったことがない方や技術的なことに詳しくない方にはとっつきにくいですよね。
でも、ネット社会である今、自宅から職場のパソコンの電源を入れたり、またはその逆は、PCユーザーなら初心者を問わず必要なことになってきました。
それには、必ずマジックパケットのルータ越えというテーマがつきまといます。
手順1.とりあえずモノをそろえる。
◆下記の電源を含む3点を購入。
◆arduino用の電源として下記のいづれか一方
持っていない人は、LANケーブル
手順2.手に入れたら、arduino基板にプログラムを転送するためのソフトをダウンロード&セットアップします。
◆下記サイトからarduino 用開発環境の最新版を手に入れる。
http://arduino.cc/en/Main/Software
ZIPで圧縮されているので、適当な場所に解凍。
「arduino WOL リピータ」の実現だけなら、とりあえずデスクトップでもOK
◆ドライバーのインストール
※基板を触るときは、直前にパソコンの金属フレーム部分に触るなどして、体にたまった静電気を逃がしてくださいね。
手元のarduino基板とパソコンをUSBケーブルで接続します。
Windows VISTA以降の場合は、ネットから取得するように選択すれば自動でインストールされます。
参考ページ(http://yutakalife.net/article/303005532.html)
Windows XP/2000の場合は、先ほど手に入れた「arduino 用開発環境」の解凍したフォルダの中に「drivers」とフォルダがあるのでそのフォルダを検索先に指定してインストールしてください。あとは、自動でインストールされます。
arduino_osc-tip.zipというファイルを下記サイトからダウンロード。
(Tag名、tipの横のDownloadの下、zipをクリック)
http://bitbucket.org/bjoern/arduino_osc/downloads/
圧縮されているので、適当な場所に解凍。
解凍された中の「arduino_osc」というフォルダの中に「libraries」というフォルダがあります。
さらにその中に「Ethernet」「String」というフォルダがあります。
まず「Ethernet」の内容をすべてarduino IDEのフォルダ「\hardware\libraries\Ethernet」にコピー。
次に「String」の内容を「\hardware\libraries\String」にそれぞれコピーしてください。
これが終わったら、arduino_osc-tip.zipと解凍して出来たフォルダは、削除してしまってOKです。
手順3.「arduino WOL リピータ」を作成
※基板を触るときは、直前にパソコンの金属フレーム部分に触るなどして、体にたまった静電気を逃がしてくださいね。
まず、arduinoとパソコンをつないでいるUSBケーブルを外します。
ここで、「arduino」と「ethernet shield」を合体させます。写真参照
arduino基板とパソコンをUSBケーブルで接続します。
手順2.でダウンロードして適当な場所に展開したフォルダ内の「arduino-xxx」フォルダの中にある「arduino.exe」をクリックして実行します。arduino 用開発環境が起動してウインドウが現れます。
現れたウインドウ内上部の「ツール」の中の「マイコンボード」の「Arduino Duemilanove or ...」が選択されていなければ選択する。
「ツール」の中の「シリアルポート」の「COM3」にチェックがついていなければチェックをつける。
手順4.arduino基板にプログラムを転送する。
「arduino WOL リピータ」のスケッチ(コード・プログラム)を全部選択してコピーします。
arduino IDE 日本語版のカーソルがある部分にペーストします。
ペーストしたスケッチの中の「Arduino のIP address」という部分に「192, 168, 1, 200」を上書きする形で自分のネットワークに合うIPアドレスを入れます。※この場合は、ピリオド「.」ではなくカンマ「,」です。
左上の再生ボタンみたいなのをクリック。
コンパイルが終了するのを待つ。
次に右向きの矢印に縦棒線みたいなのをクリック。
arduino基板にプログラムが転送され、自動的に実行されます。
これで「arduino WOL リピータ」は完成です。
arduino用の電源として購入した電源アダプタにUSBケーブルをつなぎ換えます。念のために「ethernet shield」上のリセットボタンを1回押してください。
LANケーブルで「ethernet shield」とスイッチングHUBやルーターのHUBポートを接続します。
これで「arduino WOL リピータ」の作業は終了です。剥き出しだと心配でしょうから、100円ショップなどで適当なプラスチックケースを買ってきて穴をあけて放置するのが良いでしょう。
次にルーターのポートを開いて、ポート転送の設定をルーターで行ってください。開くポートは、7番。転送先のIPアドレスは、先ほどの「Arduino のIP address」という部分のアドレスです。
手順5.外部ネットワークから(インターネット経由で)マジックパケットを送信する。
私は、sndmagic (For Windows NT) Latest version 0.2 を使わせてもらっています。このソフトは、ポート7番を使用します。下記サイトから入手可能
http://www.st.rim.or.jp/~yumo/pub/sndmagic_chglog.html
このソフトを使う場合は、sndmagic.exeとmagic.exeをパスがとおっている場所(C:\Windows\system32)などにコピーして使うと、バッチファイルのクリックのみで、対象PCの遠隔電源オンが可能で便利です。
バッチファイル「sndmgc.bat」の内容は、下記のような感じ
magic -q xxx.xxx.xxx.xxx 32 XXXXXXXXXXXX
xxx部分は、グローバルIPです。ターゲットがあなたの自宅のパソコンなら、そのグローバルIP。
XXX部分は、ターゲットパソコンのマックアドレス。windowsなら、ターゲットパソコン上のコマンドプロンプトで「ipconfig /all」などで調べてください。
別のソフトやサービスを利用する場合は、それにあわせてポート番号を変更してください。具体的には、【手順4.arduino基板にプログラムを転送する。】に戻ってください。
ペーストしたスケッチの中の「local port to listen on」という部分に7番が設定されていますが、ここを変更してください。
下記ウェブサイトのマジックパケット送信サービス利用する場合は、2304
http://www.starstonesoft.com/mp/
「Wake up On Lan Tool」というソフトを利用する場合は、任意でポート番号を指定できるので、7番のままでもかまいません。
ポート番号を変更したら、ルーターでのポート転送設定も変更してください。
不明な点やうまく動作しないことなどありましたら、コメントください。可能な限り対応します。
プログラムについては初心者ですが、ルーター越えのWOLが必要なため、記事の沿って作業を進めました。
(1)リンクから「Arduino UNO」を購入
(2)リンクから「IDE 0018」の日本語版をDL
(3)リンクから2つのライブラリ・フォルダをDL
(4)上記(2)の「libraries」フォルダに(3)のフォルダをコピー
それで、記事のスケッチを上記(2)のIDEにコピーして(1)のボードにアップロードしたところ、エラーが出ました。
> avr dude: stk500_getsync(): not in sync: resp=0x00
> avr dude: stk500_disable(): protcol error, expect=0x14, resp=0x51
IDEの「検証(verify)」では問題ないので、調べたところ、「Arduino UNO」にアップロードするにはIDEの0021以降が必要であるということでした。
http://www.arduino.cc/en/Guide/Troubleshooting#toc1
http://www.switch-science.com/products/detail.php?product_id=428
それで、IDEの最新版(0022)をDLして、上記(3)以降の作業を行ったのですが、今度はライブラリ(WString)のエラーが多数出て、「verify」もクリアできない状態になってしまいました。
念のため、0022のライブラリを全て削除して、上記(2)〜(4)のライブラリ・フォルダをコピーしたのですが状況は変わりませんでした。
対応策を教えていただけないでしょうか。
御面倒おかけして恐縮ですが宜しくお願いします。
その後適当にスケッチを変えながら、何とかコンパイルとボードへのアップロードを終えました。
それで、ルーター越しで専用ソフトを使ってマジックパケットを送ったのですが、うまく起動しませんでした。
ホストPC(起動させたいPC)のシリアルモニタをみると、確かにマジックパケットが届いており、その内容が表示されています。したがって、ルータ越えには成功していると思います。
スケッチ上は、そこからブロードキャスト用のアドレス(192.168.X.255)に転送しているので、起動するはずなのですが・・・。
ちなみに、同じLAN上の他のPCからは専用ソフトを使ってWOL起動できるので、OS(win7:64bit)やBIOSの設定に問題はないと思います。
後は、上記のブロードキャスト用アドレス宛に本当に信号が発信されているか(sendPacketコマンドが動作しているか)確認してみるつもりでその方策を考えています。それでダメならばお手上げに近いです。
ボードの電源をターゲットPC(サーバ)から取っていたのが原因でした。
ボードもPCも遠隔地にあり、これらをリモート操作していたので、こんな簡単なことに気づくのに1日かかりました。手元にあればランプの消灯ですぐ気付くはずですが・・・。御報告まで。
その後、貴サイトの「arduino WOL リピーター&スイッチャー」(※1)を参照して、PC以外の電気製品のON/OFFも試してみました。
デモの様子をYouTubeにアップしています。
http://www.youtube.com/watch?v=-X7uSaUODxA
なお、赤外線リモコンの複製は「戸田よろず研究所」さんのサイト(※2)を参照しています。
いずれのサイトも大変素晴らしく、"Grazie mille!" です。
※1
http://yutakalife.net/article/134256657.html
※2
http://www11.ocn.ne.jp/~tyk/ircopy2/ircopy2.html
(補足)
スイッチの長押しでPCを強制終了すると、WOL(マジックパケットのブロードキャスト)による起動ができなくなります。
私のPC固有の現象かもしれませんが、スイッチによる起動は問題ないので、これが運用上の障害になることはありません。ご参考まで。
その後、Arduinoを使ったWOLシステムの信頼性向上をいろいろ試してみました。作業にのめりこんでいる間に季節が変わってしまいました。
試行錯誤と出来上がりの様子を、先の動画と合わせて5本シリーズにして、YouTubeにアップしました。よろしければご覧ください。
(1)WOL用のソフトでArduinoに様々な指示を送ります
http://www.youtube.com/watch?v=-X7uSaUODxA
(2)ブラウザでArduinoに指示を送り、画面に結果が示されます
http://www.youtube.com/watch?v=uqCd0TtRYfw
(3)WOL機器を2系統にして、相互回復機能で信頼性を高めます
http://www.youtube.com/watch?v=XQq5CjHP4v8
(4)上記の2系統システムを監視して不調を報告します
http://www.youtube.com/watch?v=8n5NaqSy2-M
(5)熱対策を考慮して、リレー基盤とArduinoを取りつけます
http://www.youtube.com/watch?v=KE8mAdZX0Uc
このシリーズの内、(2)と(4)はWOL以外にも活用範囲がありそうです。また、(3)は私独自の環境に対応したものなので、Arduinoを2つ用意するのであればあまり苦労はないと思います。以上、報告と御参考まで。
追伸:はんだ付けが少し上手になりました。
(3)の動画のURLが下記に変わりました。
http://www.youtube.com/watch?v=_fNb57xgW80
http://www.youtube.com/watch?v=G939y9cSnic
IDE 1.0.1を使ってコンパイルしようとしたのですが、どうしてもUdpRaw.hがインクルードされません。
error: 'UdpRaw' was not declared in this scope
サイトに記述されているとおり、UdpRaw.hは\hardware\libraries\Ethernetにコピーしております。
なんにかヒントだけでも教えていただけないでしょうか。
arduioも1年近く御無沙汰なので、技術的な内容はほぼ完全に忘れてしまいましたが、覚えている範囲で書きます。
私はIDEの0022を使ったのですが、その時点で既にこちらのサイトの記事は少し古くなっていた気がします。具体的には、・・・
代理人を通して印鑑登録廃止<a href="http://www.superhanko.com/">角印</a>登録を行うこともできます。ただし、本人からの申請であるかどうかを確認する必要があるため、登録者本人が来庁するのに比べ、手続きが多く期間も要します(代理人申請では、一度の来庁では印鑑登録は完了せず、証明書を交付することはできません)。個人ではなく法人(団体)の請求書、領収書、契約書などに、社名や<a href="http://www.superhanko.com/">社印</a>住所に付して確認のための印として用いられる角型の印鑑。右縦書きで篆書体で「○○株式会社之印」のように彫られていることが多い住民票のある役場でその印鑑登録を抹消する手続きをすれば会社で持っているカードはその時点で無効になります。印鑑登録が必要なら、再度登録すれば新しいカードが交付されますし新旧2枚のカードで別々に取った<a href="http://www.superhanko.com/">印鑑</a>証明書がある場合には「あたらしい日付のものが有効」です。印鑑カードの発行のみ、登記をした法務局でしか取得できません。印鑑カードを持っていなければ、管轄の法務局に行かないといけません。印鑑カードを取得しており、印鑑証明書の発行のみであれば、管轄外の法務局でもできます。あなたがお持ちの<a href="http://www.superhanko.com/">印鑑通販</a>「印鑑判子」を実印に使っていたり、銀行に使っていたりすればいくら安い物でもそれはとても大事な「<a href="http://www.superhanko.com/kojin-set2.html">実印販売</a>」になります。反対にいくら高い「印鑑判子」でも役所や銀行に届けを出していないものは、只の字の彫られた棒きれです。スポンジが薄くなり、カスが出たり、汚れたり、ぼろぼろなっている様でしたら、スポンジごと交換いたしましょう。印鑑ケースに愛着があるようでしたら、やはり朱肉部分の交換<a href="http://www.superhanko.com/yzkojin-zituin.html">印鑑激安</a>です。シャチハ○等で補充インキカートリッジが市販されてます。そっくり交換が簡単のようです。 2個入りです。250〜300円で量販店などで売られております。後々の使い勝手が大変良いのが、実感なのです。申請後、本人の意思確認のため、照会書を本人の住所地宛に送付されますので、照会書が届いてから所定の期日内に、必要事項を記載して再度持参してください。
良い雰囲気オンラインショップです、各種海外有名ブランドを集め、品豊富、手頃価格、見つからない商品も問い合わせ出来、対応丁寧。チタン、タングステン、セラミック素材の指輪、ネックレス、ブレスレット、イヤリング。セクシーランジェリーも販売し、お洒落商品の便利店です、気に合う物が絶対ありますので、ナイスショップ オンライン(niceshop-online.com)是非覚えて、一度ご来店してホームページをご覧ください。
niceshop312@yahoo.co.jp
http://www.niceshop-online.com
圧倒的な安さと品揃いが魅力的タオバオ代行!
ご注文を期待しています!
service@86daikou.com
タオバオ代行: www.86daikou.com
タオバオ: www.86daikou.com
taobao: www.86daikou.com
taobao代行: www.86daikou.com
中国 代行: www.86daikou.com
淘宝網: www.86daikou.com
中国 仕入れ: www.86daikou.com
中国オークション: www.86daikou.com
その後WOLですが、WAN側のIPアドレスの変更確認を忘れてしまうことが何度かあり、今夏2年ぶりにarduinoに触ってみました。
試行錯誤でIPアドレスの監視・報告機能を付けることができました。デモの動画をアップしましたのでよろしければご覧ください。
tp://youtu.be/aIoY3HQg32M
tp://youtu.be/cm0Xrdr_3Kk