無線lanArduino自体のCPUはARMプロセッサーの様に強力ではなく、UNOレベルだとメモリも2K程度と非力ではあるが、Arduinoの可能性を無限に広げるシールドとライブラリの豊富さに驚かされる。WiFiシールドもその一つで、Arduinoにさくっと乗せてソフトをちょこっと書くだけで無線LAN通信が出来、簡単ではあるがWebサーバーも出来てしまう。今回使用するのはCC3000のチップを使用したWiFiシールド。WiFiシールドと互換性がありライブラリもそのまま利用できる。チップ自体が技適認証を取得済のため、国内使用も安心である。ライブラリをインストール。IDEでライブラリをインポートする。https://github.com/adafruit/Adafruit_CC3000_Library/archive/master.zipインポート後、スケッチの例を開くと色々なサンプルが出てくる。buildtestのサンプルスケッチを開く。スケッチを開いた後、下記行を編集し、接続したいアクセスポイントとパスワード、セキュリティ方式を記述する。WLAN_SEC_WPA2後はビルドして実行。シリアルポートモニターを開くと接続状況が表示される。baud)最初にCC3000のファームバージョンやMACアドレス、次にスキャンしたアクセスポイントのリスト、アクセスポイント接続後にIPアドレス等の情報、最後にadafruitへのpingテストを行い終了している。connectionCC3000はSmartConfigと言う機能を持っており、接続先アクセスポイントの情報をiPhoneやAndroidのアプリから設定する事が出来る。SmartConfigCreateスケッチをArduinoに書き込みAP情報をスマホから設定するとCC3000に接続先情報が保存され、SmartConfigReconnectのスケッチを参考に接続を行うと、次回からCC3000に保存された情報を元にアクセスポイントに接続する様になる。SmartConfigで検索)。ライブラリには以下のサンプルスケッチが含まれているので、これらのサンプルをベースに大体の事は出来るのではないかと思う。Tweetのサンプルにはアカウント認証のコードも含まれている。Webページを取得するEchoServerのスケッチを開き、実行後telnetからポート7を開くと接続できるので、適当に入力すると一文字一文字エコーが返ってくる。(最近のWindowsは標準でtelnetが入っていないので、プログラムの追加と削除からtelnetクライアントを追加する)IPアドレスはシリアルモニターで確認、Windowsのコマンドプロンプト等からtelnetでポート7に接続する。7では、echoサーバーをベースとして簡易Webサーバーを作ってみよう。HTTP通信はポート80なので、LISTEN_PORTを80に変更する。クライアントからのデータを一時バッファーに保管し、改行コードが来た時点でデータの中身を確認する。本互換ボードは6番PinがLEDライトになっているので、AP通信後とデータ通信時にオン・オフする様にして、通信状況が分かる様にしている。(緑が電源、オレンジが6番PIN制御)行頭がGETの場合、その後に取得したいページの情報やCGIのGETメソッドのパラメーターが続く(HTTPの詳細についてはここでは割愛)。クライアントのデータは最後が連続した改行が二回続くので、改行が二回来た時点でWeb情報をクライアントに返信する(HTMLコードを返す)。下記例ではCGIで数字入力のページを表示するサンプル。下記スケッチを実行後ブラウザからアクセスすると、入力エリアと送信ボタンが表示される。適当な数値を入力してGoボタンを押すと、Arduinoの下記サンプルスケッチではreplypage関数のservo_param変数にその値が入る様にしているので、ここでサーボモーターを制御するコードやリレーを制御すれば、Webから操作できるArduino工作の出来上がりである。Webから情報を取得したり、ブラウザーから何かを制御したり、センサーの情報をブラウザーから確認出来る様にするなど、WiFiシールドを使う事で大幅にArduinoの可能性が広がる。}}WiFiシールド自体ピンを多数使うのがやや難点ではある。AMありがたく記載されてる情報を参考にさせてもらっている者です。...”のところで静止してしまいます。一応PCによる無線LAN機能で”SSID”と”password”の確認は行っており、そちらでは問題なかったのですが・・。考えられる原因などありましたら、ご指導願えないでしょうか?よろしくお願いいたします。PMbuildtestの場合、Initializingの次にFirmwareの情報が出ますので、Initializingで止まる場合、恐らく信号がシールドから来ずずっと待ち状態が続いていると考えられます接続は半田不良等で上手くシールドと通信できていないか、シールドが異常かもしれません。シールドを抜差ししても改善しない様であれば他のArduinoがあれば差し替えてみて、それでもだめならシールド不良(ファームウェアかハード的な不良)かもしれません。確認したところ、ご指摘のとおりピンの半田に不良があったようです。(応力がかかると導通障害を起こしていたようで、基板単体での導通は問題なかったです。)修正を行ったところ、無事に通信しました。ありがとうございました。コメントをキャンセルメールアドレスが公開されることはありません。*上に表示された文字を入力してください。ProgramResource.net本サイトは開発者向けに様々な情報を筆者ねふぁが提供するサイトです。筆者の個人的な経験や知識、他のサイトの情報を参考にしながらまとめています。内容に誤りや偏見などある可能性がありますのでご注意下さい。本サイトの情報を元に工作等を行い、万が一機器等が破損した場合でも責任は負いかねますので、最終的にはご自身でチェックしてから動かす様にして下さい。