4

更新: 問題の原因を突き止めました。複雑さを避けるために、私は ScanNetwork の例を使用しているので、SSID. にヒットするとすぐに、コードはボード上で機能しなくなりWiFi.status()ます。Serial.printlnを取得しようとする前と後がありますがWiFi.status()serial.println後は​​実行されませんでした。もちろん、まだ接続されていません。

コードの新しいコピーをダウンロードしましたが、状況は変わりません。ほんとうに思いとどまりました……。


私は公式の arduino wifi シールドを使用しており、次のコードがあります。

status = WiFi.begin([ssid],[pass]);
Serial.println(status);

ステータスはどちらWL_CONNECTEDでもありませんWL_IDLE_STATUS。これは、公式リファレンスhttp://arduino.cc/en/Reference/WiFiBeginで概説されている 2 つの可能な応答です。

ステータスは 4 です。もちろん、wifi には接続できませんでした。これは何ですか????

リセット ボタンを 100 万回押しましたが、より強力な工場出荷時の復元ボタンはありますか?

4

2 に答える 2

4

ここに画像の説明を入力

私はそれを理解しました。どうやら、ジャンパーがあり、それを差し込むと、シールドが DFU モードになり、再プログラミングが可能になります。その結果、シールドは存在しません。

于 2012-12-16T02:15:28.633 に答える
2

WiFi.hによると、関数の戻り値begin()(3 つすべて、セキュリティ スキームごとに 1 つ) はints です。この関数については明確に述べられていませんが、status()関数と同じように戻り値の型はwl_status_t. wl_definitions.hで次のようwl_status_tに宣言された列挙型です。

typedef enum {
        WL_NO_SHIELD = 255,
        WL_IDLE_STATUS = 0,
        WL_NO_SSID_AVAIL,
        WL_SCAN_COMPLETED,
        WL_CONNECTED,
        WL_CONNECT_FAILED,
        WL_CONNECTION_LOST,
        WL_DISCONNECTED
} wl_status_t;

だからあなた4WL_CONNECT_FAILEDです。接続に失敗したので、おそらく驚くことではありません。

愛好家のデバッガー、別名リセットボタンは、それほど多くのことしかできません。ステータスの印刷は良いスタートでした。begin()セキュリティ タイプに適したフレーバーを使用していることを確認してください。WPA用のものを使用しているようです。ルーターのセキュリティを完全にオフにすることを検討してください (お住まいの地域で安全に実行できる場合)、または予備のルーターを使用して、シールドの通信能力をテストしてください。また、これは当たり前のように聞こえるかもしれませんが、SSID のスペルミスをチェックしてください。

于 2012-12-07T05:34:30.277 に答える