(2)esp8266多国语言翻译系统
http://bbs.mydigit.cn/simple/?t2649513.html
这个想法不错
原来只是想用esp8266搞一个百度的多国语言翻译系统出来的,只是为了尝试如何调用各种web api。
Web Api很容易实现,所以先用串口做了一个翻译工具。
[attachment=17244284]
输入各种不同的语言,系统自动会输出翻译好的目标语言的译文。
也可以通过修改目标语言的类型,翻译成中文之外的其他语言,比如日文,韩文,泰文,阿拉伯文,甚至是文言文。
不过尽管必须使用支持utf-8的串口工具来和esp8266通讯,但是除了中日英繁,以及法意等较为常见的欧洲语系之外,韩文,泰文,阿拉伯文等就无能为力了,尽管翻译成功了,但是输出到终端上就都是问号了。
那么既然8266能发起http client连接,当然作为http server也是可以的。
于是按照arduino提供的例程,在8266上建立了一个httpserver,这样就可以使用手机,电脑的浏览器直接打开8266的主页,实现类似百度翻译的功能。各种问号的问题也就迎刃而解了。
所以它就变成了下面这个样子。(硬件除了一片NodeMCU插上电以外其他是什么都不需要的)
[attachment=17244330]
[attachment=17244294]
[attachment=17244296]
输入需要翻译的文本后,焦点离开输入框就会自动将原文翻译成目标语言显示在译文处。
更换目标语言同样会触发翻译动作。
因为使用了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,就大功告成了。
总结一下用到的一些很好的库
1.WiFiManger:一个可以帮助8266连接到网络的库,如果周围没有可以连接WiFi热点,他就会自动建立一个热点,这个时候可以方便的使用手机或电脑连接到该热点,通过浏览器设置8266的SSID和密码。再也不用把ssid和密码写死在程序中了。(推荐使用)
2.ArduinoJson:一个可以解析json字符串的东西,很多API返回的都是Json结构的数据,没有这个库肯定事倍功半。
3.SPIFFS:这个是8266自带的,#include <FS.h>就可以了。不用做任何事,直接就有了一张SD卡的感觉。(强烈推荐)
Arduino是一个开放的平台,这些库都可以通过Arduino的库管理直接下载使用,非常方便。
如果嫌弃Arduino简陋的IDE界面和功能,我向大家推荐使用微软的VS Code,注意不是visual stdio,vs code是微软提供的一套免费的开发环境,几乎所有种类的代码都可以在这个IDE中开发。还有无数非常好用的插件可以免费使用。
我已经就彻底抛弃了arduino IDE,换成了vs code + platformIO插件了。
所有arduino ide的槽点全部彻底解决。让你兴奋到发抖,用过了就再也回不去了。
另外分享一个经验:
还在用115200的串口速率往8266中烧写代码吗?
换成921600吧,体验一下快8倍是什么感觉。
(2)esp8266多国语言翻译系统的更多相关文章
- Inno Setup:获取isl中的多国语言字串
原文 http://zwkufo.blog.163.com/blog/static/25882512010101041626803/?suggestedreading&wumii 用InnoS ...
- 解析大型.NET ERP系统 多国语言实现
实现多国语言有许多种实现方案,无外乎是一种字符串替换技术,将界面控件的文本标签替换成相应语言的文字..NET Windows Forms实现多国语言的方法有以下几种: 1 .NET的方案,使用资源文件 ...
- 引擎设计跟踪(九.8) Gizmo helper实现与多国语言
最近把gizmo helper的绘制做好了. 1.为了复用代码,写了utility来创建sphere, cube, cylinder, plane, ring(line), circle(solid) ...
- WPF应用程序支持多国语言解决方案
原文:WPF应用程序支持多国语言解决方案 促使程序赢得更多客户的最好.最经济的方法是使之支持多国语言,而不是将潜在的客户群限制为全球近70亿人口中的一小部分.本文介绍四种实现WPF应用程序支持多国语言 ...
- 使用 .toLocaleString() 轻松实现多国语言价格数字格式化
用代码对数字进行格式化,显然不是逢三位加逗号这么简单.比如印度在数字分位符号上的处理,就堪称业界奇葩: 印度的数字读法用“拉克”(十万)和“克若尔”(千万),数字标法用不对称的数位分离,即小数点左侧首 ...
- 译文 [ROM][多国语言][2015.06.11] Lenovo S750 (MTK6589) - andrea_d86-lenovos750-4.2.2
************************************************** andrea_d86-lenovos750-4.2.2-150530 ************** ...
- Vnc自动登录器-多国语言绿色版
推荐:介绍一个VNC连接工具:iis7服务器管理工具.IIs7服务器管理工具可以批量连接并管理VNC服务器.作为服务器集成管理器,它最优秀的功能就是批量管理windows与linux系统服务器.vps ...
- 高质量,高效率的多国语言软件开发(Web/PC/Mobile),使用接口约束/调用不同语言资源
偶然间翻出了几年前写的一个小程序,把当时的资料整理整理分享一下. 当时为了给自己的软件实现多国语言功能,而开发的辅助工具:SE String Resource. 这是当时基于自己另一款 IDE 软件抽 ...
- 第九篇:在SOUI中使用多语言翻译
为UI在不同地区显示不同的语言是产品国际化的一个重要要求. 在SOUI中实现了一套类似QT的多语言翻译机制:布局XML不需要调整,程序代码也不需要调整,只需要为不同地区的用户提供不同的语言翻译文件即可 ...
随机推荐
- JavaScript函数重载
译者按: jQuery之父John Resig巧妙地利用了闭包,实现了JavaScript函数重载. 原文: JavaScript Method Overloading 译者: Fundebug 为了 ...
- 带你使用JS-SDK自定义微信分享效果
前言 想必各位在写wap端时都遇到过这样的场景吧 ----自定义分享标题.图片.描述 接下来小编给大家讲解下分享相关操作 预期效果 原始的分享效果: 使用微信JS-SDK的分享效果: 可以看出缩略图, ...
- HDU1846 Brave Game
Brave Game Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- codevs3002 石子归并 3
题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代价为两堆石子的重量和w[i]+w[i+1].问安排怎样的合并顺序,能够使 ...
- 【20190226】JavaScript-知识点记录:dom0级事件,dom2级事件
DOM0级事件处理程序: 通过将元素的事件处理程序属性(如onclick)的值设置为一个函数来指定事件处理程序的方法称为DOM0级方法,它被认为是元素的方法,这时候的事件处理程序是在元素的作用域中运行 ...
- Android项目实战(四十九):Andoird 7.0+相机适配
解决方案类似: Android项目实战(四十):Andoird 7.0+ 安装APK适配 解决方法: 一.在AndroidManifest.xml 文件中添加 四大组件之一的 <provider ...
- 方法调用 Controller的Action 参数
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- spring4笔记----web.xml中2.4以上版本Listener的配置
基本上没用过Servlet2.4以下版本,所以2.4版本以下不必学了 <?xml version="1.0" encoding="UTF-8"?> ...
- 想起以前写的一个爬虫,然后就用C#WinForm写了一个下载小说的软件,比较简单
本软件本是练习.讨论爬虫技术所用.如果侵犯了您的利益请联系我,我会立即删除! 小工具安装包: 百度网盘链接:https://pan.baidu.com/s/1m_OuEBOEE47kYaXq5fwpI ...
- 洗礼灵魂,修炼python(78)--全栈项目实战篇(6)—— 多级目录菜单之地址管理系统
相信各位都在在网上买过东西吧?那么今天我的主题就是写个在线购物系统,是不可能的,哈哈(后期确实有这个项目),那么购物都填写过快递地址吧?然后网上查个地址都有地址管理吧? 要求: 1.打印出省.市.县等 ...