Estou tentando conectar meu arduino com o mundo externo, dei uma olhada em uns vídeos sobre IOT 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, eu copiei o ID, API Key e a chave do atuador certinho, porém não funciona, o código é este:
#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);
}
}
ID do Projeto: 12316
ID do Atuador: 102634
API Key: b8a15298-7524-4986-8aa9-d279e43658ae
O que está acontecendo de errado? Eu mando o comando via internet e o serial monitor não recebe nada...
-----------------------------------
EDIT: O nosso amigo CK me ajudou a resolver esse problema... Primeira eu gostaria de agradecer a ele e a todos deste fórum pelo compromisso que eu vejo que essas pessoas têm em ajudar, muito obrigado Carlos e a todos...
A solução foi a seguinte: Eu tive que usar o código que o Carlos passou logo nos tópicos abaixo, que basicamente é o código do Cayenne com algumas bibliotecas inclusas, as bibliotecas para download estão aqui. Ou seja, basta baixar a biblioteca e colar o código que tudo irá funcionar (não esqueçam de alterar o token)
Tags:
Valeu Carlos, vou dar uma olhada aqui...
Olá Heitor,
Si estou usando o ESP8266, mas cadastre-se no Cayenne, o código é gerado no mesmo momento que você inicia sua aplicação.
Veja os anexos.
Abs.
CK
CK, eu me cadastrei no Cayenne, porém os exemplos que tem nele são apenas para o W5100, W5200, W5300 ESP8266, para o meu módulo ENC28J60 não tem nenhum skretch pronto, tentei configurar pelo "Manual", porém não obtive êxito...
Use o W5100, Se não der resultado avise.
Abs.
CK
Não tenho o módulo W5100 e a minha placa é o Arduino AT MEga
Use a placa Arduino UNO no site, e o W5100, como explicado, lembre-se também de baixar as bibliotecas veja este vídeo AQUI
Carregue o código como explicado, mas na IDE escolha a placa MEGA.
Note: O ESP8266 também não esta entre as placas no site, mas nos fizemos funcionar, apenas siga as instruções, tenha as bibliotecas Cayenne instaladas, e selecione UNO mesmo sendo MEGA, Selecione W5100 mesmo sendo ENC28J60
Poste os resultados, se tiver duvidas me procure no Cayenne também, como kwiek
Abs.
CK
Perfeito, irei fazer isso a noite, quando chegar em casa...
CK, tentei fazer isso, selecionei no site a placa Arduino UNO e o exemplo do W5100, na IDE do arduino usei a placa MEGA e a única coisa que aparece pra mim no serial é:
[0] MAC: FE-B6-DC-D3-DD-C4
[0] Getting IP...
Faça o seguinte:
Compartilhei com você no Google Drive, uma pasta com um código e um codigo.
Instale a biblioteca com o procedimento normal, feche e abra novamente a IDE, cole o código, compile para saber que esta tudo ok (Aqui compilou normal) Carregue na sua placa e siga o mesmo procedimento para colocar a placa online.
Link Biblioteca aqui
Abs.
CK
Resumindo:
1 Instale a biblioteca que compartilhei
2.Use no Cayenne Placa Uno e a W5100 shield.
3. Use as seguintes bibliotecas
#include <UIPEthernet.h> // Esta compartilhei no GD com vc
#include <BlynkSimpleUIPEthernet.h>
#include <CayenneDefines.h>
#include <CayenneEthernetClient.h>
CK, quando tentei compilar com a biblioteca, apareceu o seguinte erro:
AVISO: A categoria '' na biblioteca UIPEthernet é invalida. Definindo para 'Uncategorized'
O sketch usa 24.082 bytes (9%) de espaço de armazenamento para programas. O máximo são 253.952 bytes.
Variáveis globais usam 1.341 bytes (16%) de memória dinâmica, deixando 6.851 bytes para variáveis locais. O máximo são 8.192 bytes.
Invalid version found: 1.04
Invalid version found: 1.04
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por