Ir ao conteúdo
  • Cadastre-se

ESP8266 - A Pequena Maravilha para Comunicação WIFI


aphawk

Posts recomendados

  • Membro VIP
41 minutos atrás, ViniciusKruz disse:

Variáveis do tipo int só contam até 254 [...]

 

Mas como é pouco! Tem certeza?

Não está confundindo com char ou algo assim?

 

Veja isto: Programar em C/Tipos de dados + Tabela

Aqui também: Programação para Arduino - Primeiros Passos

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Papibakigrafo  Eu ainda to achando que ta bugando a pagina html por que voce ta adicionando int como se fosse string.

 

Falo isso pois quando tava "punhetando" a eepro acontecia a mesma coisa, os dados gravavam na eeprom mas a pagina travava por que o html não conseguia ler byte...

 

*Até o genio aqui perceber que abstava colocar char(EEPROM.read(i));

Link para o comentário
Compartilhar em outros sites

@Papibakigrafo  Tem razão, confundi com char, na verdade o tipo int no Arduíno é de 16 bits. 

 

Vou analisar um pouco mais seu sketch.

adicionado 11 minutos depois

@Papibakigrafo

Não encontrei nada que pudesse causar algum erro, vou testar seu sketch.

 

 

adicionado 32 minutos depois

@Papibakigrafo

 

Aqui funcionou direitinho, tá tudo certo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Modifiquei o código todo. Peguei o exemplo do WiFiWebServer:

 

/*
  LED ESTROBOSCÓPICO VIA WIFI
  Controle da velocidade do pulso do led

  Criado por: Guilherme Lirio Tomasi de Oliveira
*/

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>

/* GPIO do Led */
int led = 2;

/* Delay Padrão */
int dd = 500;

/* Define o SSID e Senha do Strube */
const char *ssid = "Strube";
const char *password = "";

/* Cria o servidor na porta 80 */
WiFiServer server(80);

/* Faz o "blink" do led, de acordo com a veriável DD*/
void strube () {
  digitalWrite(led, LOW);
  delay(dd);
  digitalWrite(led, HIGH);
  delay(dd);
}

void setup() {
  /* Inicia o Serial */
  Serial.begin(115200);

  /* Declara o LED como saída, e o estado inicial dele */
  pinMode(led, OUTPUT);
  digitalWrite(led, HIGH);

  Serial.println("");

  /* Define o modo Access Point */
  WiFi.mode(WIFI_AP);
  Serial.println("Configurando o Access Point...");
  WiFi.softAP(ssid, password);
  IPAddress myIP = WiFi.softAPIP();
  Serial.print("Access Point configurado! Acesse: ");
  Serial.println(myIP);

  /*Inicia o Servidor */
  server.begin();
  Serial.println("Servidor Iniciado");
}

void loop() {

  strube();

  /* Verifica se o cliente está conectado */
  WiFiClient client = server.available();
  if (!client) {
    return;
  }

  /* Aguarda para verificar se o cliente envia alguma requisição */
  Serial.println("Novo cliente conectado!");
  while (!client.available()) {
    delay(1);
  }

  /* Lê a primeira linha da requisição */
  String req = client.readStringUntil('\r');
  Serial.println(req);
  client.flush();

  /* Verifica a requisição */
  if (req.indexOf("/valor=mais") != -1) {
    dd += 50;
    Serial.println(dd);
  }
  else if (req.indexOf("/valor=menos") != -1) {
    dd -= 50;
    Serial.println(dd);
  }
  else if (req.indexOf("") != -1) {
    Serial.println(dd);
  }
  else {
    Serial.println("Requisição invalida!");
    client.stop();
    return;
  }

  client.flush();

  /* Resposta da requisição */
  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\n";
  s += "<title>LED ESTROBOSCÓPICO VIA WIFI</title>";
  s += "<meta charset='utf-8'>";
  s += "<meta http-equiv='X-UA-Compatible' content='IE=edge'>";
  s += "<meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no'>";
  s += "<br><br>";
  s += "<div align='center'>";
  s += "<h3>Velocidade: ";
  s += (dd);
  s += "</h3><br><br>";
  s += "<a href='/valor=mais'>++</a>";
  s += "<br><br><br>";
  s += "<a href='/valor=menos'>--</a>";
  s += "</div>";
  s += "</html>\n";

  /* Envia a resposta para o cliente */
  client.print(s);
  delay(1);
  Serial.println("Cliente desconectado!");

}

Funcionando perfeitamente! =)

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Tenho um projeto aqui que fiz uma mesa de som digital com um PIC18f4550+PT2323+PT2322. 

 

Tem um aplicativo feito em C# que do windows se conecta ao PIC através da porta USB e com isso posso controlar os canais graves, médios, agudos e volumes.

 

Agora estou me propondo o desafio de fazer esse brinquedo funcionar com o ESP só que o ESP vai hospedar uma paginazinha com todos os controles, vai ser uma mesa digital acessada pela web.

 

Até parece que eu to tendo tempo pra isso kkkk, mas vou ver se consigo levar a diante e se der certo, vai ser um projeto pra compartilhar aqui.

  • Curtir 3
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
11 horas atrás, ViniciusKruz disse:

Agora estou me propondo o desafio de fazer esse brinquedo funcionar com o ESP só que o ESP vai hospedar uma paginazinha com todos os controles, vai ser uma mesa digital acessada pela web.

 

E pode haver grande latência entre o comando e o som? Eu não entendo de som.

Link para o comentário
Compartilhar em outros sites

@alexandre.mbm  Pela USB é imperceptível, pode-se dizer até que é em tempo real, agora, pelo ESP com certeza vai ser maior que pela USB, mas pela experiência com os ESPs acredito que vai ser praticamente em tempo real também, até porque a interação será em ambiente de rede local.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Eu não sei quais seriam os comandos disponíveis nessa mesa de som. Talvez eu não saiba o que é uma mesa de som. Mas, por exemplo, aquele negócio que os DJs fazem rodando discos com a mão, não consigo imaginar o comando daquilo, que preste, através da wifi.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@ViniciusKruz   Ou mesmo duma apresentação ao vivo, voce tira ou graves ou agudos no microfone para deixar a voz "perfeita".

 

Uma mesa de som profissional chega a ser 3 pila x_x. Essas usadas em bandas famosas com Simone e Simaria, Daniel, ANitta, etc chega a custa 10 mil reais x_x

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

OK. Parece que meu irmão tem um treco desses. Ele toca baixo. Mas eu nunca me aproximei, nunca me interessei.

 

Mas então... voltando ao projeto. O que ele faria, para ser chamado mesa de som? Sugiro que a apresentação disso seja feita em novo tópico.

Link para o comentário
Compartilhar em outros sites

@alexandre.mbm  Acredito eu que no minimo teria que ter várias entradas de audio, cada um com circuito buffer*para casar as impedancias* e mais um circuito filtro passa-baixas e passa altas para separar as frequencias e por fim os potenciometros para cada frequencias, e um potenciometro geral antes do circuito filtro. Isso para cada canal..Asssim se num canal por exemplo entrar a bateria , outro a guitarra, outro o teclado e por fim mas não menos importante a voz. voce poderia equalizar cada espectro de áudio e deixar tipo bateria 20%, guitarra 40%,teclado 35 %,voz 80% *chutes intuitivos* para equalizar o som direitinho e por fim gravá-lo., ou transmissão ao vivo sei -lá.

-------

Fazer isso no esp seria algo realmente interessante, uma pagina para equalizar os graves e agudos 8_8

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Talvez fosse mais fácil automatizar uma mesa de som já existente com servomecanismos atuando em todos os potenciômetros, isto sendo comandado pelo ESP8266, mas são saídas demais, a eletrônica para comandar tudo isso seria complexa. Mesmo assim ainda seria muito mais fácil que fazer uma mesa de som.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

12 horas atrás, alexandre.mbm disse:

Mas então... voltando ao projeto. O que ele faria, para ser chamado mesa de som? Sugiro que a apresentação disso seja feita em novo tópico.

A ideia é de que ele faça a mixagem dos canais só que de forma digital. Não abrirei um novo tópico, a não ser depois de pronto para ficar como tutorial.

 

10 horas atrás, lucianolcoa disse:

Acredito eu que no minimo teria que ter várias entradas de audio

Em uma mesa de som, mesmo que tenha 40 canais, todos eles são iguais, ou seja, se eu fizer um canal somente, já é o suficiente, basicamente basta juntar quantos outros quiser.

 

10 horas atrás, lucianolcoa disse:

e mais um circuito filtro passa-baixas e passa altas para separar as frequencias e por fim os potenciometros para cada frequencias, e um potenciometro geral antes do circuito filtro. Isso para cada canal..

Então, não usará potenciometro nenhum, será tudo digital, o interessante desses circuitos PT2323, PT2322 entre outros é que eles já tem tudo isso internamente, em específico, os potenciometros.

 

10 horas atrás, lucianolcoa disse:

Fazer isso no esp seria algo realmente interessante, uma pagina para equalizar os graves e agudos 8_8

Tem CIs de áudio(digitais) específicos para equalizadores, efeitos e muito mais.

 

7 horas atrás, Intrudera6 disse:

Talvez fosse mais fácil automatizar uma mesa de som já existente com servomecanismos atuando em todos os potenciômetros, isto sendo comandado pelo ESP8266, mas são saídas demais, a eletrônica para comandar tudo isso seria complexa. Mesmo assim ainda seria muito mais fácil que fazer uma mesa de som.

Aí já seria uma mesa de som digital no seu sentido mais complexo mesmo, esses potenciômetros digitais além de caros, como você disse, exigiriam uma eletrônica beeemmm mais complicada.

 

6 horas atrás, alexandre.mbm disse:

Qual é o objetivo em usar um ESP8266 para algo relacionado a mesa de som? Qual é o diferencial que se está buscando?

Primeiramente didática mesmo, com um projeto desses daria para as pessoas aprenderem muita coisa sobre os CIs de áudio digitais. Em nível de projeto, primeiro precisa entender as mesas de som analógicas, elas tem muitos potenciômetros, pra se ter uma ideia, cada canal no mínimo vai ter 7 potenciômetros panorâmicos mais um deslizante(linear), sem contar os outros que vão no master, que controla todos os canais. Com o ESP, a mesa não precisa de nenhum botão a não ser o power e as entradas e saídas de áudio e o grande diferencial seria acessar estes controles pelo celular, pc ou seja lá o que for.

adicionado 4 minutos depois

Nos próximos meses estarei muito ocupado, não sei nem se vou ter tempo para estar diariamente aqui no fórum, passando esta semana, na outra, é bem possível que eu suma daqui por causa de um novo projeto que estou começando em uma nova empresa e lá estarei afastado de tudo, logo não sei nem se vou poder realmente fazer este projeto da mesa de som, mas vamos ver no que vai dar.

  • Curtir 3
Link para o comentário
Compartilhar em outros sites

@ViniciusKruz ,

 

Eu também já usei esse CI e outros TDA para fazer isso, controlar graves, médios e agudos, ganho de entrada, e selecionar entradas. Mas no Bascom.

 

Existem inúmeras vantagens em utilizar esses CI's que evitam ruídos induzidos nas trilhas e fiações dos potenciômetros. O ruído final é bem baixo.

 

Um aplicativo num Android ou num Iphone para fazer esse controle permite controlar de maneira bem completa esse tipo de pré-amplificador ( ou mesa de som, ou controle Surround, ou sei lá como vocês preferem chamar kkk ) , mas tem de tomar muito cuidado com uma coisa : Usar um circuito que emita sinais de WI-FI junto com os CI's de áudio pode causar uma monte de novos problemas... tem de fazer uma excelente blindagem tanto na parte de PCB como em vários pontos críticos de alimentação.

 

Ah, um bom display LCD gráfico seria interessante, até mesmo LCD tipo alfanumérico de 4 linhas x 20 já serviria.

 

De qualquer maneira, é um projeto bem interessante, e eu já incluiria nele também um TEA 5767 para ter um rádio FM Stereo já incluído no projeto !

 

Eu achei um CI bem baratinho e no formato DIP tradicional para fazer algo tipo um simples controle de tonalidade e seletor dua entradas : TDA8425 , achei ele facilmente aqui na Santa Ifigênia. Usei ele aqui :

 

 

O controle por I2C é bem simples....

 

Paulo

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@aphawk  Muito bacana seu rádio.

 

Meu atual projeto não contempla display, todos os controles são em uma interface feita no C# que comunica pela USB com um PIC18f4550, embora eu concorde com você que um display cairia bem. Vejam na imagem a interface gráfica do atual projeto para PIC com o CCS Compiller (inacabado) :

 

am.png

 

 

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@lucianolcoa ,

 

O TDA8425 não é um equalizador... por definição um equalizador teria de controlar várias bandas, idealmente 10 bandas de frequências. Esse ci TDA8425 permite apenas controle de tonalidade graves e de agudos. Mas o resultado fica muito bom.

 

Existem outros CI's bem fáceis de se encontrar que permitem também o controle de médios, assim fica um pouco mais completo.

 

Já ví alguns CI's da R.Ohm que controlam 5 bandas por I2C, mas não possuem uma qualidade aceitável para hi-fi.

 

Aliás, nunca ví na Internet um equalizador de 10 bandas totalmente digital...

 

O esquemático que eu usei está no link que eu coloquei no post anterior.

 

Paulo 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...