Olá pessoal,

Irei aproveitar o tópico para me apresentar, por ser novo na comunidade.

Sou Eng. Civil e recentemente mestrando em Geomática na Universidade Federal de Uberlândia, por isso, pouca experiência e muitas dúvidas até simples. Pretendo usar muito Arduíno e alguns sistemas relacionados no meu mestrado, que irei trabalhar com aerofotogrametria.

Bom, estou desenvolvendo um sistema em pareceria com o instituto de química, também da UFU, onde se pretende manipular válvulas e mini-bombas usando o Arduino, porem com uma interface Java, (que também posso disponibilizar o projeto caso alguém queira), o sistema já funciona via Serial, utilizando o código “Serial.txt” em anexo, porem tem algumas limitações por utilizar uma biblioteca chamada RXTXComm, no Java. “http://rxtx.qbang.org/wiki/index.php/Download”.

Por isso pretendo usar o modulo ESP-01 para a comunicação, já alcançada como o código em anexo “ESP-01.txt”. No entanto os dados enviado via Socket "TCP/IP" chegam codificados no Arduino, por isso não consigo utilizar o restante do código, que seria semelhante ao do arquivo “Serial” onde eu condicionaria uma “palavra” para executar uma ação.

Ex.

If (entrada==”7ON”) { digitalWrite(7, HIGH)};

Se aplicar o código “ESP-01” verá que a String chega:

+IPD 0,3:7ON

OK

...

Se alguém puder me ajudar, de antemão agradeço a todos.

Obrigado.

Exibições: 882

Anexos

Responder esta

Respostas a este tópico

" No entanto os dados enviado via Socket "TCP/IP" chegam codificados no Arduino, por isso não consigo utilizar o restante do código"

Não entendi - porque os dados chegam codificados??
Cole as telas do seu teste.

ESP8266 - Teste de comunicação serial do Arduino com o ESP8266 :
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

ESP8266 - Usando IDE Arduino (exemplos ADAFRUIT/SPARKFUN )
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...

http://labdegaragem.com/forum/topics/conhecendo-o-esp8266

Olá José Gustavo,

O que eu chamo de codificado é a String não chegar "limpa" (só o que eu enviei), como acontece na comunicação serial.

Eu uso o programa "putty" pra simular as comunicações e seu eu envio " 7ON " ao plotar no monitor serial o Arduino recebe " 7ON ".

Se eu envio não pela serial (cabo) e sim pelo ESP ele não chega só " 7ON " e sim da seguinte forma.

[System Ready, Vendor:www.ai-thinker.com]
AT+CWMODE=3 
no change
AT+CWJAP="Mendonca","13131313"

OK
AT+CIFSR 
192.168.4.1
192.168.1.82

OK
AT+CIPMUX=1

OK
AT+CIPSERVER=1,80

OK
Link

+IPD,0,3:7ON
OK

+IPD,0,2:

OK

Dessa forma eu não consigo criar a condição de se chegar " 7ON " liga-se o pino 7.

Já tentei também por exemplo,

If (entrada==”+IPD,0,3:7ON”) { digitalWrite(7, HIGH)};

Mais não funciona pois o programa sabe que "+IPD ... " pertence a codificação ASCII

Espero ter explicado melhor.


Obrigado.

Bom pessoal o mistério (para mim), foi resolvido com a ajuda do amigo Rui Viana e o Carlos kwiek.

foi necessário converter o char de entrada para uma String e dessa String pegar do caractere 11 para frente.

void loop(){
String entrada;

while (ESP.available()){

char ent = ESP.read(); // Salva o sinal do ESP em um char (ent)
entrada += String(ent); //Converte este char para uma String (entrada)

String recebido = entrada.substring(11); //Salva em uma String (recebido) somente 

Agora sim posso declarar as condições.

if (recebido == "7ON"){ // se receber 7ON
digitalWrite(7, HIGH); // liga o pino 7
}

if (recebido == "7OFF"){ // se receber 7OFF
digitalWrite(7, LOW); desliga o pino 7 
}

Vou anexar o código completo no tópico.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço