Ir ao conteúdo
  • Cadastre-se

ESP8266 - A Pequena Maravilha para Comunicação WIFI


aphawk

Posts recomendados

Estou testando o Basic e às vezes ele para de funcionar direito (testando Graphic_Clock_Example.bas modificado incluindo o ponteiro dos segundos, não deu certo, ele não é veloz o suficiente) e eu tenho que desligar e ligar. E eu experimentei gravar de novo o flash e ele continuou conectado na mesma rede, isto pode ser um problema se eu mudar de rede. Imagino que teria que formatar com outra imagem, ou tem algum forma melhor de limpar tudo ao transferir o arquivo .bin ?

 

Este Basic parece ter alguns bugs, como por exemplo: ao editar o arquivo dentro do ambiente WEB, ao usar o botão SAVE, o arquivo não sofre alterações. E ao fazer upload ele não transfere o arquivo se o nome dele for grande, tive problema com o arquivo Graphic_Clock_Example.bas, que tive que renomear para G_Clock_Example.bas, se não ele não fazia upload de jeito nenhum (mas não dava erro).

 

E tem como eu acessar um BME280 pelo Basic, ou terei que escrever toda a rotina em Basic ? Em Bascon tinha um exemplo do BMP085 (rotina enorme e complicada). Com a biblioteca em C talvez eu consiga, mas preferia um caminho menos complicado do que ter que analisar o código em C para fazer isso. Para adaptar a biblioteca em C para Basic vai ser um trabalho grande (e com risco de BUGs, o meu conhecimento de C ainda deixa muito a desejar), e não estou com este tempo todo para isso, tem algum corajoso aqui  (vai em anexo os fontes)?

 

E  a minha gambiarra com os dois transistores funcionou perfeitamente (apesar de não ter ficado muito bonita e nem com o contato muito confiável num protoboard), não precisei apertar nenhum botão para entrar em modo de programação, foi tudo automático. Mesmo assim vou colocar um botão de reset, que às vezes pode ser útil.

 

 

Arduino-ESP8266-BME280-master.zip

Link para o comentário
Compartilhar em outros sites

@Intrudera6 ,

 

No caso dos segundos, perceba a quantidade de informações que tem de ser passadas a cada segundo via uma rede wifi, são informações gráficas  .... o hardware dos ESP8266 não é tão poderoso como o seu microcontrolador. E mais : não foi para esse tipo de função que o ESP8266 foi projetado. É a mesma coisa de quererem fazer um webserver com ele.

Não importa se está rodando em Basic, ou até mesmo Assembler. O buffer HTML interno não consegue descarregar na mesma velocidade com que as informações são geradas...

 

Quanto à fazer o SAVE na tela de Edit, eu também passei por isso. Mas descobri que o problema é devido ao uso da função timer , que só cessa de rodar quando fazemos o comando timer 0 .

 

Agora, para testar o programa, em vez de usar a tela de Run, rodo na tela de Debug, onde interrompo o programa, o que faz o comando timer parar de executar. Aí posso ir na tela de EDIT, alterar e salvar sem nenhum problema ....

 

Existem alguns problemas com nomes grandes. Tanto na transferência / salvamento, como no nome de variáveis, então sugiro não passar de 10 caracteres.

 

Quanto ao BME280, infelizmente vai ter de escrever na marra mesmo, mas anime-se : um programa pode ter até 10.000 linhas !

 

Tem um exemplo no Bascom, veja aqui :

 

http://www.mcselec.com/index2.php?option=com_forum&Itemid=59&page=viewtopic&t=13286&highlight=bme280

 

 

No restante, estou me entendendo bem melhor com essa pequena maravilha..... mas realmente o suporte e os documentos deixam um pouco a desejar.

 

Se você sempre se lembrar para o que que o ESP8266 foi inventado, fica mais simples não exigir dele coisas que podem não funcionar como esperamos.....

 

Paulo

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

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

Não lembro de onde eu baixei.

 

Talvez daqui: https://github.com/TakehikoShimojima/Arduino-ESP8266-BME280

 

1 hora atrás, aphawk disse:

Se você sempre se lembrar para o que que o ESP8266 foi inventado, fica mais simples não exigir dele coisas que podem não funcionar como esperamos.....

 

Foi pra que mesmo?!

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

@alexandre.mbm ,

 

Segue documentação :

 

https://nurdspace.nl/images/e/e0/ESP8266_Specifications_English.pdf

 

Repare nesta informação inicial :

 

Espressif Systems’ Smart Connectivity Platform (ESCP) of high performance wireless SOCs, for mobile platform designers, provides unsurpassed ability to embed Wi-Fi capabilities within other systems, at the lowest cost with the greatest functionality.

 

ESP8266 application subject :

 

Smart Power Plug

Home Automation

mesh network

industrial wireless control

Baby Monitor

Network Camera

sensor networks

wearable electronics

wireless location-aware devices

Security ID tag

wireless positioning system signals

 

Isso foi tirado do próprio fabricante, a Nurdspace. E ela mesma chama isso de Ultra Low Power SOC, cuja ideia é que o ESP8266 fique sempre em modo de sleep, aguardando que entre em operação, transferindo informações para a rede WIFI, e depois volte a dormir.

 

Repare na observação de uso : for mobile platform designers !

 

Vou traduzir melhor essa observação : feito para sistemas de baixo consumo ( não espere grande desempenho ! )

 

Repare que o módulo foi criado e fornecido com o firmware com os comandos AT. Então ele é semelhante a um modem antigo, isto é, ele apenas servia de interface entre um outro sistema completo e uma rede WIFI. Mas o fabricante previu o uso desse hardware sendo usado também como o processador principal, ligado diretamente a vários sensores através de seus pinos de I/O, com um firmware compilado para essa finalidade ( que afinal é o que fazemos, certo ? ).

 

A partir do ESP8266-01, a coisa foi evoluindo, com espaços cada vez maiores para se poder usar um outro firmware não nativo, que possa aproveitar a quantidade externa cada vez maior de I/Os disponíveis no chip ESP8266EX. Mas o hardware interno que faz o "trabalho sujo" , isto é, toda a parte de modem WIFI continua igual desde o primeiro ESP8266-01, sendo de baixa capacidade justamente para se manter o baixo consumo.

 

Embora tenha um processador mais poderoso do que um Atmega328, o qual permite até mesmo rodar uma linguagem interpretada como o LUA ou o ESP8266Basic, o resto do hardware não esbanja o mesmo desempenho, com baixa taxa de transferência de dados via WIFI.

 

Muita gente esquece disso, chegando até a projetar verdadeiros webservers complexos e sofisticados, que acabam sempre tendo baixa performance por causa da limitação da taxa de transferência de dados.

 

Para mim, fica bem claro que não adianta tentar fazer coisas que exijam grande quantidade de informações transmitidas a todo instante entre o ESP8266 e a rede WIFI. O uso tipo ThingSpeak é a melhor das opções para esse pequeno notável, e uma linguagem simples como o ESP8266Basic me dá uma quantidade enorme de meios para isso.

 

Paulo

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

@aphawk

Bem interessante este exemplo com o BME280, agora tenho 3 locais para pescar um exemplo para adaptar. O do pdf do site do fabricante está bem mastigado, acho que vou adaptar dele (do C para Basic), ajuda no meu aprendizado de C. Mas olhar o código em Bascon também é interessante.

 

 

Quando criaram o ESP8266 tinha algo em mente, mas fizeram um controlador muito mais poderoso que o necessário, e ele acabou sendo usado para coisa muito maior. Eu também tenho o mal hábito de tentar espremer um hardware ao máximo. O futuro ESP32 deve vir com IOs muito mais poderosas (além de um controlador bem mais poderoso), deve começar a ficar bem interessante.

 

Eu, por exemplo, esbarro com problemas quando quero que o ESP8266 faça muitas coisas ao mesmo tempo como atualizar um display LCD e ao mesmo tempo tente se conectar com a rede WIFI, e mantendo 200 interrupções por segundo fazendo isso (acho que estou querendo demais dele, e ai começam a acontecer problemas inexplicáveis). Acho que quando lançarem vou arranjar um ESP32 para mim, isto se ele não for caro demais, ele promete ter uns recursos bem interessantes.

 

 

A parte interessante de usar C, que eu gosto, é poder fazer os cálculos com eficiência máxima, mas o samba do crioulo doido das bibliotecas complica tremendamente a minha vida. Acho que o uso do C no meu caso veio para ficar.

 

Na minha rotina de teste eu andei espremendo um pouco e já estou com vontade de utilizar ASM, pois fazer um XOR de uma variável unigned char, sem que esta função exista no C, com eficiência só em assembler (o que nesse caso é tremendamente fácil para mim), mas trava a portabilidade permanentemente, por isso que e ainda não fiz desse jeito, mas talvez tenha um jeito de ter as duas formas juntas, em ASM e em C puro, e via diretiva de compilação manter a portabilidade. Eu ainda gosto de dar uma futucadas em ASM (o vírus do assembler fica latente, nunca estou totalmente curado).

 

Eu andei esbarrando com uns funcionamentos erráticos (intermitência na conexão com WIFI) que eu ainda não consegui explicar totalmente, e isto está consumindo um tempo enorme, a minha rotina ainda não está do jeito que eu gosto, quando estiver coloco aqui a nova versão, mas isto não impede que eu poste aqui as funções de calculo de data e hora (estas estão ficando realmente interessantes).

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

@Intrudera6 ,

 

200 Interrupções por segundo .... display LCD ..... e ainda quer fazer comunicação WI-FI ???????  Dá um tempo poooo !!!!

 

Se não me engano, li em algum lugar que para enviar um frame o ESP8266 demora 2 milissegundos .... e não sei se aqui cabe interrupção. Pode ser que acabe acavalando tudo heheeh.

 

A vantagem no ASM é insuperável. É A ÚNICA MANEIRA DE SE TER O CONTROLE TOTAL DE TUDO !

 

Por esse motivo é que eu jogo do Bascom para o ASM quando a temporização fica crítica, pois eu consigo controlar todos os aspectos.

 

Se você fizer a mesma coisa no C, indo para o Assembler, e voltando para o C depois quando a situação não é mais crítica, vai ter o mesmo controle.

 

ESP32 promete uma boa potência na comunicação WI-FI, e é o que precisamos para poder fazer coisas como a que você está querendo ! 135 Mbps sustentado vai ser uma maravilha ! Mas também colocaram um microprocessador quase 10 vezes mais rápido, e a RAM também foi aumentada em quase 10 vezes ! Acho que isso vai custar caro viu .....

 

Se você ver a potência de hardware de Wi-Fi que tem em um router padrão AC Mikrotik.... deve ser centenas  de vezes mais potente que esse do ESP8266 ... mas gasta uma energia danada também. Eles acabam colocando microprocessadores bem mais potentes também para poder fornecer os dados na velocidade que esses routers AC podem enviar / receber .

 

Acho que para a sua finalidade hoje,  você tem de usar outra plataforma de WI-FI, que suporte esse tipo de exigência. Ou usar um microcontrolador dedicado tipo um Atmega da vida, e usar o ESP8266 apenas como um modem mesmo, usando os comandos AT.

 

Paulo

 

 

 

 

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

16 horas atrás, Intrudera6 disse:

Este Basic parece ter alguns bugs

 

Acredite, eu tive mais problemas com a LUA rsrs. Agora estou testando na prática o Basic como fiz com a LUA, instalei o exemplo MSG URL (Advanced) e está em testes desde ontem e não teve nenhuma anormalidade, está online e obedecendo aos comandos.

 

Se não for satisfatório com o Basic, vou voltar pros comandos AT(falo sério!!!). Quando eu cheguei a conclusão de que com os comandos AT (bem como os outros firmwares) é inviável, eu estava querendo trabalhar com interface WEB, e pra isto realmente os ATs são muito complicados, mas para trabalhar somente enviando apenas uma coisinha ou outra, eles podem até ser a melhor opção, o sistema funciona com o firmware de fábrica: leve rápido e estável. Tem alguns contras, mas a estabilidade compensa.

 

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

@aphawk Eu cheguei a testar com 1000 por segundo requisitando data e hora de servidor NTP e mantive a conexão (mas é bastante pesado e às vezes resetava), conseguia atualizar o LCD 10 vezes por segundo, mandava um trem de texto para a serial (a cada 0,1seg) e comparava com o timer do ESP8266. Este foi um teste que fiz para ver a incerteza do protocolo NTP. Acho até que o ESP8266 é poderoso demais para o que custa, mas tem os seus limites, e eu esbarrei nas limitações dele. Mas é impossível abrir uma nova conexão WIFI com uma interrupção alta, neste caso é até melhor inibir totalmente, o que com um ESP32 isto não deverá ser necessário.

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

@ViniciusKruz ,

 

Eu estou aos poucos entendendo como trabalhar com esse sistema Basic .

 

Fiz um sistema que envia a temperatura para o ThingSpeak, e outro sistema lê essa temperatura e aciona um Led quando cai abaixo de um certo valor. Funciona direitinho .... dá para pensar em várias unidades trabalhando juntas, com um mínimo de código !

 

Paulo

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

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

Embora tenha um processador mais poderoso do que um Atmega328, o qual permite até mesmo rodar uma linguagem interpretada como o LUA ou o ESP8266Basic, o resto do hardware não esbanja o mesmo desempenho, com baixa taxa de transferência de dados via WIFI.

 

Muita gente esquece disso, chegando até a projetar verdadeiros webservers complexos e sofisticados, que acabam sempre tendo baixa performance por causa da limitação da taxa de transferência de dados.

 

Câmera IP?! Mas e se houver um cliente que dispense web? Fala lá: "monitor de bebês".

Link para o comentário
Compartilhar em outros sites

@ViniciusKruz ,

 

Não é o processamento que complica, e sim o tráfego de informação via Wi-Fi que prejudica o desempenho das plaquinhas. Repare que o seu tráfego é pequeno.

 

@alexandre.mbm ,

 

Pois é, eu também notei isso.... Mas também notei que ainda não ví nenhum produto tipo camera em rede ou monitor de bebes ( audio ou vídeo ) que usem  esse módulo.

Acho que aquí o fabricante "escorregou na maionese" ....

 

Paulo

 

 

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

@ViniciusKruz ,

 

Roda a 80 Mhz, mas existe um truque para rodar a 160 Mhz..... Só não sei a confiabilidade disso tudo.....

 

Existe um sistema PLL dentro do ESP8266EX que recebe uma determinada frequência e gera os 80 Mhz.

 

Acredito que o oscilador da placa roda a 40 Mhz.... Pelo datasheet pode ser de 26Mhz a 52Mhz. Mas não posso afirmar isso, já ví PLL's loucos que geram frequências não-múltiplas do clock !

 

Paulo

 

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

@aphawk

Porque está dando erro de sintaxe na 5 linha ? (Programa para varrer as I2C), e o pior é fiz exatamente conforme o exemplo.

 

'I2C Scanner

SDA = 0
SCL = 2
i2c.setup(SDA,SCL)

for address = 1 to 127
   i2c.begin(address)
   stat = i2c.end()

   if stat < 1 then
     ' print stat
      wprint "Found I2C device at address: 0x" & hex(address)
      wprint " - > " & address
      wprint " <br>"
 endif 

next
wait

 

Link para o comentário
Compartilhar em outros sites

O meu aqui está funcionando perfeitamente bem até hoje, sem "surpresas", agora vou começar a implementar outras coisa nele, a princípio vou confeccionar a PCB e colocar ele pra acender e apagar uma lâmpada, na medida que eu for pegando confiança vou implementando mais funções.

Link para o comentário
Compartilhar em outros sites

@chacalgbi ,

 

Não é mais fácil mudar apenas o IP dele ????

 

 

 

adicionado 4 minutos depois

@ViniciusKruz ,

 

Olha isto :

 

http://www.ebay.com/itm/Sonoff-ITEAD-WiFi-Wireless-Smart-Switch-Module-ABS-Shell-Socket-for-DIY-Home-/182145570833?hash=item2a68b8d811:g:7GkAAOSwR5dXRGWF

 

Cópia disto aqui :

 

Sonoff_designs.jpg

 

Uma tomada remota pronta.... já com o ESP8266, fonte de alimentação, relé... tem muita gente comprando e regravando o firmware pra usar em seus aplicativos .....

 

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