Índice:

Desligue remotamente ou reinicie um computador com dispositivo ESP8266: 10 etapas (com imagens)
Desligue remotamente ou reinicie um computador com dispositivo ESP8266: 10 etapas (com imagens)

Vídeo: Desligue remotamente ou reinicie um computador com dispositivo ESP8266: 10 etapas (com imagens)

Vídeo: Desligue remotamente ou reinicie um computador com dispositivo ESP8266: 10 etapas (com imagens)
Vídeo: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, Julho
Anonim
Image
Image

Para ser claro aqui, estamos desligando o SEU computador, não o computador de outra pessoa.

A historia é assim:

Um amigo meu no Facebook me mandou uma mensagem e disse que tem uma dúzia de computadores executando um monte de matemática, mas todas as manhãs às 3 da manhã, eles travam. Como os computadores estão a 30 minutos de distância, é um grande incômodo dirigir duas cidades (vivemos em Dakota do Sul) para reiniciar os computadores. Ele perguntou se eu poderia construir para ele um dispositivo IoT que permitiria que ele reiniciasse o computador problemático no conforto de sua cama aconchegante?

Para nunca perder um desafio, concordei em fazer algo para ele. Este é aquele projeto.

Usando dois bit-shift registrados, um ESP8266 ESP01, um punhado de LEDs e alguns optoisoladores caseiros, o projeto inteiro custa cerca de US $ 5 se você comprar as peças da China no eBay. Talvez $ 20 da Amazon.

Esta é uma construção bastante complexa com muita solda fina. Sem contar meus erros e re-soldas, demorei quase 20 horas para fazer, mas ficou incrível e funcionou perfeitamente.

Vamos começar.

Etapa 1: placa de protótipo

Placa de protótipo
Placa de protótipo
Placa de protótipo
Placa de protótipo

Sempre inicie todos os projetos com um protótipo de protoboard. É a melhor maneira de determinar se você possui todos os componentes e opera conforme o esperado. Este projeto é um pouco complicado, então eu recomendo construí-lo em uma placa de ensaio antes de seguir em frente.

As peças de que você precisa são:

  • Um ESP8266 ESP01 (embora qualquer dispositivo ESP8266 funcione)
  • Dois registradores de deslocamento de 8 bits, usei o 74HC595N
  • 16 LEDs, usei LEDs brancos de chapéu de palha que operam a 3,3V. Se você usar outros, pode precisar de resistores.
  • Três resistores 3k3-ohmpulldown
  • Fios de ligação e uma placa de ensaio

Você também precisará construir pelo menos um optoisolador. Usei um tubo retrátil preto, um LED branco brilhante, um resistor de 220 ohms e um fotorresistor. Solde o resistor de 220 ohms ao cátodo do LED e, em seguida, sele o LED e o fotorresistor dentro do tubo retrátil, voltados um para o outro. Mas veremos isso em uma etapa posterior.

Siga o diagrama de fiação fornecido na próxima etapa. A fiação é bastante direta.

Como o ESP8266 opera a 3,3 V, certifique-se de ligá-lo de forma adequada

Etapa 2: Esquema usando Will-CAD

Esquema usando Will-CAD
Esquema usando Will-CAD

O esquema é bastante simples. Estamos seguindo a ligação padrão de um registrador de deslocamento de 8 bits. Como estou usando dois registradores de deslocamento de 8 bits, eles precisam ser encadeados em seus pinos de 'relógio' e 'trava'.

Como o ESP01 tem apenas dois pinos GPIO, precisamos reutilizar o TX e RX como saídas, o que funciona bem para nossos propósitos. Você pode usar um ESP-12 ou outra versão com mais de dois pinos GPIO se quiser mais controle. Mas isso adicionará outros US $ 2 ao custo do projeto - o que é apenas uma conversa maluca.

Precisamos manter nossos registradores de deslocamento de 8 bits e pinos ESP01 puxados para cima na inicialização, para que eles não façam coisas estranhas ou entrem no modo de programa. Usei três resistores de 3k3, valores maiores ou menores também funcionariam. Este valor foi derivado dos guias falando sobre como alavancar pinos alternativos no ESP01.

ESP01 (ESP8266)

  • TX clock pin 3k3 pullup
  • RX trava pino 3k3 pullup
  • 00 dados seriais 3k3 pullup
  • 02 flutuando

Registro de deslocamento de 8 bits (74HC595H)

  • VCC 3.3V
  • OE 3.3V (este é o pino de habilitação)
  • GND GND
  • CLR GND (isso impede que o pino livre seja liberado)
  • E os LEDs vão para o aterramento.

Etapa 3: Código ESP8266

Código ESP8266
Código ESP8266

O código ESP8266 é bastante direto. Infelizmente, o editor em Instructables é bastante inútil, então você desejará obter o código diretamente do Github.

Projeto "racks-reboot":

github.com/bluemonkeydev/arduino-projects/…

A classe "SensorBase" está disponível aqui. É necessário se você quiser "usar" meu código:

github.com/bluemonkeydev/arduino-projects/…

Existem algumas coisas a serem observadas. O código está muito bem documentado.

  1. Sou um desenvolvedor muito preguiçoso, então coloquei todo o código ESP8266 reutilizável em uma classe chamada "SensorBase". Você também pode encontrar isso no Github, link acima.
  2. Você deve digitar o servidor do broker MQTT, nome de usuário, senha e porta. Eles podem ser encontrados um pouco mais adiante, quando criamos o serviço CloudMQTT.
  3. Você NÃO precisa seguir o formato da sintaxe do meu tópico. No entanto, eu recomendaria segui-lo.
  4. Não há nada de inteligente neste código. É muito pragmático.

Etapa 4: Layout do Perfboard

Layout de Perfboard
Layout de Perfboard

Este projeto será instalado em um minidatacenter, então decidi usar apenas o perfboard para o design final. Perfboard funciona muito bem para projetos como este e é fácil de fazer o layout usando um pedaço de papel milimetrado personalizado. Aqui você verá meu layout. Claro, você pode escolher fazer isso de forma diferente.

Meu projeto precisava de dois registradores de deslocamento de 8 bits, então comecei com seu posicionamento no meio. Eu sabia que meus conectores para optoisoladores seriam simples cabeçalhos femininos por enquanto, embora essa não seja uma solução ideal.

Eu amo LEDs, e isso precisava ter um LED para cada circuito do optoisolador. Eu sabia que a fase de teste seria infinitamente mais fácil se eu pudesse obter um feedback instantâneo diretamente na placa, mas também sabia que aqueles LEDs causariam uma enorme dor na soldagem. E eles foram. Eu não tinha nada menor do que LEDs de 5 mm, então tive que escaloná-los. Meu projeto final fez um padrão em zigue-zague dos cátodos porque eu não queria passar os ânodos sobre os fios terra. Isso provou ser um bom design. Os fios do LED se unem acima dos registradores de deslocamento de 8 bits e passam na parte superior da placa com fios blindados para simplificar.

Para alimentação, eu queria executá-lo a partir de um cabo USB antigo para ser alimentado diretamente de um dos computadores. Isso funcionará bem porque as portas USB normalmente são alimentadas mesmo se o computador estiver desligado. Usei um regulador de tensão linear LM317 para reduzir a potência para 3,3V. Um regulador de 3,3 V também teria funcionado, mas eu não tinha um.

Para evitar o cruzamento de muitos fios, passei alguns fios na parte superior da placa de desempenho, o que tento evitar. Lembre-se de que os orifícios de passagem são condutores, portanto, use fios blindados para evitar curto-circuitos. Essas conexões que ocorrem na parte superior do quadro são mostradas em linhas tracejadas no meu diagrama.

Etapa 5: placa soldada

Placa Soldada
Placa Soldada

Minha placa soldada final saiu muito bem. Como esperado, os LEDs na parte superior deram muito trabalho para serem soldados corretamente sem curtos. Depois de soldar os LEDs e conectores, use o multímetro para determinar se há algum curto. É melhor descobrir agora.

Além dos LEDs, tudo correu muito bem. Eu tive que refazer algumas conexões, mas com alguns pacientes, alguma depuração e um pouco de solda novamente, tudo funcionará bem.

Você verá nesta foto que também conectei os optoisoladores, que usei com um cabo CAT-5 de 8 fios. A razão é que é super barato, fácil de emendar e é bem marcado - mais sobre esses optoisoladores na próxima etapa.

Etapa 6: fazer optoisoladores

Fabricação de optoisoladores
Fabricação de optoisoladores

Obviamente, você não precisa fazer seus próprios optoisoladores. Muitas versões comerciais estão disponíveis por alguns centavos cada e funcionariam melhor, uma vez que acionariam as linhas de força do computador diretamente, sem qualquer resistência. Mas, eu não tinha nenhum optoisolador, então tive que fazer o meu usando um LED, resistor e fotorresistor.

Depois de confirmar que dentro de uma manga de tubo encolhível preto, a resistência "desligada" com menos do que meu medidor poderia ler e a resistência "ligada" era de alguns milhares de ohms, fiz um teste final em uma placa-mãe velha. Funcionou perfeitamente para mim. Suspeito que alguns computadores sejam mais ou menos sensíveis, mas nas placas-mãe que testei essa configuração funcionou bem.

Você vai querer usar um LED branco realmente brilhante para obter o máximo de luz no fotorresistor. Não tentei muitas opções, mas o LED branco brilhante e um resistor de 220 ohms definitivamente funcionam bem.

Etapa 7: Configuração do CloudMQTT

Configuração CloudMQTT
Configuração CloudMQTT
Configuração CloudMQTT
Configuração CloudMQTT
Configuração CloudMQTT
Configuração CloudMQTT

Qualquer serviço MQTT ou serviço IoT semelhante, como o Blynk, funcionaria, mas escolhi usar o CloudMQTT para este projeto. Eu usei o CloudeMQTT para muitos projetos no passado e, como esse projeto será entregue a um amigo, faz sentido criar uma nova conta que também possa ser transferida.

Crie uma conta CloudMQTT e, em seguida, crie uma nova "instância", escolha o tamanho "Gato bonito", pois só o usamos para controle, sem registro. CloudMQTT fornecerá a você um nome de servidor, nome de usuário, senha e número de porta. (Observe que o número da porta não é a porta MQTT padrão). Transfira todos esses valores para o código ESP8266 nos locais correspondentes, garantindo que o caso esteja correto. (sério, copie / cole os valores)

Você pode usar o painel "Websocket UI" no CloudMQTT para ver as conexões do seu dispositivo, apertos de botão e, em um cenário estranho, se você receber um erro, uma mensagem de erro.

Você VAI precisar dessas configurações ao configurar o cliente MQTT do Android também, portanto, anote os valores se precisar. Felizmente, sua senha não é muito complicada de digitar no telefone. Você não pode definir isso em CloudMQTT.

Etapa 8: Cliente Android MQTT

Cliente Android MQTT
Cliente Android MQTT
Cliente Android MQTT
Cliente Android MQTT
Cliente MQTT Android
Cliente MQTT Android
Cliente MQTT Android
Cliente MQTT Android

Qualquer cliente MQTT Android (ou iPhone) funcionaria, mas eu gosto do MQTT Dash. MQTT Dash é fácil de usar, muito ágil e tem todas as opções de que você precisa.

Depois de instalado, configure um servidor MQTT, preencha o servidor, a porta, o nome de usuário e a senha com os valores da sua instância, NÃO com suas informações de login para CloudMQTT. Você pode usar qualquer nome de cliente que desejar.

Se você digitou tudo corretamente, ele se conectará automaticamente ao servidor MQTT e mostrará uma tela em branco, já que você ainda não configurou nenhum botão, texto ou mensagem. Na tela em branco, você vê um "+" no canto superior direito, clique nele e selecione "Selecionar / Botão". Adicionaremos um "botão Selecionar /" por computador, portanto, 8 ou 16 ou menos.

Se você OBTER um erro de conexão, você tem um dos valores errado. Volte e verifique novamente

Cada computador usará o tópico que corresponde aos valores especificados em seu código. Se você seguisse minhas convenções, eles seriam "cluster / rack-01 / computer / 01". Seria melhor alterar os valores "on" e "off" para corresponder ao nosso código. Em vez de "0" e "1", use os valores "on" e "off", respectivamente. Eu também recomendaria usar QoS (1), pois estaremos esperando uma confirmação do servidor.

Depois de adicionar um, você pode manter pressionado e usar a opção "clonar" para criar um grupo e, em seguida, alterar o nome e o tópico.

Bastante fácil.

Etapa 9: Como colocar seu ESP8266 em Wifi

Colocando seu ESP8266 em Wifi
Colocando seu ESP8266 em Wifi

Usando o módulo ESP8266 Wifi Manager, é muito fácil colocar nosso dispositivo em Wifi. Se você usou minha classe SensorBase, ela já vem embutida. Caso contrário, siga as instruções na página do Wifi Manager.

O Wifi Manager tentará se conectar ao seu SSID na inicialização, o que não é possível, pois você nunca informou seu SSID, então ele irá automaticamente para o modo de ponto de acesso (ou modo AP) e exibirá uma página da web simples solicitando seu SSID & Senha. Usando seu telefone ou laptop, conecte a rede sem fio recém-disponível com o nome SSID "ESP_xxxxxx", onde "xxxxxx" é uma sequência aleatória (não realmente aleatória). (As instruções completas podem ser encontradas na página do Gerenciador de Wifi.)

Uma vez conectado, abra seu navegador da web e aponte-o para 192.168.4.1, digite seu SSID e senha e clique em salvar.

Agora você está na Internet e seu dispositivo IoT tem a parte "I" funcionando!

Etapa 10: Conexão Final e Teste

Conexão Final e Teste
Conexão Final e Teste

Tudo feito.

Para conectar tudo, localize o cabo do botão liga / desliga do computador onde ele encontra a placa-mãe. Você deve ver duas linhas de cabeçalhos com um monte de fios e conectores. Normalmente, eles são rotulados muito bem. Desconecte o switch e conecte o plugue do optoisolador. Coloquei alguns plugues "Dupont" no meu, então eles se conectaram exatamente como o cabo de alimentação. A polaridade nesta extremidade não importa, mas certifique-se de que a polaridade da outra extremidade está correta - aquela que vai para sua placa personalizada.

E funciona perfeitamente. Usando o cliente MQTT Dash (ou ferramenta semelhante), você pode ligar seus computadores remotamente.

Pressione o botão de verificação correspondente em seu aplicativo e, assim que o aplicativo receber uma resposta do servidor MQTT com a mensagem "desligado", o botão voltará a ser desmarcado.

Isso está funcionando há algumas semanas sem problemas. Notamos que o tempo para puxar o botão para baixo nos computadores precisava ser estendido. Acabamos com 1 segundo completo. Esse valor pode ser exposto como um valor configurável por meio do servidor MQTT ou você pode conectar o valor fisicamente, dependendo de seu desejo.

Boa sorte e me diga como foi o seu.

Recomendado: