Estou tentando conectar no meu webserver sem estar conectado na mesma rede, quando eu conecto com o IP local, funciona normalmente, porém quando eu tento conectar pelo meu IP público, não funciona... Eu ativei a opção de DMZ (Demilitarized zone) no meu modem do IP 192.168.0.200 (que é o mesmo usado pelo arduino), meu ip público é 177.193.30.120 (eu alterei uns números para não passar o mesmo ip, porque com o DMZ, todas as portas ficam liberadas)...

Quando eu tento entrar pelo meu browser com o IP 177.193.30.120 ou 177.193.30.120:80, ele não funciona, o que estou fazendo de errado?

Exibições: 425

Responder esta

Respostas a este tópico

Esta usando a porta errada, com a 80 você vai acessar seu roteador, não o Arduino.

Veja estes vídeos no meu canal, mas existem vários tutoriais a respeito.

YOUTUBE

Boa sorte!

Abs.

CK

Vou dar uma olhada no vídeo, porém eu também tentei conéctar com a porta 8080, 8695.......

Tente portas com valores altos, por exemplo 50000 para cima.

Não esqueça que você deve liberar também o seu firewall.

Não sei qual é seu projeto, mas hoje todos meus projetos estão migrando para aplicações IOT onde você simplifica tudo, essa é uma tendencia natural que com certeza todos estão apostando.

Veja no meu canal alguns videos clicando aqui https://www.youtube.com/user/kwiekbrasil/search?query=IoT

Boa sorte!

Sds.

CK

Carlos, dei uma olhada no vídeos e achei um cara que usou o devicehub.net, dai eu criei uma conta, baixei o código dele, porém o mesmo não está funcionando comigo,

#include <EtherCard.h>

// ethernet interface mac address, must be unique on the LAN
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
byte Ethernet::buffer[700];
static uint32_t timer;
const char website[] PROGMEM = "www.devicehub.net";


int state = 0;
// called when the client request is complete
static void my_callback (byte status, word off, word len) {
Serial.println(">>>");
Ethernet::buffer[off+300] = 0;
Serial.println((const char*) Ethernet::buffer + off + len - 1);
state = *(const char*)(Ethernet::buffer + off + len - 1);
Serial.println(state);
if(state == 49){
//actuator ON
Serial.println("actuator ON");
digitalWrite(3, HIGH);
}else if(state == 48){
//actuator OFF
Serial.println("actuator OFF");
digitalWrite(3, LOW);
}
}


void setup()
{
pinMode(3, OUTPUT);
pinMode(9, OUTPUT);
Serial.begin(9600);
if (ether.begin(sizeof Ethernet::buffer, mymac, 53) == 0)
Serial.println( "Failed to access Ethernet controller");
if (!ether.dhcpSetup())
Serial.println("DHCP failed");
ether.printIp("IP: ", ether.myip);
ether.printIp("GW: ", ether.gwip);
ether.printIp("DNS: ", ether.dnsip);
if (!ether.dnsLookup(website))
Serial.println("DNS failed");
Serial.println("line 1");
ether.printIp("SRV: ", ether.hisip);
Serial.println("turning on the led");
digitalWrite(9, HIGH);
}

void loop()
{
ether.packetLoop(ether.packetReceive());
if (millis() > timer) {
char queryString[256] = {0};
sprintf(queryString, "?apiKey=b8a15298-7524-4986-8aa9-d279e43658ae");

timer = millis() + 5000;
Serial.println();
Serial.print("< REQ ");
ether.browseUrl(PSTR("/io/12316/actuator/102634/"), queryString, website, my_callback);
}
}

O que está acontecendo de errado nesse código? Eu mando o comando via internet e o serial monitor não recebe nada...

EDIT: Eu criei um tópico apenas para isso, dê uma olhada lá...

Respondi la, use Cayenne.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço