quarta-feira, 27 de abril de 2016

Configurando a Memória Flash do ESP8266 no Arduino IDE



Pessoal,

Vou ensinar aqui para vocês como configurar corretamente o tamanho da memória Flash do ESP8266.

Bati muita cabeça aqui tentando fazer uma atualização do firmware do ESP8266 por WiFi, conhecida por OTA (Over The Air), que vou ensinar em outro post. Para quem entende inglês, basta seguir esse tutorial aqui.

Mas sofri muito antes de conseguir efetuar a Atualização OTA por uma configuração errada no tamanho da memória Flash do meu módulo ESP8266.

Uma regra básica para a Atualização OTA funcionar é que o código sendo atualizado não pode ser maior que a metade do tamanho da memória Flash. Isso acontece pois é uma auto-atualização, de forma que o arquivo BIN é gravado no espaço vazio da memória Flash para depois então substituir o código atual sendo executado. Por isso precisa existir um espaço igual ou maior que o código sendo atualizado.

Meu módulo ESP8266 ESP01 estava configurado errado como tendo memória Flash de 512KB, mas o arquivo do código compilado e resultante BIN estava com mais que 256KB, portanto a Atualização OTA não estava sendo possível.

Descobri então que existe um Exemplo pronto que verifica isso pra gente. Basta seguir os passos a seguir.

Passo 1 - Abrir o Exemplo chamado CheckFlashConfig.ino, conforme imagem abaixo.


Passo 2 - Verifique que o código faz uso de funções nativas do ESP8266 para o tamanho da memória Flash configurada no Arduino IDE e o tamanho real do chip, Depois, através de um "if" na programação compara o valor real do configurado e avisa se está certo ou errado!


Passo 3 - Se estiver certo, vai aparecer a mensagem da imagem abaixo no Monitor da Serial ao executar o código. Repare que os tamanhos da memória real e configurada no IDE são iguais.



Passo 4 - Mas se aparecer a mensagem de erro "Flash Chip configuration wrong", então vamos precisar configurar o tamanho correto no menu "Ferramentas" conforme mostra a imagem abaixo.


É isso aí pessoal! Simples assim! No próximo artigo da série do ESP8266 eu vou ensinar como fazer Atualização OTA!

Abraços,
Renato Aloi

terça-feira, 26 de abril de 2016

Resetando ESP8266 de Fábrica

Pessoal,

Eu estou utilizando o ESP8266 subindo código pela IDE do Arduino, conforme mostrei na aula abaixo:
Mas em vários testes que fiz, acabei estragando o firmware do ESP8266, o que foi relatado nesse post aqui.

Bom, eu descobri como consertar. Para isso, se você se deparou com o mesmo problema e seu ESP8266 não está mais funcionando, tente os passos abaixo para consertar.

Passo 1 - Faça download da ferramenta ESP8266_flasher.exe e do firmware v0.9.2.2 AT Firmware.bin que disponibilizei em um ZIP, bastando clicar aqui.

Passo 2 - Monte o esquema elétrico mostrado na Aula 14 do Curso Arduino Express, conforme links acima.

Passo 3 - Abra o programa ESP8266_flasher.exe e clique no botão chamado BIN, conforme mostrado na tela abaixo:


Passo 4 - Encontre o arquivo v0.9.2.2 AT Firmware.bin e selecione ele, clicando no botão ABRIR da janela de Abrir Arquivo.

Passo 5 - Verifique a porta COM em que o Arduino foi conectado e digite o número correto, por exemplo, se for a COM6, substitua onde está escrito COM1 por COM6, como mostrado na imagem abaixo:


Passo 6 - Finalmente clique no botão Download para enviar o arquivo *.BIN para a memória flash do ESP8266.



Para maiores informações, recomendo a leitura deste tutorial onde encontrei esse programa e também a solução para o meu problema.

Espero que ajude quem passou por essa situação. Vou gravar mais algumas aulas sobre o ESP8266 em breve.

Abraços,
Renato

segunda-feira, 25 de abril de 2016

Entenda o Limite da Internet Fixa

Acabei de ver um consultor da Globonews falando bobagem na TV, respondendo perguntas. A primeira pergunta que ele respondeu foi:

Qual a diferença entre limite de velocidade e limite de dados?

O que o consultor da Globo respondeu foi uma bobagem tão grande que não consigo repetir aqui, então vamos entender isso!

O limite de velocidade é na verdade a capacidade contratada da sua Internet, ou seja, 1Mbps ou 10Mbps, ou 100Mbps etc.

O limite de dados é a quantidade de dados que você consome em um período. Por exemplo, um episódio de série costuma ter de 300MB a 700MB.

Ahh, mas qual a diferença entre MB e Mbps? 

Já vamos entender isso. Mas antes vamos imaginar que você alugue um apartamento. Qual a sua franquia de uso do apartamento?

Você deve poder ficar dentro do apartamento todos os 30 dias do mês, por todas as 24 horas de cada dia, por todos os 60 minutos de cada hora e por todos os 60 segundos de cada minuto, certo?

Ou seja, limitar o uso do apartamento seria o mesmo que limitar os dados de uma internet fixa.

Seria o mesmo que você pagar um aluguel, por exemplo, para usar o apartamento desde que você não fique mais de 10 dias dentro dele! Se você quiser ficar mais que 10 dias, teria que pagar a mais!

Isso que estão querendo fazer com a nossa Internet! Vejamos, o que seriam 30 dias em segundos?

Estamos falando de 30d x 24h x 60m x 60s = 2.529.00 (dois milhões, quinhentos e noventa e dois mil ). Ou seja, em 30 dias temos mais de 2,5 milhões de segundos.

Vamos imaginar agora que temos uma Internet de 10Mbps (Milhões de bits por segundo). Sendo assim podemos baixar 10 milhões de bits por segundo. Mas o cálculo do tamanho de arquivos é feito em bytes e não em bits. Então temos que dividir esse valor por 8 (que é o tamanho de 1 byte, em bits).

Temos então 1.250.000 (um milhão, duzentos e cinquenta mil) bytes que podemos baixar por segundo em nossa Internet de 10Mbps.

Continuando, temos que 1.250.000 bytes são 1,19MB de dados (calculando 1.250.000 dividido por 1024 e dividido de novo por 1024).

Ahhh, então se alguém me ligar oferecendo 2GB por mês de franquia de dados é bastante né?

Não é não! Faça as contas! Se você consegue baixar 1,19MB por segundo e o mês tem mais de 2,5 milhões de segundos, então sua franquia total é de mais ou menos 3 MIL Gigabytes por mês!!!

Se alguém disser pra você que 2GB por mês é muito pra você baixar o que você quiser, você então responde:

Mas minha franquia atual é de 3 mil GB por mês! Ou seja, 2,8 Terabytes por mês! O que você está me oferecendo não é nem 0,1% da franquia que tenho agora!?

Espero que tenha ajudado quem tem dúvidas nesse assunto, pois é realmente complicado entender os cálculos de bits por segundos e entender quantos Gigabytes podemos baixar por mês.

Então não se engane, se você tem uma Internet de 10 Megabits por segundo, (Mbps) você pode baixar até 3 mil Gigabytes por mês.

E 10Mbps (Megabits por segundo) é limite de velocidade, ou seja a capacidade que a rede de Internet que você contratou tem de baixar dados por segundo.

Já 10MB (Megabytes) é um tamanho de dados, que representa 80 milhões de bits!

Não confunda Mbps com MB, que seria o mesmo que confundir 60Km/h (que é uma medida de velocidade) com 60Km (que é uma medida de distância).

Abraços,
Renato Aloi

sexta-feira, 1 de abril de 2016

ESP8266 e seus BUGS!

Boa noite!

Alguém já instalou a toolchain do ESP8266? Eu achei esse tutorial, mas precisa de ser um PC 64 bits:


Fiquei interessado em instalar esse tutorial. Porque? É simples, porque eu tomei recentemente um erro Fatal Exception (28)! Interessante né? Eu achei essa informação aqui:


Que diz que executando esses comandos é possível descobrir o que está nesse endereço de memória dando erro...

Mas também achei esse link de toolchain que é outro tutorial:


Alguém tem experiência com  esse erro Fatal Exception (28)?

Abcs
Renato Aloi