Criei um post há pouco mais de uma semana falando que comprei 2 ESP8266 e eles não funcionavam, ai me esclareceram que o 3.3v do arduino não suportava, tentei com fonte externa e passou a responder, errado, mas funcionava.
Só tive tempo agora de ver como isso funciona, está funcionando, mas não do modo que deveria, os caracteres estão muito zoados (na figura).
Alguém tem alguma ideia do que pode ser?
Obrigado.
Tags:
O código é o do FelipeFlop
// Programa: Web Server com modulo ESP8266
// Alteracoes e adaptacoes: FILIPEFLOP
#include <SoftwareSerial.h>
//RX pino 2, TX pino 3
SoftwareSerial esp8266(2, 3);
#define DEBUG true
void setup()
{
Serial.begin(9600);
esp8266.begin(115200);
sendData("AT+RST\r\n", 2000, DEBUG); // rst
// Conecta a rede wireless
sendData("AT+CWJAP=\"nutella\",\"\"\r\n", 2000, DEBUG);
delay(3000);
sendData("AT+CWMODE=1\r\n", 1000, DEBUG);
// Mostra o endereco IP
sendData("AT+CIFSR\r\n", 1000, DEBUG);
// Configura para multiplas conexoes
sendData("AT+CIPMUX=1\r\n", 1000, DEBUG);
// Inicia o web server na porta 80
sendData("AT+CIPSERVER=1,80\r\n", 1000, DEBUG);
}
void loop()
{
// Verifica se o ESP8266 esta enviando dados
if (esp8266.available())
{
if (esp8266.find("+IPD,"))
{
delay(300);
int connectionId = esp8266.read() - 48;
String webpage = "<head><meta http-equiv=""refresh"" content=""3"">";
webpage += "</head><h1><u>ESP8266 - Web Server</u></h1><h2>Porta";
webpage += "Digital 8: ";
int a = digitalRead(8);
webpage += a;
webpage += "<h2>Porta Digital 9: ";
int b = digitalRead(9);
webpage += b;
webpage += "</h2>";
String cipSend = "AT+CIPSEND=";
cipSend += connectionId;
cipSend += ",";
cipSend += webpage.length();
cipSend += "\r\n";
sendData(cipSend, 1000, DEBUG);
sendData(webpage, 1000, DEBUG);
String closeCommand = "AT+CIPCLOSE=";
closeCommand += connectionId; // append connection id
closeCommand += "\r\n";
sendData(closeCommand, 3000, DEBUG);
}
}
}
String sendData(String command, const int timeout, boolean debug)
{
// Envio dos comandos AT para o modulo
String response = "";
esp8266.print(command);
long int time = millis();
while ( (time + timeout) > millis())
{
while (esp8266.available())
{
// The esp has data so display its output to the serial window
char c = esp8266.read(); // read the next character.
response += c;
}
}
if (debug)
{
Serial.print(response);
}
return response;
}
A parte estranha é que está funcionando a conexão com a internet, acessando o http://192.168.1.94/ agora está exibindo as leituras das portas 8 e 9, mas as vezes não pega, agora pegou.
Veja se ajuda (use outro programa para Terminal) :
ESP8266 - Programas Terminal TERMITE e CoolTerm:
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...
ESP8266 - Conexão USB Serial:
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...
ESP8266 - Interface Serial 5V - testado e aprovado OK :
http://labdegaragem.com/forum/topics/conhecendo-o-esp8266?commentId...
Já tentei com o Termite, mas quase sempre responde ERROR ou não responde nada.
Também tentei mandar pelo linux, já que toda a vez que tenho que usar LCD e compilo e envio o programa pelo windows somente o primeiro caractere é exibido, no linux a coisa ficou muito pior, toda a conversa fica zoada, não tem como entender nenhum caractere.
Tentei mandar pela IDE 1.0.5, também não funcionou.
Eu te aconselharia a usar o esp8266 sem o arduino. Está bem mais facil do que usar ele apenas como um módulo de internet.
No site do Pedro Minatel tem dicas impressionantes!
Esqueci de falar, mas esse mesmo código que você está usando eu usei quando comecei a usar o esp e comigo funcionava muito bem.
Bom dia,
Que modelo é seu ESP8266, - 12 ou - 01 ?
Você quer programar com LUA, ou com a IDE do Arduino.
Dependendo de sua resposta prossigo com minha opinião.
Abs.
Pode ser problema no Hardware da interface.
Qual interface esta usando?
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por