注册

实现ESP8266模块同远程web服务器交互请求
首页 > 嵌入式开发 > Linux嵌入式    作者:RainFly   2017年7月21日 12:36 星期五   热度:11110°   字号:   评论:7    
时间:2017-7-21 12:36   热度:11110°  评论:7 条 

实验材料: 1.ESP 8266模块 

                 2 有公网IPv4的web服务器(当然也可以通过域名访问,这里先测试通过IP地址建立TCP连接)

实验原理:

      原理很简单,通过串口向ESP8266发送一系列指令,由于8266内置了TCP协议栈,我们只需要通过指令建立TCP连接,当连接建立完成后,直接发送GET/POST请求,接受到web服务器传输过来的数据链接,通过这些交互数据分析,从而实现开发板和web服务器之间的数据互换。

33333.png

步骤:

    1. 配置ESP为站点模式,连接到可以正常访问英特网的热点上面。

    2. 配置模块为透传模式 

    3.建立TCP连接   IP 端口号等

    4直接发送 请求查看串口返回的参数值 GET /index.html  HTTP/1.1      (TCP请求可以加密)

注意事项


   测试的时候 发送指令总是回复400 错误,经过查找发现由于协议中回车换行为加上引起无法提交POST请求

    POST /1.php HTTP/1.1\r\nHost: 192.168.0.107\r\nConnection: keep-alive\r\nContent-Length: 34\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\nfirstname=hello&lastname=123&age=123\r\n


QQ截图20170724152049.png




QQ截图1.png






<html>
<body>

<form action="" method="post">
Firstname: <input type="text" name="firstname" />
Lastname: <input type="text" name="lastname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
<?php
$con = mysql_connect("localhost","root","root");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("test", $con);

$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";

mysql_close($con)
?>


由于是网络配置器 所以发送的数据很正常,但是通过wifi串口发送的时候 /r/n会由于ascii编码 而不是回车 继而串口发送总是失败,我利用ASCII码转HEX工具将 所有发送文件转为十六进制

QQ截图2.png

然后通过十六进制 进行串口数据发送

QQ截图3.png

至此通过串口芯片发送POST请求到指定云服务,实例完成。以下提供所用到的软件


软件压缩包来源:百度网盘  | 大小:MB  | 提取密码: | 解压密码:www.rainfly.cn
已经过安全软件检测无毒,请您放心下载。          若链接失效可联系管理员!
  您阅读这篇文章共花了:  
捐赠支持:如果觉得这篇文章对您有帮助,请 "扫一扫"鼓励作者!
二维码加载中...
本文作者:RainFly      文章标题: 实现ESP8266模块同远程web服务器交互请求
本文地址:http://www.rainfly.cn/?post=276
版权声明:若无注明,本文皆为“雨夜轩”原创,转载请保留文章出处。

已有7条吐槽

老猫  Google Chrome 70.0.3538.110 Google Chrome 70.0.3538.110 Windows 10 Windows 10  2019-01-25 17:00 #4楼
测试
宁国房产网  Google Chrome 55.0.2883.87 Google Chrome 55.0.2883.87 Windows 7 Windows 7  2017-11-14 22:06 地板
文章不错支持一下文章不错支持一下文章不错支持一下
水落伤痕  Google Chrome 55.0.2883.87 Google Chrome 55.0.2883.87 Windows 7 Windows 7  2017-10-06 10:07 板凳
你好,我想用ESP8266模块连上“有人透传云”的节点,该怎么发送HTTP请求呢?
http://cloud.usr.cn/cloud/index.php/Device/index,我的透传云连接
地址:cloud.usr.cn,端口15000
其中一节点ID:133521,节点编号:    00008531000000000002,密码:abc123ok
只要能让它显示状态在线就行了。
能不能发我邮箱:1310850736@qq.com
RainFly Google Chrome 59.0.3071.104 Google Chrome 59.0.3071.104 Windows 10 Windows 10  2017-10-10 09:46
@水落伤痕:把ESP8266先配置好,设置成透传之后,用串口发送你需要的命令请求就可以了! 你这个链接登不上,有问题加我QQ聊聊!
美股行情  Firefox 54.0 Firefox 54.0 Windows 10 Windows 10  2017-07-22 04:56 沙发
言简意赅,赞一个!
美股行情 Firefox 54.0 Firefox 54.0 Windows 10 Windows 10  2017-07-23 05:51
@美股行情:发文章辛苦了,谢谢分享!
跨境电商培训 Firefox 54.0 Firefox 54.0 Windows 10 Windows 10  2017-07-26 16:20
@美股行情:网站不错!!!!

QQ游客评论

返回顶部    首页    捐赠支持    手气不错    友情链接    关于我们    站长工具    站长介绍    手机版本    后台登陆   
版权所有:雨夜轩    站长:RainFly    特别鸣谢   文章归档   皖ICP备15003600号-1   百度统计
Copyright©2015 雨夜轩 Powered by emlog强力驱动 七牛CDN全球加速 360站长联盟安全认证 中国博客联盟荣誉成员 可信赖网站 站点地图   
页面加载耗时:0.059秒 数据库查询次数:25次
背景设置