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