透過網路與樹莓派通信

透過網路與樹莓派通信

我是網路新手。

我有一個 Rpi-A 透過 3G 衝浪棒連接到互聯網,Rpi-B 透過 WiFi 熱點連接到互聯網。

我注意到 Rpi-A 有一個公用 IP 位址,而 Rpi-B 有本地/私人 IP。兩個樹莓派都位於不同的網路上。

我想將二進位資料從 Rpi-A 發送到 Rpi-B。關於如何實現這一目標有什麼建議嗎?

更新:我使用下面的程式碼來測試 MQTT 連線。將 XX.XX.XX.XX 替換為樹莓派的公共 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.."

答案1

如果您在不受您控制的熱點上運行 RPi B。您可以創建從Pi B 到Pi A 的反向連接(類似ncat 的東西應該​​可以工作)並以這種方式發送數據,或者使用雲端中的OpenVPN 伺服器之類的東西並在2 個Pi 之間進行路由。

如果您有權存取 Wi-Fi 熱點配置端口,請將 ssh 之類的內容轉送至 Pi B。

答案2

RPI-B 的網路上必須有一個使用 NAT 的路由器,讓 RPI-B 透過公共位址連接到網際網路。

像這樣:

在此輸入影像描述

您必須進入該路由器的設定並開啟特定連接埠(例如 22),並將所有傳入該連接埠的流量轉送至 RPi-B 的 IP 位址。

RPi-B將透過RPI-B的組合存取公共互聯網民眾IP 位址和連接埠 22。

現在,從 RPi-A 您可以使用SFTP向 RPi-B 發送資料。

相關內容