ESP8266-01高阶——OTA下载

2023-10-29

OTA简介

什么是OTA下载?空中下载(OTA)是通过移动通信的空中接口实现对移动终端设备及SIM卡数据进行远程管理的技术。之前做的OLED网络时钟更新代码要反复拆装十分不便,于是在机缘巧合下了解到了esp8266的OTA技术,show time!

OTA怎么用

在网上疯狂的搜也没有找到合适的、简洁明了的示例,于是在B站找到了太极创客.,感谢UP的团队整理了这么多的资料,他们官网也有OTA资料,可以去借鉴,以下是个人理解,有错欢迎指正

基本控制原理

先让8266连上WiFi,然后让8266和PC在同一局域网下进行Over-The-Air传输代码,当单片机正常运行时,收到PC发来的OTA指令,单片机要保存当前的代码,在跳转到OTA传输函数去执行传输新代码,如果这时候取消传输了,程序还能回到原始代码,这全靠loop里面的 ArduinoOTA.handle()函数了,具体的底层我们先不管,接下来是代码,如下:

#include <ESP8266WiFi.h>
#include <ArduinoOTA.h>//引入OTA库,这是关键
 
// 设置wifi接入信息,PC也要连这个WiFi
const char* ssid = "ssid";
const char* password = "password";
 
void connectWifi(){
  //开始连接wifi
  WiFi.begin(ssid, password);
 
  //等待WiFi连接,连接成功打印IP
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi Connected!");  
  Serial.print("IP address:\t");            
  Serial.println(WiFi.localIP());          
}
void setup() {
  Serial.begin(9600);            
  Serial.println("");
 
  connectWifi();
 
  // OTA设置并启动,以下两行是账户密码设置,使工程具有保密性,也可去除,直接下载
  ArduinoOTA.setHostname("ESP8266");
  ArduinoOTA.setPassword("12345678");
  ArduinoOTA.begin();
  
  Serial.println("OTA ready");
}
void loop() {
  ArduinoOTA.handle();//OTA回调函数,相当于OTA中断处理
}
 

烧录代码

点击 工具 选择OTA 端口,再点击上传即可(一定要都在同一个WiFi下

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ESP8266-01高阶——OTA下载 的相关文章

  • window.open 使用方法总结

    1 最基本的弹出窗口代码 因为着是一段javascripts代码 所以它们应该放在之间 是对一些版本低的浏览器起作用 在这些老浏览器中不会将标签中的代码作为文本显示出来 要养成这个好习惯啊 window open test html 用于
  • 蓝牙之八-HFP

    HFP 在调试安卓的HFP client时遇到了如下问题 其中有一个E提示 因为AT命令的错误 所有创建SLC失败 然后断开RFCOMM链接 表现出来的是已经配对的手机不停的断开重连 HFP协议 HFP Hands free Profile
  • 2020重庆市法治理论知识考试答案查询收集

    重庆市法治理论知识考试平台考试题 下面就是搜集答案的代码 我得到的题目就下面这些 答案没放上来 我这也有 文档下载地址 链接 https pan baidu com s 1rLxqMdFUPxCjEVdpepq wg 提取码 dnyq 复制
  • 【HIT-软件构造】使用Gradle脱离IDE环境

    在软件构造实验中 我们将代码提交到GitHub仓库前 实验还要求我们使用其他工具build我们的实验代码以脱离环境 这些工具包括Ant Maven Gradle Travis CI等 然而这些构建工具不论是在线的还是离线的 都需要基于Gro

随机推荐

  • RestFul风格详解

    文章目录 一 前言 二 什么是RestFul风格 三 传统风格与RestFul风格对比 1 传统方式操作资源 2 RestFul方式操作资源 四 RestFul代码演示 1 代码展示 2 拓展情景 五 使用method属性指定请求类型 六
  • latex全文设置段间距_latex 标题、段落及行距

    资源 本文主要介绍了如何使用 titlesec 宏包设置各级标题样式 这里 是其官方手册 本文主要参考了该手册 如果想了解更多详情请直接查阅该手册 此外本文还对缩进 段距 行距的内容进行的简单的介绍 设置标题样式 标题样式的设置分为三个部分
  • 【leetcode刷题】-- 回文数(C++反转数组解法)

    题目链接 https leetcode cn com problems palindrome number 给你一个整数 x 如果 x 是一个回文整数 返回 true 否则 返回 false 回文数是指正序 从左向右 和倒序 从右向左 读都
  • 《生成对抗网络》综述(附257页ppt下载)

    地址 https sites google com view berkeley cs294 158 sp20 主要由UC伯克利教授Pieter Abbeel主讲 他曾师从吴恩达 现任伯克利机器人学习实验室主任 伯克利人工智能研究 BAIR
  • Python之小数转化为百分数

    1 有一个小数0 2233 我们需要将它转换成22 33 的形式 h 0 2233 print 2f h 100 这两行代码中 我们使用了三个百分符号 第一个百分符号靠近 2f 表示的就是以一个float的形式输出 2表示将保留两位小数进行
  • [ 环境搭建篇 ] 安装python环境并配置环境变量(附python3.10.3安装包)

    博主介绍 博主介绍 大家好 我是 PowerShell 很高兴认识大家 主攻领域 渗透领域 数据通信 通讯安全 web安全 面试分析 点赞 评论 收藏 养成习惯 一键三连 欢迎关注 一起学习 一起讨论 一起进步 文末有彩蛋 作者水平有限 欢
  • 从零实现RPC框架之:4协议设计

    前言 一提到协议 最先想到的可能是 TCP 协议 UDP 协议等等 这些网络传输协议的实现以及应用层的HTTP协议 其实rpc协议和http协议都属于应用层协议 可能你会问 前面你不是说了 HTTP 协议跟 RPC 都属于应用层协议 那有了
  • vector和list区别【转】

    stl提供了三个最基本的容器 vector list deque vector和built in数组类似 它拥有一段连续的内存空间 并且起始地址不变 因此它能非常好的支持随即存取 即 操作符 但由于它的内存空间是连续的 所以在中间进行插入和
  • js获取上个月第一天和最后一天(layui)

    var nowdays new Date var year nowdays getFullYear var month nowdays getMonth if month 0 month 12 year year 1 if month lt
  • Spring Cloud Gateway④自定义限流控制策略

    目录 背景 本文开发环境介绍 新增每秒限流过滤器 自定义DemoRateLimitPerSecondGatewayFilterFactory类 修改路由配置 验证每秒限流策略 新增每天限流过滤器 自定义DemoRateLimitPerDay
  • 常用正则表达式范例

    校验数字的表达式 数字 0 9 n位的数字 d n 至少n位的数字 d n m n位的数字 d m n 零和非零开头的数字 0 1 9 0 9 非零开头的最多带两位小数的数字 1 9 0 9 0 9 1 2 带1 2位小数的正数或负数 d
  • Log4j详解

    Log4j主要由 Loggers 日志记录器 Appenders 输出控制器 和 Layout 日志格式化器 组成 其中 Loggers 控制日志的输出以及输出级别 JUL做日志级别Level Appenders 指定日志的输出方式 输出到
  • 【例17.1】连接本地的MySQL 8.0的驱动包(如果连接成功,显示“数据库连接成功!”)

    例17 1 连接本地的MySQL 8 0的驱动包 创建ConnectionUtil类 在主方法中加载MySQL 8 0的驱动包 并连接本地MySQL 8 0数据库 如果可正常连接则输出成功提示 例17 1 连接本地的MySQL 8 0的驱动
  • element el-image标签加载本地图片失败解决方法

    图片地址需require引入
  • JS_判断打开的是什么手机品牌,判断是否是手机,平板,pc

    判断业务是否是 iphone 华为 小米 oppo view 三星 打开 手机品牌userAgent库 http www fynas com ua function judgeBrand sUserAgent var isIphone sU
  • 计算机网络技术或许会用到的网站

    1 思科华为3com论坛 http bbs 56cto com 有很多学习资料 2 51CTO http www 51cto com 简 介 www 51CTO com立于2005年8月 由国内知名IT门户网站管理团队和一批资深互联网人士创
  • ajax 等待时表示图片,扩展ajax ,请求等待图片展示

    function ajax2 function options var img progressImgage var mask maskOfProgressImage var complete options complete option
  • Hive的介绍及部署搭建

    文章目录 Hive的介绍 Hive与Hadoop之间的关系 Hive功能实现图 Hive架构图 Hive组件 Hive中的元数据 Hive的安装部署 安装部署的前提 Mysql的安装 Hive安装 启动Hive 客户端连接Hive Hive
  • IPC:信号——信号捕捉

    推荐使用 取代signal int sigaction int signum const struct sigaction act struct sigaction oldact 功能 检查或者改变信号的处理 信号捕捉 参数 signum
  • ESP8266-01高阶——OTA下载

    ESP8266高阶 OTA下载 OTA简介 OTA怎么用 基本控制原理 烧录代码 高级用法 题外话 工程资料 OTA简介 什么是OTA下载 空中下载 OTA 是通过移动通信的空中接口实现对移动终端设备及SIM卡数据进行远程管理的技术 之前做