Manual MóduloVersão 011608
Manual MóduloVersão 011608
Manual MóduloVersão 011608
br
www.afeletronica.com.br
A placa Desenvolvimento ESP8266 ESP-12F Versão INT 011608 foi concebida pela AFEletrônica de
forma a facilitar a vida do programador/desenvolvedor.
Nota: sua placa pode possuir mais ou menos funções do aqui descrito, no entanto o manual
cobre ambos os tipos de montagem, na leitura sempre atente para o modelo adquirido.
Cuidado ao trabalhar com energia elétrica, choque elétrico pode matar, use corretamente os
equipamentos de segurança.
Especificações ESP12F
Padrão 802.11 b/g/n
Wi-Fi Direct (P2P), soft-AP
Stack TCP/IP integrada
CPU 32 bits de baixo consumo inegrada (você pode executar seus programas diretamente no módulo,
dispensando microcontrolador externo)
SDIO 1.1/2.0, SPI, UART
Modos: Estação / Access Point
Segurança: WPA, WPA2
ADC 10 bits
Modelo ESP-12F
4Mbyte Flash - memória programa
Figura1
Figura2
Figura3
Abra propriedades de seu computador/Gerenciador de Dispositivos, para verificar se o mesmo não foi
reconhecido automaticamente pelo Windows.
Figura 4
Importante.
Caso tenha reconhecido automaticamente, procure enviar sua aplicação pela IDE do Arduino, se não
houver sucesso no envio, o mesmo pode estar desatualizado, desinstale e instale a versão mais atual
do driver, o mesmo se encontra dentro do pacote de distribuição da placa. Sempre atente para a versão
de seu Windows, 32 ou 64 bits para realizar a instalação do driver correto.
Instale o driver sem a placa estar conectada ao computador, uma vez realizada a instalação do driver,
caso necessário reinicie o computador, após conecte a placa para o reconhecimento automático da
mesma.
Figura 5
Em porta escolha a serial que foi atribuída à placa. Caso apareça mais de uma COM em Porta, Vá até
gerenciador de dispositivos do Windows, desconecte a placa, conecte novamente para verificar a serial
que foi atribuída à placa, esta devera ser escolhida em Porta
Módulo desenvolvido e testado na versão IDE Arduino 1.6.5, versões superiores não testado.
Se sua IDE não possuir a placa ESP8266, instale seguindo o seguinte procedimento:
Figura 6
Figura 7
Figura 8
4- Pronto sua IDE esta pronta para trabalhar com módulos ESP8266
Para enviar seu código para a placa, a mesma deve estar alimentada, não basta somente conectar o
adaptador USB-Serial ao módulo de desenvolvimento.
Figura 9
Tela de configuração do que será atualizado, mude apenas o que indica o circulo em laranja, o arquivo
.bin não fornecemos, mas você pode baixar no site oficial do fabricante do ESP8266, este é um
exemplo de como realiza-lo.
Escolha o Arquivo que você irá utilizar no seu computador, conforme Figura 10
Figura 10
Figura 11
Vendor:www.ai-thinker.com
SDK Version:0.9.5(b1)
Compiled @:Dec 25 2014, 21:50:58
Ready
Para baixar o Bootloader para ser usado em linguagem de programação lua acesse:
http://files.afeletronica.webnode.com/200000105-73ba774b35/nodemcu_float_0.9.6-dev_20150704.bin
Para visualizar estas informações, basta alimentar a placa, em um emulador terminal como por exemplo
o RealTerm, ou um de sua preferência, escolher a porta serial que foi atribuída para o conversor USB-
Serial, configurar na velocidade 115200, abrir a porta, pressionar o botão RESET da placa de
desenvolvimento, será mostrado as informações como na Figura 12.
Nota. Se a placa já estiver sido gravada utilizando a IDE do Arduino, estas informações não valem
mais, uma vez que o Arduino realiza a atualização para o bootloader dele. Isso vale apenas quando
você receber a placa e quiser verificar qual a versão do bootloader esta gravada ao módulo.
Figura12
Tabela com os principais commandos AT para esta versão de FIRMWARE Compiled @:Dec 25 2014,
21:50:58, lembramos que para outras versões os comandos podem ser diferentes, você terá que
procurar para a sua versão, estes comandos ou a maioria deles funcionam na versão que segue com
nossos produtos. A saber:
As configurações são bastante simples. Mas há algumas particularidades referente à este módulo
Você pode pensar que o valor de pin1, pin2 e pin3 são os números sobre os pinos GPIO certo? Se você
pensou que sim, nós também pensamos, mas não é assim tão fácil. O primeiro argumento para
gpio.mode () (e outras funções GPIO) é realmente um índice IO.
índices IO mapear para os mesmos pinos GPIO em todos os módulos, mas eles não são mapeadas em
qualquer ordem particular. Em vez disso você terá que memorizá-los todos, ou manter referindo-se a
esta tabela:
GPIO0 3
GPIO1 10
GPIO2 4
GPIO3 9
GPIO4 2
GPIO5 1
GPIO6 N/A
GPIO7 N/A
GPIO8 N/A
GPIO9 11
GPIO10 12
GPIO11 N/A
GPIO12 6
GPIO13 7
GPIO14 5
GPIO15 8
GPIO16 0
Assim, para definir GPIO como nível Alto HIGH ou nível baixo LOW:
gpio.mode(3, gpio.OUTPUT)
gpio.write(3, gpio.HIGH)
gpio.mode(4, gpio.OUTUT)
gpio.write(4, gpio.LOW)
gpio.mode(4, gpio.INPUT)
local pinValue = gpio.read(4)
Se queremos saber quando as mudanças de valor de um pino (ex., Quando um botão é pressionado),
poderíamos definir o pino para o modo de entrada e continue lendo o seu valor. Uma melhor solução,
no entanto, seria utilizar o modo de interrupção. Dessa forma, podemos criar uma função e configurá-lo
para ser chamado cada vez que altera o valor do pino.
Vamos definir que as chamadas de retorno são chamadas quando usando gpio.trig (). Vamos escrever
para o console quando GPIO 2 altera o valor:
function onChange ()
print('The pin value has changed to '..gpio.read(pin))
end
gpio.mode(pin, gpio.INT)
gpio.trig(pin, 'both', onChange)
O segundo argumento para gpio.trig () é o nome do evento para o qual a ouvir. Como você pode ver, no
exemplo anterior, estamos ouvindo o evento ambos; Isso ocorre tanto quando o pino se move de cima
para baixo e quando ele se move baixa para alta.
Ao usar botões de hardware, pela primeira vez você pode perceber algo estranho: quando você
pressiona um botão para baixo há mudanças no valor do pino, muda novamente e finalmente se
estabelece no novo valor mais uma vez. Isso é chamado de salto de contato e é comum.
A maneira mais simples para atenuar contra esta rejeição é ignorar eventos para um curto período de
tempo após uma alteração que o estado ocorreu. Isso é chamado de debouncing.
last = now
return func(...)
end
end
function onChange ()
print('The pin value has changed to '..gpio.read(pin))
end
gpio.mode(pin, gpio.INT)
gpio.trig(pin, 'both', debounce(onChange))
A função de debounce() assume uma função como seu argumento e envolve-o em outro. Quando a
função exterior é chamada, que, em seguida, chama a função interna, mas somente se ele não foi
chamado nos últimos 5000us (5 ms).
Circuito acionamento Rele GPIO_14 & GPIO16 Circuito Leitura GPIO_04 & GPIO12