Olá Roberto, Obrigado! Dê uma olhada no vídeo #103, ESP32 ESP8266 Armazenando Configuração com JSON e SPIFFS, creio que vai te ajudar bastante. Abraço!
Excelente vídeo!!! Obrigado pela contribuição. Gostaria de salvar um token do blynk junto com os dados da rede e senha (wifi manager). Este método via EEPROM seria o adequado para a sequencia de caracteres do token? obrigado!
Olá Grow Mestre, Obrigado pelo comentário! Pode salvar o token na EEPROM sim, basta adequar o tamanho da estrutura para comportar o tamanho máximo do token, você pode armazenar quantos campos e de quais tipos quiser, desde que sejam mapeados corretamente com os tamanhos na estrutura. Abraço!
Achei q fosse difícil de ada pitar o código no meu projeto , mas não foi difícil, ler controle de portão e gravar na memoria do esp8266, para usar qualquer controle e também o aplicativo para ligar e desligar lâmpada, obr. Por compartilhar .
ótimo aula eu estava a muito tempo querendo aprender exactamente isso :) a sua explicação e muito boa, me ajudou muito. um dos projecto que estou montando, uso o modulo RFID RC522 e gostaria de saber se é possível salvar as novas Tags na EEPROM do ESP. no exemplo que encontrei salva em um SD CARD
Sobre a gravação das TAGs, sugiro utilizar a SPIFFS, ela permite um acesso mais simplificado e com mais recursos do que a EEPROM. Por exemplo, podes criar um arquivo para registrar as TAGs. Segue link do vídeo: ruclips.net/video/Yeq0gI88IrM/видео.html Abraço!
Muito bom o vídeo, conheci seu canal por estes dias. Gostaria de saber se tem alguma forma de utilizar os dados em txt da aula passada como leitura hex. O caso seria pegar endereço MAC de outros esp's e salvar em texto, para se caso seja necessário uma substituição não seja necessario gravar um por um e sim só fazer upload do arquivo txt, achei algo sobre toint() só que não achei videos ainda sobre o assunto.
Marcelo, não entendi muito bem sua necessidade, mas para obter facilmente o MAC do ESP8266 basta usar a função WiFi.macAddress(), que já retorna uma String. Assim, podes trabalhar com essas Strings, concatenando-as em um TXT que pode ser armazenado diretamente no SPIFFS. Abraço.
Sim! Veja o vídeo sobre SPIFFS: ruclips.net/video/Yeq0gI88IrM/видео.html Para ler o conteúdo do arquivo direto para uma variável String, podes utilizar, por exemplo, file.readString(). Lembre que o tipo "file" é um Stream, assim como a porta Serial, e assim podemos usar todos os métodos compatíveis. Mais detalhes sobre a classe Stream na documentação do Arduino: www.arduino.cc/reference/en/language/functions/communication/stream/
Olá Daniel, Pense na variável char como uma string, porém, você precisa indicar o tamanho, pois o armazenamento do char não indica isso. Assim, analise as funções de leitura e gravação de String, elas vão te auxiliar. Ou, mais simples ainda, converta seu char para String e use a função existente. Ah, e se você se refere a uma variável char de apenas uma posição, considere-a um byte, ou seja, um Int8 e use as funções já apresentadas também. Abraço!
Gostaria de saber se tem como eu salvar informações de um sensor que conta pessoas pela EEPROM (de forma local storage/offline) e depois de um tempo, recolher essas informações e enviar para um banco... Eu já tenho esse sketch funcionando, toda a parte de enviar pro banco e contar pessoas, só que eu queria fazer com que o esp guardasse essa informação por meia hora e depois enviasse para o servidor
Olá Cristiano, Via EEPROM você até pode salvar dados, mas o espaço é muito limitado. A solução ideal é usar a estrutura de arquivos do ESP8266, ou seja, a SPIFFS, veja o vídeo abaixo onde explico no detalhe como utilizar esse recurso: ruclips.net/video/Yeq0gI88IrM/видео.html Continue nos acompanhando e enviando seus comentários! Abraço!
Uma coisa que notei é que acho que a linha 50 está errada, 10:25, deveria ser "return int8_t(EEPROM.read(offset));" e não return int8(EEPROM.read(offset)); Mas não tenho certeza, não testei ainda.
Boa Tarde André, sua explicação foi muito útil sobre o uso da EEPROM simulada. Estou tendo problemas na compilação da parte de data e hora, parece que a biblioteca TimeLib que tenho instalada não é compatível com a sua sintaxe. Colocando toda a parte de transformação da data como comentário, o programa compila e roda, já ele normal, dá erro em todas as linhas com comandos day(t), month(t) e etc... ERRO: \IeC15-EEPROM/IeC15-EEPROM.ino:156: undefined reference to `day(long)' . Pode me ajudar, onde encontro a biblioteca TimeLib.h correta ? Obrigado
Olá Guimaraes, A Biblioteca Time é a criada por Michael Margolis, atualmente na versão 1.6.0, pesquise na tela de gerenciamento de bibliotecas da IDE Arduino por "time" para localiza-la. Abraço!
Ola André, sempre assisto seu videos e tem me ajudado bastante. Eu estou fazendo um projeto de tcc e esbarrei em um problema, estou criando um sistema que ja está ocupando a memoria do esp32 quase toda, e eu tenho mais um modulo do sistema para poder gravar na memoria, porem não tem espaço para isso. Gostaria de saber se existe alguma maneira de aumentar os 4 mb do esp32 para que eu possa finalizar meu projeto. Desde já agradeço. Atenciosamente Marcos Paulo.
Olá Márcio, Sim, essas possibilidades entram nos conceitos da Orientação a Objetos, como Polimorfismo e Acoplamento. No sentido prático demonstrado no vídeo, é a possibilidade de manter o mesmo nome para funções com diferentes parâmetros. Se você quiser se aprofundar no assunto sugiro assistir aos vídeos sobre Orientação a Objetos com C++, que apresentam no detalhe os conceitos teóricos e práticos da OO. Parte I: ruclips.net/video/Zmx00SCSnP8/видео.html Parte II: ruclips.net/video/Lwdtn8-y9Iw/видео.html Abraço!
Olá Valdir, O Wemos utiliza o ESP8266EX; basicamente, equivale a um ESP8266 NodeMCU, em um corpo de Arduino Uno. Considerando as diferenças de pinagem inerentes à placa, você pode usar sim o Wemos em praticamente todos os exemplos de ESP8266 apresentados no Canal. Abraço!
@@InterneteCoisas , Retornando ao seu comentário, e reforçar os agradecimentos, pelas excelentes aulas de IOT, entre todas as outras do seu canal, vamos lá as pinagens são diferentes: mas podemos substituir em números semelhante, ex: D4 do Node MCU pelo D4 do Wemos.
Valdir, Infelizmente não tenho a placa Wemos para te detalhar com certeza, mas procure documentação a respeito, a equivalência deve ser semelhante. Abraço!
Muito legal esse tópico esclareceu um monte de duvidas quanto ao EPROM porem fiquei com uma duvida Como definir esses 2 momentos em runtime? O do sketch ok e o procedimento normal rodando no loop mas como fazer o usuário setar esses valores durante runtime? teria uma aplicação aparte a ser rodada ?
Olá Cristiano, Não entendi muito bem sua dúvida. A quais dois momentos você se refere? Quanto ao Usuário, podes utilizar por exemplo uma interface web gerada pelo ESP8266, onde são enviados parâmetros que são gravados na EEPROM. A luminosidade de um LED, o tempo para ativar um relé, a temperatura para disparo de uma ventoinha, tudo enviado a partir de uma página HTML, a EEPROM é ideal para guardar parâmetros da sua aplicação. Continue acompanhando o Canal! Abraço!
Olá obrigado por responder tão prontamente, "Deixa eu melhorar a minha pergunta(ou piorar mais ainda heheheh)", como interagir as configurações "setadas" no EPROM com o que vai rodar no loop ? Eu devo ter uma aplicação apartada para poder fazer o usuário gravar lá esses valores ou isso roda no loop principal da aplicação e esses parâmetros são checados a cada iteração do loop principal? ( acredito que não seja esse modo) No exemplo que vc mostrou os parâmetros ja foram gravados nas constantes na edição do sketch mas numa situação real o usuário é que faria o input desses valores durante a execução do sketch
Cristiano, As funções apresentadas, tanto as "get" como as "set", podem ser executadas em qualquer local do Sketch. A única ressalva é que você chame "EEPROM.begin" no início para popular a estrutura na memória RAM e "EEPROM.commit" para gravar efetivamente na EEPROM. Você pode, por exemplo, criar uma aplicação de servidor web com o ESP8266, o que disponibilizaria uma página onde o Usuário pode enviar algum parâmetro, como os que exemplifiquei antes, através de um formulário HTML. Ao receber esses dados, o programa grava os dados na EEPROM. Da mesma forma, ao iniciar, no Setup, leria os dados previamente gravados na EEPROM para parametrizar seu funcionamento. Futuramente, podemos fazer um vídeo com um cenário semelhante. Obrigado por nos acompanhar e enviar seus comentários! Abraço.
Bom dia, no caso da string eu preciso armazenar 3 string que vai vim da internet(aplicativo app inventor) esta parte já está certo, eu consigo com esse seu código salvar 3 strings? obrigado
professor não só comecei a seguir por aqui,como mandei um convite, por se maravilhar, o professor teria alguns videos de sensores, de presença, de fechadura ?
Não observei ninguem perguntando eu pergunto. Se é uma simulação pra qualidade de dados do esp8266 melhor usar o spiff? Eu estou com um problema, desenvolvi um projeto com esp8266 com uma fonte hi link, uso no projeto tanto a eprom quanto spiff. Quando cai o djuntor ele zera a eprom e permanece o spiff...
Olá Jonas, Utilizar a SPIFFS normalmente tem muito mais vantagens do que a EEPROM, ao menos que você queira armazenar uns poucos bytes de configuração. Se está perdendo os dados gravados na EEPROM, deve estar faltando efetivar a gravação com a função EEPROM.commit(). Faça o download do exemplo apresentado no vídeo e analise. Abraço!
Será que tu ainda trabalha com eletrônica. Eu gravei nesta memória Flash do esp8266 um arquivo de configuração da gravadora de memória Flash e agora não consigo desgravar, para eu poder usar com o Arduino. Obrigado!
Olá Luiz, Como explicado no vídeo, a "EEPROM" do ESP8266 é na verdade uma simulação que usa uma parte da memória Flash. Se está tendo problemas com lixo na flash, sugiro gravar qualquer novo sketch com a opção "Erase Flash", no menu Ferramentas da IDE Arduino, definida para "All flash contents". Isso vai limpar qualquer dado residual. Abraço!
@@InterneteCoisas isso pode me ajudar! Vou tentar, eu gravei o firmware da tasmota em vários ESP's que eu tenho, e em alguns que eu estava "brincando" acabei colocando senha no acesso web e não estava conseguindo apagar. Obrigado, vou tentar e qualquer coisa vou pedir um help no telegram
Aula sensacional! Já elaborou um pacotão como todos os tipos de dados que podemos gravar na EEPROM. Top!
Essa aula explodiu minha cabeça... Ótimo conteúdo, obrigado professor.
Olá Roberto,
Obrigado! Dê uma olhada no vídeo #103, ESP32 ESP8266 Armazenando Configuração com JSON e SPIFFS, creio que vai te ajudar bastante.
Abraço!
Excelente conteúdo! Agradeço por compartilhar.
Olá Carlos!
Obrigado, continue acompanhando o Canal e enviando seus comentários.
Abraço!
Olá André, excelente tutorial. Parabéns pela didática.
Olá Bernardo,
Obrigado, abraço!
Top. Obrigado
Muito bom! Obrigado por compartilhar esse conhecimento!
Obrigado Paulo! Continue acompanhando o Canal e enviando seus comentários!
Abraço.
Muito bom cara!! me ajudou de maneira absurda!!
Olá Caspardine,
Que ótimo! Explore todo o conteúdo do Canal, tem muito conteúdo interessante.
Abraço!
Gostei bastante, parabéns!
Obrigado Marcelo! Continue prestigiando o Canal e enviando seus comentários.
Abraço!
Muito show !!
Obrigado André, abraço!
Excelente vídeo!!! Obrigado pela contribuição. Gostaria de salvar um token do blynk junto com os dados da rede e senha (wifi manager). Este método via EEPROM seria o adequado para a sequencia de caracteres do token? obrigado!
Olá Grow Mestre,
Obrigado pelo comentário!
Pode salvar o token na EEPROM sim, basta adequar o tamanho da estrutura para comportar o tamanho máximo do token, você pode armazenar quantos campos e de quais tipos quiser, desde que sejam mapeados corretamente com os tamanhos na estrutura.
Abraço!
Achei q fosse difícil de ada pitar o código no meu projeto , mas não foi difícil, ler controle de portão e gravar na memoria do esp8266, para usar qualquer controle e também o aplicativo para ligar e desligar lâmpada, obr. Por compartilhar .
Olá Cícero,
Que ótimo, sucesso com seu projeto!
Abraço!
ótimo aula eu estava a muito tempo querendo aprender exactamente isso :)
a sua explicação e muito boa, me ajudou muito.
um dos projecto que estou montando, uso o modulo RFID RC522 e gostaria de saber se é possível salvar as novas Tags na EEPROM do ESP. no exemplo que encontrei salva em um SD CARD
Olá Fabiano,
Obrigado pelo Comentário, continue acompanhando o Canal!
Abraço!
Sobre a gravação das TAGs, sugiro utilizar a SPIFFS, ela permite um acesso mais simplificado e com mais recursos do que a EEPROM.
Por exemplo, podes criar um arquivo para registrar as TAGs.
Segue link do vídeo:
ruclips.net/video/Yeq0gI88IrM/видео.html
Abraço!
@@InterneteCoisas muito obrigado
Muito bom o vídeo, conheci seu canal por estes dias.
Gostaria de saber se tem alguma forma de utilizar os dados em txt da aula passada como leitura hex.
O caso seria pegar endereço MAC de outros esp's e salvar em texto, para se caso seja necessário uma substituição não seja necessario gravar um por um e sim só fazer upload do arquivo txt, achei algo sobre toint() só que não achei videos ainda sobre o assunto.
Marcelo, não entendi muito bem sua necessidade, mas para obter facilmente o MAC do ESP8266 basta usar a função WiFi.macAddress(), que já retorna uma String. Assim, podes trabalhar com essas Strings, concatenando-as em um TXT que pode ser armazenado diretamente no SPIFFS.
Abraço.
depois que salvar as Strings no arquivo TXT, tem como eu recuperar e colocar em uma variável?
Sim! Veja o vídeo sobre SPIFFS:
ruclips.net/video/Yeq0gI88IrM/видео.html
Para ler o conteúdo do arquivo direto para uma variável String, podes utilizar, por exemplo, file.readString(). Lembre que o tipo "file" é um Stream, assim como a porta Serial, e assim podemos usar todos os métodos compatíveis.
Mais detalhes sobre a classe Stream na documentação do Arduino:
www.arduino.cc/reference/en/language/functions/communication/stream/
vlw ^^
LEGAL
Obrigado Alessandro!
Adorei o vídeo, mas como grava variáveis de tipo char na EEPROM?
Olá Daniel,
Pense na variável char como uma string, porém, você precisa indicar o tamanho, pois o armazenamento do char não indica isso.
Assim, analise as funções de leitura e gravação de String, elas vão te auxiliar.
Ou, mais simples ainda, converta seu char para String e use a função existente.
Ah, e se você se refere a uma variável char de apenas uma posição, considere-a um byte, ou seja, um Int8 e use as funções já apresentadas também.
Abraço!
Gostaria de saber se tem como eu salvar informações de um sensor que conta pessoas pela EEPROM (de forma local storage/offline) e depois de um tempo, recolher essas informações e enviar para um banco... Eu já tenho esse sketch funcionando, toda a parte de enviar pro banco e contar pessoas, só que eu queria fazer com que o esp guardasse essa informação por meia hora e depois enviasse para o servidor
Olá Cristiano,
Via EEPROM você até pode salvar dados, mas o espaço é muito limitado.
A solução ideal é usar a estrutura de arquivos do ESP8266, ou seja, a SPIFFS, veja o vídeo abaixo onde explico no detalhe como utilizar esse recurso:
ruclips.net/video/Yeq0gI88IrM/видео.html
Continue nos acompanhando e enviando seus comentários!
Abraço!
Uma coisa que notei é que acho que a linha 50 está errada, 10:25, deveria ser "return int8_t(EEPROM.read(offset));" e não return int8(EEPROM.read(offset));
Mas não tenho certeza, não testei ainda.
Olá Guilherme,
O Sketch para download está com essa linha ajustada, embora não seja um erro, pois a função equivale ao typecast utilizado.
Abraço!
Boa Tarde André, sua explicação foi muito útil sobre o uso da EEPROM simulada. Estou tendo problemas na compilação da parte de data e hora, parece que a biblioteca TimeLib que tenho instalada não é compatível com a sua sintaxe.
Colocando toda a parte de transformação da data como comentário, o programa compila e roda, já ele normal, dá erro em todas as linhas com comandos day(t), month(t) e etc...
ERRO: \IeC15-EEPROM/IeC15-EEPROM.ino:156: undefined reference to `day(long)' .
Pode me ajudar, onde encontro a biblioteca TimeLib.h correta ? Obrigado
Olá Guimaraes,
A Biblioteca Time é a criada por Michael Margolis, atualmente na versão 1.6.0, pesquise na tela de gerenciamento de bibliotecas da IDE Arduino por "time" para localiza-la.
Abraço!
Ola André, sempre assisto seu videos e tem me ajudado bastante. Eu estou
fazendo um projeto de tcc e esbarrei em um problema, estou criando um
sistema que ja está ocupando a memoria do esp32 quase toda, e eu tenho
mais um modulo do sistema para poder gravar na memoria, porem não tem
espaço para isso. Gostaria de saber se existe alguma maneira de aumentar
os 4 mb do esp32 para que eu possa finalizar meu projeto. Desde já
agradeço. Atenciosamente Marcos Paulo.
Olá, respondido na mensagem do Vídeo #80!
00:11:50 Sobre caga de tipos. Existe também a sobrecarga de método ; )
Olá Márcio,
Sim, essas possibilidades entram nos conceitos da Orientação a Objetos, como Polimorfismo e Acoplamento. No sentido prático demonstrado no vídeo, é a possibilidade de manter o mesmo nome para funções com diferentes parâmetros.
Se você quiser se aprofundar no assunto sugiro assistir aos vídeos sobre Orientação a Objetos com C++, que apresentam no detalhe os conceitos teóricos e práticos da OO.
Parte I: ruclips.net/video/Zmx00SCSnP8/видео.html
Parte II: ruclips.net/video/Lwdtn8-y9Iw/видео.html
Abraço!
Bom dia,
Venho agradecer pelos retornos Andre.
Eu gostaria de perguntas se podemos usar o Wemos, D1 mini no lugar do ESP 01 ou 201
Olá Valdir,
O Wemos utiliza o ESP8266EX; basicamente, equivale a um ESP8266 NodeMCU, em um corpo de Arduino Uno.
Considerando as diferenças de pinagem inerentes à placa, você pode usar sim o Wemos em praticamente todos os exemplos de ESP8266 apresentados no Canal.
Abraço!
@@InterneteCoisas , Retornando ao seu comentário, e reforçar os agradecimentos, pelas excelentes aulas de IOT, entre todas as outras do seu canal, vamos lá as pinagens são diferentes: mas podemos substituir em números semelhante, ex: D4 do Node MCU pelo D4 do Wemos.
Valdir,
Infelizmente não tenho a placa Wemos para te detalhar com certeza, mas procure documentação a respeito, a equivalência deve ser semelhante.
Abraço!
Muito legal esse tópico esclareceu um monte de duvidas quanto ao EPROM porem fiquei com uma duvida Como definir esses 2 momentos em runtime? O do sketch ok e o procedimento normal rodando no loop mas como fazer o usuário setar esses valores durante runtime? teria uma aplicação aparte a ser rodada ?
Olá Cristiano,
Não entendi muito bem sua dúvida. A quais dois momentos você se refere?
Quanto ao Usuário, podes utilizar por exemplo uma interface web gerada pelo ESP8266, onde são enviados parâmetros que são gravados na EEPROM.
A luminosidade de um LED, o tempo para ativar um relé, a temperatura para disparo de uma ventoinha, tudo enviado a partir de uma página HTML, a EEPROM é ideal para guardar parâmetros da sua aplicação.
Continue acompanhando o Canal!
Abraço!
Olá obrigado por responder tão prontamente, "Deixa eu melhorar a minha pergunta(ou piorar mais ainda heheheh)", como interagir as configurações "setadas" no EPROM com o que vai rodar no loop ? Eu devo ter uma aplicação apartada para poder fazer o usuário gravar lá esses valores ou isso roda no loop principal da aplicação e esses parâmetros são checados a cada iteração do loop principal? ( acredito que não seja esse modo) No exemplo que vc mostrou os parâmetros ja foram gravados nas constantes na edição do sketch mas numa situação real o usuário é que faria o input desses valores durante a execução do sketch
Cristiano,
As funções apresentadas, tanto as "get" como as "set", podem ser executadas em qualquer local do Sketch. A única ressalva é que você chame "EEPROM.begin" no início para popular a estrutura na memória RAM e "EEPROM.commit" para gravar efetivamente na EEPROM.
Você pode, por exemplo, criar uma aplicação de servidor web com o ESP8266, o que disponibilizaria uma página onde o Usuário pode enviar algum parâmetro, como os que exemplifiquei antes, através de um formulário HTML. Ao receber esses dados, o programa grava os dados na EEPROM.
Da mesma forma, ao iniciar, no Setup, leria os dados previamente gravados na EEPROM para parametrizar seu funcionamento.
Futuramente, podemos fazer um vídeo com um cenário semelhante.
Obrigado por nos acompanhar e enviar seus comentários!
Abraço.
Obrigado
Bom dia, no caso da string eu preciso armazenar 3 string que vai vim da internet(aplicativo app inventor) esta parte já está certo, eu consigo com esse seu código salvar 3 strings? obrigado
professor não só comecei a seguir por aqui,como mandei um convite, por se maravilhar, o professor teria alguns videos de sensores, de presença, de fechadura ?
Olá Wagner!
Sugestão anotada, sensor de presença (PIR) já incluído na fila para a Serie Sensores.
Abraço!
Não observei ninguem perguntando eu pergunto. Se é uma simulação pra qualidade de dados do esp8266 melhor usar o spiff? Eu estou com um problema, desenvolvi um projeto com esp8266 com uma fonte hi link, uso no projeto tanto a eprom quanto spiff. Quando cai o djuntor ele zera a eprom e permanece o spiff...
Olá Jonas,
Utilizar a SPIFFS normalmente tem muito mais vantagens do que a EEPROM, ao menos que você queira armazenar uns poucos bytes de configuração.
Se está perdendo os dados gravados na EEPROM, deve estar faltando efetivar a gravação com a função EEPROM.commit(). Faça o download do exemplo apresentado no vídeo e analise.
Abraço!
Excelente aula, mas o download não está funcionando. De qualquer forma da pra replicar, vai demorar, mas dá kkk.
Olá Guilherme,
Alguns navegadores bloqueiam o download sem o uso de HTTPS, o link foi ajustado e agora está disponível.
Abraço!
@@InterneteCoisas Muito Obrigado pela ajuda.
Será que tu ainda trabalha com eletrônica. Eu gravei nesta memória Flash do esp8266 um arquivo de configuração da gravadora de memória Flash e agora não consigo desgravar, para eu poder usar com o Arduino. Obrigado!
Olá Luiz, Como explicado no vídeo, a "EEPROM" do ESP8266 é na verdade uma simulação que usa uma parte da memória Flash.
Se está tendo problemas com lixo na flash, sugiro gravar qualquer novo sketch com a opção "Erase Flash", no menu Ferramentas da IDE Arduino, definida para "All flash contents". Isso vai limpar qualquer dado residual.
Abraço!
@@InterneteCoisas isso pode me ajudar! Vou tentar, eu gravei o firmware da tasmota em vários ESP's que eu tenho, e em alguns que eu estava "brincando" acabei colocando senha no acesso web e não estava conseguindo apagar. Obrigado, vou tentar e qualquer coisa vou pedir um help no telegram
Olá Fernando!
Ok, espero que ajude, abraço!
Este conteúdo pode ser usado sem alterações para o ESP32?
Olá Fernando,
Sim, pode utilizar o sketch diretamente no ESP32.
Abraço!
@@InterneteCoisas Excelente este tutorial. Parabéns e muito obrigado.