Índice:
- Etapa 1: Materiais
- Etapa 2: Escolha do sensor
- Etapa 3: LM35
- Etapa 4: DS18B20
- Etapa 5: Código ESP8266
- Etapa 6: Código ESP8266: Usuário LM35
- Etapa 7: Código ESP8266: Usuário DS18B20
- Etapa 8: Pequeno truque ESP8266
- Etapa 9: Operação pela primeira vez
- Etapa 10: Conclusão
Vídeo: Registrador de temperatura WiFi (com ESP8266): 11 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
Olá, fico feliz em ver você aqui. Espero que neste manual você encontre algumas informações úteis. Sinta-se à vontade para me enviar sugestões, dúvidas,… Aqui estão alguns dados básicos e uma visão geral rápida do projeto. Para usuários móveis: Vídeo. Deixe-me saber o que você acha do projeto na seção de comentários, obrigado. Recentemente, comprei uma placa NodeMcu (baseada em esp8266) apenas para experimentá-la, então este não é um projeto realmente avançado. Mas funciona e é o que eu preciso, então está tudo bem. A função principal desse data logger é coletar a temperatura e salvá-la em um servidor. Isso permite que os usuários verifiquem dados e gráficos online, mesmo quando não estão no mesmo local do registrador (por exemplo, para uma estação meteorológica). Outro recurso útil é a atualização OTA incluída no código que permite ao usuário atualizar e personalizar o software facilmente. Analisarei dois sensores e seu método de aquisição relacionado para fazer um balanço de todos os prós e contras.
Spoiler: após alguns testes, descobri que um sensor digital como o DS18B20 é a melhor solução porque oferece estabilidade e maior precisão. Já é à prova d'água e com cabo.
Etapa 1: Materiais
Este é um projeto mínimo com apenas alguns componentes externos, para isso a lista de BOM será muito curta. No entanto, vamos ver que material é solicitado:
- NodeMcu V3 (ou qualquer processador ESP8266 μ compatível);
- Led RGB (ânodo comum);
- Resistores para led (1x10Ω, 1x22Ω, 1x100Ω, 1x10kΩ)
- DS18B20 (termômetro integrado Maxim);
- LM35 (termômetro do Texas Instrument);
- Bateria externa (opcional);
- Cabo;
- Conector (para torná-lo mais "avançado");
- Box (opcional, novamente para torná-lo mais "avançado");
- Suporte para led (opcional);
Nota: Como eu disse, você precisa escolher um dos dois métodos. Se você escolher o termômetro LM35, precisará de alguns outros componentes:
- Attiny45 / 85;
- Programador AVR (ou Arduino como ISP);
- Resistor (1x1kΩ, 1x2kΩ, 1x10kΩ, 1x18kΩ)
- Conector de tira de 2,54 mm (opcional)
- Diodo (2x1N914)
- Perfboard ou PCB;
Etapa 2: Escolha do sensor
Escolher o sensor pode ser uma etapa difícil: hoje existem toneladas de transdutores (a TI oferece 144 elementos diferentes) analógicos e digitais com faixa de temperatura, precisão e case diferentes. Sensores analógicos (46 peças disponíveis na TI): Prós:
- O registrador de dados pode ser facilmente alterado de temperatura para outra quantidade (tensão, corrente, …);
- Pode ser um pouco mais barato;
- Fácil de usar, pois não requer nenhuma biblioteca especial;
Contras:
- Requer ADC (que pode influenciar a precisão da medição) e outros componentes externos. Como esp8266 tem apenas um ADC (e não é realmente preciso), sugiro usar um externo.
- Necessita de cabo dedicado com rejeição de ruído, pois qualquer tensão induzida pode alterar o resultado.
Depois de pensar um pouco, decidi usar o LM35, um sensor linear com fator de escala de + 10mV / ° C com precisão de 0,5 ° C e uma corrente muito baixa (cerca de 60uA) com uma tensão de operação de 4V a 30V. Para mais detalhes, sugiro ver a ficha técnica: LM35.
Sensores digitais (altamente recomendado) Prós:
Quase todos os componentes externos necessários;
ADC integrado
Contras:
Solicitar biblioteca ou software para decodificar o sinal digital (I2C, SPI, Serial, One Wire, …);
Mais caro;
Escolhi o DS18B20 porque encontrei um conjunto de 5 sensores à prova d'água na Amazon e porque está amplamente documentado na Internet. A característica principal é a medição de 9-12 bits, barramento de 1 fio, tensão de alimentação de 3,0 a 5,5, precisão de 0,5 ° C. Novamente, para mais detalhes aqui está a ficha técnica: DS18B20.
Etapa 3: LM35
Vamos analisar como implementei o ADC externo e outros recursos para o termômetro LM35. Encontrei um cabo com três fios, um com blindagem e dois sem. Decidi adicionar um capacitor de desacoplamento para estabilizar a tensão de alimentação perto do sensor. Para converter a temperatura analógica em digital, usei o microprocessador Attiny85 em um pacote dip8 (novamente para obter mais informações, consulte a ficha técnica: attiny85). A coisa mais importante para nós é o ADC de 10 bits (não é realmente o melhor, mas é preciso o suficiente para mim). Para me comunicar com o Esp8266 decidi usar a comunicação Serial tendo em mente que o esp8266 funciona com 3,3V e attiny85 a 5V (pois precisa alimentar o sensor). Para isso, usei um divisor de tensão simples (veja o esquema). Para ler a temperatura negativa precisamos adicionar alguns componentes externos (2x1N914 e 1x18k resistor), já que não quero usar fonte de alimentação negativa. Aqui está o código: repositório TinyADC. Nota: para compilar este código você precisará instalar attiny to ide (insira na opção: https://drazzy.com/package_drazzy.com_index.json), se você não sabe como fazer, basta pesquisar no Google. Oou fazer upload do arquivo.hex diretamente.
Etapa 4: DS18B20
Comprei esses sensores da Amazon (5 custa cerca de 10 €). Chegou com uma tampa de aço inoxidável e um cabo de 1m de comprimento. Este sensor pode retornar dados de temperatura de 9 a 12 bits. Muitos sensores podem ser conectados no mesmo pino, já que todos eles têm um ID único. Para conectar o DS18B20 ao esp8266, você pode apenas seguir o esquema (segunda foto). Já que decidi que meu logger teria três sondas, tive que distinguir qual é qual. Então pensei em dar a eles uma cor associada via software ao endereço deles. Usei um tubo termoencolhível (terceira foto).
Etapa 5: Código ESP8266
Como sou novo neste mundo, decidi usar várias bibliotecas. Conforme dito na introdução, os principais recursos são:
- Atualização OTA: você não precisa conectar o esp8266 ao seu computador toda vez que precisar fazer o upload do código (você precisa fazer isso apenas na primeira vez);
- Gerenciador sem fio, se a rede sem fio mudar, você não precisa recarregar o esboço. Você pode simplesmente configurar novamente os parâmetros de rede conectando-se ao ponto de acesso esp8266;
- Transmissão de dados Thingspeak;
- Suporta LM35 e DS18B20;
- Interface de usuário simples (LED RGB indica algumas informações úteis);
Peço desculpas porque meu software não é o melhor e não está muito bem ordenado. Antes de fazer o upload para o dispositivo, você precisa alterar alguns parâmetros para ajustar o código à sua configuração. Aqui você pode baixar o software. Configuração comum do LM35 e DS18B20Você precisa alterar a definição do pino, token, número do canal, usuário e senha para atualização OTA. Linha de 15 a 23.
#define vermelho SEU PINHERE #define verde SEU PINHERE
#define blue YOURPINHERE const char * host = "selecione o endereço do host"; // não é realmente necessário, você pode deixar esp8266-webupdate const char * update_path = "/ firmware"; // para alterar o endereço para atualização ex: 192.168.1.5/firmware const char * update_username = "YOURUSERHERE"; const char * update_password = "YOURPASSWORDHERE; unsigned long myChannelNumber = CHANNELNUMBERHERE; const char * myWriteAPIKey =" WRITEAPIHERE ";
Etapa 6: Código ESP8266: Usuário LM35
Você precisa conectar a placa attiny ao esp8266, para alimentar a unidade ADC, use o pino VU e o pino G. Você precisa escolher qual pino deseja usar para comunicação serial (para manter a serial do hardware livre para fins de depuração). O pino Tx deve ser selecionado, mas não é realmente usado. (Linha 27). SoftwareSerial mySerial (RXPIN, TXPIN); No topo você precisa adicionar: #define LM35USER
Etapa 7: Código ESP8266: Usuário DS18B20
Como primeira operação, você precisa identificar o endereço do dispositivo para cada sensor. Compile e programe este código para o esp e procure os resultados em série. O código pode ser encontrado aqui (pesquise este título na página: «Ler endereços internos individuais do DS18B20»). Conecte apenas um sensor para obter o endereço, os resultados devem ser algo como este (número aleatório aqui! Apenas como exemplo): 0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12Então você precisa alterar meu código na seção " Configuração para DS18B20 "(linha 31 a 36)":
#define ONE_WIRE_BUS ONEWIREPINHERE #define TEMPERATURE_PRECISION TEMPBITPRECISION // (de 9 a 12) #define delayDallas READINTERVAL // (em milissegundos, mínimo é 15s ou 15000mS) DeviceAddress blueSensor = {0x11, 0x2217 0x12}; // ALTERE COM SEU ENDEREÇO DeviceAddress redSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // ALTERE COM SEU ENDEREÇO DeviceAddress greenSensor = {0x11, 0x22, 0x33, 0xD9, 0xB1, 0x17, 0x45, 0x12}; // ALTERE COM SEU ENDEREÇO No topo você precisa adicionar: #define DSUSER
Etapa 8: Pequeno truque ESP8266
Depois de alguns testes, descobri que, se você conectar o esp8266 sem programação, ele não executará o código até que você pressione reset uma vez. Para resolver esse problema, depois de um pouco de pesquisa, descobri que é necessário adicionar um resistor pull-up de 3,3 V a D3. Isso dirá ao processador para carregar o código da memória flash. Com este método, D3 pode ser usado diretamente para a entrada de dados para sensores DS18B20.
Etapa 9: Operação pela primeira vez
Se você carregou o código corretamente, mas nunca usa a biblioteca do gerenciador de Wifi, é hora de configurar sua conexão wi-fi. Espere até ver o led RGB piscando mais rápido do que antes, então procure com seu celular ou PC a rede wi-fi chamada "AutoConnectAp" e conecte. Após a conexão, abra um navegador da web e entre em 192.168.4.1, você encontrará a interface GUI do gerenciador wi-fi (veja as fotos) e pressione "Configurar Wifi". Aguarde até que esp8266 pesquise redes wi-fi e selecione a desejada. Insira a senha e pressione "salvar". O Esp8266 irá reiniciar (não se preocupe com o LED RGB desta vez, porque irá produzir algumas informações aleatórias) e se conectará à rede.
Etapa 10: Conclusão
No final, aqui está um gráfico tirado do registrador de dados em ação ao registrar a temperatura do meu freezer. Em laranja está o DS18B20 e em azul o LM35 e seu circuito. Você pode ver a maior diferença na precisão do sensor digital para o analógico (com meu pobre "circuito ADC") que fornece alguns dados não físicos. Resumindo, se você quiser construir este logger, sugiro usar o sensor de temperatura digital DS18B20, pois é mais fácil de ler e quase "plug and play", é mais estável e preciso, funciona a 3,3V e requer apenas um pino para vários sensores. Obrigado pela atenção, espero que este projeto seja bom para você e para você encontrou algumas informações úteis. E para quem quiser perceber, desejo ter dado todas as informações necessárias. Se não se sinta à vontade para perguntar tudo, terei todo o gosto em responder a todas as questões. Como não falo inglês, se algo estiver errado ou incompreensível, por favor me avise. Se você gostou deste projeto, vote para os concursos e / ou deixe um comentário ☺. Isso vai me encorajar a continuar atualizando e publicando novos conteúdos. Obrigada.
Recomendado:
Como fazer um gravador de dados em tempo real de umidade e temperatura com o Arduino UNO e o cartão SD - Simulação de registrador de dados DHT11 em Proteus: 5 etapas
Como fazer um gravador de dados em tempo real de umidade e temperatura com o Arduino UNO e o cartão SD | Simulação DHT11 Data-logger em Proteus: Introdução: oi, aqui é Liono Maker, aqui está o link do YouTube. Estamos fazendo projetos criativos com Arduino e trabalhamos em sistemas embarcados.Data-Logger: Um data logger (também data-logger ou gravador de dados) é um dispositivo eletrônico que grava dados ao longo do tempo w
Registrador de temperatura Tiny ESP8266 (planilhas do Google): 15 etapas
Tiny ESP8266 Temperature Logger (Google Sheets): Este é um guia sobre como fazer seu próprio, absolutamente minúsculo, logger de temperatura habilitado para WiFi. É baseado no módulo ESP-01 e no sensor digital de temperatura DS18B20, embalado em uma caixa impressa em 3D com bateria de lítio de 200mAh e micro U
Registrador de temperatura Raspberry Pi: 8 etapas
Registrador de temperatura Raspberry Pi: Aqui estão as instruções para construir um registrador de temperatura simples usando um sensor de temperatura I2C de $ 5,00. Os dados são armazenados no cartão SD e podem ser facilmente importados para o Excel. Simplesmente alterando ou adicionando outros sensores, outros tipos de dados também podem b
Registrador de temperatura e umidade da Internet com visor usando ESP8266: 3 etapas
Registrador de temperatura e umidade da Internet com display usando ESP8266: Eu queria compartilhar um pequeno projeto que acho que você vai gostar. É um registrador de temperatura e umidade habilitado para internet pequeno e durável com display. Isso é registrado em emoncms.org e, opcionalmente, localmente em um Raspberry PI ou em seu próprio emoncm
Registrador de temperatura, umidade relativa, pressão atmosférica usando Raspberry Pi e conectividade TE MS8607-02BA01: 22 etapas (com imagens)
Registrador de temperatura, umidade relativa e pressão atmosférica usando Raspberry Pi e conectividade TE MS8607-02BA01: Introdução: Neste projeto, mostrarei como construir uma configuração por etapa de um sistema de registro para temperatura, umidade e pressão atmosférica. Este projeto é baseado no chip sensor ambiental Raspberry Pi 3 Modelo B e TE Connectivity MS8607-02BA