Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Muitas vezes preciso conectá-lo ao meu PC do trabalho, mas não gosto de deixá-lo ligado o tempo todo. O problema é que meu PC antigo não suporta WOL. No entanto, ele pode ser colocado em hibernação e reativado com a tecla liga / desliga do teclado. No entanto, sem ninguém em casa além do cachorro para estimulá-lo e então …
KiKi the KeyboardBot nasceu.
Ele será vinculado ao assistente inicial sobre MQTT e tem uma página da web autônoma muito simples integrada também, não é bonita, mas dá conta do recado.
Suprimentos
Filamento 3D PrinterPLA
Cortadores de arame
Decapantes de arame
Ferro de solda
Wemos D1 Mini
Micro 9G Servo
Etapa 1: Imprimindo a caixa, a caixa e a extensão da buzina do servo
Em primeiro lugar, comece imprimindo o caso, forneço o arquivo SKP se você quiser mexer nele no Sketchup (Maker Edition). Também empacotei o arquivo STL se você quiser apenas ir em frente e carregá-lo em seu divisor e imprimi-lo sem modificações.
Eu imprimi o case sem os suportes como o primeiro que imprimi foi uma chatice para removê-los, a falta de suportes funcionou bem, houve um pouquinho de flacidez, mas uma vez que está tudo montado está bom.
Eu imprimi com uma temperatura de leito de 50 e uma temperatura de extrusora de 200, que era a recomendada para o filamento que eu estava usando.
Como acontece com o caso, também forneço os arquivos SKP e STL para a sirene do servo, ela não imprimiu corretamente para mim, no final eu apenas cortei o ferrolho de montagem e apenas colei, o cabo amarrou em um dos originais chifres enquanto eu estava impaciente para fazer isso funcionar.
Etapa 2: Montagem
Remova o cabeçalho de 3 pinos do final do cabo Servo.
Pique o cabo através do recesso do servo na caixa e para fora pelo orifício de saída na lateral.
Agora, cuidadosamente, coloque o cabo ao lado do servo e coloque-o sobre a caixa de modo que o cabo fique no recesso dentro do orifício para o servo, puxe o cabo bem apertado e empurre suavemente o servo para casa, deve ser um bom ajuste confortável.
Coloque o cabo na reentrância do lado de fora da caixa e insira-o na reentrância para o D1 Mini. Enrole o cabo de volta e puxe-o de volta para que pareça bem organizado no estojo.
Deslize o D1 Mini em sua caixa com o módulo WiFi para cima. O chumbo deve ficar sobre o topo do módulo e, em seguida, realimentar sob o PCB.
Agora você pode cortar o cabo do servo em um comprimento aceitável.
Remova o D1 Mini empurrando-o do lado oposto do PCB para o soquete USB.
Uma vez removido, separe, descasque e estanhe os três fios do eletrodo.
Solde-os na parte inferior da placa de circuito impresso na seguinte ordem.
Vermelho -> 5V
Marrom -> GND
Laranja -> D4
Os três pinos são todos adjacentes um ao outro, então é fácil manter o chumbo arrumado.
Agora, dobre suavemente a guia sob a placa em direção ao centro mantendo-a bem plana, role-a sobre a parte superior da placa e deslize suavemente a placa para casa. Não empurre o D1 totalmente para dentro, deixe-o para fora o suficiente para que seja fácil conectar o cabo USB e você possa acessar o botão de reset.
Se você conseguiu imprimir o chifre para que ele se encaixe no cabrestante do servo, ajuste-o agora de forma que o topo do chifre fique mais ou menos paralelo ao tampo de trabalho. Fixe-o no lugar com o pequeno parafuso que acompanha o servo.
Se você não conseguiu imprimir o chifre, corte o ferrolho e fixe-o em um dos chifres fornecidos, super cola e algumas braçadeiras pequenas fizeram o trabalho para mim.
Etapa 3: piscando
Descarregue o arquivo ino em seu arquivo de projetos do Arduino em uma pasta chamada KiKi.
Abra o arquivo no IDE do Arduino.
Edite as linhas a seguir para se adequar à configuração do seu Home Assistant.
25 const PROGMEM uint16_t MQTT_SERVER_PORT = 1883; (se você alterou a porta padrão)
26 const PROGMEM char * MQTT_CLIENT_ID = "HostName";
27 const PROGMEM char * MQTT_USER = "MQTTUSER";
28 const PROGMEM char * 28 MQTT_PASSWORD = "MQTTPASS";
Para os tópicos MQTT STATE e COMMAND, gosto de solicitá-lo por localização / dispositivo / (status / switch), mas você pode usar qualquer convenção que desejar.
29 const char * MQTT_ROBOT_STATE_TOPIC = "localização / pc / status"; const char *
30 MQTT_ROBOT_COMMAND_TOPIC = "localização / pc / switch";
Agora edite essas linhas adicionais para definir o nome do host dos seus dispositivos.
159 wifi_station_set_hostname ("HOSTNAME");
169 if (! WifiManager.autoConnect ("HOSTNAME")) {
Defina o nome de domínio totalmente qualificado de seu servidor MQTT.
175 WiFi.hostByName ("MQTTSERVER", MQTT_SERVER_IP);
Conecte o D1 Mini ao seu PC e selecione a porta COM na qual ele está montado.
Abra o Monitor Serial.
Faça upload do arquivo.
Assim que o upload for concluído, verifique o monitor serial.
Se for uma nova placa, não haverá configurações e você terá que se conectar ao AP sem fio criado, em seguida, selecione a rede sem fio correta e digite a senha.
Quando você salva os detalhes de volta, ele os grava no dispositivo e os reutiliza sempre que for reiniciado.
Agora que está conectado à sua rede sem fio, você verá no monitor serial uma linha semelhante a …
192.168.1.xxx ou qualquer que seja o alcance de sua rede.
Se você se conectar a ele com um navegador, verá uma página da web muito simples com um único botão que, quando clicado, ativará o braço servo.
Etapa 4: Ajustando a posição inicial e ativada do servo
Eu coloco um grande pedaço de bluetack na parte de baixo da caixa e, em seguida, espremo-o na minha mesa para que a buzina do servo fique acima do centro da tecla a ser pressionada.
Inicialmente alinho com uma das outras teclas, não a power, pois toda vez que testo ela coloco o pc em hibernação.
Para o meu teclado, o Logitech K260, eu defini a posição inicial para 135 e esta posiciona a sirene do servo logo acima da tecla.
Defino o local ativado para 120, o que empurra o botão o suficiente para baixo para ter certeza de que está realmente ativado.
Obviamente, você terá que mexer nessas configurações para configurá-las bem para o seu teclado, é só ajustar primeiro a configuração da posição inicial, fazer o upload do esboço e examiná-lo.
Quando estiver satisfeito com a posição inicial, vá em frente e defina a posição ativada, no meu teclado está cerca de 15 graus abaixo da posição inicial. Se você alterar sua posição inicial, tente primeiro ajustar sua posição ativada para a posição inicial - 15. Faça upload para o código no D1 e veja como funciona. Não leva muito tempo para resolver isso.
A vantagem de usar o bluetack é que ele manterá o dispositivo perfeitamente no lugar depois que você tiver ajustado suas posições corretamente, mas se a posição ativada for muito baixa, ele simplesmente retirará o dispositivo de sua mesa e não causará danos.
Etapa 5: Conectando-o ao Home Assistant
Na instância do assistente doméstico, abra o arquivo em que você armazena as configurações de chave e adicione o seguinte.
- plataforma: mqtt
nome: "SEU DISPOSITIVO"
state_topic: "localização / dispositivo / status"
command_topic: "localização / dispositivo / chave"
payload_on: "ON"
payload_off: "OFF"
otimista: falso
Certifique-se de editar YOURDEVICE para algo adequado e de que os tópicos de estado / comando correspondem ao que você definiu no código ino da etapa anterior.
Agora você vai querer adicionar o dispositivo em sua configuração para que apareça na interface HA.
Eu listo todos os meus grupos e definições de grupo em configuration.yaml, então simplesmente adiciono o dispositivo ali ao longo das linhas de …
estudo: nome: Estudo
entidades:
- switch.study_pc
Verifique se sua configuração está segura inserindo
/ srv / homeassistant / bin / hass --script check_config -c /home/homeassistant/.homeassistant/
Se você não encontrar erros, reinicie o HA
systemctl restart home-assistant @ homeassistant.
Depois que tudo estiver carregado, você verá um novo botão na interface do HA que ligará ou desligará seu PC com a magia do KiKi.
PS, se você acessar uma máquina por ssh você pode ativar KiKi com wget…
wget -qO- https:// ip of kiki /? Req = 1> / dev / null
ou colocá-lo em um arquivo de script bash chamar o script, evitando que você tenha que lembrar os argumentos.