Ir ao conteúdo
  • Cadastre-se

ESP8266 - A Pequena Maravilha para Comunicação WIFI


aphawk

Posts recomendados

Eu por enquanto vou voltar pra caverna dos 5 picos antigos e treinar para me tornar um cavaleiro de ouro *-* 

"Sou muito fraco na programação de linguagem pura e vou me arriscar em phyton, pois dizem que ele é perfeito para sistemas linux no geral, fora a acoplagem automática ao raspberry pi"

Link para o comentário
Compartilhar em outros sites

9 horas atrás, rodrigocirilo disse:

 

@aphawk Lembro que falaram aqui sobre o clock do ESP ser de 80mhz.. podendo seta-lo para 160mhz.. O quanto isso faria diferença na velocidade de comunicação com o browser, qual seria a instabilidade e como fazer pelo espbasic?

 

 

Fazem mais de 6 meses que já está rodando a 160 Mhz...

 

Paulo

 

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

@lucianolcoa A IDE do arduino não é a mesma que o espbasic certo? muda para o espbasic ai teremos mais gente pra irar duvidas hehehe

 

@aphawk Que bom... mas como setar? melhora na interface com o browser?

 

 

Pergunta geral, porque o espbasic limita o numero de objetos gerados na tela? (objetos são botões textbox, listbox etc..) pelo que vi limata a 17 objetos..

Link para o comentário
Compartilhar em outros sites

Encomendei um ESP32S (KIT) no Aliexpress por 22,77 USD, mas tem muito vendedor que não tem pronta entrega. A curiosidade é muita para eu esperar mais tempo. E não teve nenhum desconto no black friday para os ESP32.

 

Agora quando chegar, acho que vai demorar bastante, vou ver como é que vai ser para programá-lo.

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

Pessoal finalmente eu achei um metodo de programar o esp32 na ide do arduino, de tanto pesquisar achei um tuto bem interessante. Aqui mastigo pra vocês:

 

Entrem nesse link e faça o download das coisas:

https://github.com/espressif/arduino-esp32

 

E depois no icone da sua IDE arduino,clique com o direito e va em abrir local do arquivo. lá abra a pasta hardware, crie uma past chamada espressif e dentro dessa pasta voce coloca a pasta que voce baixou ja descompactada. Eu fiz isso e pelo menos na minha IDE apareceu a opção de programar no ESP32. Só falta alguem testar pra dizer se fumfa.

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

4 horas atrás, rodrigocirilo disse:

 

@aphawk Que bom... mas como setar? melhora na interface com o browser?

 

 

Não é acessível ao usuário. O autor já configurou para só rodar a 160 Mhz.

 

A lentidão que a gente percebe é por causa de ser um INTERPRETADOR , não um COMPILADOR, e também de usar trocentas bibliotecas prontas e milhares de linhas de código do Arduino.....

 

Tinha de converçer o Mark Albert do Bascom para ele fazer um compilador para o ESP8266 e afins.... 

 

Paulo

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

  • Membro VIP

@lucianolcoa , ele estava se referindo ao programa em funcionamento. Se feito na Arduino IDE, seu programa será executado na linguagem de máquina do microcontrolador. Se feito no Espbasic, seu programa será interpretado. Somente o interpretador estará em linguagem de máquina, traduzindo em tempo de execução o que você programou. Isso é muito mais lento. Linguagens interpretadas vs. linguagens compiladas.

Link para o comentário
Compartilhar em outros sites

@alexandre.mbm Agora me veio a luz uma teoria, talvez o que esteja fazendo o meu node engasgar seja justamente a velocidade. Deve ta tão rápido que o provedor não deve ta "lendo" e ahe engasga. Se minha teoria estiver correta, teria alguma forma de atrasar a requisição pelo esp?

Link para o comentário
Compartilhar em outros sites

@lucianolcoa ,

 

Não é nesse sentido....

 

Por exemplo, quando você carrega um programa na IDE do Espbasic, demoram alguns segundos até ficar pronto para rodar .

 

Depois, quando você faz o RUN, demora para o interpretador deixar tudo pronto para executar.

 

Comandos que acessam sites externos e necessitam filtrar dados demoram vários segundos ....

 

Transferências wifi também são lentas...

 

Paulo

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@lucianolcoa , não entendo o que você está perguntando.

 

Quanto ao que falei, vou dar um exemplo analógico. Imagine um programa "Hello World". Ele deve imprimir essa famigerada frase. Ficticiamente, temos ele em algumas linguagens:

 

1) Linguagem de máquina

000001111000011001000000110000000000000000000011111000

2) Linguagem compilada

print "Hello world"

3) Linguagem interpretada

print "Hello world"

São três linguagens fictícias, para o que quero lhe explicar. Observe que a sintaxe das linguagens 2 e 3 são idênticas, para o comando em questão.

 

Acontece o seguinte.

 

Fora do seu ambiente de execução, ou seja, fora do microcontrolador, em seu desktop de desenvolvimento, um compilador transforma o código de 2 no código de 1. Essa peça de software fica pronta para ser gravada no microcontrolador e ser executado diretamente pelo hardware.

 

Enquanto que o interpretador funciona em seu ambiente de execução, dentro do microcontrolador, transformando o código de 3 no código de 1, e às vezes valendo-se de estágios de tradução intermediária.

 

Interpretação requer mais ciclos de processamento e mais memória. O código humano é traduzido em tempo de execução para o que o hardware de fato vai entender.

 

Na Internet, há quem afirme o seguinte:

 

Citação

Um código na linguagem Assembly não é compilado. Tem que ser interpretado pelo Assembler em código de máquina e linkado para ser executado.

 

Eu chamaria a coisa de "compilação".  Mas o importante é saber que trata-se de "traduções". Com certeza a linguagem Assembly está bem próxima da linguagem de máquina.

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

Um interpretador perde muito tempo procurando informações, e só quando ele sabe de todo o contexto é que ele pode começar a traduzir cada um dos comandos.

 

E o programa interpretador ocupa muita memória disponível e muito tempo de processamento.

 

Por exemplo, um ESP-01 tem se não me engano 63K de memória RAM.  Mas o interpretador ESP8266Basic ocupa quase toda essa memória, deixando livre apenas cerca de 14 K para rodar o programa.

 

Alguns comandos, dependendo do contexto em que ele será usado, pode consumir mais de 2K de RAM só para poder ser executado, o que acaba limitando bastante o que podemos executar.

 

Já um programa compilado não perde nenhum tempo, ele é apenas a sequência de comandos já traduzidos na linguagem do microcontrolador que estiver executando, então passa  a ser dezenas ou até centenas de vezes mais rápido ! E sem desperdício de RAM ....

 

Paulo

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

@alexandre.mbm gostei da sua explicação!

 

O meu "sisteminha de teste" no próprio Arduino (esperando meus ESP chegarem =/) usa 85% de variáveis globais! aUHauAHauhAUa

 

Já tentei de vários modos diminuir, mais não consegui! Uso CSS e JS hospedado, e percebi que isso usa muito as variáveis globais dele.

 

Tem algum jeito de diminuir isso?

Link para o comentário
Compartilhar em outros sites

O meu programa de calibração semiautomática está funcionando, mas ainda continua em testes. Testei ele ontem e obtive 0,100420 seg de desvio para mais entre o DS3231 e o Servidor NTP com 5 dias e 22 horas (428191 segundos) de intervalo (pouco mais de 0,23ppm adiantando), a rotina de cálculo de Registro de Deriva Térmica calculou como previsto, e agora o meu DS3231 está com o seu Registro de Deriva em +5 (passou de +4 para +5), vamos ver daqui a 7 dias como é que vai ficar e se melhora a precisão do DS3231.

 

Vou aperfeiçoar ela mais um pouco e ver se consigo dar o feedback pelo browser, e estou pensando em colocar o log de calibração do DS3231 na EEPROM (tem muito espaço), pode ser interessante para avalizar o escorregamento do TCXO do DS3231 com o tempo (esta minha mania de precisão ...).

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

  • Membro VIP

@Papibakigrafo , eu não tenho experiência para lhe responder. Posso mencionar que existe uma diferença, talvez desprezível no seu caso, entre usar declarações "define" e declarações "const". Segundo penso que lembro, o "define" distribui pelo código objeto os valores constantes, em tempo de compilação. Isso acabaria custando mais memória não volátil. Usar "const" seria uma preferência por ocupar RAM, para a execução. Na verdade, ainda não entendi os benefícios defendidos por quem estava propondo a segunda estratégia.

 

Como você está fazendo essa "simulação" de ESP em Arduino? Não sabia que era possível.

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

@alexandre.mbm Não estou fazendo a simulação, estou usando o arduino mesmo, pois meus ESP (nodeMCU) não chegaram da China. Só mencionei que meu código do arduino está em 85%, e com 87% ele não funciona direito AauhAUAhaUa

É só um código pra acionar 2 relês via internet, mas com CSS e JS (bootstrap) Se permitirem, posso postar o código aqui, pois não é o propósito do tópico!

 

Sobre o define e const, vou dar uma olhada nisso! =)

Link para o comentário
Compartilhar em outros sites

1 hora atrás, alexandre.mbm disse:

@Papibakigrafo , eu não tenho experiência para lhe responder. Posso mencionar que existe uma diferença, talvez desprezível no seu caso, entre usar declarações "define" e declarações "const". Segundo penso que lembro, o "define" distribui pelo código objeto os valores constantes, em tempo de compilação. Isso acabaria custando mais memória não volátil. Usar "const" seria uma preferência por ocupar RAM, para a execução. Na verdade, ainda não entendi os benefícios defendidos por quem estava propondo a segunda estratégia.

 

Como você está fazendo essa "simulação" de ESP em Arduino? Não sabia que era possível.

 

Eu testaria, compilaria das duas formas e veria o resultado da Compilação, a IDE do Arduino já te diz logo na compilação o tamanho do arquivo e quanta memória RAM ele usa. Fiquei curioso, talvez eu mesmo faça este teste.

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

3 horas atrás, Papibakigrafo disse:

Se permitirem, posso postar o código aqui, pois não é o propósito do tópico!

 

Amigo, tudo o que é relativo ao ESP, é pertinente ao tópico. Pode ficar à vontade para postar suas experiências caso elas sejam de utilidade nos ESPs, não sou moderador, mas creio que não há problema algum, como você já deve ter observado, aqui nós discutimos eletrônica, internet (html, css, js e afins), linguagens de programação, e até mesmo sobre importação e compras no exterior, se formos levar em conta, estas coisas não poderiam ser discutidas aqui, mas esse é o universo dos ESPs, como não falar dessas coisas?

 

3 horas atrás, Papibakigrafo disse:

Sobre o define e const, vou dar uma olhada nisso! =)

Eu já tentei de toda forma reduzir uso de memória nos PICs, e cheguei a conclusão que se você não afetar a RAM, você afetará a ROM, não tem jeito, a solução é maximizar o código o máximo possível e remover tudo o que realmente não for necessário. Geralmente eu não me preocupo com o uso de memória até chegar no limite, depois que não tem mais espaço começo a enxugar tudo.

adicionado 7 minutos depois

@Papibakigrafo  Não vi no seu código, menções do js nem do css, como você fez?

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

@ViniciusKruz entendi, que bom! Perguntei pois tem alguns grupos no facebook que até te banem se postar algo "offtopic" ou não específico!

 

O JS está hospedado no meu site. Está no primeiro código, dos relês. Tem CSS e JS do bootstrap e o meu que está hospedado. Eu consegui deixar ele com 76% de uso de memória.

 

Como disse, no segundo código, é para ligar/desligar o ar condicionado. Só que o RAW é gigante, e ocupa muito da memória.

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

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

estas coisas não poderiam ser discutidas aqui, mas esse é o universo dos ESPs

 

Eu seria a favor de termos vários tópicos, mas os moderadores já declararam ser inviável ficar derivando.

 

1 hora atrás, Papibakigrafo disse:

é para ligar/desligar o ar condicionado. Só que o RAW é gigante, e ocupa muito da memória.

 

Que RAW, uma mensagem de infravermelho?

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!