切换到宽版
  • 13674阅读
  • 13回复

不小心用esp8266搭了一台简易的Web服务器出来,使用SPIFFS存放网站文件 [复制链接]

上一主题 下一主题
离线jjbboox
 

发帖
808
M币
4210
专家
13
粉丝
49
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2019-01-27
原来只是想用esp8266搞一个百度的多国语言翻译系统出来的,只是为了尝试如何调用各种web api。
Web Api很容易实现,所以先用串口做了一个翻译工具。



输入各种不同的语言,系统自动会输出翻译好的目标语言的译文。
也可以通过修改目标语言的类型,翻译成中文之外的其他语言,比如日文,韩文,泰文,阿拉伯文,甚至是文言文。

不过尽管必须使用支持utf-8的串口工具来和esp8266通讯,但是除了中日英繁,以及法意等较为常见的欧洲语系之外,韩文,泰文,阿拉伯文等就无能为力了,尽管翻译成功了,但是输出到终端上就都是问号了。

那么既然8266能发起http client连接,当然作为http server也是可以的。
于是按照arduino提供的例程,在8266上建立了一个httpserver,这样就可以使用手机,电脑的浏览器直接打开8266的主页,实现类似百度翻译的功能。各种问号的问题也就迎刃而解了。
所以它就变成了下面这个样子。(硬件除了一片NodeMCU插上电以外其他是什么都不需要的)





输入需要翻译的文本后,焦点离开输入框就会自动将原文翻译成目标语言显示在译文处。
更换目标语言同样会触发翻译动作。
因为使用了ajax技术,所有画面操作都不会引起画面的整体刷新,看上去就像一个桌面应用一样。
还有一个按钮可以控制8266的板载LED点亮或者关闭。同样按钮的状态也是使用ajax从后台取得,所以和板载LED的状态是能够保持一致的。

最开始和普通例程一样使用拼接字符串的方式来显示页面的,用掉很多内存空间不说,每一行还要加双引号,中间的引号还要用转义符,写对写错也无法判断。
为了解决这个问题,就引入了SPIFFS技术。翻成中文应该是SPI接口的Flash文件系统。这样就可以在这个文件系统中建立基于文件的Web服务了。
具体这个SPIFFS是什么,怎么用,大家可以自己去百度一下。在没有挂载SD卡的8266上简直就是天赐的好东西,好用又不要钱。
所以你们现在看到的页面上的图标(我的头像),页面底部的图片,还有页面套用的样式单等相关的网页文件都是存放在这个文件系统中的独立文件。
最多可以有4M的文件系统的容量,唯一的限制就是每个文件的全路径文件名不能超过32个字符。但这个对于如此轻量级的Web服务器绝对是够用了。
Arduino上可以找到专用用来烧写SPIFFS的工具,可以将工程文件夹下的data目录直接烧写到8266中。

有了文件系统,很随意的就把以前从别处抄来的js版的贪吃蛇和鼠标动态效果两个html直接挂载上去了。
无需编译代码,只要在index.html中添加两个链接,再把2个文件放到SPIFFS的根目录中,然后把SPIFFS重新写入esp8266,就大功告成了。
[ 此帖被jjbboox在2019-01-27 16:06重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共2条打赏 ,M币+51 ,专家+1
阿睦 专家 +1 以資鼓勵 2019-01-27
阿睦 M币 +51 以資鼓勵 2019-01-27
离线慕名而来

发帖
1706
M币
6089
专家
11
粉丝
68
只看该作者 1楼 发表于: 2019-01-27
请登录后查看
离线jjbboox

发帖
808
M币
4210
专家
13
粉丝
49
只看该作者 2楼 发表于: 2019-01-27
请登录后查看
离线worldlyguest

发帖
2238
M币
7072
专家
5
粉丝
39
只看该作者 3楼 发表于: 2019-01-27
请登录后查看
离线junyee

发帖
4100
M币
1036
专家
12
粉丝
165
只看该作者 4楼 发表于: 2019-01-27
请登录后查看
离线jjbboox

发帖
808
M币
4210
专家
13
粉丝
49
只看该作者 5楼 发表于: 2019-01-27
回 junyee 的帖子
请登录后查看
离线handsome

发帖
2524
M币
0
专家
3
粉丝
51
只看该作者 6楼 发表于: 2019-01-27
回 jjbboox 的帖子
请登录后查看
离线jjbboox

发帖
808
M币
4210
专家
13
粉丝
49
只看该作者 7楼 发表于: 2019-01-27
请登录后查看
离线zeze10000

发帖
2858
M币
8559
专家
35
粉丝
112
只看该作者 8楼 发表于: 2019-01-30
请登录后查看
离线九都多平

发帖
207
M币
115
专家
0
粉丝
12
只看该作者 9楼 发表于: 2019-01-30
请登录后查看
快速回复
限80 字节
“新手上路”发帖需审核后才能显示(请认真发帖),达到数码9级后取消此限制
 
上一个 下一个