Eu decidi escrever um artigo sobre um dispositivo muito simples feito em duas noites. Ele resolveu um problema de longa data, pelo qual estou muito feliz e o uso até hoje. Funcionou corretamente por cerca de 3 meses. Na verdade, foi o que aconteceu no final. Quem estiver interessado, por favor, sob o gato.

Então você viu o resultado. Vamos começar a história de longe.
Eu tenho um suporte para laptop (para mim, ele serve como o computador principal e, portanto, está sempre ligado). E o suporte não é simples: para esfriar, você pode conectar 3 coolers, conectar o suporte ao USB e os coolers girarão. Se os resfriadores forem instalados com sucesso, eles cairão 7 graus do processador. Em geral, a coisa é necessária. Tudo ficaria bem, mas os resfriadores na bancada, francamente mais ou menos, sempre giram com força total - o que implica que, em silêncio, há um farfalhar monótono constante. Era como se alguém tivesse iniciado uma pequena motosserra no suporte. Aqui está o verdadeiro culpado do artigo:

Uma bela noite, enquanto as encomendas chegavam com aliexpres, eu "gostei" do canto do estande em silêncio. E ele firmemente decidiu - o suficiente para mim. Foi decidido gerenciar o suporte em usb. A mão já estendeu a mão para bater em algum tipo de stm32f1 com o hardware usb. E então me dei conta - existe um digispark (o mesmo attiny85, apenas no quadro) Barato, já com uma ligação para o software usb, ideal para esta tarefa - clicar em um transistor. Espalhei para ele um lenço pequeno e rápido com um mosfet controlado por um dos pinos e um lugar para um LED RGB.
Aconteceu assim:

Sob o spoiler, há uma explicação dos detalhes no quadro e uma imagem para impressão, se alguém repetir:
Imagem da lista de peças e da placa de circuito impresso
U2 - irlml6244trbpf - mosfet
R3-0603 10k resistor
R1, R2 - 0603 resistor de 220 ohm
R4 - Resistor de 0,25 W 220 ohm
O U6 é um LED RGB, mas não solda. Na minha opinião, ele é supérfluo.
Observe que a mãe usb nesta placa está divorciada na camada errada!Abaixo da imagem a ser impressa, há uma largura de impressão de 0,93 polegadas.

Imprimi-o em papel transparente para impressoras a laser em 2 cópias, colei-o em uma máscara fotográfica completamente opaca. Esse é um truque para quem tem problemas fotorresistentes. Cortei um pedaço de fibra de vidro, colei um fotorresistente na água, alisei com um cartão de plástico e passei a ferro a 60 graus. Foto:

A seguir, veio a exposição e a gravação em um limão e peróxido, depois de remover o fotorresistente e, finalmente, perfurar e estanhar. O resultado final antes da vedação do componente:

Os componentes foram soldados (sim, o que soldar - um conector usb, um par de smd, sim o próprio digispark) Não havia ombreiras na fiação - marquei minha mãe usb na camada errada, o que a fez virar de cabeça para baixo. Em geral, eu preferiria ter feito a placa conectada ao computador por um fio fino, mas é assim, a propósito. O resultado que você viu na primeira foto.
Restava escrever o código. No começo, eu queria usar makefile e C puro, mas decidi que o arduino ide é mais rápido. Eu fiz isso A única coisa é que o digispark chinês não quis ir via usb até que eu remendasse o bootloader hexadecimal oficial com meu programador. Depois disso, quis escrever código com controle pid e calço de fã, mas mudei de idéia. Como resultado, no digispark, o código que apenas escuta a porta serial virtual e, se uma aparecer lá, liga os ventiladores, se zero a desativa.
Agora havia uma peça para o computador. Eu tenho um laptop no linux, então escrevi um script bash e o coloquei no autoload, tudo o que ele faz é procurar nosso digispark na lista de dispositivos, ele analisa a saída do comando dos sensores a cada N minutos e se a temperatura> 80 envia 1, se <60 envia 0 .
O dispositivo funcionou de forma estável por 3 meses. A vida se tornou mais agradável. Abaixo está o código do script bash.