Nesta montagem temos um SD Card conectado no ESP8266. Colocamos um DHT22, que mede temperatura e umidade e envia essas informações para o cartão SD.


Em www.fernandok.com vocês encontram o PDF e o .INO para download

https://www.youtube.com/channel/UCIRfWLRDsdVOjJfpy6Ne04Q/about


Ligado o circuito, ele mostra 43.40 de umidade e, de temperatura, 26.80. Toda vez que ele mostra aquela mensagem “abrindo o arquivo com sucesso” é porque ele rodou uma vez no loop. O que acontece aí é o seguinte: apenas os valores estão sendo gravados no arquivo log, ou seja, a mensagem "abrindo o arquivo com sucesso" está apenas como aviso, ela não é gravada.

WiFi ESP8266 NodeMcu ESP-12E


Aqui detalhamos o componente que utilizamos, neste caso o NodeMCU ESP12, juntamente com o datasheet desse dispositivo.



Sensor de umidade



Na sequência, exponho detalhes sobre este outro componente, o DHT22, com a respectiva pinagem.

Módulo SD Card


Este é o nosso módulo de SD Card. Como vocês podem ver pela pinagem, ele é conexão SPI.



Montagem


O diagrama de montagem conta com o leitor, o DHT22, o NodeMCU ESP12. Este último, escolhi porque precisa de uma quantidade de IOs razoável, ou seja, o ESP01 também daria certo para esta montagem.

Bibliotecas


Para essa montagem você precisa da biblioteca do DHT da própria IDE do Arduino. Basta acessar “Sketch> Incluir Biblioteca> Gerenciar Bibliotecas” que você baixa o DHT. A mesma coisa você tem que fazer para a Biblioteca SD.



Código Fonte

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

//biblioteca responsável pela comunicação com o Cartão SD

#include <SD.h>

//biblioteca responsável pela comunicação com o sensor DHT22

#include <DHT.h>

 

// pino de dados do DHT será ligado no D6 do esp

#define DHTPIN D2    

// tipo do sensor

#define DHTTYPE DHT22  

 

// construtor do objeto para comunicar com o sensor

DHT dht(DHTPIN, DHTTYPE);

  

//pino ligado ao CS do módulo SD Card

#define CS_PIN  D8;

O código-fonte utilizado na montagem é simples, somente para mostrar o SD Card funcionando. Toda a sofisticação você tem que inserir depois, podendo utilizar outros inúmeros recursos, mas que não cabem a este exemplo.


Setup

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

void setup()

{

  Serial.begin(9600);

  Serial.print("Inicializando o cartão SD...");

 

  //inicializa o objeto para comunicarmos com o sensor DHT

  dht.begin();

   

  // verifica se o cartão SD está presente e se pode ser inicializado

  if (!SD.begin(CS_PIN)) {

    Serial.println("Falha, verifique se o cartão está presente.");

    //programa encerrrado

    return;

  }

   

  //se chegou aqui é porque o cartão foi inicializado corretamente 

  Serial.println("Cartão inicializado.");

 

}

Na função Setup, vamos iniciar nosso objeto para comunicar com o sensor e também inicializar o SD Card.

Loop

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

  //faz a leitura da umidade

  float umidade = dht.readHumidity();

  Serial.print("Umidade: ");

  Serial.println(umidade);

  //faz a leitura da temperatura

  float temperatura = dht.readTemperature();

  Serial.print("Temperatura: ");

  Serial.println(temperatura);

 

  File dataFile = SD.open("LOG.txt", FILE_WRITE);

  // se o arquivo foi aberto corretamente, escreve os dados nele

  if (dataFile) {

    Serial.println("O arquivo foi aberto com sucesso.");

      //formatação no arquivo: linha a linha >> UMIDADE | TEMPERATURA

      dataFile.print(umidade);

      dataFile.print(" | ");

      dataFile.println(temperatura);

 

      //fecha o arquivo após usá-lo

      dataFile.close();

  }

  // se o arquivo não pôde ser aberto os dados não serão gravados.

  else {

    Serial.println("Falha ao abrir o arquivo LOG.txt");

  }

 

  //intervalo de espera para uma nova leitura dos dados.

  delay(2000);

 

}

No loop, lemos umidade e jogamos dentro do float de umidade, lemos temperatura e jogamos dentro do float de temperatura. Isto é muito parecido com a linguagem C padrão.


www.fernandok.com vocês encontram o PDF e o .INO para download

Exibições: 1601

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço