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?
Tags:
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.
Boa sorte!
Abs.
CK
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.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por