
实验材料: 1.ESP 8266模块
2 有公网IPv4的web服务器(当然也可以通过域名访问,这里先测试通过IP地址建立TCP连接)
实验原理:
原理很简单,通过串口向ESP8266发送一系列指令,由于8266内置了TCP协议栈,我们只需要通过指令建立TCP连接,当连接建立完成后,直接发送GET/POST请求,接受到web服务器传输过来的数据链接,通过这些交互数据分析,从而实现开发板和web服务器之间的数据互换。
步骤:
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
<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工具将 所有发送文件转为十六进制
然后通过十六进制 进行串口数据发送
至此通过串口芯片发送POST请求到指定云服务,实例完成。以下提供所用到的软件



本文地址:http://www.rainfly.cn/?post=276
版权声明:若无注明,本文皆为“雨夜轩”原创,转载请保留文章出处。

已有7条吐槽
http://cloud.usr.cn/cloud/index.php/Device/index,我的透传云连接
地址:cloud.usr.cn,端口15000
其中一节点ID:133521,节点编号: 00008531000000000002,密码:abc123ok
只要能让它显示状态在线就行了。
能不能发我邮箱:1310850736@qq.com