“OTA Updates”的版本间的差异

来自YFRobotwiki
跳转至: 导航搜索
第73行: 第73行:
 
* ESP和计算机必须连接到同一个网络。
 
* ESP和计算机必须连接到同一个网络。
  
=== 应用 例 Application Example ===
+
=== 应用 例 Application Example ===
  
 +
以下说明在NodeMCU 1.0(ESP-12E Module)板上配置OTA。你可以使用任何其他董事假定其符合要求,如上所述。该指令适用于Arduino IDE支持的所有操作系统。在Windows 7上进行了屏幕截图,如果您使用的是Linux和MacOS,您可能会看到较小的差异(如串行端口名称)。
 +
 +
1.在开始之前,请确保您安装了以下s / w:
 +
- Arduino IDE 1.6.7或更高版本 - https://www.arduino.cc/en/Main/Software
 +
- esp8266 / Arduino平台软件包2.0.0或更新 - 有关说明请遵循https://github.com/esp8266/Arduino#installing-with-boards-manager
 +
- Python 2.7(不安装不支持的Python 3.5) - https://www.python.org/
 +
注意: Windows用户应选择“将python.exe添加到路径”(见下文 - 默认情况下未选择此选项)。
  
  

2017年5月22日 (一) 11:34的版本

最新原文文档地址:ESP8266 Arduino Core-latest version


介绍 Introduction

OTA(空中)更新是使用Wi-Fi连接而不是串行端口将固件加载到ESP模块的过程。在对模块进行有限或无物理访问的情况下,这种功能变得非常有用。

OTA需要一下几个方面的支持:

  • Arduino IDE
  • Web Browser
  • HTTP Server

Arduino IDE选项主要用于软件开发阶段。 另外两个选项将在部署后更有用,通过Web浏览器手动提供应用程序更新模块,或者自动使用http服务器。 在任何情况下,必须通过串行端口完成第一个固件上传。 如果OTA例程在草图中正确实现,则所有后续上传都可以在空中完成。

OTA进程没有强加的安全性被黑客入侵。确保开发人员只能从合法/受信任的来源获得更新。更新完成后,模块将重新启动,并执行新的代码。开发人员应确保在模块上运行的应用程序以安全的方式关闭并重新启动。以下章节提供有关OTA过程的安全性和安全性的其他信息。

保密性 Security

模块必须以无线方式显示,以便通过新的草图进行更新。 这使得模块被强行入侵并加载了其他代码。 为了减少被黑客入侵的可能性,请考虑使用密码保护您的上传,选择某些OTA端口等。

检查可以提高安全性的ArduinoOTA库提供的功能:

void setPort(uint16_t port);
void setHostname(const char* hostname);
void setPassword(const char* password);

已经内置了某些保护功能,不需要开发人员进行任何其他编码。ArduinoOTA和espota.py使用Digest-MD5来验证上传。使用MD5校验和,在ESP端验证传输数据的完整性。

进行自己的风险分析,并根据应用决定什么库功能来实现。如果需要,请考虑实施其他保护手段被黑客入侵。仅根据具体时间安排上传的模块,触发OTA只能按用户专用的“更新”按钮连接到ESP等。

安全性 Safety

OTA过程在上传过程中采用ESP的资源和带宽。然后重新启动模块并执行新的草图。分析和测试它如何影响现有和新草图的功能。

如果将ESP放置在远程位置并控制某些设备,则应该额外注意如果本设备的操作突然被更新过程中断,会发生什么。因此,在开始更新之前,请决定如何将本设备置于安全状态。例如,您的模块可能会按顺序控制花园浇水系统。如果这个顺序没有正确关闭并且水阀打开,你的花园可能会被淹没。

ArduinoOTA库提供以下功能,旨在处理OTA特定阶段应用程序的功能或OTA错误:

void onStart(OTA_CALLBACK(fn));
void onEnd(OTA_CALLBACK(fn));
void onProgress(OTA_CALLBACK_PROGRESS(fn));
void onError(OTA_CALLBACK_ERROR (fn));

基本要求 Basic Requirements

闪存芯片尺寸应该能够同时保持旧的草图(当前正在运行)和新的草图(OTA)。

请记住文件系统和EEPROM例如需要的空间(一次)也看到闪光布局。

ESP.getFreeSketchSpace();

可用于检查新草图的可用空间。

有关内存布局的概述,存储新草图以及在OTA过程中如何复制它们,请参阅更新进程 - 内存视图。

以下章节提供了更多的细节和具体的OTA做法。

Arduino IDE

从Arduino IDE无线上传模块适用于以下典型场景: - 在固件开发过程中,通过串行加载更快的替代方案 - 用于更新少量模块 - 只有模块在与Arduino IDE的计算机相同的网络上可用。

要求 Requirements

  • ESP和计算机必须连接到同一个网络。

应用实例 Application Example

以下说明在NodeMCU 1.0(ESP-12E Module)板上配置OTA。你可以使用任何其他董事假定其符合要求,如上所述。该指令适用于Arduino IDE支持的所有操作系统。在Windows 7上进行了屏幕截图,如果您使用的是Linux和MacOS,您可能会看到较小的差异(如串行端口名称)。

1.在开始之前,请确保您安装了以下s / w: - Arduino IDE 1.6.7或更高版本 - https://www.arduino.cc/en/Main/Software - esp8266 / Arduino平台软件包2.0.0或更新 - 有关说明请遵循https://github.com/esp8266/Arduino#installing-with-boards-manager - Python 2.7(不安装不支持的Python 3.5) - https://www.python.org/ 注意: Windows用户应选择“将python.exe添加到路径”(见下文 - 默认情况下未选择此选项)。
















给我写信

返回ESP8266_Arduino

返回首页

购买地址 arduino_ESP8266

更多建议和问题欢迎反馈至 YFRobot论坛