电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
创作
电子发烧友网>电子资料下载>电子资料>灵活的ESP8266和ESP32初始设备配置

灵活的ESP8266和ESP32初始设备配置

2023-06-19 | zip | 0.00 MB | 次下载 | 2积分

资料介绍

描述

背景

当您将数百个设备部署为 IoT 项目的一部分时,问题是如何将它们接入客户的网络并为设备提供最新的特定固件。

问题是您不知道设备将在何时何地首次启动。

设备不知道 WiFi 参数,其固件可能已过时。

这就是ColdBoot提供帮助的地方。

所有信息都可以在:https ://github.com/arkhipenko/EspColdBoot

什么是冷启动?

ColdBoot 是 ESP8266ESP32 微控制器的预编译固件,能够快速收集:

  • WiFi参数(SSID和密码)
  • 最新配置文件的 URL
  • OTA更新服务器的URL

通过简单的网络表单从最终用户那里获得。

ColdBoot 的主要目标是尽可能快速轻松地访问 Wifi 并为特定设备提供最新固件。

ColdBoot 通过连接到 USB 或串行端口的终端窗口提供逐步说明(115200 bps 设置)

如何使用:

选项 1:将预编译的二进制文件直接上传到芯片

选项 2:编译并上传提供的草图。

可选:编辑data/config.json文件并使用上传工具上传到 SPIFFS

工艺流程

第 1 步:从 SPIFFS 中读取配置

ColdBoot 尝试从设备的 SPIFFS 文件系统中读取配置文件。

配置文件应命名为“ config.json ”,并应位于根文件夹中。

配置文件是一个简单的 JSON 数组,可以定义以下参数:

  • “标题” - 用于收集用户参数的 Web 表单的标题
  • "SSID" - WiFi 网络 SSID
  • “密码” - WiFi密码
  • “Config” - 如果参数来自网络,则配置文件的 URL
  • “OTA” - OTA 固件配置 HTTP 服务器的 URL
  • “fields” - 要在网络表单上显示的字段数

可以定义所有字段或字段的子集。后续流程可能会受到此文件的影响。

一个示例用例:

配置文件提供 Web 表单的标题、最新配置的 URL,并将 Web 表单字段的数量限制为 2(SSID 和密码)

{
  "Title"    : "My Amazing IoT device",
  "Config"   : "http://ota.home.lan/esp/config/",
  "fields"   : "2"
}

注意:要使用 SPIFFS 配置功能 - 根据需要编辑提供的data/config.json文件,并使用 Arduino IDE 中的 ESP8266 SPIFFS 上传工具将 SPIFFS 图像上传到设备。

第 2 步:根据 SPIFFS 配置连接到 WIFI

如果从 SPIFFS 读取配置成功,则可能会在此处提供 SSID 和密码,因此 ColdBoot 会尝试连接到 WiFi。

如果 SPIFFS 不可用config.json文件不可用,则跳过第 2 步。

第 3 步:用户提供配置

如果设备在步骤 2 中能够连接到 WiFi 网络,则跳过此步骤。

此时,设备会创建一个 WiFi AP 点并创建一个简单的 Web 表单,以便从用户那里收集配置参数。AP SSID 为ESP8266-ESP32-(例如:ESP8266-dac26e)

最终用户需要连接到 AP 并导航到http://10.1.1.1

 

poYBAGOYAQaAB8VSAABSOF9y4ds735.png
 

完整的网络表单如下所示:

 

pYYBAGOYAQmAIncRAABDqbRGJ8o930.png
 

基于步骤 1 示例config.json文件的简化 Web 表单如下所示:

poYBAGOYAQyAK0KVAAA2X63sWRs011.png
 

 

一旦用户点击提交按钮,设备就会一次又一次地尝试连接到 WiFi,直到成功。

设备将在 10 分钟不活动后重新启动。

第 4 步:从 HTTP 服务器读取配置

如果提供了配置 URL,设备将尝试从 HTTP 服务器读取和解析配置参数。

这里有两个选择:

  • 您可以提供到服务器的路径,其中每个设备都存储了特定的配置文件,或者
  • 您可以直接提供配置文件的路径(在这种情况下,多个设备可以读取同一个文件)

如果仅提供文件夹路径,ColdBoot将添加设备 ID 和版本,因此假定请求的配置是唯一的。例如,对于设备 ID ESP8266-dac26e,URL 将如下所示:

​http ://ota.home.lan/esp/config/coldboot-dac26e-1.0.0.json

(前提是http://ota.home.lan/esp/config/是你的配置服务器)

或者,您可以指定直接文件 URL,例如:

​http ://ota.home.lan/esp/config/iotdevice.json

如果ColdBoot确定未提供有效的 URL,则此步骤作为可选跳过

第 5 步:从 OTA 服务器更新固件

此时,ColdBoot 假定存在一个指向可用的 OTA 更新服务器的有效 URL。

设备将尝试根据提供的 URL 执行 OTA 固件更新。

这里有两个选择:

  • 您可以为每个设备提供存储特定二进制文件的服务器的路径,或者
  • 您可以直接提供二进制文件的路径(在这种情况下,多个设备可以基于同一个文件进行更新)

如果仅提供文件夹路径,ColdBoot将添加设备 ID 和版本,因此假定 OTA 请求是唯一的。例如,对于设备 ID ESP8266-dac26e,URL 将如下所示:

​http ://ota.home.lan/esp/bin/coldboot-dac26e-1.0.0.bin

(前提是http://ota.home.lan/esp/bin/是您的 OTA 服务器 URL)

或者,您可以指定直接文件 URL,例如:

​http ://ota.home.lan/esp/bin/iotdevice.bin

第 6 步:重新启动

如果一切顺利,则不应执行第 6 步,因为设备将在第 5 步成功 OTA 更新结束时重新启动。

但是,如果 OTA 更新失败,设备将等待 10 秒并重新启动。

文件夹:

数据- 如果需要通过 SPIFFS 进行配置,则将 SPIFFS 图像上传到设备。必须在根文件夹中包含一个名为config.json的 JSON 文件。

二进制- 预编译的 esp8266 二进制(假设 4Mb 闪存大小、2Mb SPIFFS 大小、1Mb OTA 大小),可以作为制造过程的一部分直接闪存到芯片中

例子:

下面是通过 ColdBoot 配置的真实设备的终端输出。

请注意,在 OTA 完成后,应用程序 ID 会更改为success-...。

ESP8266 ColdBoot v1.0.0

ESP8266 ID: ESP8266-dac26e

Full Application Version: coldboot-dac26e-1.0.0
---------------------------------------------

STEP 1:

 > Reading configuration file from SPIFFS if present
 > SUCCESS.

STEP 2:

 > Configuration read from SPIFFS:
 > Title	:	ColdBoot Initial Config
 > SSID	:	
 > Password	:	
 > Config	:	http://ota.home.lan/esp/config/
 > OTA	:	
 > fields	:	2
 > Current count = 6
 > Current size  = 157

 > Attempting WiFi connection ............................................................ WiFi connection timeout
 > WiFi connection unsuccessful.


STEP 3:

 > Provisioning configuration from the user

	Navigate to  http://10.1.1.1  and fill out the form
	Provide WiFi SSID and password
	as well as URLs for Configuration and/or OTA

 > Bootstrapping SUCCESS.
 > Configuration after Bootstrap:
 > Title	:	ColdBoot Initial Config
 > SSID	:	devices
 > Password	:	********
 > Config	:	http://ota.home.lan/esp/config/
 > OTA	:	
 > fields	:	2
 > Current count = 6
 > Current size  = 142

 > Attempting WiFi connection .............	WiFi connected
 > IP address: 192.168.122.65
 > SSID: devices
 > mac: 98:F4:AB:DA:C2:6E

STEP 4:

 > Checking if configuration should be read from an HTTP server
 > Attempting to read config from this URL:
   http://ota.home.lan/esp/config/coldboot-dac26e-1.0.0.json
 > SUCCESS.
 > Dictionary after HTTP config:
 > Title	:	ColdBoot Initial Config
 > SSID	:	devices
 > Password	:	********
 > Config	:	http://ota.home.lan/esp/config/
 > OTA	:	http://ota.home.lan/esp/bin/
 > fields	:	2
 > Current count = 6
 > Current size  = 148


STEP 5:

 > Checking for the OTA provisioning URL
 > Attempting OTA Update from this URL:
   http://ota.home.lan/esp/bin/coldboot-dac26e-1.0.0.bin

 ets Jan  8 2013,rst cause:2, boot mode:(3,7)

load 0x4010f000, len 3456, room 16 
tail 0
chksum 0x84
csum 0x84
va5432625
@cp:0
ld
ColdBoot v1.0.0

ESP8266 ID: ESP8266-dac26e
AppVersion: success-dac26e-1.0.0

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费