2016-11-10 4 views
1

私はWebページにデータを連続的に記録するプロジェクトのためにEsp8266 Wifiモジュールを使用しています。私はこれまでのATコマンドを使って目標を達成するために次のコードを使用しています(事前に作成したライブラリを使用したくないため)。ESP8266でCIPSEND中に特定のチャンネルを選択

AT 
AT+CWMODE=3 
AT+CWJAP="MY_SSID","MY_PASSKEY" 
AT+CIPMUX=1 
AT+CIPSERVER=1,80 
AT+CIFSR 
AT+CIPSEND=CHANNEL_NO,NO+OF_CHARACTERS_TO+BE_SENT 
AT+CIPSEND=CHANNEL_NO,NO+OF_CHARACTERS_TO+BE_SENT 
AT+CIPSEND=CHANNEL_NO,NO+OF_CHARACTERS_TO+BE_SENT 
AT+CIPSEND=CHANNEL_NO,NO+OF_CHARACTERS_TO+BE_SENT 
AT_CIPCLOSE=0 

今、私は継続的にWebページ上にとAT+CIPCLOSEを使用してプロセスを閉じ悲しいかなデータを送信しています。今私はAT_CIFSRコマンドから得られるポート番号(私の場合は80です)と一緒に静的IPを入力する必要があります。このコマンドが実行されると、チャネル情報がシリアル端末に表示されます。そのチャンネル番号に応じて、私はAT+CIPSENDコマンドでチャンネル番号パラメータを変更する必要があります。だから私の質問は、特定のチャンネル番号にESPを設定してから、チャンネル番号について気にせずにデータを連続的に送信することですか?

+0

のように、チャネル番号を指定する必要はなくなりました。APと同じチャネルをSTA – dandavis

+0

に使用する必要があることに注意してください。なぜあなたはESP上でサーバーを実行していますか?そして、あなたはどんな「チャンネル」の話をしていますか? 'AT + CIFSR'はIPとMAC​​だけを返します。 –

+0

はい 'AT + CIFSR'はIPアドレスを返し、私はそのIPアドレスの1つを使って自分のデータを送ります。私はCIFSRコマンドに入るステーションIPアドレスを使用しています。だから、私がそのIPをブラウザに置くと、その時に開いている(接続されている)チャンネル番号を示すESPへの応答があります。だから私はそのチャンネル番号について話している。 –

答えて

0

AP 802.11b/g/nのチャネルは、同じメディアに多数の通信デバイスを作成し、干渉を避けるためのものです。クライアントが設定することはできません。 APの設定から変更できます。

ESP8266がAPモードで他のクライアントにサービスを提供しているときにのみ、特定のチャネルを設定できます。

+0

それでは、毎回特定のチャンネルにデータを送信するためにはどのような変更が必要ですか?あなたが私の目的を直接解決するような命令を得ていないので、それらの変更を提案できますか? –

+0

ルータ設定の下にある設定です。ブラウザにIPを入力して、ルータ/モデム/ AP Webインターフェイスに起動します。チャネル設定は、おそらく無線セクションまたはWANセクションの下にあります。 – cagdas

+0

よろしいですか。モジュール側からは何もできませんか? –

1

あなたはESPの接続番号を指していると思いますが、Wi-Fiチャンネル番号ではありません。 gre_gorのコメントの後、私はWebページがどこにあるか完全に理解しているかどうかはわかりません。 ESP8266は最大4つの接続をサポートすることができるため、サーバーはそれらを処理する必要があります。リモートホストからの要求に応答する場合は、正しい接続番号を使用して応答する必要があります。 Here is an example python programには、要求から接続番号を取得して応答で使用する方法が示されています。

実際にリモートサーバー上のWebページにデータを送信する場合は、チャネルが1つしかないことを示す1の代わりにAT+CIPMUX=0を試してください。それを発行した後、チャネルの問題がある場合は、AT+CIPSEND=NO+OF_CHARACTERS_TO+BE_SENT

+0

[CIPMUX = 1](https://github.com/espressif/ESP8266_AT/wiki/)を設定している場合は[サーバーを作成する](https://github.com/espressif/ESP8266_AT/wiki/CIPSERVER)しかできませんCIPMUX)。 –

+0

多分私は問題を誤読しました。あなたが言ったことは本当です。しかし、彼がウェブページにデータを送るなら、彼は本当にクライアントかもしれません。彼が本当にサーバーなら、彼は接続番号を管理する必要があります。 – leetibbett

+0

私はここに物を運ぶことに誤解があると思う。ごめんなさい。私はそれをもっと明確にしましょう。私はローカルネットワーク(私の家のWiFiなど)に接続するためにEspモジュールを使用しています。今私はいくつかのデータを送信して、そのデータを抽出したいと思います。それで、Espがデータを送信しているクライアントになります。そこで私は 'CIPMUX = 1'を使い、ポート80でサーバを起動しました。次に' CIFSR'コマンドを使ってステーションのIPアドレスを取得し、そのIPをブラウザ上で実行しています。私が 'CIPMUX = 0'を使うと、どのようにデータを送ることができますか? –

関連する問題