Ir ao conteúdo
  • Cadastre-se

ESP8266 - A Pequena Maravilha para Comunicação WIFI


aphawk

Posts recomendados

2 horas atrás, Intrudera6 disse:

Turbopascal

 

Nossa, que saudades disso ... eu comprei ele original quando visitei os USA em 1990 se não me engano, só por causa do Tasm e da documentação. Era uma caixinha bem pesada, com uns 3 manuais bem grossos. Nessa época eu fazia vários programas do tipo TSR ( Terminate and Stay Resident ) para o MS-DOS, em Assembly do 8086. Isso garantiu meu sustento por mais de 5 anos....

 

Para fazer o debugger de programas no PC, era uma maravilha !!!!

 

Paulo

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

@aphawk

Na época eu trabalha no Grupo de PO na empresa (onde trabalho atualmente, mas mudei totalmente de área) e tinha acesso a estas ferramentas com estes manuais (eu usei muito aqueles manuais, apendi muito com eles). A minha ferramenta de trabalho preferida era o Turbopascal (o debuger dele era incrível) depois passei para o Delphi, que no final eu pouco usava (no recurso mais poderoso que era o OO). Eu continuava programando de forma procedural (nunca aprendi totalmente OO, parecido com o que aconteceu comigo com o C), e penava no desenvolvimento da Interface. O meu forte sempre foram os modelos matemáticos e espremer as rotinas para elas voarem (utilizei muito ASM 8088 em inlines misturado com pascal no núcleo dos loopins), na época eu tinha programas que eu disparava a execução na tarde para ver o final da execução no dia seguinte, e às vezes mais tarde. Isto já deve fazer mais de 15 anos e era divertido. Eu conseguia programar de cabeça rotinas bastante complexas sem precisar nem fazer anotações e nem fluxograma (o debuger do Turbopascal ajudava muito em depurar os programas, fazer isto sem um debuger no Arduino IDE é um pesadelo), hoje em dia a idade dificulta fazer estas coisas. 

 

Certas técnicas a gente nunca esquece totalmente, só perde a agilidade. 

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

3 minutos atrás, Papibakigrafo disse:

@lucianolcoa queria programar no Rad Studio mesmo (delphi). Estou procurando alguma coisa com a Siri ^^

Rad Studio é so uma plataforma desenvolvedora de apks assim como o inventor. É como se fosse Corel Draw e adobe illustrator. Não entendi o receio pelo app inventor.

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

@Papibakigrafo E que ja vi muito gente de mimimi falando que o app inventor é pros marikas que não sabem programar. E de fato isto e verdade mesmo. Eu não sei programar mas sempre consegui o que queria por causa da "programação interativa". Mas sou um cara que acredita que os fins justificam os meios, claro, nos limites restritivos a programação. Então se voce nao sabe programar mas consegue adaptar códigos prontos e programas para o seu uso. Consegue chegar no mesmo calibre de quem faz "tudo do zero". Bom minha opinião neah ;)

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

  • Membro VIP
Em 30/10/2016 às 12:06, aphawk disse:

eu compro muito módulo.... sensores, plaquinhas de teste, pequenos Arduínos, controladoras de vôo, telemetria, displays, isto sim tenho muita coisa.

 

Seria interessante ter um site em formato de catálogo comentando tudo.

 

Em 31/10/2016 às 19:59, aphawk disse:

Bom, que eu me lembre alguns pinos você vai perder :

- o pino do Flash, a menos que você nunca mais pretenda gravar outro firmware ( não sei se dá para fazer mas ... )

 

Como é isso?

 

Em 01/11/2016 às 09:14, lucianolcoa disse:

Me aventurei na multiplexação por receio de decorar tantos comandos de I2c x_x

 

Exemplifica ai a complicação do i2C, porque superficialmente ele estava me parecendo simples. Talvez você esteja falando de não usar bibliotecas que implementem a comunicação. O que eu estava vendo requeria apenas declarar um endereço...

 

Em 01/11/2016 às 09:36, rodrigocirilo disse:

Eu também acho i2c  complicado demais. hehehe

 

Ajude-me aí. Estou conhecendo a coisa agora, e preciso conhecer cada vez mais.

 

Em 01/11/2016 às 09:38, lucianolcoa disse:

Ate guardei o codigo no meu email. Usei um demux 4051 .

 

Compartilha aí!

 

Em 03/11/2016 às 16:07, rodrigocirilo disse:

obs: não usei divisor resistivo do TX do pic(5v) para o RX do ESP, com o divisor não estava funcionando pic >>> ESP... somente ESP >> pic pois este segundo era ligado direto.

 

O MMiscool disse "The input pins are 5v tollerant"  isso falando do ESP.. então liguei direto e ai funcionou...

 

Eu preferi esperar um conversor bidirecional. Mas usarei com i2C, não com serial.

 

Em 03/11/2016 às 16:08, lucianolcoa disse:

Por segurança eu testaria um diodo zener nos inputs do esp. Sei que o pic tem um regulador interno, mas vai que nao fumfa 

 

Comprei Zener 3.3V e 5.1V. Falta sentar e fazer as coisas.

 

Agora estou tenso pra usar o ferro de solda 40 W, para montar os headers de meus embarcados. Arrisquei com um ATtiny85 USB mas não quero vacilar. Tenho um Arduino Pro Mini e um conversor de nível pra montar.

 

Em 04/11/2016 às 12:33, ViniciusKruz disse:

 

Tenho um ESP12F aqui ligado a +/- 30 dias, ele controla um relé, lê um DS3231, envia para a serial e checa 70 horários diferentes incluindo dia da semana/hora/minuto e ainda me dá acesso pelo web server, até agora não travou nenhuma vez. Não tenho do que reclamar. 

 

Ele foi programado em que?

 

Em 06/11/2016 às 19:59, Intrudera6 disse:

Acho que até prefiro colocar o CSS no código, pois carregar da Internet carregaria muito o uso da memória RAM.

 

Use a biblioteca de arquivos, que nem o colega falou!

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

@alexandre.mbm

 

Pego onde, da Internet ? Mas ainda talvez o melhor mesmo seja montar uma tela linha a linha no programa para que  não seja necessário baixar nada da Internet (para a tela) e carregar um arquivo em memória acaba gastando toda a limitada memória do ESP8266, ela pode fazer falta, a memória flash é muito mais abundante.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
Em 07/11/2016 às 11:54, lucianolcoa disse:

E que ja vi muito gente de mimimi falando que o app inventor é pros marikas que não sabem programar. E de fato isto e verdade mesmo.

 

Dar bola para essas visões é bobagem. Se você sabe integrar coisa, você tem uma habilidade interessante e isso também pode ser chamado de programar. São níveis e estilos diferentes.

 

9 minutos atrás, Intrudera6 disse:

Pego onde, da Internet ?

 

Não sei. Ele deve saber do que está falando. Esperemos.

Link para o comentário
Compartilhar em outros sites

2 horas atrás, alexandre.mbm disse:
Em 04/11/2016 às 13:33, ViniciusKruz disse:

 

Tenho um ESP12F aqui ligado a +/- 30 dias, ele controla um relé, lê um DS3231, envia para a serial e checa 70 horários diferentes incluindo dia da semana/hora/minuto e ainda me dá acesso pelo web server, até agora não travou nenhuma vez. Não tenho do que reclamar. 

 

Ele foi programado em que?

 

Arduíno.

 

 

 

1 hora atrás, alexandre.mbm disse:
2 horas atrás, Intrudera6 disse:

Pego onde, da Internet ?

 

Não sei. Ele deve saber do que está falando. Esperemos.

 

Pelo pouco que entendo de Html, Css e companhia, vou tentar explicar da forma como eu entendi e tenho aplicado, funciona assim:

 

CSS inline - o código do CSS(style) é inserido "a vulso" nas propriedades dos objetos em qualquer parte da página web, por exemplo: 

 

<p style="color:#FF0000; margin: 10px;">

Paragrafo com fonte na cor vermelha e 10px nas  margens 

</p>

 

CSS Incorporado: todas as configurações do site vêm no início da página web

<head> ...

<style rel="stylesheet" type="text/css">

p {

margin-left: 15px; padding:1.5em;

}

</style> ...

</head>

 

Desta forma acima, toda vez que criar um parágrafo <p></p>, será aplicado o estilo acima

 

CSS Lincado: todo o código css fica em um arquivo fora da página web, e linkamos ele na página web:

<link href="estilo.css" rel="stylesheet" type="text/css" media="screen" />

 

Note o href="estilo.css", nele estão todas as configurações de estilização da página, e como ele é um link, pode estar na China que o navegador vai buscar ele e apresentar na tela, sem que o ESP tenha que fornecer nada. Esse arquivo pode ser hospedado em qualquer lugar que você possa ter acesso.

 

Bom, é mais ou menos isso, desculpa aí se eu não soube explicar como deveria é que eu também estou aprendendo essa bargaça rsrs.

 

 

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

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

Arduíno.

 

IDE do Arduino, C do Arduino, né?

 

5 minutos atrás, ViniciusKruz disse:

Note o href="estilo.css", nele estão todas as configurações de estilização da página, e como ele é um link, pode estar na China que o navegador vai buscar ele e apresentar na tela

 

Referi-me a aquilo de biblioteca de arquivos. Para não precisar de Internet. Como faz?

Link para o comentário
Compartilhar em outros sites

@ViniciusKruz Tentei usar a ide do arduino mais uma vez, decepçao. Depois de um tempoa conexao fecha sozinha -_-'. Mas me veio uma coisa em mente,difícil, mas não custa tentar.Talvezo código nao esteja correto, vi um codigo do instructables e vou testar, se a conexão não cair. Ahe enfioo app inventor com toda força :)

adicionado 2 minutos depois

@alexandre.mbm

Esse foi um mux que levei um tempo pra aprender e implementar, ele le 3 sensores, mas voce pode adaptar pra 8 sem problemas, e que na serial fica confuso voce ler tanta coisa de uma vez, testei e fumfou=/

 

--------------------------------

int sensor1= A1;
int vetor=500;
unsigned long tempo;
int led1=5 ;
int led2 =4;
int led3 =3;
int referencia=0;
int troca1;
int valor1;
int a;
int b;
int c;
int d;
void setup() {
 DDRD =B11111110;
 pinMode(sensor1,INPUT);
 pinMode(led1,OUTPUT);
 pinMode(led2,OUTPUT);
 pinMode(led3,OUTPUT); 
  Serial.begin(9600);
}
void loop() {
  valor1 =analogRead(sensor1);

  tempo = millis();
  delay(300);
    troca1++;
    Serial.print("o valor de a:");
    Serial.print(a);
    Serial.print(", e o valor de b:");
    Serial.print(b);
    Serial.print(",e o valor de c:");
    Serial.print(c);
    Serial.print(",e o valor de d:");
    Serial.println(d);
    

  
  

 if(troca1>=5){
  troca1 =1;
 }


 switch(troca1){

 case 1:

 b=valor1;
 digitalWrite(led1,LOW);
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
 break;

 case 2:

 a=valor1;
  digitalWrite(led2,LOW);
  digitalWrite(led1,LOW);
  digitalWrite(led3,HIGH);
 break;
 case 3:
 c=valor1;
 digitalWrite(led1,HIGH);
 digitalWrite(led2,LOW);
 digitalWrite(led3,LOW);
 break;
 case 4:
 d=valor1;
 digitalWrite(led1,LOW);
 digitalWrite(led2,HIGH);
 digitalWrite(led3,LOW);
 break;
  
 }
}
adicionado 6 minutos depois

"

Comprei Zener 3.3V e 5.1V. Falta sentar e fazer as coisas.

 

Agora estou tenso pra usar o ferro de solda 40 W, para montar os headers de meus embarcados. Arrisquei com um ATtiny85 USB mas não quero vacilar. Tenho um Arduino Pro Mini e um conversor de nível pra montar.

"

Pelo que eu entendi voce vai fazer um standalone? Se for isso pode ficar mais sossegado que o arduino ele é que nem os cdz de Athena, aguenta pancada de boa! Uma vez fiz um standalone que nao funcionava, fiz testes e mais testes com ele ligado e nada, quando fui ver tinha curtocircuitado o cristal na hora de soldar, soltei o curto  e funciono beleza, como se nada tivesse acontecido.

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

  • Membro VIP
6 horas atrás, lucianolcoa disse:
 
15 horas atrás, alexandre.mbm disse:

Comprei Zener 3.3V e 5.1V. Falta sentar e fazer as coisas.

 

Agora estou tenso pra usar o ferro de solda 40 W, para montar os headers de meus embarcados. Arrisquei com um ATtiny85 USB mas não quero vacilar. Tenho um Arduino Pro Mini e um conversor de nível pra montar.

 

Pelo que eu entendi voce vai fazer um standalone? Se for isso pode ficar mais sossegado que o arduino ele é que nem os cdz de Athena, aguenta pancada de boa! Uma vez fiz um standalone que nao funcionava, fiz testes e mais testes com ele ligado e nada, quando fui ver tinha curtocircuitado o cristal na hora de soldar, soltei o curto  e funciono beleza, como se nada tivesse acontecido.

 

Ainda não. Apenas montar as duas plaquinhas novas que vieram sem os pinos. Um Pro Mini (clone) e um conversor de nível lógico. Essa "frescura" toda surgiu quando percebi o quão delicadas elas parecem ser. O conversor é do tamanho de uma unha!

 

Com o Digispark ATtiny85, eu dei descansos em cada solda, mas ainda fiquei um tanto tenso. Fiquei feliz depois, ao constatar tudo funcionando uma maravilha.

 

Essas duas outras plaquinhas também serão para minha prototipagem. E provavelmente virão a ser aproveitadas no projeto final, pois não gosto de acumular coisas sem uso. Por isso também é que não me considero um hobista. Não tenho recursos e distração para tal. Considero-me alguém cauteloso que quer fazer uma coisa conscientemente, suprir uma necessidade.

 

Não tenho medo de não conseguir. Quero evitar ao máximo prejuízos e investimentos desnecessários. Ao mesmo tempo, vou aprender nos detalhes, sem soluções fáceis.

 

Não me pareceu que seu exemplo com curto circuito sirva para me tranquilizar. São circunstâncias diferentes.

Link para o comentário
Compartilhar em outros sites

12 horas atrás, alexandre.mbm disse:

IDE do Arduino, C do Arduino, né?

 

Sim.

 

12 horas atrás, alexandre.mbm disse:

Referi-me a aquilo de biblioteca de arquivos. Para não precisar de Internet. Como faz?

 

Ah sim!! Eu ainda não precisei usar isto, mas já andei verificando as possibilidades rsrsrs. No próprio código do ESP na IDE do Arduíno é possível simular arquivos, esta, creio eu seja a forma mais fácil e funciona da seguinte forma:

 

void drawGraph() {
  String out = "";
  char temp[100];
  out += "<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" width=\"400\" height=\"150\">\n";
  out += "<rect width=\"400\" height=\"150\" fill=\"rgb(250, 230, 210)\" stroke-width=\"1\" stroke=\"rgb(0, 0, 0)\" />\n";
  out += "<g stroke=\"black\">\n";
  int y = rand() % 130;
  for (int x = 10; x < 390; x+= 10) {
    int y2 = rand() % 130;
    sprintf(temp, "<line x1=\"%d\" y1=\"%d\" x2=\"%d\" y2=\"%d\" stroke-width=\"1\" />\n", x, 140 - y, x + 10, 140 - y2);
    out += temp;
    y = y2;
  }
  out += "</g>\n</svg>\n";
  server.send ( 200, "image/svg+xml", out);
}

Esse código acima (usando o WEB Server) gera uma imagem .svg contendo um gráfico aleatório, para o browser que estiver acessando a página, aparece apenas uma imagem comum, é como se o ESP estivesse com esta imagem hospedada nele.

 

A segunda forma de armazenamento no próprio ESP, seria colocar um SD card (cartão de memória) e usar a biblioteca "SD" para acessá-la.

 

E a última possibilidade(a mais interessante e prática-no meu modo de pensar), seria simplesmente adicionar a biblioteca "#include <FS.h>" no início do arquivo (sketch) e através dela, poder gravar e ler arquivos diretamente na memória do próprio ESP, usando o formato de arquivos SPIFFS, da mesma forma como é feito na linguagem LUA e ESP8266Basic.

 

Segue um código de exemplo:

// Very basic Spiffs example, writing 10 strings to SPIFFS filesystem, and then read them back
// For SPIFFS doc see : https://github.com/esp8266/Arduino/blob/master/doc/filesystem.md
// Compiled in Arduino 1.6.7. Runs OK on Wemos D1 ESP8266 board.

#include "FS.h"

void setup() {
  Serial.begin(9600);
  Serial.println("\nVery basic Spiffs example, writing 10 lines to SPIFFS filesystem, and then read them back");
  SPIFFS.begin();
  // Next lines have to be done ONLY ONCE!!!!!When SPIFFS is formatted ONCE you can comment these lines out!!
  Serial.println("Please wait 30 secs for SPIFFS to be formatted");
  SPIFFS.format();
  Serial.println("Spiffs formatted");
}

void loop() {

  // open file for writing
  File f = SPIFFS.open("/f.txt", "w");
  if (!f) {
      Serial.println("file open failed");
  }
  Serial.println("====== Writing to SPIFFS file =========");
  // write 10 strings to file
  for (int i=1; i<=10; i++){
    f.print("Millis() : ");
    f.println(millis());
    Serial.println(millis());
  }

  f.close();

  // open file for reading
  f = SPIFFS.open("/f.txt", "r");
  if (!f) {
      Serial.println("file open failed");
  }  Serial.println("====== Reading from SPIFFS file =======");
  // write 10 strings to file
  for (int i=1; i<=10; i++){
    String s=f.readStringUntil('\n');
    Serial.print(i);
    Serial.print(":");
    Serial.println(s);
  }

  // wait a few seconds before doing it all over again
  delay(3000);
  
}

 

Como eu já disse e torno a repetir, ainda não usei nada disso, conheço porque já andei estudando, mas não tenho prática, mas creio que já sirva de norte para começar. Eu até questionei certa vez no fórum esp8266.com sobre esta forma de gravar arquivos (SPIFFS) porque eu não havia entendido como os arquivos eram gravados na memória, inclusive sobre as subpastas, eu queria saber como criar uma subpasta com a linguagem LUA, porque lá tem a opção de se criar o arquivo, mas não pastas e subpastas, daí me explicaram que a ideia de pastas não existe no SPIFFS usando o ESP8266 e que uma possibilidade seria nomear o arquivo como se fosse uma subpasta, por exemplo, para criar um arquivo de texto com o nome "teste.txt" e colocar ele em uma pasta com o nome "/pasta", nesse caso teria que ser colocado todo esse nome no próprio nome do arquivo, assim, ao invés do arquivo se chamar "teste.txt", seria: /pasta/teste.txt. Não me lembro se o ESP8266basic permite criar pastas, acho que sim, mas de qualquer maneira, deve usar o mesmo sentido para criá-las.

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

Galera, amanhã será uma Black Friday do Aliexpress. Tem uns "joguinhos" pelo site que você consegue ganhar alguns cupons de desconto para poder usar nas lojas de eletrônicos, juntando com o desconto de amanhã.

 

Só se cadastrar aqui, e depois aqui!

 

É só ir clicando nas lojas e quando a página abrir, comece a seguir que você ganha moedas!

  • 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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!