Medidor de CO2

Certa vez, sentado no trabalho e me sentindo desconfortável em respirar, decidi montar um medidor de CO2.
Depois de estudar vários artigos sobre esse tópico, ele formulou os requisitos para o dispositivo.

  1. O dispositivo deve estar com uma tela, pois deve ser um dispositivo portátil.
  2. O dispositivo não deve depender da Internet pelo mesmo motivo.
  3. O dispositivo deve poder registrar valores ao longo do tempo, o que é conveniente a qualquer momento para visualização. E isso significa que ele deve ter seu próprio servidor da Web e seu próprio ponto de Wi-Fi.

O último item levou ambiguamente à entrada de que o dispositivo estará no ESP. Como não preciso de alto desempenho, escolho a opção mais barata - que ESP8266, 07. Em casa, uma cópia com 1 mb de memória estava por aí.

Encomendei as peças de reposição ausentes para o aliexpress, e elas foram:

  1. Tela Oled 96x64 SSD1331.
  2. Sensor de CO2 MH-Z19B.
  3. Módulo DS1307 RTC.

Após o recebimento dos detalhes, ele começou a desenvolver o circuito usando o KiCad.

Devo dizer imediatamente - todas as fontes estarão no final do artigo e, depois de montadas de acordo com os esquemas, fazendo o upload do firmware, elas deverão ter um dispositivo totalmente funcional.

O esquema saiu assim:

imagem

Decidi tornar os módulos removíveis, para que não haja módulos no circuito, mas apenas conectores para eles.
Eu espalhei o quadro:

imagem

Depois de fabricar a placa de circuito impresso e soldar, saiu o seguinte:

imagem

imagem

Na montagem e no trabalho, fica assim:

imagem

Agora sobre a parte do software.

O código foi escrito no IDE do Arduine, pois não sou programador e não queria entender as bibliotecas no visual studio ou em qualquer outro lugar.

Em princípio, usei o código para os módulos no dispositivo a partir de exemplos de bibliotecas e da Internet, por isso não vou insistir nele. Quem quer - entender facilmente o esboço.
Mas não foi tão simples implementar a visualização e a exibição de estatísticas a tempo.

Eu queria da seguinte maneira: em um telefone celular ou laptop, é o mais fácil possível conectar-se ao dispositivo. Através do navegador HTML, acesse a página de dados e visualize-a em um gráfico de tempo.

Primeiro, no ESP, criou um ponto de acesso sem senhas e autenticações.

O segundo - criou uma matriz de dados na qual eu escrevo dados de CO2 e o tempo de aquisição de dados (para isso, na verdade, eu acerto o relógio no dispositivo.

Em terceiro lugar, configurei um servidor HTTP e várias páginas HTML, em uma das quais produzo dados.

Quarto - o Java Script para desenhar o gráfico na página foi gravado no sistema de arquivos ESP.

Como a saída do gráfico era possível apenas com a ajuda do Java Script, depois de longas experiências, o quarto item foi implementado assim: o script Chart.js mais simples foi gravado como um arquivo no sistema de arquivos SPIFFS ESP, que solicita uma página exibindo o resultado.

Em geral, ao ligar o dispositivo, no visor a cada 10 a 15 segundos, as novas leituras do sensor são exibidas e a cada 8 minutos as leituras atuais do sensor são registradas no conjunto de dados.

Depois de algum tempo, desejando analisar as leituras em tempo, você se conecta através do telefone ou laptop ao ponto Wi-Fi "CO2", após a conexão, inicie o navegador da Internet e insira o endereço IP "10.10.10.1" na barra de pesquisa. Você chega à página:

imagem

Há um botão para ir para a página de exibição de dados e um botão para ir para a página de configuração da hora (já que o tempo às vezes se perde e se perde quando a bateria é substituída).

A página de saída de dados fica assim:

imagem

Arquive com a fonte aqui.

O arquivo contém um esboço, Java Script, projeto Kicad, uma impressão no formato Photoshop na resolução de 600 dpi, caso você não queira mexer com o Kicad.

Como configurar o Adruino ide para firmware ESP e como fazer upload de arquivos para o SPIFS, pode ser facilmente encontrado na Internet.

Para o firmware ESP, você precisará desconectar o sensor de CO2, pois ele fica no TX0 e no RX0, necessários para o firmware. Além disso, assinei o oposto na placa da linha de dados, para conectar TX do pisca-pisca a TX na placa, etc.

Source: https://habr.com/ru/post/pt422001/


All Articles