Índice:

MicroPython IoT Rover baseado em WEMOS D1 (ESP-8266EX): 7 etapas (com imagens)
MicroPython IoT Rover baseado em WEMOS D1 (ESP-8266EX): 7 etapas (com imagens)

Vídeo: MicroPython IoT Rover baseado em WEMOS D1 (ESP-8266EX): 7 etapas (com imagens)

Vídeo: MicroPython IoT Rover baseado em WEMOS D1 (ESP-8266EX): 7 etapas (com imagens)
Vídeo: IOT Based Humidity, Temperature and Soil moisture Monitoring using ESP8266ex 2024, Julho
Anonim
Image
Image
MicroPython IoT Rover baseado em WEMOS D1 (ESP-8266EX)
MicroPython IoT Rover baseado em WEMOS D1 (ESP-8266EX)

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

Peças
Peças
Peças
Peças
Peças
Peças
Peças
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

Montagem de Hardware
Montagem de Hardware
Montagem de Hardware
Montagem de Hardware
Montagem de Hardware
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

Fiação
Fiação
Fiação
Fiação
Fiação
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

Rede de configuração
Rede de configuração

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

Instalar o programa principal
Instalar o programa principal
Instalar o programa principal
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: