Tabla de contenido:

Módulo de tarjeta SD con ESP8266: 6 pasos
Módulo de tarjeta SD con ESP8266: 6 pasos

Video: Módulo de tarjeta SD con ESP8266: 6 pasos

Video: Módulo de tarjeta SD con ESP8266: 6 pasos
Video: DataBase Esp32- SQlite3 en un SDcard 2024, Mes de julio
Anonim
Image
Image
Módulo de tarjeta SD con ESP8266
Módulo de tarjeta SD con ESP8266
Módulo de tarjeta SD con ESP8266
Módulo de tarjeta SD con ESP8266

En este montaje, tenemos una Tarjeta SD conectada al ESP8266. Ponemos un DHT22, que mide la temperatura y la humedad y envía esta información a la tarjeta SD.

En el circuito, muestra una humedad de 43,40 y una temperatura de 26,80. Cada vez que muestra el mensaje "abriendo el archivo correctamente", es porque se ejecutó una vez en el ciclo. Lo que ocurre en este escenario es lo siguiente: solo se escriben los valores en el archivo de registro y, por lo tanto, el mensaje "abrir el archivo correctamente" es solo una advertencia y no se registra.

Paso 1: WiFi ESP8266 NodeMcu ESP-12E

WiFi ESP8266 NodeMcu ESP-12E
WiFi ESP8266 NodeMcu ESP-12E

Aquí detallamos el componente que usamos, en este caso el NodeMCU ESP12, junto con la hoja de datos de ese dispositivo.

Paso 2: sensor de humedad

Sensor de humedad
Sensor de humedad

En la secuencia, muestro detalles sobre este otro componente, el DHT22, con el respectivo pinning.

Paso 3: Módulo de tarjeta SD

Módulo de tarjeta SD
Módulo de tarjeta SD

Este es nuestro módulo de tarjeta SD. Como puede ver en el pinout, es con conexión SPI.

Paso 4: Montaje

Montaje
Montaje

El diagrama de montaje se basa en el lector, el DHT22, el NodeMCU ESP12. Elegí este último porque necesita una cantidad razonable de IO. Por tanto, el ESP01 también funcionaría para este montaje.

Paso 5: Bibliotecas

Bibliotecas
Bibliotecas

Para este ensamblaje, necesita la biblioteca DHT del propio IDE de Arduino. Simplemente vaya a "Sketch> Incluir biblioteca> Administrar bibliotecas" mientras descarga el DHT. Tienes que hacer lo mismo con la biblioteca SD.

Paso 6: código fuente

El código fuente utilizado en el ensamblaje es simple, y es solo para mostrar que la tarjeta SD se está ejecutando. Tienes que insertar toda la sofisticación más tarde, pero puedes usar otras innumerables funciones. Sin embargo, esto no se aplica a este ejemplo.

// biblioteca responsável pela comunicação com o Cartão SD # include // biblioteca responsável pela comunicação com o sensor DHT22 #include // pino de dados do DHT será ligado no D6 do esp #define DHTPIN D2 // type do sensor #define DHTTYPE DHT22 // constructor del objeto para comunicar com o sensor DHT dht (DHTPIN, DHTTYPE); // pino ligado ao CS do módulo Tarjeta SD #define CS_PIN D8;

Configuración

En la función de Configuración, iniciaremos la comunicación de nuestro objeto con el sensor, y también inicializaremos la Tarjeta SD.

configuración vacía () {Serial.begin (9600); Serial.print ("Inicializando o cartão SD…"); // inicializa el 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."); }

Círculo

En el ciclo, leemos humedad, humedad y temperatura. Esto es muy parecido al lenguaje C estándar.

// 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); Archivo 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. retraso (2000); }

Recomendado: