十二,ESP32将数据存储到SD卡

一.介绍

使用SD卡来存储数据。因为SD卡容量大,所以与EEPROM相比可以存储更多数据。为什么SD卡对ESP32很有用?如您所知,ESP8266和ESP32在物联网应用中更受欢迎。他们可以保留以下角色:

– 客户端从传感器收集数据,如温度或湿度或事件日志,并将这些数据保存到SD卡中。

– 使用SD卡存储网页,图像,javascript等的Web服务器,它将返回给客户端请求。

由于micro sdcard(microSD)很受欢迎,因此我们将使用micro sdcard进行演示。以下是要求:

1。ESP32连接到micro sdcard

2.遍历micro sdcard以列出其中的所有文件和文件夹并打印到串口监视器。

3.打开一个名为“test.txt”的文件,将“Hello world!”文本写入其中并关闭它

4.再次打开“test .txt”读取文本,然后打印到串口监视器并关闭它。

二.元器件清单

  • ESP32开发板
  • 一个SPI microSD卡模块
  • 导线若干
十二,ESP32将数据存储到SD卡
图:带SPI 接口的SD卡模块

三.电路图

ESP32 连接microSD

[ESP32 IO26 – CS MICROSD] [ESP32 IO14 – MOSI(DI) MICROSD] [ESP32 IO12 – MISO(DO) MICROSD] [ESP32 IO27 – SCK MICROSD] [ESP32 GND – GND MICROSD] [3.3V – VCC MICROSD]
十二,ESP32将数据存储到SD卡
图:ESP32 与SD卡模块的连接图

四.代码设计

我们将使用SD卡库用于沟通。您可以在此处下载:

https://github.com/nhatuan84/esp32-micro-sdcard

下载后,将其解压缩并将解压缩的文件夹复制到Arduino文件夹下的libraries文件夹。

这个库提供了一些类和接口:

– SD.begin(uint8_t cs,int8_t mosi,int8_t miso,int8_t sck):使用SPI引脚初始化库

– SD.open(filename,FILE_WRITE):打开文件进行写入

– SD.open(filename):打开文件进行读取

– SD.open(“/”):打开sdcard at root“/”

类文件:

– openNextFile():遍历目录

– name():获取文件名或目录

– isDirectory():检查条目是否为目录

– size():获取文件大小

– close():关闭打开的条目

– println(文本):将文本写入打开的文件

– available():检查可用的数据reading

– read():如果数据可用则读取数据

– close():关闭打开的文件

以下是相应的代码:

/*******************************************************
   ESP32 LED点阵显示信息
   功能:使用SPI LED点阵显示信息
   引脚:GPIO26 -> CS  GPIO14 -> MOSI(DI) GPIO12 -> MISO(DO) GPIO27 - SCK 
   Designer: Code_Mouse
   Date:2018-9-8
 *******************************************************/
#include <SPI.h> 
#include <mySD.h>
File root;
void setup()
{
  Serial.begin(115200);

  Serial.print("Initializing SD card...");
/*初始化SD库SPI引脚*/ 
  if (!SD.begin(26, 14, 12, 27)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");
/*从根目录root“/”*/ 
  root = SD.open("/");
  if (root) {    
    printDirectory(root, 0);
    root.close();
  } else {
    Serial.println("error opening test.txt");
  }
 /*打开“test.txt”写入*/ 
  root = SD.open("test.txt", FILE_WRITE);
 /*如果成功打开 - > root!= NULL 然后写字符串“Hello world!”*/ 
  if (root) {
    root.println("Hello world!");
    root.flush();
   /*关闭文件 */
    root.close();
  } else {
    /* 如果文件打开错误,则打印错误 */
    Serial.println("error opening test.txt");
  }
  delay(1000);
  /*写完后再重新打开文件并读取它 */
  root = SD.open("test.txt");
  if (root) {    
    /* 从文件中读取,直到其中没有其他内容 */while (root.available()) {
      /* 读取文件并打印到串口监视器*/
      Serial.write(root.read());
    }
    root.close();
  } else {
    Serial.println("error opening test.txt");
  }
  
  Serial.println("done!");
}

void loop()
{
}


余下程序:

已有9人支付

五.测试代码

要测试代码,只需使用Arduino IDE上传它。然后,您应该看到串口监视器打印出文件的目录。以下就是实现的效果:

十二,ESP32将数据存储到SD卡
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
3 条回复 A 作者 M 管理员
  1. 好好

    • ???

  2. 并不能运行的啊

欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论