Você está na página 1de 12

 (/) Circuitos (/circuits/)

Introdução Oficina no
ao MicroPython (/workshop/) Construir
ESP8266 por Ahmed(/craft/) Cozinhando (/cooking/)
Nouira (/member/Ahmed Nouira/)VivoSeguir
(/living/) Lado de fora (/outside/) Professores
Download (/teachers/)

Favorito
w Eu fiz issoSegue

(/feed/)

instrutivos (/circuits/) Projetos (/circuits/projects/) Concursos (/contest/) PUBLICAR (/CREATE/) Vamos fazer...
circuitos 

Introdução ao MicroPython no ESP8266


Por Ahmed Nouira (/member/Ahmed+Nouira/) em Circuitos (/circuits/) > Microcontroladores (/circuits/microcontrollers/projects/) 12.813 64 2 Destaque

Publicado em 6 de junho de 2019 Download Favorito

(https://content
auto=webp&frame=1&width=1024&fit=bounds&md=5ed9820e760c3dd99c5525e8e30e164c)
instructables com/ORIG/FFN/D2NJ/JWGNV7OC/FFND2NJJWGNV7OC jpg?

(/member/Ahmed+Nouira/)
Por Ahmed Nouira (/member/Ahmed+Nouira/)
<<== Meu canal ==>> Mais do
(https://www.youtube.com/channel/UClZrlY_Eru1hUgAIqHUzeIg/videos)
autor:

Seguir

Sobre: ​Meu nome é Ahmed Nouira sou estudante na Polytech Monastir (Tunísia). Apaixonado por sistemas LINUX,
eletrônica embarcada e tudo sobre Python.
Mais sobre Ahmed Nouira » (/member/Ahmed+Nouira/)

Você quer uma maneira diferente de programar as placas baseadas em ESP8266 em vez do
método comum usando o Arduino IDE junto com a linguagem de programação C/C++?

Neste tutorial vamos aprender quem configurar e controlar uma placa ESP8266 usando
MicroPython (https://micropython.org/) .

TEMPO DE CONSTRUÇÃO: 60 MINUTOS

DIFICULDADE: CLASSIFICAÇÃO: Fácil

 Adicionar Dica V Perguntar | Comente Download

Etapa 1: O que é MicroPython?


MicorPython (https://micropython.org/) é uma das muitas linguagens de programação que
podemos usar para programar o módulo ESP8266. É uma versão enxuta e rápida da linguagem
de programação Python 3 (https://www.python.org/) e tem várias vantagens em relação às
linguagens de programação tradicionais, como C e C++.

O MicroPython foi projetado para ser compatível com o Python normal o máximo possível. Ele
possui um compilador e tempo de execução Python completos e fornece um prompt interativo
conhecido como REPL (Read-Eval-Print Loop).
Introdução ao MicroPythonOno
MicorPython foi projetado
ESP8266 por Ahmed para suportar
Nouira (/member/Ahmed alguns
Nouira/) tipos
diferentes de microcontroladores.
Seguir Download
Mas
w Eu fiz isso
Favorito

para este tutorial vou trabalhar com apenas um modelo: a placa baseada em ESP8266
(NodeMCU). Observe que existem algumas placas diferentes que você pode comprar com o
mesmo chip.

Leitura e recursos:
MicroPython (https://micropython.org/)

NodeMCU (https://www.nodemcu.com/index_en.html)

 Adicionar Dica V Perguntar | Comente Download

Etapa 2: requisitos

(https://content
auto=webp&frame=1&fit=bounds&md=a96e064513f98fa94c15ed971b22f532)
instructables com/ORIG/F8Z/BDDX/JWL0QYPK/F8ZBDDXJWL0QYPK

(https://content
auto=webp&frame=1&fit=bounds&md=96fe1242c32df93ce5d803116d2d434a)
instructables com/ORIG/FUV/ABOR/JWL0QYPI/FUVABORJWL0QYP
Introdução ao MicroPython no ESP8266 por Ahmed Nouira (/member/Ahmed Nouira/) Seguir Download
Favorito
w Eu fiz isso

3 Mais imagens
(https://content
auto=webp&frame=1&fit=bounds&md=2ddd15aefd835da92ca9d04b3462704b)
instructables com/ORIG/F3K/SE8X/JWL0QYZ5/F3KSE8XJWL0QYZ5 jpg?

Para poder seguir este tutorial, você só precisa ter experiência básica de codificação com
Python. Você não precisa ter nenhum conhecimento prévio de microcontroladores, eletrônica
ou mesmo MicroPython.

Você também precisará de um computador Windows, Mac ou Linux com uma porta USB livre,
pois conectará um microcontrolador ao seu computador para programá-lo.

Peças necessárias:
1 x NodeMCU (https://www.amazon.com/ESP8266-microcontroller-NodeMCU-WiFi-
CH340G/dp/B071RNQPHV) (ou outra placa baseada em ESP8266)

1 x LED vermelho de 5 mm (https://www.sparkfun.com/products/9590)

1 x resistor de 220Ω 1/4W (https://www.sparkfun.com/products/8377)

1 x Potenciômetro Rotativo de 10KΩ (https://www.sparkfun.com/products/9939)

1 x tábua de pão (https://www.sparkfun.com/products/9567)

1 x cabo USB para MicroUSB (https://www.sparkfun.com/products/13244)

Fios de ligação.

 Adicionar Dica V Perguntar | Comente Download

Etapa 3: Por que a placa baseada em ESP8266?


Introdução ao MicroPython no ESP8266 por Ahmed Nouira (/member/Ahmed Nouira/) Seguir Download
Favorito
w Eu fiz isso

(https://content
auto=webp&frame=1&fit=bounds&md=3357f5867b2c9fd35d687f36d9dc697e)
instructables com/ORIG/FUS/VJ1B/JWGO060E/FUSVJ1BJWGO060E jpg?

Uma maneira de tirar o máximo proveito do seu ESP8266 é usando o MicroPython. Além disso, o
módulo ESP8266 é uma das melhores plataformas para aprender a usar o MicroPython. Isso
ocorre porque o ESP8266 fornece funções simples de controle de pinos GPIO, bem como
funcionalidade sem fio, permitindo que você teste todos os aspectos da linguagem de
programação MicroPython.

O chip ESP8266 é popular na indústria de desenvolvimento de código aberto. Existem muitas


placas de desenvolvimento de diferentes fabricantes que usam o chip ESP8266. O MicroPython
foi projetado para fornecer uma porta genérica que pode ser executada na maioria dessas
placas, com o mínimo de limitações possível. A porta é baseada na placa Adafruit Feather
HUZZAH (https://www.adafruit.com/product/2821) Ao usar outras placas ESP8266, certifique-se
de verificar seus esquemas e folhas de dados para que você possa identificar as diferenças entre
elas e a placa Adafruit Feather HUZZAH. Dessa forma, você pode acomodar as diferenças em seu
código.

Leitura e recursos:
ESP8266 (https://en.wikipedia.org/wiki/ESP8266)

Pena de Adafruit HUZZAH (https://www.adafruit.com/product/2821)

 Adicionar Dica V Perguntar | Comente Download

Etapa 4: Configurando seu computador


Introdução ao MicroPython no ESP8266 por Ahmed Nouira (/member/Ahmed Nouira/) Seguir Download
Favorito
w Eu fiz isso

(https://content
auto=webp&frame=1&fit=bounds&md=6a6cbe1f8ca3dd2d0c3f0a87c74569d3)
instructables com/ORIG/FY1/6EX1/JWGNWXFG/FY16EX1JWGNWXFG png?

(https://content
auto=webp&frame=1&fit=bounds&md=5ebb1c20e268c63916f971d0b4e4d7ff)
instructables com/ORIG/F6W/H0HX/JWGNWXLE/F6WH0HXJWGNWXLE png?

Há várias coisas que você precisa configurar antes de usar o MicroPython para programar sua
placa ESP8266.

Estaremos passando pelo processo de configuração nesta etapa. Desta forma você saberá como
configurar a placa ESP8266 para ser usada com o MicroPython.

Preparando-se
Tudo que você precisa desta etapa para a etapa 6 é o seu ESP8266 e um cabo USB. Conecte sua
placa ESP8266 ao seu computador.

Como fazer isso...


ETAPA 1: Instalar drivers de dispositivo

Se você possui um computador Linux, não é necessário instalar nenhum driver de dispositivo
para que os drivers do microcontrolador sejam reconhecidos. como um dispositivo serial.
Introdução ao MicroPythonhttps://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers.
no ESP8266 por Ahmed Nouira (/member/Ahmed Nouira/) Seguir Download
Favorito
w Eu fiz isso

(https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-
drivers.)

PASSO 2: Instale o Python

As ferramentas que você vai usar para se comunicar com o ESP8266 são escritas em Python,
então você precisa instalar o Python em seu computador.

Se o seu sistema operacional não fornece um Python pré-empacotado, você pode acessar
https://python.org (https://python.org) para baixar uma compilação oficial para qualquer um
dos sistemas operacionais suportados.

PASSO 3: Instale o esptool e o rshell

Instale dois pacotes que irão ajudá-lo a gerenciar sua placa usando o pip. Para fazer isso, abra
seu terminal e execute

pip instalar esptool rshell

PASSO 4: Baixe o MicroPython

Faça o download do firmware MicroPython .bin mais recente no seguinte link:


https://micropython.org/download#esp8266

(https://micropython.org/download#esp8266)

No momento em que estou escrevendo isso, a versão atual é 1.11 e o arquivo de firmware é
chamado esp8266-20190529-v1.11.bin

Quando você fizer isso, poderá encontrar uma versão mais recente.

(https://micropython.org/download#esp8266)

(https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-
drivers.)

esp8266-20190529-v1.11.bin
Download (https://content.instructables.com/ORIG/F3G/1I4T/JWGNV6QW/F3G1I4TJWGNV6QW.bin)
(https://content.instructables.com/ORIG/F3G/1I4T/JWGNV6QW/F3G1I4TJWGNV6QW.bin)

 Adicionar Dica V Perguntar | Comente Download

Etapa 5: Flashing MicroPython com Esptool.py

(https://content
auto=webp&frame=1&fit=bounds&md=03a6d15f7b419e0d704083506e812a64)
instructables com/ORIG/FAD/FR14/JWGNWXG9/FADFR14JWGNWXG9 png? auto=webp&frame=1&width=1024&fit=bounds&md=aaa9f265b55d4414c5e58504b75589c4)
(https://content instructables com/ORIG/FRG/931L/JWGNWXIY/FRG931LJWGNWXIY png?
Introdução ao MicroPythonAntes de instalar
no ESP8266 umNouira
por Ahmed novo(/member/Ahmed
firmware na Nouira/)
placa, é Seguir
uma boa ideia apagar todos Download
os dados
anteriores.
Favorito
w Eu fiz isso

Isso é algo que você deve sempre fazer para que o novo firmware seja executado a partir de um
estado limpo.

Vá para onde você colocou o arquivo .bin . Use esptool.py para apagar o flash.

Para Linux:

esptool.py --port /dev/ttyUSB0 erase_flash

Para Windows:

esptool.py --port COM3 erase_flash

Você pode ter que alterar a porta serial em seu comando para a porta serial à qual sua placa
ESP8266 está conectada. Se você não souber o número da porta serial do seu ESP8266, você
pode verificar no Arduino IDE. Basta abrir o IDE e clicar em Ferramentas | Portas. Você deve ver a
porta serial da sua placa ESP8266 listada lá. Substitua a porta serial no comando (/dev/ttyUSB0 )
pela porta serial da sua placa.

Agora que a placa foi completamente apagada, você pode fazer o flash da compilação do
MicroPython que acabou de baixar. Isso também é feito com o comando esptool.py:

esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash 0 esp8266-20190529-v1.11.bin

Este comando vai escrever o conteúdo do arquivo MicroPython .bin na placa no endereço 0.

Certifique-se de alterar o nome do arquivo .bin do firmware no comando (esp82688-2019-


080529-v1.11.bin) para o nome do firmware que você baixou.

Depois que o firmware for instalado com sucesso em sua placa ESP8266, você poderá acessar o
REPL em sua placa por meio de uma conexão com fio (porta serial UART) ou através de WiFi.

 Adicionar Dica V Perguntar | Comente Download

Etapa 6: Usando o MicroPython REPL com Rshell

(https://content
auto=webp&frame=1&fit=bounds&md=fa4d3cc03c6b099e2185fdabbc51fa80)
instructables com/ORIG/F7Y/WPJ1/JWGNWXJX/F7YWPJ1JWGNWXJX png? (https://content
auto=webp&frame=1&width=1024&fit=bounds&md=788c924c8113250f5ad7efcfaa515fd5)
instructables com/ORIG/FO9/OJ89/JWGNWXXT/FO9OJ89JWGNWXXT png?

Agora você está pronto para iniciar o MicroPython em sua placa ESP8266.

O que vou mostrar como se conectar ao prompt do Python em execução na sua placa. Isso é
chamado de REPL, que significa "Read-Eval-Print-Loop". Este é o prompt padrão do Python que
você provavelmente está acostumado a ver ao trabalhar com o interpretador Python normal,
mas desta vez ele estará sendo executado em sua placa e, para interagir com ele, você usará a
conexão serial com seu computador . Preparar?

Para se conectar à sua placa e abrir uma sessão REPL, digite o seguinte comando:
rshell --port <nome da porta da sua placa>
Introdução ao MicroPython no ESP8266 por Ahmed Nouira (/member/Ahmed Nouira/) Seguir Download
Favorito
w Eu fiz isso

Este comando o levará ao prompt do rshell. Veja foto acima.

Se você estiver seguindo este tutorial no Windows, observe que o rshell tem um histórico de
problemas ao ser executado no Windows.

Então, para corrigir esse tipo:

rshell -a --port COM3

A partir deste prompt você pode realizar tarefas de gerenciamento relacionadas à sua

placa microcontroladora, e também iniciar um Python REPL que você pode usar para interagir
com a placa em tempo real.

substituir

Para ter certeza de que tudo está funcionando, digite uma frase simples em Python:

print("Olá Mundo")

 Adicionar Dica V Perguntar | Comente Download

Etapa 7: controlando os pinos usando o MicroPython

(https://content
auto=webp&frame=1&fit=bounds&md=ab10c320d2ed7d40f4ca11d9eae8f23a)
instructables com/ORIG/FUF/32K5/JWGNWZFK/FUF32K5JWGNWZFK jpg? (https://content
auto=webp&frame=1&fit=bounds&md=8bcd7a141b782f5a7dcd7b8f985b99e7)
instructables com/ORIG/FC4/FQER/JWGO057J/FC4FQERJWGO057J png?

Nesta etapa, aprenderemos como controlar os pinos do ESP8266 com o MicroPython. Para isso,
vamos criar uma configuração onde estaremos alternando o estado de um LED conectado a um
pino GPIO da placa ESP8266. Isso ajudará você a entender como controlar as saídas digitais
usando o MicoPython.

Preparando-se
Você precisará das seguintes coisas para realizar este PASSO:

1 x NodeMCU

1 x LED vermelho de 5 mm

1 x resistor de 220 Ω

1 x tábua de pão

Fios de ligação

A construção
Comece montando o LED na placa de ensaio. Conecte uma extremidade do resistor de 220 Ω à
perna positiva do LED (a perna positiva de um LED é geralmente a mais alta das duas pernas).
Conecte a outra extremidade do resistor ao pino D1 da placa ESP8266. Em seguida, conecte a
perna negativa do LED ao pino GND da placa ESP8266. A conexão é como mostrado no
diagrama acima.
Introdução ao MicroPythonQuando a configuração
no ESP8266 por Ahmed Nouiraestiver concluída,
(/member/Ahmed conecte
Nouira/) a
Seguir
placa ESP8266 ao seu computador
Download
por meio
w Eu fiz isso
Favorito

de um cabo USB.

Como fazer isso...


Digite o seguinte código em seu REPL:

# pisca LED a cada 1 segundo

def blink(pin=5, time=1) # função blink por default pin=5, time=1s

import machine # o módulo da máquina contém as configurações e modos dos pinos

from time import sleep # importa sleep para algum atraso

LED = machine.Pin(led_pin, machine.PIN.OUT) # configura o LED como OUTPUT

while True: # roda para sempre

LED.value(1) # configura o LED para HIGH

sleep(time) # espera 1 segundo por padrão

LED.value(0) # configura o LED para LOW

sleep(time) # espera 1 segundo por padrão

Digite blink() em sua sessão RPEL para testar este código. Isso irá piscar o LED conectado ao
GPIO5 a cada 1 segundo.

Você pode alterar o PIN e/ou a hora ligando para:

blink(pin=<pin_number>, time=<time_value>)

Pressione ctrl+c para sair do código em execução.

Você pode usar o MicroPython para ler uma entrada conectada ao ESP8266. Prossiga para a
próxima etapa para aprender como fazer isso.

Verifique o vídeo se você ficou preso.

 Adicionar Dica V Perguntar | Comente Download

Passo 8: Desvanecendo o LED

(https://content
auto=webp&frame=1&fit=bounds&md=2fd892b8cef58e37edd77ec4c59b2bff)
instructables com/ORIG/FXD/9W38/JWL0R01R/FXD9W38JWL0R01R jpg? (https://content
auto=webp&frame=1&fit=bounds&md=23b1e7da18ada123efd6bb9efbd38807)
instructables com/ORIG/F35/C457/JWGO057Q/F35C457JWGO057Q png?

Nesta etapa, aprenderemos como ajustar o brilho do LED usando um potenciômetro rotativo.
Usaremos uma técnica chamada Pulse Width Modulation (PWM), que nos permite escurecer o
LED com até 256 configurações.

Aviso: Todos os pinos do ESP8266 podem ser usados ​como pino PWM, exceto GPIO16 (D0).

Preparando-se:
Você precisará das seguintes coisas para realizar este PASSO:

1 x NodeMCU

1 x LED vermelho de 5 mm

1 x potenciômetro giratório de 50 KΩ.


Introdução ao MicroPython1no
x tábua deporpão
ESP8266 Ahmed Nouira (/member/Ahmed Nouira/) Seguir Download
Favorito
w Eu fiz isso

Fios de ligação

A construção
A conexão é conforme mostrado no diagrama acima: Uma vez que a configuração esteja
completa, conecte a placa ESP8266 ao seu computador através de um cabo USB.

Como fazer isso...


Digite o seguinte código em seu REPL:

# Fading LED a cada 0,5 lendo os dados do potenciômetro

máquina de importação

da hora importar dormir

led_pin = 5 # pino led

POT = machine.ADC(0) # pino ADC0

LED = machine.Pin(led_pin) # cria objeto LED

LED_pwm = machine.PWM(LED, freq=500) # cria o objeto LED_pwm e configura a frequência para 500Hz

enquanto Verdadeiro:

LED_pwm.duty(POT.read()) # pega o valor do Pot e configura para o ciclo de trabalho

sleep(0.5) # espera 0.5

Isso alterará o brilho do LED conectado ao GPIO 5 alterando o valor do potenciômetro.

Pressione ctrl+c para sair do código em execução.

Verifique o vídeo se você ficou preso.

 Adicionar Dica V Perguntar | Comente Download

Passo 9: Para onde a partir daqui?

MicroPython ESP8266 | Blinking LED | Fading LED Using PWM

Watch on

Até agora vimos como configurar e executar o MicroPython em placas baseadas em ESP8266.
aprendemos a controlar os pinos para piscar um LED e adicionamos um potenciômetro para
controlar o brilho do LED usando a técnica de modulação por largura de pulso.

Agora podemos ler os dados do sensor e enviá-los para a nuvem, também podemos criar um
servidor HTTP onde você poderá imprimir nossos dados em uma página web simples,etc...

Isso nos dá muitas ideias de Internet das Coisas (IoT).



Introdução ao MicroPython no ESP8266 por Ahmed NouiraAdicionar Dica
(/member/Ahmed Nouira/) V
Perguntar
Seguir | Comente DownloadDownload
Favorito
w Eu fiz isso

Etapa 10: Conclusão


Aí está! Vá em frente e conquiste o mundo do MicroPython.

se você tiver alguma dúvida, é claro, você pode deixar um comentário.

Para ver mais sobre meus trabalhos, visite meu canal no YouTube:

meuYouTube (https://www.youtube.com/channel/UCZnkC2WQf-LcH9EOmHjlExA/videos?
view_as=subscriber)

myGitHub (https://github.com/AhmNouira)

myLinkedin (https://www.linkedin.com/in/ahmed-nouira/)

Obrigado por ler este instrutivo ^^ e tenha um bom dia.

Até mais.

Ahmed Noira.

 Adicionar Dica V Perguntar | Comente Download

Seja o primeiro a compartilhar


Você fez esse projeto? Compartilhe conosco!

Eu fiz isso!

Recomendações

(/Casinoclock/) (/Password-Vault-V30/)

Casino'clock (/Casinoclock/) por shiura Password Vault V3.0 (/Password-Vault-


(/member/shiura/) em Relógios V30/) da Northstrix (/member/Northstrix/) em
(/circuits/clocks/projects/) microcontroladores

w
1

15
8
872 
57
8
7,3 mil

(/contest/raspi/) (/contest/fta2022/)
Introdução ao MicroPython no ESP8266 por Ahmed Nouira (/member/Ahmed Nouira/) Seguir Download
Favorito
w Eu fiz isso

 V |
Add Tip Ask Question Post Comment

We have a be nice policy.

Please be positive and constructive. Add Images Post

2 comentários


(/member/AubreywanP/) AubreywanP (/member/AubreywanP/)
a year ago


Reply
/ Upvote
This is a great tutorial. Can this be done with the Arduinio IDE?


(/member/tbiberdorf/) tbiberdorf (/member/tbiberdorf/)
Question
2 years ago
on Step 2


Answer
/ Upvote
I've installed Windows10 python 3.8, esptool & rshell

but when attempting to run rshell I received the following error:

'rshell' is not recognized as an internal or external command, operable program or batch file.

any suggestions?

Thanks

Postar comentário

Categorias Sobre nós Recursos

 Circuitos  Vivo
(/living/) Quem nós somos Mapa do site
(/circuits/)  Lado de fora (/about/) (/sitemap/)
 Oficina (/outside/) Por que publicar? Ajuda (/how-to-write-
(/workshop/)  Professores (/create/) a-great-instructable/)
 Construir
(/craft/) (/teachers/) Contato (/contact/)
 Cozinhando
(/cooking/)
Ache-nos

(https://www.instagram.com/instructables/) (https://www.pinterest.com/instructables) (https://www.facebook.com/instructables) (https://www.twitter.com/instructables)

© 2022 Autodesk, Inc.

Termos de serviço Declaração de privacidade Configurações de privacidade | Avisos Legais e Marcas Registradas
(http://usa.autodesk.com/adsk/servlet/item?(http://usa.autodesk.com/adsk/servlet/item?Do not sell my personal information (http://usa.autodesk.com/legal-
siteID=123112&id=21959721) siteID=123112&id=21292079) (https://www.autodesk.com/company/legal-notices- notices-trademarks/)
| | trademarks/ccpa-do-not-sell)
|
(http://www.autodesk.com)

Você também pode gostar