esp8266 开发板存储东西

[复制链接]
查看: 166   回复: 0

164

主题

164

帖子

939

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
939
2023-7-15 22:06:27   显示全部楼层   阅读模式  
1.png


写文件


  1. /**********************************************************************
  2. 项目名称/Project           : 零基础入门学用物联网
  3. 程序名称/Program name      : esp8266-flash-write
  4. 团队/Team                 : 太极创客团队 / Taichi-Maker (www.taichi-maker.com)
  5. 作者/Author               : CYNO 朔
  6. 日期/Date(YYYYMMDD)      : 20191109
  7. 程序目的/Purpose           : 此程序用于演示如何向NodeMCU的SPIFFS中建立名为
  8.                             notes.txt的文件,程序还将向该文件写入信息。
  9. -----------------------------------------------------------------------
  10. 函数说明:
  11. SPIFFS.open(file_name, "w");
  12. 以上函数有两个参数:
  13. 第一个参数是被操作的文件名称,本示例中该文件为/notes.txt
  14. 第二个参数"w" 代表写入文件信息。(如需了解如何读取信息,请参阅示例程序esp8266-flash-read)
  15. ***********************************************************************/


  16. #include <FS.h>  

  17. String file_name = "/taichi-maker/notes.txt"; //被读取的文件位置和名称

  18. void setup() {
  19.   Serial.begin(9600);
  20.   Serial.println("");
  21.   
  22.   Serial.println("SPIFFS format start");
  23.   SPIFFS.format();    // 格式化SPIFFS
  24.   Serial.println("SPIFFS format finish");
  25.   
  26.   if(SPIFFS.begin()){ // 启动SPIFFS
  27.     Serial.println("SPIFFS Started.");
  28.   } else {
  29.     Serial.println("SPIFFS Failed to Start.");
  30.   }
  31.   
  32.   File dataFile = SPIFFS.open(file_name, "w");// 建立File对象用于向SPIFFS中的file对象(即/notes.txt)写入信息
  33.   dataFile.println("Hello IOT World.");       // 向dataFile写入字符串信息
  34.   dataFile.close();                           // 完成文件写入后关闭文件
  35.   Serial.println("Finished Writing data to SPIFFS");
  36. }

  37. void loop() {
  38. }
复制代码

读文件

  1. /**********************************************************************
  2. 项目名称/Project           : 零基础入门学用物联网
  3. 程序名称/Program name      : esp8266-flash-read
  4. 团队/Team                 : 太极创客团队 / Taichi-Maker (www.taichi-maker.com)
  5. 作者/Author               : CYNO 朔
  6. 日期/Date(YYYYMMDD)      : 20191109
  7. 程序目的/Purpose           : 此程序用于演示如何从NodeMCU的内置SPIFFS中存储的文件notes.txt读取数据。
  8.                            notes.txt 文件内容将会通过串口监视器显示出来供用户确认。
  9.                            注意在使用本程序以前需要先将notes.txt 文件上传到NodeMCU开发板的SPIFFS中
  10. -----------------------------------------------------------------------
  11. 修订历史/Revision History
  12. 日期/Date    作者/Author      参考号/Ref    修订说明/Revision Description
  13. -----------------------------------------------------------------------
  14. 函数说明:
  15. SPIFFS.open(file_name, "r");
  16. 以上SPIFFS函数有两个参数:
  17. 第一个参数是被操作的文件名称,本示例中该文件为/notes.txt
  18. 第二个参数"r" 代表读取文件信息。(如需了解如何写入信息,请参阅示例程序esp8266-flash-write)
  19. ***********************************************************************/

  20. #include <FS.h>

  21. String file_name = "/taichi-maker/notes.txt";              //被读取的文件位置和名称

  22. void setup() {
  23.   Serial.begin(9600);
  24.   Serial.println("");
  25.   
  26.   if(SPIFFS.begin()){ // 启动闪存文件系统
  27.     Serial.println("SPIFFS Started.");
  28.   } else {
  29.     Serial.println("SPIFFS Failed to Start.");
  30.   }

  31.   //确认闪存中是否有file_name文件
  32.   if (SPIFFS.exists(file_name)){
  33.     Serial.print(file_name);
  34.     Serial.println(" FOUND.");
  35.   } else {
  36.     Serial.print(file_name);
  37.     Serial.print(" NOT FOUND.");
  38.   }

  39.   //建立File对象用于从SPIFFS中读取文件
  40.   File dataFile = SPIFFS.open(file_name, "r");

  41.   //读取文件内容并且通过串口监视器输出文件信息
  42.   for(int i=0; i<dataFile.size(); i++){
  43.     Serial.print((char)dataFile.read());      
  44.   }

  45.   //完成文件读取后关闭文件
  46.   dataFile.close();                           
  47. }

  48. void loop() {
  49. }
复制代码

通过程序向闪存文件系统文件添加信息


  1. /**********************************************************************
  2. 项目名称/Project           : 零基础入门学用物联网
  3. 程序名称/Program name      : esp8266-flash-append
  4. 团队/Team                 : 太极创客团队 / Taichi-Maker (www.taichi-maker.com)
  5. 作者/Author               : CYNO 朔
  6. 日期/Date(YYYYMMDD)      : 20191109
  7. 程序目的/Purpose           : 此程序用于演示如何向NodeMCU的内置SPIFFS中存储的文件
  8.                             notes.txt添加数据。                     
  9. -----------------------------------------------------------------------  
  10. 函数说明:
  11. SPIFFS.open(file_name, "a");
  12. 以上SPIFFS函数有两个参数:
  13. 第一个参数是被操作的文件名称,本示例中该文件为/notes.txt
  14. 第二个参数"a" 代表添加文件信息。(如需了解如何读取信息,请参阅示例程序esp8266-flash-read)
  15. 此示例程序所演示的是向SPIFFS中的文件里添加信息。这一操作写入信息有所区别。
  16. 添加信息是不会删除文件内原有信息,而是在原有信息后面添加新的信息。
  17. 但写入操作(示例 esp8266-flash-write.ino)是将文件内容完全清除,重新写入新信息。   
  18. ***********************************************************************/

  19. #include <FS.h>

  20. String file_name = "/taichi-maker/notes.txt";              //被读取的文件位置和名称

  21. void setup() {
  22.   Serial.begin(9600);
  23.   Serial.println("");
  24.   
  25.   if(SPIFFS.begin()){ // 启动闪存文件系统
  26.     Serial.println("SPIFFS Started.");
  27.   } else {
  28.     Serial.println("SPIFFS Failed to Start.");
  29.   }

  30.   //确认闪存中是否有file_name文件
  31.   if (SPIFFS.exists(file_name)){
  32.    
  33.     Serial.print(file_name);
  34.     Serial.println(" FOUND.");

  35.     File dataFile = SPIFFS.open(file_name, "a");// 建立File对象用于向SPIFFS中的file对象(即/notes.txt)写入信息
  36.     dataFile.println("This is Appended Info."); // 向dataFile添加字符串信息
  37.     dataFile.close();                           // 完成文件操作后关闭文件   
  38.     Serial.println("Finished Appending data to SPIFFS");
  39.    
  40.   } else {
  41.     Serial.print(file_name);
  42.     Serial.print(" NOT FOUND.");
  43.   }
  44.                         
  45. }

  46. void loop() {
  47. }
复制代码

读取文件目录

  1. #include <FS.h>

  2. String file_name = "/taichi-maker/myFile.txt"; //被读取的文件位置和名称
  3. String folder_name = "/taichi-maker";         //被读取的文件夹

  4. void setup() {
  5.   Serial.begin(9600);
  6.   Serial.println("");
  7.   
  8.   if(SPIFFS.begin()){ // 启动闪存文件系统
  9.     Serial.println("SPIFFS Started.");
  10.   } else {
  11.     Serial.println("SPIFFS Failed to Start.");
  12.   }

  13.   File dataFile = SPIFFS.open(file_name, "w");// 建立File对象用于向SPIFFS中的file对象(即myFile.txt)写入信息
  14.   dataFile.println("Hello Taichi-Maker.");    // 向dataFile写入字符串信息
  15.   dataFile.close();                           // 完成文件写入后关闭文件
  16.   Serial.println(F("Finished Writing data to SPIFFS"));

  17.   // 显示目录中文件内容以及文件大小
  18.   Dir dir = SPIFFS.openDir(folder_name);  // 建立“目录”对象
  19.   
  20.   while (dir.next()) {  // dir.next()用于检查目录中是否还有“下一个文件”
  21.     Serial.println(dir.fileName()); // 输出文件名
  22.   }
  23. }

  24. void loop() {
  25. }
复制代码

删除目录
  1. #include <FS.h>

  2. String file_name = "/taichi-maker/notes.txt";              //被读取的文件位置和名称

  3. void setup() {
  4.   Serial.begin(9600);
  5.   Serial.println("");
  6.   
  7.   if(SPIFFS.begin()){ // 启动闪存文件系统
  8.     Serial.println("SPIFFS Started.");
  9.   } else {
  10.     Serial.println("SPIFFS Failed to Start.");
  11.   }
  12.   
  13.   //从闪存中删除file_name文件
  14.   if (SPIFFS.remove(file_name)){
  15.    
  16.     Serial.print(file_name);
  17.     Serial.println(" remove sucess");
  18.    
  19.   } else {
  20.     Serial.print(file_name);
  21.     Serial.println(" remove fail");
  22.   }                       
  23. }

  24. void loop() {
  25. }
复制代码



回复

使用道具 举报

您需要登录后才可以回帖   登录 立即注册

高级模式

南通谢凡软件科技有限公司