全部源码下载:链接: http://pan.baidu.com/s/1qXxr0i4 密码:
有人串口转wifi模块 httpd client通信示例-用户使用网页通过服务器收发串口数据get
功能:用户使用网页通过服务器收发串口数据,转发信息通过文件转存。网页自动更新串口发来的数据,网页发送数据到串口,串口接收要定时发请求查有没有数据。
参数:
网页端地址:www.xhrrj.com/index.php
服务器域名为:www.xhrrj.com
串口端IP看是否是公网IP,不是的话用花生壳代理
固件版本要支持httpdclient
设备型号:买的型号是WIFI模块 串口转WIFI TI CC3200方案 无线透传通讯 工业级 低功耗
https://detail.tmall.com/item.htm?spm=a1z10.5-b.w4011-5602068913.20.bIKdyQ&id=43794523227&rn=9e112109775053b8e8a8a0adb2dc43b0&abbucket=4
C322设置
1.串口我用websock测试是正常的,wifi也连上了路由器。版本是1.0.0
2.socket模式: httpdclient
HTPC方式:GET
返回数据去掉包头 使能:Enable
HTPC IP(或服务器地址):www.xhrrj.com
HTPC PORT: 80
HTPC URL(仅对POST): NONE
HTPC HEAD(NONE为无HEAD头):NONE
示例使用说明:
1.网页发送0号ID串口数据“1111”,直接在网页ID框输入0,发送框输入1111,点发送。
网页自动接收串口数据。
2.0号ID串口发送数据345到网页 http://www.xhrrj.com/test3.php?user=U&uid=0&type=T&data=345&time=不同的随机数
0号ID串口接收数据请求要定时这条指令查询 http://www.xhrrj.com/test3.php?user=U&uid=0&type=R&data=0&time=不同的随机数
参数说明:user=U固定。uid为串口id号,可以随意设置,但要与网页对应。type为发送T和接收R。data为要发送的数据,接收时随设。time要设为不相同的随机数。
get源码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>有人串口转wifi模块 httpd client通信使用说明 by小黄人软件</title>
</head>
<body>
<div class="div_c" style="font-family:微软雅黑;margin-top:10px;">
<form name="form_socket_work_setting" >
<div class="STYLE2 STYLE3">有人串口转wifi模块 httpd client通信使用说明 by小黄人软件</div>
<div id="socket_Webuart" style="margin-top: 10px; display: block;">
ID<input id="Write_uart_data_text_id" style="width: 465px; margin-top: 10px;" size="64" maxlength="64" value="0">
<!--<button id="close" onClick="usr_close();">Close</button>-->
<div>
<textarea id="UartReadAsciiText" style="margin-top: 10px;" rows="8" cols="64" ></textarea>
<input id="Uart_Rec" οnclick="Rec()" type="button" value="接收" ;style="margin-top:10px">
<input id="Uart_clear_id" οnclick="Clear()" type="button" value="清空接收" ;style="margin-top:10px">
</div>
<div>
<input id="Write_uart_data_text" style="width: 465px; margin-top: 10px;" size="64" maxlength="64" value="1234">
<input οnclick="Send()" type="button" value="发送" ;="" ;id="Uart_send_id">
</div>
<div id="Status"></div>
</div>
</div>
</div>
<script type="text/javascript">
function Clear(){
document.getElementById("UartReadAsciiText").value="";
}
function Send(){
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//alert("返回:"+xmlhttp.responseText);
document.getElementById("Status").innerHTML=xmlhttp.responseText;
}
}
var url = "/test3.php?user=C&uid="+document.getElementById("Write_uart_data_text_id").value+"&type=T&data="+document.getElementById("Write_uart_data_text").value+ "&time"+new Date().getTime() ;
// alert(url);
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
function Rec()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
if(xmlhttp.responseText.length!=8)
{
document.getElementById("UartReadAsciiText").innerHTML=document.getElementById("UartReadAsciiText").value+xmlhttp.responseText;
var d = document.getElementById("UartReadAsciiText").scrollHeight;
document.getElementById("UartReadAsciiText").scrollTop = d;
}
document.getElementById("Status").innerHTML=xmlhttp.responseText;
// alert("接收到数据:"+xmlhttp.responseText+"A");
}
}
var url = "/test3.php?user=C&uid="+document.getElementById("Write_uart_data_text_id").value+"&type=R&data=" + new Date().getTime() ;
//alert(url);
xmlhttp.open("GET",url,true);
xmlhttp.send();
//清除浏览器缓存
}
window.setInterval("Rec()", 1000); //指定1秒刷新一次 接收
</script>
</body>
</html>
<?php
//专门处理数据
//http://localhost/test3.php?user=C&uid=0&type=R&data=345
//收发总日志
//date_default_timezone_set('Asia/Shanghai');
//$data=$_GET['user']." ".$_GET['uid']." ".$_GET['type']." ".$_GET['data']." ".date("Y-m-d H:i:s")."\r\n";
//file_put_contents('USR_DATA.txt',$data,FILE_APPEND);
//echo $data;
$user=$_GET["user"]; //C??? U????
$uid=$_GET["uid"]; //0 1 2 ?? ????ID
$type=$_GET["type"]; //T???? R????
$data=$_GET["data"]; //????
if($type=="T")
{
$filename=$user.$uid.".txt";
file_put_contents($filename,$data,FILE_APPEND); //存
echo "Send OK";
}
else
{
//从发的对象中读
if($user=="C")
$user="U";
else
$user="C";
$filename=$user.$uid.".txt";
$content = @file_get_contents($filename); //读
echo "Rec OK".$content;
file_put_contents($filename,""); //存"" 即清空
}
?>
post源码:
index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>有人串口转wifi模块 httpd client通信使用说明 by小黄人软件</title>
</head>
<body>
<div class="div_c" style="font-family:微软雅黑;margin-top:10px;">
<form name="form_socket_work_setting" >
<div class="STYLE2 STYLE3">有人串口转wifi模块 httpd client通信使用说明 by小黄人软件</div>
<div id="socket_Webuart" style="margin-top: 10px; display: block;">
ID<input id="Write_uart_data_text_id" style="width: 465px; margin-top: 10px;" size="64" maxlength="64" value="0">
<!--<button id="close" onClick="usr_close();">Close</button>-->
<div>
<textarea id="UartReadAsciiText" style="margin-top: 10px;" rows="8" cols="64" ></textarea>
<input id="Uart_Rec" οnclick="Rec()" type="button" value="接收" ;style="margin-top:10px">
<input id="Uart_clear_id" οnclick="Clear()" type="button" value="清空接收" ;style="margin-top:10px">
</div>
<div>
<input id="Write_uart_data_text" style="width: 465px; margin-top: 10px;" size="64" maxlength="64" value="1234">
<input οnclick="Send()" type="button" value="发送" ;="" ;id="Uart_send_id">
</div>
<div id="Status"></div>
</div>
</div>
</div>
<script type="text/javascript">
function Clear(){
document.getElementById("UartReadAsciiText").value="";
}
function Send(){
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//alert("返回:"+xmlhttp.responseText);
document.getElementById("Status").innerHTML=xmlhttp.responseText;
}
}
var url = "/test3.php";
// alert(url);
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send("user=C&uid="+document.getElementById("Write_uart_data_text_id").value+"&type=T&data="+document.getElementById("Write_uart_data_text").value+ "&time"+new Date().getTime() );
}
function Rec()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
if(xmlhttp.responseText.length!=8)
{
document.getElementById("UartReadAsciiText").innerHTML=document.getElementById("UartReadAsciiText").value+xmlhttp.responseText;
var d = document.getElementById("UartReadAsciiText").scrollHeight;
document.getElementById("UartReadAsciiText").scrollTop = d;
}
document.getElementById("Status").innerHTML=xmlhttp.responseText;
// alert("接收到数据:"+xmlhttp.responseText+"A");
}
}
var url = "/test3.php";
//alert(url);
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send("user=C&uid="+document.getElementById("Write_uart_data_text_id").value+"&type=R&data=" + new Date().getTime() );
//清除浏览器缓存
}
window.setInterval("Rec()", 1000); //指定1秒刷新一次 接收
</script>
</body>
</html>
test3.php
<?php
//专门处理数据
//http://localhost/test3.php?user=C&uid=0&type=R&data=345
//收发总日志
//date_default_timezone_set('Asia/Shanghai');
//$data=$_POST['user']." ".$_POST['uid']." ".$_POST['type']." ".$_POST['data']." ".date("Y-m-d H:i:s")."\r\n";
//file_put_contents('USR_DATA.txt',$data,FILE_APPEND);
//echo $data;
$user=$_POST["user"]; //C??? U????
$uid=$_POST["uid"]; //0 1 2 ?? ????ID
$type=$_POST["type"]; //T???? R????
$data=$_POST["data"]; //????
if($type=="T")
{
$filename=$user.$uid.".txt";
file_put_contents($filename,$data,FILE_APPEND); //存
echo "Send OK";
}
else
{
//从发的对象中读
if($user=="C")
$user="U";
else
$user="C";
$filename=$user.$uid.".txt";
$content = @file_get_contents($filename); //读
echo "Rec OK".$content;
file_put_contents($filename,""); //存"" 即清空
}
?>
indexuart.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>模拟串口---有人串口转wifi模块 httpd client通信使用说明 by小黄人软件</title>
</head>
<body>
<div class="div_c" style="font-family:微软雅黑;margin-top:10px;">
<form name="form_socket_work_setting" >
<div class="STYLE2 STYLE3">模拟串口---有人串口转wifi模块 httpd client通信使用说明 by小黄人软件</div>
<div id="socket_Webuart" style="margin-top: 10px; display: block;">
ID<input id="Write_uart_data_text_id" style="width: 465px; margin-top: 10px;" size="64" maxlength="64" value="0">
<!--<button id="close" onClick="usr_close();">Close</button>-->
<div>
<textarea id="UartReadAsciiText" style="margin-top: 10px;" rows="8" cols="64" ></textarea>
<input id="Uart_Rec" οnclick="Rec()" type="button" value="接收" ;style="margin-top:10px">
<input id="Uart_clear_id" οnclick="Clear()" type="button" value="清空接收" ;style="margin-top:10px">
</div>
<div>
<input id="Write_uart_data_text" style="width: 465px; margin-top: 10px;" size="64" maxlength="64" value="1234">
<input οnclick="Send()" type="button" value="发送" ;="" ;id="Uart_send_id">
</div>
<div id="Status"></div>
</div>
</div>
</div>
<script type="text/javascript">
function Clear(){
document.getElementById("UartReadAsciiText").value="";
}
function Send(){
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//alert("返回:"+xmlhttp.responseText);
document.getElementById("Status").innerHTML=xmlhttp.responseText;
}
}
var url = "/test3.php";
// alert(url);
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send("user=U&uid="+document.getElementById("Write_uart_data_text_id").value+"&type=T&data="+document.getElementById("Write_uart_data_text").value+ "&time"+new Date().getTime() );
}
function Rec()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
if(xmlhttp.responseText.length!=8)
{
document.getElementById("UartReadAsciiText").innerHTML=document.getElementById("UartReadAsciiText").value+xmlhttp.responseText;
var d = document.getElementById("UartReadAsciiText").scrollHeight;
document.getElementById("UartReadAsciiText").scrollTop = d;
}
document.getElementById("Status").innerHTML=xmlhttp.responseText;
// alert("接收到数据:"+xmlhttp.responseText+"A");
}
}
var url = "/test3.php";
//alert(url);
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.send("user=U&uid="+document.getElementById("Write_uart_data_text_id").value+"&type=R&data=" + new Date().getTime() );
//清除浏览器缓存
}
window.setInterval("Rec()", 1000); //指定1秒刷新一次 接收
</script>
</body>
</html>
另外:
WIFI远程控制Android 网络通信控制3继电器收发指令 源码开发定制
APK安装包:链接: http://pan.baidu.com/s/1bnmaMej 密码: ea3b
调试助手:链接: http://pan.baidu.com/s/1hqHEBkw 密码: phi4
一、功能:
1.Android WIFI连接与断开,保存连接IP及端口。
2.WIFI控制3个继电器
3.16进制发送指令,可以单条和多条发送,用逗号隔开。
4.16进制接收
如需特别功能可以找我定制
参考********************************************************************************
设置示例:http://www.usr.cn/Faq/137.html
http://www.usr.cn/Faq/139.html
http://www.usr.cn/Case/56.html
http://www.usr.cn/Case/30.html
M4系列串口服务器HTTPD_Client通信示例 http://www.usr.cn/Case/30.html
补充:
说明:固件版本1.2以上支持HTTPD_Client功能
你的要升级一下固件
1.服务器发送串口“1111”。
你复制下面链接到地址中,回车
http://你的域名/test3.php?data=1111
2.服务器接收串口,会直接显示在网页界面上,并保存在服务器USR_DATA.txt文件里。请用ASCII模式
买的型号是WIFI模块 串口转WIFI TI CC3200方案 无线透传通讯 工业级 低功耗
https://detail.tmall.com/item.htm?spm=a1z10.5-b.w4011-5602068913.20.bIKdyQ&id=43794523227&rn=9e112109775053b8e8a8a0adb2dc43b0&abbucket=4
使用httpd client模式与服务器通信,串口发送1234,返回(串口接收) bad request。服务器未收到串口发的数据。是什么原因?如何办?
服务器代码test3.php源码,放在根目录下 用网页测试http://www.cnkhai.cn/test3.php?data=1111,服务器端是正常的
<?php
echo $_GET["data"];
date_default_timezone_set('Asia/Shanghai');
$data=$_GET['data']." ".date("Y-m-d H:i:s")."\r\n";
file_put_contents('USR_DATA.txt',$data,FILE_APPEND);
?>
参考2:
外网通信有三种方式:1.路由器端口映射 2.使用我们D2D服务器 3.使用您自己的服务器
最简单的是第一种,方法:http://www.usr.cn/Faq/156.html、http://www.usr.cn/Faq/64.html
如果满足不了第一个条件可使用我们的服务器方式在附件,如果您的固件大于4.02.11.15,为5开头固件则可跳过升级固件步骤。
第三种方式最为复杂,要求最多http://www.usr.cn/Faq/110.html
Accept::text/xml|Keep-Alive:300
data就是各设备的标识,多个设备加入多个不同的字段
http://test.usr.cn/test.php?data=1111
http://localhost/test.php?data=1111
http://localhost/test3.php/?data=1234
<?php
echo $_GET["data"];
date_default_timezone_set('Asia/Shanghai');
$data=$_GET['data']." ".date("Y-m-d H:i:s")."\r\n";
file_put_contents('USR_DATA.txt',$data,FILE_APPEND);
?>