Índice:
- Etapa 1: peças
- Etapa 2: Montagem de Hardware
- Etapa 3: Fiação
- Etapa 4: Instalação do MicroPython
- Etapa 5: configurar rede
- Etapa 6: instalar o programa principal
- Etapa 7: melhorias futuras
Vídeo: MicroPython IoT Rover baseado em WEMOS D1 (ESP-8266EX): 7 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
** Atualização: postei um novo vídeo para a v2 com um lance **
Organizo workshops de robótica para crianças e estou sempre em busca de plataformas econômicas para construir projetos intrigantes. Embora os clones do Arduino sejam baratos, ele usa a linguagem C / C ++ com a qual as crianças não estão familiarizadas. Além disso, ele não tem um WiFi embutido, o que é essencial para projetos de IoT. Por outro lado, embora Raspberry Pi tenha WIFI e as crianças possam programá-lo usando Python, ainda é uma plataforma cara para controlar apenas algumas portas GPIO para ligar e desligar dispositivos. Preciso de algo intermediário que tenha recursos de WIFI e Python. Parece que encontrei minha resposta no MicroPython em uma placa barata baseada em ESP8266.
O que é Micropython?
De acordo com seu site, MicroPython é uma implementação enxuta e eficiente das linguagens de programação Python 3 que inclui um pequeno subconjunto da biblioteca padrão Python e é otimizada para rodar em microcontroladores e em ambiente restrito (como ESP8266). É essencialmente Python IDE em um chip. Um grande benefício é que você pode criar código e alterá-lo em tempo real usando um cliente de navegador da Web chamado Webrepl. (Tente fazer isso no Arduino.) Você também pode ver os dados do sensor em tempo real no Webrepl em vez de confiar no registro de dados ou em uma tela de LED no Arduino.
O que é ESP8266?
Resumindo, pense nele como um Arduino com capacidade de rede integrada. Você pode usar o Arduino IDE para programar placas ESP8266 em C / C ++ ou pode atualizá-lo com NodeMCU ou MicroPython. Neste projeto, irei atualizar o MicroPython em uma placa ESP8266.
Decidi comprar um WEMOS D1 que é baseado no ESP8266-12EX para este projeto simples onde navegarei em um carro 2WD usando um navegador da web. Existem outras placas que são projetadas para MicroPython, mas eu queria algo barato que pudesse jogar fora se não atendesse aos meus critérios. Como esperado, ele atendeu a todos os meus requisitos e provavelmente irei incorporar WeMos e Micropython em projetos futuros.
Etapa 1: peças
- Wemos D1 ou quaisquer placas baseadas em ESP8266
- Blindagem do motor (estou usando um L293D barato da AliExpress)
- Suportes de bateria para 4 pilhas AA e 9 V (4 pilhas AA são para motores e 9 V para placa Wemos)
- Chassi de carro 2WD
- Cabos Dupont
Pode ser necessário um ferro de solda, uma chave de fenda e uma pistola de cola para colocar tudo junto.
Etapa 2: Montagem de Hardware
Primeiro, monte o chassi de acordo com as instruções.
Em seguida, cole outros componentes com cola quente, conforme mostrado.
Os fios do motor devem ser soldados aos terminais do motor e usar cola quente para reforçar as juntas dos terminais.
Afixado um pequeno interruptor no suporte da bateria 4AA. Isso ligará / desligará a energia da blindagem do motor.
Etapa 3: Fiação
Siga meu diagrama de fiação conforme mostrado.
Wemos para Motor Shield:
D1 IN2
D2 IN1 D3 IN4 ** ignorar D4 D5 IN3 GND -> GND
Blindagem do motor para motor / alimentação:
Terminal A -> Motor Esquerdo
Terminal B -> Motor direito VCC -> Bateria (+) GND -> Bateria (-)
Etapa 4: Instalação do MicroPython
Primeiro, o Wemos tem um chip serial / USB baseado no CH304G. Este é o mesmo chip encontrado em clones baratos do Arduino e você deve instalar um driver adequado para Mac ou PC. Siga as instruções neste site para instalar o driver.
Conecte o Wemos ao seu computador e confirme se o seu computador pode detectar o Wemos. No Mac, execute o seguinte comando e você verá um dispositivo chamado /dev/tty.wchusbserial640.
$ ls -lt / dev / tty * | cabeça
crw-rw-rw- 1 root wheel 17, 4 de março 23:31 /dev/tty.wchusbserial640
Se você estiver no PC, pode usar este Instructable como referência.
Em seguida, você precisará configurar o Python 2 ou 3 em seu computador, pois a ferramenta flash, esptool.py, é baseada em Python. Embora o guia MicroPython possa afirmar que a ferramenta só funciona com o Python 2.7, consegui executá-la no Python 3 sem problemas. Baixe o Python mais recente em https://www.python.org e siga as instruções de instalação para o seu PC ou Mac.
Por último, você precisará instalar o MicroPython no Wemos. O site MicroPython tem um excelente tutorial sobre como configurar o MicroPython no ESP8266. Basta seguir as instruções de instalação em Introdução ao MicroPython no ESP8266.
Abaixo estão os comandos que usei:
$ esptool.py --port /dev/tty.wchusbserial640 erase_flash
esptool.py v1.3 Conectando…. Executando o esboço do pisca-pisca Cesanta … Apagando o flash (pode demorar um pouco) … O apagamento levou 10,5 segundos
$ esptool.py --port /dev/tty.wchusbserial640 write_flash -fm dio -fs 32m -ff 40m 0x00000 esp8266-20170108-v1.8.7.bin
esptool.py v1.3 Conectando…. Executando Cesanta pisca-pisca stub… Parâmetros de flash definidos para 0x0240 Escreveu 589824 bytes em 0x0 em 50,8 segundos (92,8 kbit / s)… Saindo…
MicroPython agora está instalado em sua placa!
Etapa 5: configurar rede
Embora o MicroPython agora esteja instalado em seu Wemos, ele ainda não está conectado à sua rede. Você precisará primeiro habilitar a rede. No Mac, execute o comando SCREEN para iniciar a sessão do terminal serial para Wemos.
$ screen /dev/tty.wchusbserial640 115200
Quando você vir uma tela em branco, pressione RETURN para ver um prompt:
>>
(Observação: para sair, digite CTRL-A CTRL-)
Agora, vamos habilitar o acesso do webclient. Digite "import webrepl_setup" para executar o programa de instalação. Digite E para habilitar WebREPL e, em seguida, defina a senha. Reinicie para ativar as alterações.
>> import webrepl_setup
Status de inicialização automática do daemon WebREPL: desativado Você gostaria de (E) nabilitar ou (D) habilitá-lo em execução na inicialização? (Linha vazia para sair)> E Para habilitar o WebREPL, você deve definir uma senha para ele Nova senha: xxxxx Confirmar senha: xxxxx As alterações serão ativadas após a reinicialização Deseja reiniciar agora? (s / n) s
Por último, baixe o cliente Webrepl para sua máquina. Isso é opcional, mas o cliente vem com outras ferramentas úteis que você pode usar mais tarde. Por exemplo, webrepl_cli.py é um comando para copiar arquivos para Wemos na sintaxe do tipo scp. Use git para baixar o cliente. (Instale a ferramenta git se ainda não a tiver.)
clone git
Abra seu navegador da web e, no campo URL, insira o local do arquivo do cliente webrepl baixado, como:
arquivo: ///Users/xxxxx/wemos/webrepl/webrepl.html
Isso deve exibir o cliente webrepl em seu navegador. Antes de poder se conectar a ele, você deve primeiro se conectar ao seu ponto de acesso WIFi. Se você observar o WIFI disponível para o seu computador, verá que uma rede começa com MicroPython-xxxx. Conecte-se a essa rede. (Aviso: depois de se conectar a essa rede, você perderá o acesso à Internet.)
Volte para o seu cliente webrepl e clique em Conectar. Ele deve solicitar a senha. Digite sua senha Wemos e você deve se conectar.
Bem-vindo ao MicroPython!
Senha: WebREPL conectado >>>
Seu Wemos ainda está em execução no modo AccessPoint. Embora esteja OK, eu prefiro que ele seja executado no modo de estação, onde se conecta ao meu WIFI doméstico para que meu computador possa acessá-lo através do WIFI doméstico e ainda tenha acesso à Internet. Para fazer isso, você terá que criar um arquivo chamado boot.py com a configuração de rede e fazer o upload para o Wemos.
Aqui está um exemplo de boot.py. Altere o SSID e a senha para sua rede WIFI doméstica. Além disso, quero dar a ele um IP estático de 192.168.0.32. Altere-o para o endereço IP disponível do seu WIFI residencial.
boot.py (você pode baixá-lo abaixo)
importar gc
import webrepl def do_connect (): import network sta_if = network. WLAN (network. STA_IF) se não sta_if.isconnected (): print ('conectando à rede…') sta_if.active (True) sta_if.ifconfig (('192.168. 0,32 ',' 255.255.255.0 ',' 192.168.0.1 ',' 192.168.0.1 ')) sta_if.connect (' ',' ') enquanto não sta_if.isconnected (): pass print (' network config: ', sta_if.ifconfig ()) do_connect () webrepl.start () gc.collect ()
Use o formulário "Enviar um arquivo" do cliente Webrepl para enviar seu arquivo boot.py para o Wemos. Pressione o botão reset para reiniciar. Se ainda estiver conectado por USB usando o comando SCREEN, você verá:
conectando à rede… configuração de rede: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1') WebREPL daemon iniciado em ws: //192.168.4.1: 8266 WebREPL daemon iniciado em ws: //192.168.0.32: 8266 Webrepl iniciado no modo normal não pôde abrir o arquivo 'main.py' para ler MicroPython v1.8.7-7-gb5a1a20a3 em 2017-01-09; Módulo ESP com ESP8266 Digite "help ()" para obter mais informações. >>>
Isso valida que seu Wemos está conectado ao WIFI doméstico usando o endereço IP de 192.168.0.32.
Você pode executar ping nesse endereço IP para validar.
$ ping 192.168.0.32
PING 192.168.0.32 (192.168.0.32): 56 bytes de dados
64 bytes de 192.168.0.32: icmp_seq = 0 ttl = 255 tempo = 9,334 ms 64 bytes de 192.168.0.32: icmp_seq = 1 ttl = 255 tempo = 11,071 ms..
Etapa 6: instalar o programa principal
Por último, você precisará instalar o programa principal que continuará a ser executado em seu Wemos.
Volte para o navegador da web e execute o programa cliente webrepl. Altere o endereço IP para o endereço IP do seu Wemos. No meu caso, agora é 192.168.0.32. Digite sua senha do Wemos e agora você deve estar conectado ao Wemos.
Vamos fazer o upload do programa main.py anexado. Baixe o arquivo anexado para o seu computador. Clique em Escolher arquivo para escolher o main.py baixado e clique em Enviado para o dispositivo.
Você precisará pressionar o botão Rest para carregar o programa main.py. Depois de pressionar o botão Reset, você verá:
conectando à rede …
configuração de rede: ('192.168.0.32', '255.255.255.0', '192.168.0.1', '192.168.0.1')
WebREPL daemon iniciado em ws: //192.168.4.1: 8266 WebREPL daemon iniciado em ws: //192.168.0.32: 8266 Webrepl iniciado em modo normal Ouvindo, conecte seu navegador a…
Isso significa que seu programa main.py está ativado e listado na porta 80.
Para testar, abra seu navegador da web e digite
Isso deve exibir a tela de controle do carro, conforme mostrado no vídeo. Se os fios estiverem conectados corretamente, os botões de controle enviarão sinais adequados às portas GPIO para mover o carro.
Etapa 7: melhorias futuras
Os seguintes itens de tarefas estão na minha lista v2:
- Use PWM para controlar a velocidade do motor
- Melhore a interface da web. Talvez use uma estrutura REST. Não acredito que aREST lib esteja disponível no MicroPython neste momento, então posso ter que hackear.
Obrigado por ler este Instructable. Siga-me no Facebook, Youtube e Instructables para mais projetos no futuro.
Recomendado:
Lora Gateway baseado em MicroPython ESP32: 10 etapas (com imagens)
Lora Gateway baseado em MicroPython ESP32: Lora se tornou muito popular nos últimos anos. O módulo de comunicação sem fio usando esta tecnologia é geralmente barato (usando espectro livre), pequeno em tamanho, eficiente em termos de energia e tem uma longa distância de comunicação, e é usado principalmente para comunicação mútua
Controle remoto IR baseado em Arduino automático baseado em temperatura: 7 etapas
Controle remoto IR baseado em Arduino automático baseado em temperatura: Ei, e aí, pessoal! Akarsh aqui da CETech. Cansado de acordar no meio de um sono profundo só porque a temperatura ambiente está muito baixa ou muito alta por causa do seu AC mudo. Então este projeto é para você. Neste projeto, vamos fazer o nosso
ROBÔ COM GESTO BASEADO EM IOT: 10 etapas (com imagens)
ROBÔ CONTROLADO POR GESTOS BASEADOS EM IOT: Este robô é um robô controlado por gestos que pode ser controlado de qualquer lugar com a ajuda da internet. Neste projeto, o acelerômetro MPU 6050 é usado para coletar dados sobre os movimentos de nossas mãos. Ele mede a aceleração da nossa mão em três
Termômetro infravermelho sem contato baseado em Arduino - Termômetro baseado em IR usando Arduino: 4 etapas
Termômetro infravermelho sem contato baseado em Arduino | Termômetro baseado em IR usando Arduino: Olá pessoal, neste instructables faremos um termômetro sem contato usando arduino. Já que às vezes a temperatura do líquido / sólido é muito alta ou muito baixa e então é difícil fazer contato com ele e ler sua temperatura então naquele cenário
Como atualizar o firmware MicroPython em um switch inteligente Sonoff baseado em ESP8266: 3 etapas (com imagens)
Como atualizar o firmware MicroPython em um switch inteligente Sonoff baseado em ESP8266: O que é Sonoff? Sonoff é uma linha de dispositivos para Smart Home desenvolvida pela ITEAD. Um dos dispositivos mais flexíveis e baratos dessa linha são Sonoff Basic e Sonoff Dual. Esses são switches habilitados para Wi-Fi baseados em um ótimo chip, ESP8266. Enquanto