ESP8266 SPIFFS学习

ESP8266 SPIFFS大概结构如下图所示:

 

我个人很喜欢ESP8266这个板,主要是由于它提供了一系列价格低廉、高可用的IoT开发及接入方案。你是否知道在ESP8266的系统闪存可以用来存储代码甚至是文件吗?

这个文件系统可以让我们存储一些变更频率不频繁的文件例如网页、配置或者是某些固化的数据等。芯片内置这样的小型文件系统后ESP8266就相当于是一块Arduino+WIFI+SD扩展板的功能了,但价格上却只需要比Arduino低上很多。正因为了它我们就能在里面植入一些其它的固件用于支持像Lua或者Micropython这样的脚本类语言引擎以简化嵌入式设备的编程。

它就是SPIFFs - SPI Flash Filing System!



作者:梁睿坤
链接:https://www.jianshu.com/p/014bcae94c8b
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 

环境配置:

安装一个IDE插件

https://github.com/esp8266/arduino-esp8266fs-plugin/releases/tag/0.2.0

 

 

把ESP8266FS-0.20和源码下下来,在次感谢大神的开源精神,真伟大!

源码解压出来一看是JAVA写的,不管这个了,咱们直接用提供的插件就可以了,

解压出来有一个.jar文件,然后把它放到D:\Program Files (x86)\Arduino\tools下,然后冲昂起Arduino就可以看到这个插件了。

 

实际上没看到!不知道为什么。

而且开发板还不到ESP8266,如下图:

 

找出没有看到ESP8266 SKetch Data Upload的菜单原因了:

D:\Program Files (x86)\Arduino\tools下应该建一个文件夹ESP8266FS,

ESP8266FS里再建一个文件夹tool,然把那个.jar文件放到新建的文件夹tool里头就可以了,如下图:

 

 

 

 

 

找不到开发板里的ESP8266的原因是:

把电脑所连接的WIFI断开然后再连接就好了!

 

 

注:在使用SPIFFS功能之前需要在文件内引用头文件:

#include FS.h

 

使用SPIFFS

ESP8266FS插件其实只是在当前项目目录下创建了一个data目录,我们只要将需要上传到芯片文件系统的内容放置在这个 data目录中就可以了,然后点击ESP8266 Skech Data Upload Arduino IDE就会将这个目录的文件写入到SPIFFS中了。要注意的是文件的大小不能超过板子SPIFFS的大小,否则会上传失败。

我们就尝试将一个index.html网页文件放到data目录,然后将其上传到ESP8266中,接下来用以下的代码将SPIFFS中的index.html读出来:

#include"FS.h"

void setup()

{

Serial.begin(115200);

bool ok = SPIFFS.begin();

if (ok)

{

Serial.println("ok"); //检查文件是否存在

bool exist = SPIFFS.exists("/index.html");

if (exist)

{

Serial.println("The file exists!");

File f = SPIFFS.open("/index.html", "r");

if (!f)

{

// 在打开过程中出现问题f就会为空

Serial.println("Some thing went wrong trying to open the file...");

} else

{

int s = f.size();

Serial.printf("Size=%d\r\n", s); //读取index.html的文本内容

String data = f.readString();

Serial.println(data);

//关闭文件 f.close();

}

}else

{

Serial.println("No such file found.");

}

}

}

void loop()

{

// put your main code here, to run repeatedly:

}

作者:梁睿坤


链接:https://www.jianshu.com/p/014bcae94c8b
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值