7-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(TCP实现HTTP访问下载文件,明白底层如何实现的,地基稳才踏实)
看了好多文章.....唉,还是自己亲自动手用网络监控软件测试吧
先看这个节安装WEB服务器.....安装好以后就可以用HTTP访问电脑文件了
6-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇-优化升级(安装Apache (Web服务器)软件,测试HTTP) 事先不知道HTTP,最后先看这个
其实HTTP就是建立在TCP通信上,然后自己又封装了一套协议罢了,不过协议也不算多,协议内容都是用字符串发送的,也好理解
感觉要比我以前自己用TCP实现MQTT协议简单多了,MQTT规定的协议就是复杂点,全部用16进制组合......麻烦死了...
https://www.cnblogs.com/yangfengwu/p/9124299.html
大家学了这个文章,只要自己的模块支持TCP,那么就可以实现用HTTP访问下载文件,
废话少说,我就下载我自己云端的这个文件
https://blog.csdn.net/runner_diego/article/details/51379116 (这个是我在网上找的介绍http协议的)
启动个TCP客户端
连接的ip地址选择自己的哈 我测试用的是 47.92.31.46 端口号80
GET /hardware/wifi1/updata1.lua HTTP/1.1 Host: 47.92.31.46
先看get的用法
GET,一个空格,访问文件的路径,一个空格,用哪个版本的HTTP协议
Host,冒号,一个空格,访问的地址
然后咱看看发送和具体接收的数据
:: 发送数据:GET /hardware/wifi1/updata1.lua HTTP/1.1 Host: 47.92.31.46 [1次] :: 收到数据:HTTP/ OK Date: Mon, Apr :: GMT Server: Apache/ (Win64) Last-Modified: Sat, Apr :: GMT ETag: "7ac-586f82b4b7b40" Accept-Ranges: bytes Content-Length: local model = "wifi1" --product model --[[Do not update the following program !!!!]] local version1 = "0.0.0"; local version2 = "1.0.0"; if file.open("version2.lua", "r") then--local version2 = file.read() file.close(); end print("local version:"..version2) local JsonTable = {}; function UpdataFun(client, topic, data,jsondata) if jsondata["version"] ~= nil and jsondata["url"] ~= nil then if jsondata["version"] ~= version2 then version1 = jsondata["version"] JsonTable["data"] = "updata"; JsonTable["status"] = "unlike"; JsonTable["version"] = version2; if file.open("url.lua", "w+") then file.write((jsondata["url"])) file.close() end print(jsondata["version"],jsondata["url"]) else JsonTable["data"] = "updata"; JsonTable["status"] = "alike"; JsonTable["version"] = version2; end client:publish(PublishTopic,sjson.encode(JsonTable), , , function(client) end) JsonTable = {} elseif jsondata["cmd"] ~= nil and jsondata["cmd"] == "start" then if file.open("version1.lua", "w+") then file.write(version1) file.close() end JsonTable["data"] = "updata"; JsonTable["status"] = "start"; print(data) client:publish(PublishTopic,sjson.encode(JsonTable), , , function(client) node.restart(); end) JsonTable = {} elseif jsondata["cmd"] ~= nil and jsondata["cmd"] == "model" then JsonTable["data"] = "updata"; JsonTable["status"] = "model"; JsonTable["model"] = model; print(data) client:publish(PublishTopic,sjson.encode(JsonTable), , , function(client) end) JsonTable = {} end end
其实就这么简单就可以用HTTP访问下载文件了 .....您自己百度看看别人写的...唉,都抓不住咱真正要的需求,估计那些人只是搞上位机出身,只知道是那么用
,不知道考虑咱单片机硬件到底如何访问......
7-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(TCP实现HTTP访问下载文件,明白底层如何实现的,地基稳才踏实)的更多相关文章
- 2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(视频总揽)
1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(方案总揽) https://v.youku.com/v_show/id_XNDE0Njk3Njg2OA==. ...
- 1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(方案总揽)
我的这个升级篇的代码适用于自己所有的带WIFI和GPRS模块的开发板,升级功能实质上是通过MQTT把数据发给WIFI和GPRS模块,然后模块进行保存和运行. 这个升级程序是当时自己花了两个星期的时间写 ...
- 6-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇-优化升级(安装Apache (Web服务器)软件,测试HTTP)
为了和SDK升级保持协议一致,花了两天时间实现了用LUA开发,MQTT+HTTP方式实现远程升级 安装Apache主要是为了实现通过HTTP下载资源 升级介绍: 0,用户点击检查更新时,APP首先通过 ...
- 3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(HTTP介绍,TCP实现HTTP下载文件)
https://www.cnblogs.com/yangfengwu/p/10357564.html 看了好多文章.....唉,还是自己亲自动手用网络监控软件测试吧 先看这个节安装WEB服务器.... ...
- 5-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(,远程升级GPRS内部程序)
https://www.cnblogs.com/yangfengwu/p/10410202.html 与升级WIFI相同介绍的不再叙述 先看WIFI升级的: ↑ 演示视频: https://www. ...
- 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案升级篇(远程升级WIFI内部程序)
https://www.cnblogs.com/yangfengwu/p/10360618.html 演示视频: https://www.bilibili.com/video/av54894356/ ...
- 4-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(为域名申请SSl证书)
3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(购买域名,域名绑定IP) 然后就是等着..... 假设可以了 咱呢是配置MQTT实现SSL安全加密通信,所以 ...
- 3-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(购买域名,域名绑定IP)
2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(监听Wi-Fi和APP的数据) 因为安全连接是和域名绑在一块的,所以需要申请域名 有没有不知道域名是什么的, ...
- 2-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(监听Wi-Fi和APP的数据)
1-STM32物联网开发WIFI(ESP8266)+GPRS(Air202)系统方案安全篇(来看一下怎么样监听网络数据,监听电脑上位机软件的数据) 因为那个软件只能监听咱自己电脑上的数据,所以咱就用电 ...
随机推荐
- 学python之路前的一些话
为什么学python: 这些年一直从事运维相关的工作.但做下来感觉都是些很基础的东西,无非就是对一些命令或者问题处理很熟练而已,混的都是经验.曾很羡慕会写shell脚本,会自动化安装程序的运维组组长, ...
- DDR中的一些知识点说明(ODT,ZQ校准,OCT,TDQS)
ODT ( On-DieTermination ,片内终结)ODT 也是 DDR2 相对于 DDR1 的关键技术突破,所谓的终结(端接),就是让信号被电路的终端吸 收掉,而不会在电路上形成反射, 造成 ...
- asp.net 多线程
//开启一条线程并执行一个方法 Thread oThread = new Thread(new ThreadStart(IIMsSqlToSqlitle2)); oTh ...
- 安装mysql后必做的两件事
1..删除掉不需要的用户 查看用户表mysql> SELECT User,Host FROM mysql.user; +------+-------------------------+ | U ...
- Mac-控制台更新svn版本
brew install subversion 直接安装svbversion至最新版本
- web-day16
第16章WEB16-Listener&Filter篇 今日任务 使用过滤器完成自动登录的案例 使用过滤器统一网站的字符集编码 教学导航 教学目标 了解常见的监听器 理解过滤器的生命周期 能够使 ...
- hdu 5099 简单模拟(比较型号)
http://acm.hdu.edu.cn/showproblem.php?pid=5099 比较两个安卓手机型号,水题 注意点:A is actually implicit and usually ...
- ASP.NET MVC IActionFilter IResultFilter IExceptionFilter/HandleError
一.IActionFilter 1.基本定义 在action的执行前后进行AOP拦截. IActionFilter接口定义如下: public interface IActionFilter { // ...
- pycharm的基本使用
1.设置注释字体的颜色,如下图 2.常用快捷键 Ctrl + Space 基本的代码完成(类.方法.属性) Ctrl + Alt + Space 类名完成 Ctrl + Shift + Enter 语 ...
- delphi 过滤开头 结尾 全部 空格的函数
function TrimAnsi(const S: AnsiString): Ansistring; var I, L: Integer; begin L := Length(S); I := ; ...