Índice:

Hotstuff: 9 etapas
Hotstuff: 9 etapas

Vídeo: Hotstuff: 9 etapas

Vídeo: Hotstuff: 9 etapas
Vídeo: Etapa - Hot Stuff (Dona Summer cover) 2024, Novembro
Anonim
Coisa quente
Coisa quente

Com o objetivo de se tornar o maior termohigrômetro gráfico pequeno disponível para um Arduino Uno.

Os aplicativos incluem:

  • Monitor de temperatura de bebês / berçários
  • Monitor de temperatura externo
  • Monitor de estufa
  • Verificação atmosférica externa
  • Verificação e monitoramento de HVAC em casa / escritório
  • Monitor / controle da incubadora

NOTA: Este não é um dispositivo médico e não substitui o planejamento adequado e as condições de trabalho!

- Recursos

  • Totalmente gratuito para uso não comercial.
  • Vem com uma fonte simulada de 7 segmentos supervelocidade "Rose Digital" e os 16 segmentos com alfa completo, "Astro Nerd" (veja licenciamento para limitações nesta parte do software, é por uma boa causa, nós prometemos)
  • Atualizações gratuitas quase totalmente intermitentes (1)
  • Gráfico de variação automática cobrindo toda a gama dos sensores DHT11 e DHT22
  • Usa um DHT11 (em uma pitada, não experimentamos) ou DHT22 para obter a temperatura e a umidade relativa.
  • Exibe a umidade relativa e a temperatura em Fahrenheit ou Celsius
  • Exibe pontos de orvalho (condensação) E geada (gelo em condensação) nas unidades atuais
  • Avisos gráficos piscantes de umidade e ar seco.
  • Fontes de exibição proporcionais personalizáveis pelo usuário (opção)
  • Faixa de exibição principal -9 -> 99 F ou -9 -> 80C (aviso de faixa se excedido)
  • Umidade de 0% -> 99% UR.
  • Registra a temperatura e umidade máximas e mínimas desde a reinicialização
  • Inclui cálculos de Steadman e alertará sobre condições de trabalho desconfortáveis ou perigosas
  • Requer um mínimo de peças Uno, blindagem TFT de 3,5"
  • F / C opcionalmente comutável
  • Controle de aquecedor programável (para incubadoras, etc.)
  • Simples de construir
  • Código altamente modular
  • Dissemos que era grátis?

(1) Limitações de buffer no UNO significam que o gráfico pisca brevemente durante as atualizações.

Suprimentos:

Arduino Uno R3 (ou clone chinês)

  • 1 monitor de temperatura e umidade DHT22 (eBay / Amazon)
  • 1 escudo TFT 3,5 "com tela de toque resistiva e slot para cartão SD (ver texto).
  • Um interruptor deslizante SPST (opcional).
  • Um PC com USB - para carregar o programa.
  • Uma fonte de alimentação de 9-12v.
  • Cortadores laterais de boa qualidade
  • Ferro de solda e solda. Pinças para dissipadores de calor. Fios de ligação.
  • Opcionalmente, um gabinete (os gabinetes do Arduino Uno não têm espaço suficiente para uma proteção da tela).
  • Tubo termorretrátil fino (para revestir e isolar os pontos de solda).

Etapa 1: O que torna isso especial?

O que torna isso especial?
O que torna isso especial?

Mas espere, você viu as fotos e este é apenas mais um medidor de temperatura e umidade, certo? Você pode obtê-los no eBay por aproximadamente o mesmo custo que o escudo TFT do Arduino que usamos para este projeto.

Bem, não exatamente … deixe-me explicar.

Coronavírus, Covid-19, SARS-Cov-2 … todas coisas muito assustadoras, uma das melhores coisas que podemos fazer agora é cuidar de nossos pulmões e em nenhum lugar é mais fácil fazer isso em casa. Se trabalharmos em um escritório moderno, ele deve ter um bom HVAC e a maioria dos carros modernos tem excelentes filtros que retiram a maior parte das partículas maiores do ar externo antes de entrarem na cabine. Isso deixa casa … o único lugar onde se sentir seguro e onde as nojentas mais comuns se escondem. Embora seja possível pegar a doença do Legionário com um chuveiro sujo (sim, é sério!), Isso é bastante incomum, felizmente.

Mas há algo muito mais comum que a maioria de nós nem pensa duas vezes, porque vivemos com isso durante toda a vida.

Bolor.

Mais especificamente, esporos de fungos. Pense neles como sementes microscópicas que são produzidas por minúsculos crescimentos fugal que escondem o escuro e se dispersam livremente no ar - muitas vezes sem a necessidade de ser perturbado - e podem encher nossas casas com tudo, desde aquelas manchas pretas nojentas nos cantos úmidos até podridão seca e muito mais.

O mofo não danifica sua propriedade (o que é ruim o suficiente), ele pode causar irritação em todas as vias aéreas - de nosso nariz e seios da face agora até os próprios alvéolos, os milhões de pequenos sacos que revestem nossos pulmões - eles são tão pequenos que esticados, eles cobririam aproximadamente uma quadra de tênis. É uma grande área para um organismo microscópico entrar, se esconder e causar todo tipo de destruição.

E tem mais …

No outro extremo da escala, o ar seco também pode causar estragos. A superfície de nossos pulmões é coberta por uma película muito fina de muco aquoso - está lá para ajudar a manter as nojentas à distância e faz um ótimo trabalho, mas se o ar estiver muito seco, esse muco começa a secar também e isso torna mais difícil respirar.

E tem ainda mais …

Os humanos naturalmente se resfriam por evaporação - nós suamos (em um dia seco e quente, é imperceptível), mas à medida que a umidade aumenta, as pessoas descobrem que a água apenas "fica" em sua pele e elas começam a ficar quentes. Muito quente.

Em algumas partes do mundo (Austrália e trópicos), esse é um problema tão grande que os trabalhadores precisam estar cientes da "temperatura efetiva de trabalho" - os canais climáticos costumam se referir a isso como a temperatura "agradável", porque como o calor / a umidade aumenta, a chance de insolação e até a morte torna-se uma possibilidade muito real.

Para alguma justificativa e outras leituras, consulte a Wikipedia ou mergulhe!

en.wikipedia.org/wiki/Heat_index

Se você pensa, "isso nunca vai acontecer comigo", considere que com a mudança climática isso está se tornando uma possibilidade muito real em latitudes além de Seattle e trabalhando em um dia quente "abafado" você pode estar arriscando sua saúde sem perceber.

A exaustão pelo calor é extremamente desagradável e a insolação é uma emergência médica séria.

Portanto, este dispositivo não é apenas um termômetro / higrômetro gráfico sofisticado, ele tem alarmes embutidos para alertar sobre as condições de insolação, o ajudará a decidir o quão bem ventilada sua casa é também e até parece muito inteligente (se nos dizemos).

Com tudo isso dito, este dispositivo não se destina a fins médicos e não deve ser usado onde a saúde e a segurança dos trabalhadores possam ser comprometidas. Mesmo se pudéssemos certificar nosso código (não podemos), o próprio hardware não carrega essa garantia. Isso é para acabar com toda aquela confusão legal, mas deve dar a você uma ideia de como sua casa é saudável!

A construção é tão fácil quanto parece, embora você precise "cortar" o escudo TFT porque vamos usá-lo de maneiras que os designers nunca pensaram.

NOTA: Como alguém levantou esse problema, é importante notar que os sensores DHT22 têm uma precisão declarada de ± 0,5 ° C e ± 1% Rh, o que é suficiente para muitas aplicações, mas não se a temperatura / umidade for crítica. Planejamos adicionar alguma calibração pós-montagem mais tarde. O DHT11 tem uma medição de temperatura um pouco menos precisa de ± 1,0 ° C, mas geralmente deve refletir bem o nosso ambiente.

Etapa 2: massacrar o TFT

Abatendo o TFT
Abatendo o TFT

Esta é a única parte realmente complicada e é o tipo de coisa que você precisa acertar, porque a menos que você esteja trabalhando um pouco com um ferro de solda … bem, quanto menos falar sobre isso, melhor.

Este projeto * deve * funcionar com muitos shields desta resolução e tipo - e o software funcionará com qualquer ATMega 328 ou maior (o software se encaixa muito bem, aproximando-se de 99% dos 28K disponíveis até o momento) e nós reduzimos tantos recursos quantos o espaço permitir.

Verifique se tudo funciona antes de começar a cortar os pedaços

  1. Teste o ajuste da tela ao Arduino - o slot uSD fica no final, onde as portas de alimentação e USB entram. A luz de fundo acenderá quando estiver ligada, mas, caso contrário, não fará nada.
  2. Observe as etiquetas dos pinos para o acesso do cartão uSD. Não precisaremos deles, então vamos dar um corte de cabelo bem curto na prancha.
  3. Em nossa placa, os pinos-alvo são marcados como SD_SS, SD_DI, SD_DO e SD_SCK no final de J1.
  4. Você pode deixar ou remover os dois últimos pinos - nós cortamos os de nossa placa.
  5. Não corte mais nada ou o LCD não funcionará! Por exemplo, LCD_D0 (uma das linhas de dados) está muito próximo, então você precisa ter muito cuidado aqui.
  6. Verifique duas vezes, corte uma vez ou espere que você possa soldar uma nova plataforma!

Nota: pode ser possível usar "multiplex" os pinos SPI que usamos aqui e armazenar dados no cartão SD, mas isso é algo que deixaremos para outros construtores.

Etapa 3: Montagem / Soldagem do Sensor

Montagem / Soldagem do Sensor
Montagem / Soldagem do Sensor

Embora não seja estritamente necessário, soldar as conexões é a melhor maneira de transformar este projeto em algo que você possa montar e esquecer.

Soldar o DHT22 só deve ser tentado por alguém com habilidades de soldagem razoáveis. O sensor é altamente sensível a mudanças de temperatura e umidade. Uma pessoa sem nome superaqueceu ligeiramente os pinos de solda nos nossos (tosse, tosse) e enviou o sensor tão fora de calibração que ele se recusou a funcionar até que o tivéssemos "cozido" conforme as instruções do fabricante para impedi-lo de produzir leitura erros. A melhor opção para a maioria das pessoas é fornecer um DHT11 / 22 pré-montado com um conector projetado para cabos de salto.

Os DHT22s usam um link serial serial de fio único para se comunicar com o MCU - com uma faixa de potencial de mais de 10M (> 32 pés) sem condicionamento de sinal para que o detector possa ser colocado a alguma distância do Arduino.

Transpirou (depois de estudar os esquemas) que o cabeçalho do programador serial em circuito de 6 pinos (ICSP) no final da placa está conectado aos pinos SPI que foram usados pela blindagem para sua leitura / gravadora de cartão SD. O uso desses pinos não afetará sua capacidade de programar a placa via USB no futuro, pois eles são usados principalmente para depurar e programar o Uno com um programador serial (FDTI). Como observação lateral, somos gratos a Steve Wood, da AudioSpectrum Analyzers no Reino Unido, por nos fornecer um sobressalente quando o nosso desapareceu na vasta pilha de bits de Marc.

Se você tiver um alicate de bico longo de boa qualidade, é possível dobrar os fios para que possam receber um cabeçalho DuPont, mas a soldagem é o método preferido. Com cuidado (e mão firme), é perfeitamente possível soldar o DHT22 diretamente no coletor.

A conexão é tão fácil quanto parece, mas é essencial observar a polaridade porque conectar o dispositivo ao contrário provavelmente irá destruí-lo instantaneamente. Embora o DHT22 tenha quatro pinos, o pino 3 não está conectado. Os sensores montados normalmente vêm com três pinos que se alinham perfeitamente com a plataforma. Com o sensor deitado de costas (mostrado), você pode ver os pinos de alimentação e de dados alinhados corretamente.

Etapa 4: teste e primeiro uso

Teste e primeiro uso
Teste e primeiro uso

Tudo o que resta é conectar cuidadosamente seu módulo DHT22 ao Arduino e configurar o software. Muitas das coisas inteligentes são feitas pelo software, possibilitadas pela biblioteca de gráficos da Adafruit, driver de vídeo MCUFriend de David Prentice e coisas igualmente inteligentes dos cálculos de "calor efetivo" de Robert Steadman.

A única coisa que você precisa definir nesta configuração básica é informar ao software quais três pinos estão sendo usados.

Se você preferir conectar seu sensor de maneira diferente, as linhas a seguir em CONSTANTS. H informam ao Uno como se configurar.

#define DHT22_DATA 11

O DH22 usa um valor muito conservador de 1 - 1,5 mA ao fazer uma leitura que é muito menor do que o máximo típico de 20 mA, então não vai estressar nada. (É claro que um curto-circuito em qualquer pino quase certamente destruirá o dispositivo, por isso sugerimos o uso de termorretrátil se você colocar o sensor em uma placa plug-in Heath Robinson.) Se tudo correr bem, o HotStuff inicializará em cerca de 5 segundos. Se um erro for detectado, a tela ficará preta e exibirá uma curta mensagem de erro. Isso pode ser amplamente ignorado, pois significa apenas que o sensor não está ligado ou não está conectado corretamente.

Etapa 5: Uso do instrumento e perguntas frequentes

Usando o instrumento e FAQ
Usando o instrumento e FAQ

P: Posso ver traços finos dos dígitos apagados na tela. Não é um bug?

R: Não, é intencional, embora não seja imutável. A ideia era emular a aparência de um display LCD "real" (em comparação com um TFT de alta resolução). Esses monitores usam blocos grandes e pré-projetados que podem ser ligados e desligados como pixels, mas, ao contrário dos pixels, podem ocupar grandes partes da tela. Como resultado, há invariavelmente um traço finito do material visível e isso é emulado aqui.

P: Como posso alternar entre graus centígrados e Fahrenheit?

R: A função não foi totalmente testada no momento de "ir apertar" (porque alguém se esqueceu, não foi …). No entanto, verificamos e esta função funciona (se desejado), mas conectando uma pequena chave deslizante SPST com um terminal no pino 12 e o outro em um aterramento conveniente. A maneira mais rápida de fazer isso é soldar ou usar um conector DuPont modificado para prender ao solo e o outro ao pino 12 diretamente (alguns clones têm um conjunto extra de orifícios para este tipo de coisa) ou em designs originais, para o pino MOSI no cabeçalho ICSP que está acima da potência de 5v. Se esta chave estiver na posição aberta, a unidade inicializa em graus centígrados, mas na posição fechada, ela puxa o pino 12 para baixo e uma reinicialização o traz de volta em Fahrenheit. Não há necessidade de um resistor para proteger o pino, pois há um resistor interno fornecido.

P: Posso usar um sensor diferente?

R: Sim. Mas você precisará encontrar uma biblioteca adequada ou escrever a sua própria. Escolhemos um DHT22 por causa de sua interface de fio único e porque havia uma na parte de trás das peças que atraíam poeira. Projetos de interface de um fio são preferíveis porque podemos usar os outros pinos digitais "livres" para outras funções. I2C não está disponível, pois é ocupado pela blindagem da tela. SPI é, no entanto, se você estiver preparado para perder funcionalidades, como troca de escala, etc.

P: Posso vender uma versão comercial?

R: Claro que você pode, desde que siga os termos de licenciamento do software (é essencialmente a licença BSD de 2 cláusulas que é muito permissiva, mas esteja ciente de que outras licenças podem ser aplicadas às bibliotecas incluídas). Observe também que este dispositivo não é (e nunca poderá ser)) certificado para uso em ambientes críticos, é para uso doméstico / amador, embora possa encontrar aplicações em lares de idosos, escritórios e outros locais de trabalho. Esteja ciente de que é tão bom quanto o elo mais fraco … O mecanismo de fonte desenvolvido para este projeto é licenciado para uso não comercial, a menos que você faça uma doação para o GoFundMe de câncer de nosso colega.

Q: Minhas leituras mín. / Máx. Não são registradas no gráfico.

R: Isso ocorre por design. O instrumento usa uma "média móvel" (uma média estatística) que é zerada a cada hora. Isso ajuda a suavizar o gráfico e a dar uma visão mais razoável das medições, evitando picos estranhos (como, digamos, "pessoa" respirando no sensor, que o deixem maluco.

P: Por que você não usa atalhos C ++ (como ++, - e assim por diante) em seu código? Por que tudo é tão … prolixo!

R: Um dos autores é um veterano programador de jogos de 8 bits, mas o outro vem do Python. Usamos alguns atalhos em que seu uso não é ambíguo, mas C (a linguagem subjacente ao C ++) é antiga e os compiladores em geral eram um pouco estúpidos quando Kernighan e Richie escreveram o primeiro compilador, sem mencionar que os computadores eram slooooooow e os teclados tinham chaves que você sentiu que tinha que bater com um martelo. Todas essas coisas (e outras) levaram C a ser uma linguagem muito concisa com vários atalhos para alcançar a mesma coisa. Um grande número foi (e continua sendo) responsável por alguns bugs complicados: e nem mesmo nos faz começar a travar no heap / pilha.

Obviamente, algumas otimizações (os semáforos, por exemplo) são necessárias porque estamos tentando esmagar um litro em uma xícara de chá, mas sempre que possível, evitamos isso.

A propósito, se você não possui uma cópia bem lida de K&R C … pare agora e peça um. Existem muitos livros muito grandes sobre C, mas K&R continua sendo provavelmente o melhor e, uma vez que C sustenta C ++, você terá um melhor entendimento dos recursos dessa linguagem também.

P: Acho que encontrei um bug, o que devo fazer!

R: Bugs? Não há bugs, apenas recursos … apenas alguns recursos não funcionam como esperávamos. Deixe-nos uma nota no GitHub e tentaremos alterar o recurso para que seja mais adequado ao design. Na verdade, o código está sendo refatorado o tempo todo em vários projetos diferentes, por isso é bastante fragmentado em alguns lugares e, por causa disso, Marc levará um tapa de arinca molhado até gritar: "Chega!" - Dan

Etapa 6: Compilando da fonte

Compilando da fonte
Compilando da fonte

O projeto está hospedado no GitHub (simplesmente há muito código para colocar em um Instructable, as pessoas ficariam surpresas tentando descobrir tudo isso), mas enquanto ATMegas pré-programadas estarão disponíveis no eBay, você pode querer compilar o seu próprio fonte.

O código-fonte que deve compilar no Visual Studio com Platform IO - ficou um pouco complicado para o editor do Arduino e o Visual Studio nos permite escrever um código melhor com menos erros, graças a alguns "lint" que ele possui.

github.com/marcdraco/HotStuff

platformio.org/

visualstudio.microsoft.com/downloads/Você precisará de algumas bibliotecas para este shield. Adafruit GFX (que também precisará da biblioteca Wire).

MCUFriend_kbv por David Prentice v2.9. David produziu versões posteriores, mas não é garantido que funcionem.

Etapa 7: Torne-o seu

Torne-o seu
Torne-o seu

Não há nada como ter um projeto bonito que você pode mostrar aos outros e fazê-los ficar boquiabertos de admiração quando começa com seu nome lá em cima em luzes. Portanto, configuramos o software de forma que quase qualquer pessoa possa fazer alterações sem um conhecimento de C / C ++.

Encontre em seu editor de texto favorito em "constantes.h" para encontrar as seguintes linhas:

constexpr uint16_t defaultPaper = BLACK;

constexpr uint16_t defaultInk = CYAN;

Você pode ver os nomes das cores em inglês simples - David Prentice gentilmente forneceu um monte de definições que aparecem anteriormente no arquivo e tudo o que você precisa fazer é mudar seu primeiro plano (e fundo) para algo de sua escolha antes de fazer o upload para o fórum. As cores de "traço" do gráfico são um pouco mais profundas aqui e têm a seguinte aparência:

constexpr uint16_t HUMIDITY_TRACE {AZURE}; constexpr uint16_t TEMP_TRACE {AMARELO};

Embora esses TFTs não sejam conhecidos por seu contraste (e são limitados a 5-6-5 RGB, cor de 16 bits), fornecemos uma opção de compilação de exemplo "NIGHT_MODE" que é comentada por padrão, mas define a exibição

Outras cores podem ser ajustadas de forma semelhante. Quer ler em Imperial quando acender? Sem problemas! Encontre e comente ("//") ou remova a linha a seguir e quando você enviar de volta para o fórum …

Perguntas, comentários e melhorias devem ser postados no GitHub.

Mesmo a documentação mais longa sobre hackear o projeto está no README. MD que o acompanha

Etapa 8: Hackeando

Este projeto foi criado usando o principal KISS e está completo como está.

Ele pode formar a base de algo baseado em outro sensor - talvez um mais preciso ou mais rápido, desde que haja espaço suficiente para sua biblioteca. Como você pode ver, as coisas já estão bem apertadas.

Quando você conhece bem o código, é fácil mudar as coisas drasticamente, mas mesmo sem muita experiência em programação, muitos dos valores constantes em "constantes.h" explicam como mudar as coisas. Os programadores mais avançados notarão que é relativamente fácil (esperamos!) Extrair as peças de que você precisa para uso posterior. Por exemplo, substituímos a exibição do gráfico por um relógio em tempo real totalmente funcional em menos de uma hora. O relógio requer uma maneira de acertar a hora, portanto, não é útil como está; lançaremos uma versão funcional disso mais tarde (você pode encontrar o código de desenvolvimento no GitHub em HotStuff Chrono).

Mas há algo sobre essas telas que não é imediatamente óbvio até que você vá para a programação - a tela sensível ao toque.

O problema com telas sensíveis ao toque resistivas deste tipo é que elas precisam de calibração, o que aumenta a complexidade e, francamente, não há a sala com todas as outras funções que amontoamos para colocar outra biblioteca lá. Isso seria possível com o Arduino Mega, que tem muito mais espaço em flash, mas onde está a diversão nisso?

Olhe embaixo da placa e você verá que, além do I / O digital para acionar o LCD e o cartão SD, não há saídas para um ADC para detectar a medição de resistência.

Estranho, certo?

Gente esperta, esses designers. A tela tem seu próprio buffer de quadros: essa é uma área da RAM que mantém a tela enquanto a energia permanece conectada, o que significa que você pode (programaticamente) desconectar vários pinos do dispositivo enquanto está ligado e usá-los para outros trabalhos - desde que você os coloque de volta depois!

Para obter informações sobre como isso é feito, sugerimos a leitura da biblioteca de telas sensíveis ao toque resistivas de Limor "Lady Ada" Fried.

E se você fizer algo legal, certifique-se de registrar uma solicitação de pull!

Etapa 9: Doações opcionais

Doações opcionais
Doações opcionais

Agora aqui está a parte opcional, vamos apresentar a senhora que deu vida e um nome às fontes usadas neste projeto e continua sendo uma inspiração para todos nós, principalmente recebendo notícias de que ela desenvolveu câncer e … a maioria de nós sabe como isso é assustador bicho-papão é. Sua biografia completa está em seu site https://www.rosedf.net/ e você pode encontrá-la nas redes sociais habituais. Ela diz de si mesma:

“Se não estou treinando para tentar chegar ao espaço, dizendo às pessoas para olharem nosso lindo céu noturno, passando um tempo com aqueles que amo ou apenas sendo um nerd, gosto de focar minha atenção no acesso à educação e na equidade. trabalho em defesa de vítimas de abuso doméstico / sexual e como eu era sem-teto, e gosto de aumentar a conscientização sobre a importância da Saúde Mental na vida cotidiana e na academia."

Se você quiser pagar a ela alguns dólares (ou qualquer que seja a sua moeda local), então todos nós realmente agradeceríamos. Muito amor foi dedicado ao desenvolvimento do HotStuff, mesmo pensando que era um exercício de ensino e muito desse trabalho pode ser reutilizado para projetos futuros que têm um processador "lento", mas precisam de um alfanumérico rápido, claro e acima de tudo GRANDE fonte em um display TFT. Doe aqui (você tem nossos agradecimentos):

paypal.me/FirstGenSci

Recomendado: