インターネット経由でラズベリーパイと通信する


0

私はネットワーキングの初心者です。

3Gサーフスティックを介してインターネットに接続されたRpi-Aと、WiFiホットスポットを介してインターネットに接続されたRpi-Bがあります。

Rpi-AにはパブリックIPアドレスがあり、Rpi-Bにはローカル/プライベートIPがあることに気付きました。ラズベリーパイは両方とも異なるネットワーク上にあります。

Rpi-AからRpi-Bにバイナリデータを送信したい。これをどのように達成できるかについての提案はありますか?

更新:以下のコードを使用して、MQTT接続をテストしました。XX.XX.XX.XXをraspberry PiのパブリックIPに置き換えます。それでもこのエラーが発生します->エラー:[Errno 10060]接続されたパーティが一定時間後に適切に応答しなかったために接続試行が失敗したか、接続されたホストが応答に失敗したために確立された接続が失敗しました。このエラーの考えられる理由は何ですか?私のコードに欠けているものはありますか

import paho.mqtt.client as mqtt
import time

def on_connect(client, userdata, flags, rc):
    print("Connected with result code " + str(rc))

client = mqtt.Client()
client.on_connect = on_connect

client.connect("xx.xx.xxx.x", 1883, 60)

client.loop_start()

while True:
  time.sleep(2)
  client.publish('Due_0.72/cmd/in','hello')
  print "publish.."

回答:


0

制御されていないホットスポットでRPi Bを実行している場合。Pi BからPi Aへの逆接続(ncatのようなものが動作するはずです)を作成し、その方法でデータを送信するか、クラウド内のOpenVPNサーバーのようなものを使用して2 Pi間をルーティングします。

Wi-Fiホットスポット設定ポートにアクセスできる場合、sshのようなものをPi Bに転送します(標準設定を使用している場合は一般的なポート22 / tcp)


@ITAIfsの回答に感謝します。Wi-Fiルーターにアクセスできるため、ポート転送を実行できます。MQTTを使用したいので、ポート1883を開く必要があると思います。
スパーク

0

RPi-Bのネットワークには、NATを使用してRPI-Bがパブリックアドレスを介してインターネットに接続できるようにするルーターが必要です。

このような:

ここに画像の説明を入力してください

そのルーターの構成に入り、特定のポート(たとえば22)を開き、そのポートへのすべての着信トラフィックをRPi-BのIPアドレスに転送する必要があります。

RPi-Bは、RPI-Bのパブリック IPアドレスとポート22 の組み合わせにより、パブリックインターネットにアクセスできます。

これで、RPi-AからSFTPを使用てデータをRPi-Bに送信できます。


さて、私は間違いなくこれを試して結果を投稿します。MQTTを使用してこれをどのように行うことができますか?
スパーク

@Sparkはい。MQTTのポートは1883で、ポート8883はSSLを介したMQTTです。
jcbermu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.