Ir ao conteúdo
  • Cadastre-se

ESP8266 - A Pequena Maravilha para Comunicação WIFI


aphawk

Posts recomendados

 

@aphawk ,

 

Esta ferramenta I2C TOOLS, tem para rodar em Basic no ESP8266? Não estou conseguindo encontrar. E quando vai sair a nova versão do Basic ? Estou ansioso para testar. Eu também andei tentando criar a minha própria rotina de RTC usando NTP e os timers do ESP8266 (com resolução de microssegundo), mas estou tendo muita dor de cabeça para fazer funcionar direito (sem dar pau), apesar de ter rodado corretamente no Arduino IDE (sem estabilidade e muitos problemas).

 

Eu estou sofrendo com umas travadas quando tento fazer o upload de arquivos .bas, às vezes tenho que desligar e ligar. A estabilidade ainda tem que melhorar um pouco, eu estou me estranhando muito com o interpretador Basic (Alpha 3.0 branch).

 

Acho que talvez acabe ficando mais fácil criar uma versão do basic utilizando a biblioteca do BME280 que uso no IDE Arduino em C. Acho que para mim deve ser também um pouco difícil, ainda sou bem verde, mas deve funcionar com bastante eficiência se eu conseguir, e talvez eles até gostem e repliquem no Basic oficial. Mesmo assim, é um desafio, e tenho também muito interesse em fazer em Basic (acho isto meio masoquista, mas ao funcionar o prazer é maior).

 

Link para o comentário
Compartilhar em outros sites

@Intrudera6 ,

 

Olha ela aqui :

 

http://www.esp8266.com/viewtopic.php?f=40&t=7359&hilit=I2c+tools

 

Leia todo o tópico, talvez tenha de mudar uma ou outra coisinha para o 3.0 ok ?

 

O Autor me disse que sairia ontem .... Mas até agora nada....

 

Já vai sair com o uso simplificado de um servidor NTP para setar o tempo do relógio interno.

 

Uma coisa que você irå gostar : o ESP8266Basic está rodando no clock de 160 Mhz !

 

Mesmo nessa velocidade, obter resolução da ordem de microssegundo é bem difícil porque é um Interpretador, e não um compilador. Eu confio para tempos acima de 10 microssegundos.

 

Eu postei uma solicitação para o autor implementar as funcões do BME280, e logo outros vieram e apoiaram a solicitação. Acho que vão implementar isso !

 

Olha, tecnicamente, basta acrescentar a lib da Adafruit para o BME280, e criar as funções que chamam a lib. Se eu entendesse dessa droga de linguagem do Arduíno, eu mesmo implementava !

 

A meu ver, fazer todo o interpretador baseado na linguagem do Arduino facilita muito acrescentar novas funções, porque existe lib para tudo para Arduíno !

 

Fiz ontem uma experiência, e depois de duas horas quebrando a cabeča, consegui montar o ambiente de compilação do ESP8266Basic !!!!  Consegui compilar com sucesso para o Nodemcu !

 

Mas nao vou passar disso.... Se você já entende bem disso de Arduíno, fica fácil implementar esses novos comandos no fonte do ESP8266Basic, creio que vale uma tentativa !

 

Paulo

 

 

Link para o comentário
Compartilhar em outros sites

Meu sistema em Basic funcionou (Precariamente, mas funcionou), está muito instável na parte das leituras do PCF8583, acho que eu precisaria interferir nas funções para melhorar mas não vou me aprofundar nisso não, por hora já é suficiente e já me dei por satisfeito. Ontem à noite comecei a estudar o sistema do arduíno e fiz alguns testes com ele também na leitura do PCF, foi muito sofrido, encontrei muitas bibliotecas prontas, mas só funcionou depois de eu intervir em uma função ou outra, mas no final rodou e está em testes, até agora está bem estável, gostei muito do resultado. Andei procurando entender a linguagem e descobri que ela é de altíssimo nível (C++) e lembra muito a orientação a objetos, sem contar que as classes são estruturadas da mesma forma que no C++ pra desktop, elas tem funções e variáveis que podem ser declaradas como publicas(outras classes e funções podem acessar) ou privadas (usada somente dentro da classe). A coisa que me chamou mais a atenção  foi o fato de poder programar para o ESP8266 diretamente da IDE do arduíno e gravar diretamente na memória do ESP sem nenhum intermediário, ou seja, eu crio meu próprio .bin e "insiro" no ESP. Depois vou baixar os fontes do Basic para análise dos códigos do arduíno.

Link para o comentário
Compartilhar em outros sites

Pessoal,

 

Hoje saiu um novo firmware, foi implementada na função Time.setup() a possibilidade de usar um terceiro parâmetro, que seria o endereço do servidor NTP de sua preferência. Caso  você não especifique, será usado como padrão um dos servidores públicos do governo dos USA.

 

Aproveitando, a maneira de se acertar a data e hora correta para o nosso horário brasileiro é esta:

 

time.setup(-3,1)

delay 5000

 

Segundo a documentação, é necessário esperar os 5 segundos para garantir que o tempo seja totalmente atualizado.

 

Paulo

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

Já estou testando o ESP com a IDE do arduíno, montei o mesmo sistema feito em Basic só que em C++(arduíno) só estou contrariado com a demora pra compilar e fazer o flash no ESP, como demora viu, muita perda de tempo e produção, mas ta beleza porque o restante tá uma maravilha, estou gostando de ver os resultados.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
1 hora atrás, ViniciusKruz disse:

estou contrariado com a demora pra compilar e fazer o flash no ESP, como demora viu, muita perda de tempo e produção

 

Quanto demora? Você repete muito?

adicionado 6 minutos depois
Em 31/08/2016 às 18:26, aphawk disse:

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

 

@aphawk, dá pra fazer o procedimento sem desmanchar o hardware?!

adicionado 12 minutos depois

Pelo que entendi, o Sonoff já é alimentado em AC, não é?

Link para o comentário
Compartilhar em outros sites

18 minutos atrás, alexandre.mbm disse:

Quanto demora? Você repete muito?

 

A compilação+flash chega a demorar quase dez minutos. 

Tem que repetir inúmeras vezes, a cada alteração feita no código, se quiser testar tem que fazer a compilação/flash. 

Nem o Visual Studio compilando para Android, Wphone e IOS tudo junto não demora tanto.

 

 

Link para o comentário
Compartilhar em outros sites

30 minutos atrás, alexandre.mbm disse:

você está precisando alterar isso pra que mesmo?!

 

Ué, o código tem que fazer o que eu quero/preciso.

adicionado 3 minutos depois

Por exemplo, estou fazendo uma rotina aqui que se o ESP não conseguir se conectar na rede Wifi padrão como Station, ele inicializa como Access Point, aí através do webserver, dá pra entrar nele usando um login e senha pra configurar corretamente e estas configurações devem ficar gravadas na eeprom.

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

  • Membro VIP
1 hora atrás, ViniciusKruz disse:

Ta mais pra um "Frankenstein" kkkkk 

 

Por que?

 

Não é o caso julgar se a codificação está boa. Estou apenas perguntando se o seu é um trabalho no próprio firmware. Se for, como faz? Eles proveem uma forma arquitetada para a extensão dele?

Link para o comentário
Compartilhar em outros sites

@alexandre.mbm ,

 

Pelo que eu lí, tem de apenas soldar alguns fios para ligar numa interface serial, e um fio para fazer o Flash...

 

Eu comprei duas peças dele, quando chegarem ( uns 25 a 80 dias..... Absurdo né... ) eu faço e te aviso.

 

 

 

adicionado 9 minutos depois
1 hora atrás, alexandre.mbm disse:

 

Por que?

 

Não é o caso julgar se a codificação está boa. Estou apenas perguntando se o seu é um trabalho no próprio firmware. Se for, como faz? Eles proveem uma forma arquitetada para a extensão dele?

 

Pelo que eu entendi, não é um Fork.

 

Ele acrescentou uma série de bibliotecas e um monte de novas funcões que foram escritas na linguagem do Arduíno, e está escrevendo o seu programa, compilando ele e grava diretamente no flash do Esp8266.

 

É exatamente o mesmo processo quando se usa uma placa de Arduíno !

 

Não existe mais um firmware residente. O programa fica compilado já na linguagem nativa do microprocessador do ESp8266.

 

Posso estar enganado, mas trocar a facilidade e funções poderosas existentes no Esp8266Basic pelas que existem nesse ambiente de Arduíno é uma regressão... é querer fazer as coisas da maneira mais complicada... Fora esse tempo absurdo de compilação e gravação. Mas pelo menos tem uma vantagem imbatível: se quiser programar para algum display ou sensor, basta acrescentar a biblioteca desse componente e compilar tudo junto !

 

Paulo

 

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@aphawk , não vou esperar. Vou comprar também. Vale à pena arriscar. Sou um pouco inexperiente com solda mas agora tenho um ferro de vergonha; tenho conseguido fazer as coisas.

 

Acho que estou confundindo tudo. Pensei que no Arduino nós tínhamos o firmware (=bootloader) e tínhamos nosso programa. Pra mim, carregar um "sketch" era diferente de carregar o bootloader. Não é?

Link para o comentário
Compartilhar em outros sites

@alexandre.mbm ,

 

Pode comprar que existe um monte de tutorial espalhado sobre fazer isso.

 

Quanto ao Arduíno :

 

Em um microcontrolador de uma placa Arduíno, existe sim um Bootloader, que nada mais é do que um programa que vai receber um código pela interface serial e  grava a  memória Flash com ele.

 

Quando voce carrega um Sketch na IDE do Arduíno, primeiro voce tem de compilar ele, correto ?

 

Depois de compilado, voce pede para transferir o código-objeto para o microcontrolador do Arduino.

 

Então, esse programa já compilado ( código-objeto ) é transferido byte a byte via serial para o Arduíno, cujo programa Bootloader vai gravar a memória Flash com ele.

 

Entendeu a diferença ?

 

Paulo

 

Link para o comentário
Compartilhar em outros sites

1 hora atrás, aphawk disse:

Pelo que eu entendi, não é um Fork.

De que fork vocês estão falando?? O único fork que conheço é uma forma de herança usada em linux.

 

1 hora atrás, aphawk disse:

Posso estar enganado, mas trocar a facilidade e funções poderosas existentes no Esp8266Basic pelas que existem nesse ambiente de Arduíno é uma regressão...

Não conheço a fundo o sistema do arduíno, aliás este é meu primeiro contato, assim como com o ESPBasic, eu nunca fiz questão nenhuma de mexer com arduíno, tenho um e estava guardado e só havia usado uma vez ou outra, agora, por causa do ESP me interessei por testar a IDE do arduíno. Eu também posso estar enganado, mas não acho jamais que seja uma regressão porque se fosse um sistema tão ruim assim, ao poto de ser uma regressão, ele não poderia jamais ser a base do ESPBasic por exemplo. Além do mais, a linguagem usada no arduíno é C++ ou pelo menos um pseudo C++ ainda me aprofundei pra saber realmente do que se trata, mas sei que usa as funções de forma idêntica ou muito parecidas com o C++ puro. Não sei se é pelo fato de eu já ter uma certa comodidade com C, C++, C#... to me sentindo em casa. Sinceramente, estou mais à vontade que com o ESPBasic, que achei fantástico, mas acho que é mais uma questão de afinidade mesmo com a linguagem.

 

1 hora atrás, aphawk disse:

Mas pelo menos tem uma vantagem imbatível: se quiser programar para algum display ou sensor, basta acrescentar a biblioteca desse componente e compilar tudo junto !

Sim, é verdade!! Pra quem quer moleza então... Eu penso que este incentivo, faz com que a pessoa aprenda com mais entusiasmo, ou seja, existe a possibilidade de aprender já fazendo. O que estou fazendo até agora é basicamente isso mesmo, pegando bibliotecas prontas, colocando pra rodar, analisando os códigos, funções, enfim, aprendendo... Por isto disse que está mais pra um frankenstein rsrsrs

 

3 horas atrás, alexandre.mbm disse:

Não é o caso julgar se a codificação está boa. Estou apenas perguntando se o seu é um trabalho no próprio firmware. Se for, como faz? Eles proveem uma forma arquitetada para a extensão dele?

É como o Paulo já explicou: basicamente a IDE do arduíno, usando os mesmos códigos dele mesmo, compila para o processador do ESP e após compilar já grava diretamente no ESP que passa a funcionar de forma totalmente autônoma.

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@aphawk , exatamente. É como eu já entendia. Por isso estou confuso. O que @ViniciusKruz está firmware (=bootloader), não?

 

@ViniciusKruz , então provavelmente é isso: você não entendeu minhas palavras mas está fazendo o que chamo de fork. Você pegou o projeto do firmware estão modificando-o para suas necessidades, não é?

 

No GitHub, eu faço fork do projeto de alguém e passo a trabalhá-lo para ele ficar como eu o quero. Assim como Kubuntu é um fork do Ubuntu.

 

34 minutos atrás, ViniciusKruz disse:

não acho jamais que seja uma regressão porque se fosse um sistema tão ruim assim, ao po[n]to de ser uma regressão, ele não poderia jamais ser a base do ESPBasic por exemplo

 

Se as coisas A e B podem ser comparadas, e na balança dessa comparação B é menos do que A, passar a B em detrimento de A é regredir. Simples assim! Esse é o modo de julgar senso comum.

 

40 minutos atrás, ViniciusKruz disse:

É como o Paulo já explicou: basicamente a IDE do arduíno, usando os mesmos códigos dele mesmo, compila para o processador do ESP e após compilar já grava diretamente no ESP que passa a funcionar de forma totalmente autônoma.

 

Eu não sabia que gravar os "sketches" do Arduino tinha esse custo todo. Pensava que era simplesmente um upload de código binário. Não sabia que era firmware.

 

Quer dizer que firmware != bootloader?

Quer dizer que nossos programas no Arduinon padrão são firmware?

Link para o comentário
Compartilhar em outros sites

Eu não sei quanto a vocês, mas eu estou penando com o ESP_Basic, pois é bastante frequente eu ter problemas ao tentar fazer upload. Ao tentar abrir a função no browser, o ESP-1 para de responder, (apenas na função de http://???.???.???.???/filemng), mas no resto responde sem problemas. Que josta é esta ?

Link para o comentário
Compartilhar em outros sites

7 horas atrás, alexandre.mbm disse:

Eu não sabia que gravar os "sketches" do Arduino tinha esse custo todo. Pensava que era simplesmente um upload de código binário. Não sabia que era firmware.

 

Quer dizer que firmware != bootloader?

Quer dizer que nossos programas no Arduino padrão são firmware?

 

No meu tempo de faculdade, firmware era o programa que já vinha gravado dentro de um produto. Por exemplo, o Bios de um PC é o firmware dele.

 

Podemos interagir com esse firmware, utilizando-o para conseguirmos o nosso objetivo. No caso do PC, esse firmware é o responsável por carregar o sistema operacional, seja ele qual for.

 

Dentro desse conceito, posso afirmar que o Firmware padrão de um Arduíno é o seu Bootloader, o qual é responsável por receber o programa já compilado pela IDE, e gravar na memória Flash para ser executado automaticamente quando é energizado.

 

Mas como após gravado na Flash, o usuário nao consegue mais modificá-lo , esse programa acaba se transformando em um firmware também... mas repare uma coisa : o único programa que nunca muda dentro do Arduíno é o Bootloader.

 

Compilar um programa pequeno na IDE do Arduíno não demora muito. Mas compilar um programa para uso no ESP8266 envolve tantas bibliotecas diferentes, tantas transformações de código, que demora mesmo uma eternidade.

 

Quando eu fiz a compilação do ESP8266Basic, gerando um firmware de 4Mb, demorou cerca de 85 segundos, isso porque é um SSD bem rapidinho.

 

Eu estou me divertindo bastante com o ESP8266Basic, porque ele é um interpretador. Basta abrir o endereço Web, entro na tela de edição, aí abro o meu programa que estou fazendo no meu Notepad, copio todo o texto, e colo direto na tela de edição, defino o nome que quero salvar, aperto o botão de salvar e pronto !

 

Já fica gravado no ESP8266, podendo rodar ele a hora que eu quiser.

 

Não preciso nem fazer upload do programa, o copiar e colar é muito mais rápido !

 

 

 

adicionado 1 minuto depois

@Intrudera6 ,

 

Eu nunca usei o upload, eu prefiro o método mais simples, que é o copiar e colar, e depois salvar ......  e também só estou usando o Branch 3.0  .

 

Paulo

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

7 horas atrás, alexandre.mbm disse:

Se as coisas A e B podem ser comparadas, e na balança dessa comparação B é menos do que A, passar a B em detrimento de A é regredir. Simples assim! Esse é o modo de julgar senso comum.

 

Amigo, vamos pensar da seguinte forma, primeiramente concordo dom seu raciocínio lógico, de B para A é uma regressão, mas aprofundando o pensamento filosófico da questão e não simplesmente fazendo uma análise superficial, vou citar o exemplo da Microsoft, na minha opinião e na maioria das pessoas que trabalharam com Windows pelo menos do Win98 até agora, se forem questionados, a grande maioria dirá que o melhor sistema que a Microsoft já lançou foi o WinXP, pois bem, depois do XP, veio o Vista e foi recusado veementemente e a Microsoft teve que recuar e lançou quase que de imediato o Win7 que foi muito  bem aceito, logo em seguida, lançaram o Win8 e também não foi aceito, daí pra contornar a situação eles laçaram o Win10 e como não estava também sendo nada aceito, até deram atualizações de graça, inclusive pra quem tem Windows pirata.

Agora vem o "X" da questão: embora o Win8 tenha substituído o Win7, do ponto de vista de ordem, voltar a usar o Win7 seria regredir, mas e do ponto de vista da conveniência?? da aceitação?? E se B não atender às expectativas das pessoas?? Será que podemos considerar que a Microsoft "regrediu" quando voltou atras no Win8 relançando ele com o menu iniciar entre outras funções e relançando ele como Win10??

 

8 horas atrás, alexandre.mbm disse:

Você pegou o projeto do firmware estão modificando-o para suas necessidades, não é?

Agora entendi o que você quis dizer com "fork", o que pra mim tinha um conceito diferente. Na verdade o que estou fazendo não tem o seu conceito de fork, para tal, penso que eu teria que pegar um sistema totalmente pronto e simplesmente modificá-lo, o que não é o caso, porque embora tenha-se a ideia de que tudo no arduino vem "pronto", de que é só copiar e pronto, não é esta realmente a realidade, é verdade que já tem centenas de milhares de bibliotecas prontas para serem usadas mas para usá-las é preciso pegar os exemplos que são mais como um "Hello" para que o programador tenha uma noção de como usar a tal biblioteca, estou sim usando bibliotecas prontas e não um sistema pronto e modificando, estou criando meu sistema do zero porém usando os recursos que a IDE oferece, mas nada vem "de graça" mesmo pegando as bibliotecas prontas, há muitos casos em que se precisa alterá-las, inclusive um recurso que me fez falta no ESPBasic, porque ele, assim como o arduíno, tem suas bibliotecas prontas e tem também os exemplos(pouquíssimos, mas tem) para podermos aprender a usar as bibliotecas dele, mas elas também não estão totalmente prontas e aí vem um inconveniente, na minha opinião: as bibliotecas são fechadas, não podem ser alteradas pelo programador, a não ser que ele conheça a linguagem do arduíno para abrir os fontes e alterá-los.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, aphawk disse:

Eu estou me divertindo bastante com o ESP8266Basic, porque ele é um interpretador. Basta abrir o endereço Web, entro na tela de edição, aí abro o meu programa que estou fazendo no meu Notepad, copio todo o texto, e colo direto na tela de edição, defino o nome que quero salvar, aperto o botão de salvar e pronto !

 

Já fica gravado no ESP8266, podendo rodar ele a hora que eu quiser.

 

Não preciso nem fazer upload do programa, o copiar e colar é muito mais rápido !

 

 

 

adicionado 1 minuto depois

@Intrudera6 ,

 

Eu nunca usei o upload, eu prefiro o método mais simples, que é o copiar e colar, e depois salvar ......  e também só estou usando o Branch 3.0  .

 

Paulo

 

Eu nunca consegui gravar do browser, não dá erro (era até melhor que desse) mas também não altera nada, só funciona fazendo upload (às vezes). E eu gosto dos recursos de um editor de texto externo, o que eu uso até ajuda na programação.

 

A dor de cabeça com este basic está sendo tanta que estou achando a IDE do Arduino interessante (e mais flexível), mas acho que vou experimentar outras coisas, como por exemplo o Visual Studio. Ele pode até dar muita dor de cabeça para configurar mas depois deve melhorar bastante a produtividade.

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

5 minutos atrás, Intrudera6 disse:

acho que vou experimentar outras coisas, como por exemplo o Visual Studio.

 

Já vi alguma coisa sobre o Visual Studio, eu já uso ele há algum tempo mas não para ESP, depois vou querer experimentar ele também, vai que ele consiga fazer o upload mais rápido né.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@aphawk , nosso entendimento de firmware é o mesmo. Só um detalhe está fazendo eu divergir e permanecer um tanto confuso: existe o microcontrolador sem o bootloader.

 

Mas acho que já sei: o bootloader é gravado em ROM e não pode ser substituído. É isso?

 

@ViniciusKruz , não concordo com a analogia usando Windows. Pelo seguinte: o assunto comparativo neste tópico não se restringe a ordem cronológica. Aqui no tópico tratou-se de uma comparação técnica implícita, entre opções, e não de uma apologia cega ao que chegou por último.

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!