Comunicando com o raspberry pi pela internet

0

Eu sou um novato em redes.

Eu tenho uma Rpi-A conectada à internet via 3G surf-stick e a Rpi-B conectada à internet através de um hotspot WiFi.

Percebi que a Rpi-A tem um endereço IP público e a Rpi-B tem IP local / privado. Ambas as framboesas Pi estão em redes diferentes.

Eu quero enviar dados binários da Rpi-A para a Rpi-B. Alguma sugestão sobre como isso pode ser alcançado?

atualização: Eu usei o código abaixo para testar a conexão MQTT. substituindo XX.XX.XX.XX pelo IP público do raspberry Pi. Ainda assim, acabo recebendo esse erro --- > erro: [Errno 10060] Uma tentativa de conexão falhou porque a parte conectada não respondeu corretamente após um período de tempo ou a conexão estabelecida falhou porque o host conectado não respondeu. qual pode ser a possível razão para esse erro? Existe alguma coisa faltando no meu código

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.."
    
por Spark 27.09.2017 / 09:25

2 respostas

0

Se você executar o RPi B em um ponto de acesso que não seja controlado por você. Você poderia criar uma conexão reversa de Pi B para Pi A (algo como o ncat deveria funcionar) e enviar dados do outro lado ou usar algo como um servidor OpenVPN na nuvem e rotear entre os 2 Pi.

Se você tiver acesso à porta de configuração do hotspot Wi-Fi, envie algo como ssh para Pi B. (Porta geral 22 / tcp se estiver usando a configuração padrão)

    
por 27.09.2017 / 09:40
0

Na rede do RPi-B, deve haver um roteador que esteja usando NAT para permitir que o RPI-B se conecte à Internet através de um endereço público.

Assim:

Você precisa entrar na configuração desse roteador e abrir uma porta específica (por exemplo, 22) e encaminhar todo o tráfego de entrada para essa porta para o endereço IP do RPi-B.

O RPi-B será acessível à Internet pública através da combinação do endereço IP público do RPI-B e da porta 22.

Agora, a partir do RPi-A você pode usar SFTP para enviar dados para o RPi-B.

    
por 27.09.2017 / 09:36