Índice:
- Etapa 1: Coisas usadas neste projeto
- Etapa 2: História
- Etapa 3: Preparação
- Etapa 4: Configuração
- Etapa 5: Instalando
- Etapa 6: Programação
- Etapa 7: Teste
- Etapa 8: Próxima etapa
- Etapa 9: esquemas
- Etapa 10: Código
Vídeo: Botão de porta virtual usando Mongoose OS e XinaBox: 10 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Usando o Mongoose e alguns xChips, criamos um botão de porta virtual. Em vez de um botão físico para chamar a equipe, eles agora podem fazer isso sozinhos.
Etapa 1: Coisas usadas neste projeto
Componentes de hardware
- XinaBox CW02 x 1 Você pode usar o CW01 em vez disso
- XinaBox IP01 x 1
- XinaBox PU01 x 1 Você pode apenas usar o IP01 para energia, se você não pretende programar mais módulos.
- XinaBox OC03 x 1
- XinaBox XC10 x 1 A "cola" que faz tudo funcionar!
Aplicativos de software e serviços online
Mongoose OS Ferramenta de desenvolvimento de IoT realmente incrível e fácil … e grátis
Etapa 2: História
Na nossa recepção o nosso pessoal precisava de um zumbido, por isso decidimos tomar o nosso próprio remédio e criar um botão virtual. Este código permite enviar um RPC (Remote Procedure Call), que se parece com uma chamada HTTP normal a partir de qualquer navegador. Usamos o Mongoose, já que é muito fácil e rápido de trabalhar e tem atualização de código OTA (Over The Air) embutida, significa que poderíamos instalar nossa tecnologia e ainda com o tempo atualizar o firmware, sem desmontá-lo para reprogramação.
Etapa 3: Preparação
- Instale o Mongoose-OS: direto, basta seguir estas etapas muito fáceis para o seu sistema operacional aqui:
- Clique em IP01 e CW02 juntos usando um conector XC10. Veja a imagem abaixo:
- Insira o IP01 em sua porta USB
- Certifique-se de que as chaves IP01 estão na posição B e DCE.
- Atualize o Mongoose-OS para CW02 a partir de sua linha de comando. Assim:
CD
export MOS_PORT = bin / mos flash esp32
Você também pode simplesmente entrar no console e fazer mais a partir dele, mas aqui fazemos isso na linha de comando, então o trabalho é feito rapidamente. Para entrar no console:
CD
bin / mos
Etapa 4: Configuração
Embora essas etapas possam ser executadas em uma longa instrução, decidimos dividi-las e, como você iria copiá-las e colá-las de qualquer maneira, vamos facilitar:
Defina os pinos I2C para o padrão xChips:
bin / mos config-set i2c.scl_gpio = 14 i2c.sda_gpio = 2
Conecte seu CW02 ao seu WiFi:
bin / mos wi-fi
Desconecte o WiFi no modo AP e configure um nome de domínio, para que você possa se conectar ao CW01 pelo nome do host em vez de encontrar o endereço IP correto. Isso só funcionará se:
- Você desconecta o WiFi no modo AP como fazemos a seguir.
- Use um Mac ou instale o Bonjour em sua máquina Windows.
bin / mos call Config. Set '{"config": {"wifi": {"ap": {"enable": false}}}}'
bin / mos call Config. Set '{"config": {"dns_sd": {"enable": true}}}' bin / mos call Config. Set '{"config": {"dns_sd": {"host- nome ":" xinabox_switch "}}}
E, finalmente, você tem que reiniciar o CW02 para que a configuração funcione
bin / mos chamar Config. Save '{"reboot": true}'
Muito rapidamente depois disso, você deve ser capaz de executar ping em xinabox_switch.local
Etapa 5: Instalando
Desconecte o IP01 do seu computador e monte um circuito de acordo com a imagem superior.
Conecte o PU01 (ou se você decidiu ficar com o IP01) em uma fonte de alimentação USB. Conecte os fios paralelos do seu switch existente (deixe isso, por precaução) ao OC03 (a polaridade não importa). Veja o desenho de Fritzing.
Depois de ligado e ver se você está realmente falando com seu xCW02, que tal fazer a varredura do BUS, também conhecido como barramento I2C:
bin / mos --port ws: //xinabox_switch.local/rpc chamada I2C. Scan
Se tudo funcionar e seu xOC03 estiver instalado corretamente, você verá o número '56' retornado. Esse é o endereço I2C do OC03 em decimal (em hexadecimal é 0x38).
Etapa 6: Programação
- Agora abra o Mongoose no modo de console, veja acima. Deve abrir com uma janela onde pede um número de porta, digite: ws: //xinabox_switch.local/rpc
- Ele se comunicará com o CW02, e perceberá que a unidade já está piscando e conectada ao WiFi, então dará apenas 3 marcas de seleção. Feche a janela e atualize a lista de arquivos
- Copie e cole o código abaixo em init.js e clique em salvar + reiniciar
- Seu circuito agora está programado.
Etapa 7: Teste
Agora você implementou outra chamada RPC, portanto, em seu terminal, você pode inserir:
bin / mos --port ws: //xinabox_switch.local/rpc call Switch
… E sua campainha deve tocar por 2 segundos. Você também pode fazer isso em - quase - qualquer navegador:
xinabox_switch.local/rpc/Switch
… Com o mesmo efeito.
Etapa 8: Próxima etapa
Você pode usar qualquer ferramenta que possa disparar um URL. Eu faço isso de um aplicativo da Apple chamado Workflow, que me permite fazer isso do meu telefone ou como complicação do meu Apple Watch, mas existem muitas outras opções por aí. Aqui está meu script de fluxo de trabalho, mas com endereço IP codificado: Divirta-se!
App da Apple: Fluxo de trabalho - aqui com endereço IP codificado
Etapa 9: esquemas
Circuito de campainha Instale o OC03 em paralelo com o botão de pressão existente.
Baixe aqui.
Circuito OC03 Instale o OC03 em paralelo com o botão de pressão existente.
Baixe aqui.
Etapa 10: Código
JavaScript init.js Seu código principal e único para este projeto.
load ('api_config.js');
load ('api_gpio.js'); load ('api_i2c.js'); load ('api_net.js'); carregar ('api_sys.js'); load ('api_timer.js'); load ("api_rpc.js"); deixe led = Cfg.get ('pins.led'); deixe adr = 0x38; deixe bus = I2C.get (); I2C.writeRegB (barramento, adr, 3, 0); I2C.writeRegB (barramento, adr, 1, 0); / * desligue apenas para ter certeza * / let delay = 2000; GPIO.set_mode (led, GPIO. MODE_OUTPUT); RPC.addHandler ('Switch', function (args) {GPIO.toggle (led); I2C.writeRegB (bus, adr, 3, 0); / * no caso de o OC03 ser reconectado * / I2C.writeRegB (bus, adr, 1, 1); Timer.set (atraso, falso, função () {GPIO.toggle (led); I2C.writeRegB (barramento, adr, 1, 0);}, nulo); retornar verdadeiro;});
Recomendado:
Hacking a London Underground Jubilee Line Botão da porta: 12 etapas (com fotos)
Hackeando um botão de porta da Jubilee Line do metrô de Londres: A loja do London Transport Museum está vendendo botões de porta desativados da Jubilee Line (ambos os lados direito e esquerdo estão disponíveis). Se você está pensando em realizar um projeto que precisa de um botão e uma luz indicadora de algum tipo, você estaria
Transformando a porta USB das placas baseadas em SAMD21 em uma porta serial de hardware !: 3 etapas
Transformando a porta USB das placas baseadas em SAMD21 em uma porta serial de hardware! Hoje em dia, é padrão usar uma porta USB da placa Arduino (ou qualquer outra compatível) como porta serial emulada. Isso é muito útil para depurar, enviar e receber dados de nossas adoráveis placas. Eu estava trabalhando no uChip quando, passando pelo datash
Microcontrolador AVR. Alterne os LEDs usando um botão de pressão. Botão Debouncing: 4 etapas
Microcontrolador AVR. Alterne os LEDs usando uma chave de botão. Push Button Debouncing: Nesta seção, aprenderemos como fazer o código do programa C para ATMega328PU para alternar o status dos três LEDs de acordo com a entrada de uma chave de botão. Além disso, exploramos uma solução para o problema de ‘Switch Bounce’. Como de costume, nós teremos
Luzes automáticas conectadas com porta e monitoramento de porta: 5 etapas
Luzes automáticas conectadas com porta e monitoramento de porta .: Parece ser muito difícil encontrar a placa de distribuição no escuro, mas este projeto é realmente útil para resolver este problema. Siga os passos abaixo para saber a solução deste
Botão superior da parede virtual IRobot: 6 etapas
IRobot Virtual Wall Top Button: Estou chateado porque o botão grande que parece no topo da iRobot Virtual Wall não é o botão liga / desliga. Parece que deveria ser, mas simplesmente não é. Então, tenho que entrar e adicionar um interruptor no topo da parede virtual