Índice:
- Etapa 1: História por Trás …
- Etapa 2: como funciona
- Etapa 3: Material e ferramentas
- Etapa 4: consertar as coisas juntos
- Etapa 5: conecte as coisas
- Etapa 6: Conectando os Sensores
- Etapa 7: Software do controlador
- Etapa 8: Conclusão
Vídeo: Controlador de rede do sensor de temperatura tolerante a falhas: 8 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Este Instructable mostra como converter uma placa Arduino Uno em um controlador de propósito único para um conjunto de sensores de temperatura DS18B20 capazes de isolamento automatizado de sensores defeituosos.
O controlador pode gerenciar até 8 sensores com Arduino Uno. (E muito mais com Arduino Mega ou com uma ligeira modificação de software.)
Etapa 1: História por Trás …
Há alguns anos, instalei uma rede de sensores de temperatura DS18B20 na estufa de meu pai para meu controlador de aquecimento baseado em pi. Infelizmente, a confiabilidade do controlador era baixa, principalmente devido às frequentes interrupções do sensor. Tentei várias configurações - alimentação parasita, alimentação direta, conexão da rede ao pi e também conexão à placa personalizada baseada em Atmega (cujo objetivo principal era acionar motores de válvula).
O que é pior, a confiabilidade da rede do sensor caiu principalmente durante as noites de inverno, enquanto quase não havia problemas no verão! O que diabos está acontecendo aqui?
Para investigar qual sensor causa o problema, surgiu a necessidade de ligá-los / desligá-los um a um ou habilitar qualquer combinação deles.
Etapa 2: como funciona
O DS18B20 (o sensor de temperatura) usa o protocolo proprietário de 1 fio que permite que vários sensores compartilhem o link de dados comum (aquele único fio). Esse link de dados comum é conectado a um dos pinos GPIO do Arduino e a + 5 V por meio de um resistor pull-up - nada incomum, muitos instrutíveis cobrem essa configuração.
O truque é que os cabos de alimentação de cada sensor sejam conectados aos próprios pinos GPIO (dedicados), para que possam ser ligados e desligados separadamente. Por exemplo, se um sensor tem o cabo Vcc conectado ao pino # 3 e GND ao pino # 2, definir o pino # 3 como HIGH fornece energia para o sensor (sem surpresa), enquanto definir o pino # 2 como LOW fornece aterramento (uma pequena surpresa para mim). Definir ambos os pinos para o modo de entrada isolará (quase) completamente o sensor e sua fiação - não importa que falha (por exemplo, um atalho) aconteça dentro dele, não irá interferir com os outros.
(É justo dizer que conectar o fio de dados a outra coisa conectada de alguma forma ao Arduino irá de fato causar interferência, mas é quase impossível na minha configuração).
Observe que o DS18B20 consome até 1,5 mA enquanto um pino do Arduino pode fornecer / absorver até 40 mA, portanto, é perfeitamente seguro alimentar sensores por pinos GPIO diretamente.
Etapa 3: Material e ferramentas
Material
- 1 placa Arduino UNO
- 3 cabeçalhos de pino fêmea: 1 × 4, 1 × 6 e 1 × 6 (ou mais - eu os cortei de um cabeçalho 1 × 40)
- uma cola
- um pedaço de fio de cobre nu (pelo menos 10 cm)
- uma fita isolante
- consumíveis de soldagem (fio, fluxo …)
Ferramentas
- equipamento de solda (ferro, suportes, …)
- alicate de corte pequeno
Etapa 4: consertar as coisas juntos
Cole os cabeçalhos de pino fêmea nos cabeçalhos da placa Arduino:
- Cabeçalho 1 × 4 próximo ao cabeçalho de pino "analógico", lado a lado com os pinos A0-A4
- Cabeçalho 1 × 6 próximo ao primeiro cabeçalho de pino digital, lado a lado com os pinos 2–7
- Cabeçalho 1 × 6 próximo ao segundo cabeçalho de pino digital, lado a lado com os pinos 8–13
Observe que meus cabeçalhos são um pouco mais longos … não tem contras e nem prós, suponho.
Etapa 5: conecte as coisas
Fiação da linha de barramento de 1 fio:
- Conecte todos os terminais de cabeçalhos colados no lado "digital" (adjacente aos pinos 2 a 13) soldando um pedaço de fio desencapado a eles
- Solde a extremidade deste fio ao cabo do pino SCL (conectado internamente ao A5)
- Conecte todos os terminais do coletor colado no lado "analógico" (pinos A0-A3) soldando um pedaço de fio desencapado a eles
- Solde a ponta deste fio nos terminais A4 e A5 (usei A5 e A6 porque tenho uma placa que tem A6 e A7)
- Solde um resistor 4k7 entre a outra extremidade deste fio e o cabo do pino de +5 V
Notas:
- Os pinos A0-A5, embora marcados como "analógicos", também podem ser usados como pinos digitais GPIO.
- O pino SCL no lado "digital" é conectado internamente ao A5 no lado "analógico"; conectado aos cabeçalhos, isso forma a linha de barramento de 1 fio
- A4 (usado como entrada analógica) mede a tensão do barramento para fins de diagnóstico. Por isso está diretamente conectado ao barramento.
- Usei A6 em vez de A4 porque tenho uma placa que tem A6 e A7; originalmente, eu queria usar A7 como o barramento mestre de 1 fio, mas esses dois pinos não podem ser configurados para serem GPIOs digitais.
- Para evitar a conexão incorreta dos conectores do sensor, você pode omitir / cortar o contato não utilizado (não conectado a nenhum fio) de cada conector macho e inseri-lo no orifício correspondente no cabeçalho do pino colado.
Etapa 6: Conectando os Sensores
Você acabou de criar uma matriz de oito soquetes 2 × 2. Você pode soldar e montar conectores Dupont 2 × 2 aos cabos do sensor e conectá-los a esses soquetes. O software configura os pinos de forma que os pinos pares sejam pinos GND e os pinos ímpares sejam pinos Vcc. Para cada sensor, o pino Vcc é apenas o pino GND + 1. Um dos outros dois pinos do soquete 2 × 2 (um dos dois no conector colado e soldado) é para o fio de dados do sensor. Não importa qual você usa.
Etapa 7: Software do controlador
O esboço SerialThermometer executa o controlador. Você pode encontrá-lo no github. Abra e carregue usando o Arduino IDE.
Passo a passo:
- Abra seu Arduino IDE e instale a biblioteca DallasTemperature e todas as suas dependências via Sketch | Incluir Biblioteca | Gerenciar bibliotecas.
- Clone o repositório git. Se não estiver familiarizado com o git, baixe e descompacte este zip em qualquer lugar do seu computador.
- Abra o esboço SerialThermometer em seu Arduino IDE.
- Conecte sua placa Arduino modificada ao seu computador por cabo USB (forma padrão)
- Carregue o esboço usando seu IDE Arduino
- Abra o Serial Monitor por meio de Ferramentas | Monitor Serial
- Você deve ver a saída de diagnóstico contendo várias medições físicas seguidas por leituras de temperatura - cada soquete do sensor em uma única linha. Se a contagem do sensor for diferente quando ativado separadamente e quando todos ativados juntos), o diagnóstico ocorre em loop até ser resolvido. Mas não se preocupe, o diagnóstico também fornece medições de temperatura!
Consulte a imagem anotada para obter mais detalhes sobre a saída de diagnóstico.
Etapa 8: Conclusão
Tenho a forte sensação de que minhas falhas de rede de sensores foram causadas por alta capacitância de minha fiação longa - cerca de 10 m de cabo LIYY 314 (3 × 0, 14 mm²) para cada sensor. Meus experimentos mostraram que a comunicação é interrompida se houver capacitância próxima ou superior a 0,01 μF entre o barramento de 1 fio e o aterramento, acho que porque o resistor pull-up 4k7 não é capaz de puxar o barramento para + 5 V rápido o suficiente para cumprir os limites do protocolo.
Na minha configuração, isso acontece quando mais de 3 sensores são conectados juntos. Então, o controlador entra em loop no ciclo de diagnóstico, medindo a temperatura sensor a sensor (o que é legal também …)
Mas também o quinto sensor (28: ff: f2: 41: 51: 17: 04: 31) parece muito doente (talvez soldagem errada), então posso investigar mais a fundo!
Recomendado:
Ventilador de mesa reciclável (à prova de falhas): 10 etapas (com fotos)
Ventilador de mesa reciclável (à prova de falhas): Este é um instrutivo sobre como fazer um ventilador de mesa extremamente simples que pode ser reutilizado em todos os copos de bebidas que você provavelmente irá jogar fora (provavelmente copos de chá Boba para mim), e uma alternativa para se refrescar durante um dia quente e ensolarado. Isso com
Sensor de temperatura da rede doméstica: 7 etapas
Sensor de temperatura de rede doméstica: O que você precisa saber para fazer este projeto: Você precisa saber sobre: - Algumas habilidades eletrônicas (soldagem) - Linux - IDE Arduino (você precisará atualizar placas adicionais no IDE: http: // arduino.esp8266.com/stable/package_esp8266 …) - atualizando
Rede de sensores de temperatura: 6 etapas
Rede de sensores de temperatura: Temperatura e umidade são dados vitais em seu laboratório, cozinha, linha de fabricação, escritório, robôs assassinos e até mesmo em sua casa. Se você precisa monitorar vários locais ou salas ou espaços, você precisa de algo que seja confiável, compacto, preciso e af
Inversor conectado à rede DIY (não alimenta a rede) Alternativa de UPS: 7 etapas (com fotos)
Inversor DIY Grid Tied (não alimenta a rede) Alternativa de UPS: Este é um post de acompanhamento do meu outro Instructable sobre como fazer um inversor de rede que não realimenta a rede, uma vez que agora é sempre possível fazer isso em certas áreas como um projeto DIY e alguns lugares não permitem a alimentação lá g
Controlador de rede IoT. Parte 9: IoT, automação residencial: 10 etapas (com imagens)
Controlador de rede IoT. Parte 9: IoT, Automação residencial: Isenção de responsabilidade LEIA ISTO PRIMEIRO Este instrutivo detalha um projeto que usa energia da rede elétrica (neste caso UK 240VAC RMS), embora todo cuidado tenha sido tomado para usar práticas seguras e bons princípios de design, sempre há o risco de potencialmente letal eleger