ESP8266 OTA 远程升级源码

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lijian910wolf/article/details/80115725

为了更好的交流学习,看到的伙伴请加QQ技术交流群:419844807,这样就不用我给每个需要源码的伙伴发送邮件了。 

提供一个源码下载地址:https://download.csdn.net/download/lijian910wolf/11222503   

很多年没写文章了,最近有个伙伴,在某个应用QQ群里看到有个作者写了篇关于ESP8266 NONOS OTA远程升级的文章,并提供DEMO 打赏下载。说来也巧,该伙伴正好在用我们提供的OTA升级方案,就把文章转发给我看,这么多写OTA升级的文章,为什么偏偏把这篇文章转给我看呢,该伙伴从那篇文章里截了部分文字给我:“还特意在某宝上搜了一把,竟然卖的价格为“399”元一个8266的OTA升级方案!天呐!代码这么值钱么?那我之前开源了那么多的工程源码带博文,岂不是无价之宝”;看了这个才有这篇很多年来的第一篇博客。

      先不管该作者是不是一定指向我们的,但是这句话,确实跟我们提供的服务一致,就好奇的看了下该作者的文章,对方写的很用心,把官方的例子用文字描述,一步一步的写的很入门,但是通篇看下来,引用的源码都是乐鑫官方SDK里提供的ota升级demo代码。说是开源了那么多啥东西,是个无价之宝,实际最后下载demo还要打赏,或许是打赏的伙伴少,就有上面的心里不平衡的牢骚。

      关于我们的OTA升级方案,有商用版和业余版,业余版采用的也是乐鑫官网的SDK里DEMO例子写的,不收费,给爱好者学习参考的。商用版方案是非SDK里的DEMO例子改写的,是我们花了汗水实现的,收费是很正常,何况连乐鑫官网的DEMO该作者都要打赏,那其他自主研发的同行收费再正常不过。

      最后想说的是,同行竞争在所难免,写文章也是,写你的文章就好,对别人的果实不要妄加评论(尤其是对对方的东西都不了解,就自以为是的认为怎样怎样);还有现在很多号称开源,开源是个好榜样,但那些假开源就不好了,明着开源,实则变相收取广大技术爱好者的打赏。

        贴段我们业余版用乐鑫SDK里免费DEMO的基础上的修饰的OTA升级代码,大家比较下看看是不是很像:

  upServer = (struct upgrade_server_info *)os_zalloc(sizeof(struct upgrade_server_info));
  upServer->upgrade_version[15] = '\0';
  upServer->pespconn = pespconn;
  os_memcpy(upServer->ip, pespconn->proto.tcp->remote_ip, 4);

  upServer->port = pespconn->proto.tcp->remote_port;

upServer->check_cb = upDate_rsp;

upServer->check_times = 120000;

  if(upServer->url == NULL)
  {
    upServer->url = (uint8 *) os_zalloc(1024);
  }
  //这里就是获取要升级的那个bin文件,把地址写上,然后请求下载下来
  if(system_upgrade_userbin_check() == UPGRADE_FW_BIN1)
  {
    os_memcpy(user_bin, "user2.bin", 10);
    at_port_print("AT+INFO=upgrade user2.bin ok\r\n");
  }
  else if(system_upgrade_userbin_check() == UPGRADE_FW_BIN2)
  {
    os_memcpy(user_bin, "user1.bin", 10);


    at_port_print("AT+INFO=upgrade user1.bin ok\r\n");
  }

  //加ota是因为两个升级文件放在ota目录下,如:http://192.168.1.106/ota/user1.bin
  os_sprintf(upServer->url,"GET /ota/%s HTTP/1.0\r\nHost: "IPSTR"\r\n"pheadbuffer"",
 user_bin, IP2STR(pespconn->proto.tcp->remote_ip));


  //新加的,这一步就是开始升级了
  if (system_upgrade_start(upServer) == false)
  {
 at_port_print("AT+INFO=upgrade is already started ok\r\n");
  }

这个我们是免费给广大技术爱好者跟学生学习用的,不需要打赏。需要业余版跟商用版的都可以私信给我。我们是正规企业,没时间写文章介绍。

展开阅读全文

没有更多推荐了,返回首页