2017-06-20 5 views
1

設定は次のとおりです:NodemcuとラズベリーパイはWiFiルーターに接続されています。 Nodemcuの私のルアコードは、WLANを介してラズベリーパイにホストされているREST APIを呼び出す必要があります。私は、接続が失敗していることを見ることができましたnodemcuプライベートIP(WLAN)接続に失敗しました

しかし:

http.get("http://192.168.43.100:8080/api/logdevice", nil, function (code, resp) print(code, resp) end) 
> --http.get("http://example.com", nil, function (code, resp) print(code, resp) end)HTTP client: Disconnected with error: -11 
HTTP client: Connection timeout 
HTTP client: Connection timeout 

私はインターネットアドレス(http://example.com)を得た場合、要求は成功しています。

同じWiFiネットワーク内の別のノートパソコンからREST APIにアクセスできます。

私は、WiFiの設定はLuaのコードを使用して、正しいことを確認しました:プライベートIPアドレスにアクセスしながら

ip, netmask, gateway = wifi.sta.getip() 

はnodemcuのいずれかの制限がありますか?

UPDATE 1:私はアクセスポイントをnodemcuにしてAPIサーバマシンを接続しました。今すぐnodemcuはAPIにアクセスできます。しかし、これは私が必要とするWiFiの設定ではありません。私はWiFiステーションにnodemcuが必要です。だから私はこれがルーティングテーブルの問題かもしれないと思っています。 nodemcuを外部APに接続した後に追加のルート設定が必要ですか?

+0

'http'モジュールの代わりに低レベル' net'モジュールを使用すると動作しますか?https://nodemcu.readthedocs.io/en/latest/en/modules/net/#netsocketon –

+0

@MarcelStörそれでも失敗しました – Kiran

+0

NodeMCUからインターネットにアクセスできますが、プライベートネットワークのリソースはアクセスできません。この分野で私が認識している既知の問題や制限はありません。民間リソースのためにHTTPもネット操作も成功しないという事実IMHOはあなたのために「ブロック」ネットワークコンポーネントを提案します。 –

答えて

0

正しく理解していれば、外部サイトを呼び出すことで、nodemcuデバイスとインターネット(ルータを超えている)間の接続が処理されているようです。また、別のデバイスを使用してネットワーク内のREST APIをローカルに呼び出すことができることを確認して、ワイヤレスネットワーク上のnodemcuとrpi間の通信に問題があるように思われることを確認しました。

ルーターのDHCP画面で、nodemcuとrpiのIPアドレスを確認します。 rpiまたはラップトップからnodemcuにpingを実行してください。 rpiウェブサーバで利用可能なロギングをオンにして(ラップトップからnodemcuまでの)インバウンドリクエストをチェックし、nodemcuのネットマスク設定がrpiと同じであることを確認します(Webサーバレスポンスをゲートウェイからルーティングできるためそれらが異なる場合)。

"より簡単な"より直接的なテストをしたい場合は、nodemcuの単純なtelnetクライアントを使用してrpiに接続することもできます。

これをさらに進めるには、nodemcu、rpi、およびlaptopのIPアドレス、ネットマスク、およびゲートウェイの実際の値を持つと便利です。

関連する問題