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)

Exibições: 1162

Responder esta

Respostas a este tópico

Tente usar o Cayenne.

Alguns vídeos no meu canal AQUI

Boa sorte!

Abs.

CK

Valeu Carlos, vou dar uma olhada aqui...


Edit: Carlos, estou com uma net horrivel aqui, eu olhei por cima os exemplos, você está usando apenas o ESP8266? Tem exemplo também com o ENC28J60?

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

Anexos

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

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço