W5100能不能连接mysql 并发送传感器数据
W5100能不能连接mysql 并发送传感器数据 本帖最后由 弘毅 于 2017-3-23 08:00 编辑用php+apache+mysql在自己的电脑上搭建一个网站,或者如果你有一个网站的话也可以。可以让W5100发送查询字符串到一个网站,网站再根据收到的字符串做一个数据库写入或者查询。下面是一段php的查询和写入代码。
$statue = $_GET['statue'];
if($statue==NULL || $statue!=1){
$statue=0;
}
switch ($statue)
{
case 0: getHistory();break;
case 1: getStatue();break;
default:getHistory();break;
}
function getStatue(){
require('inc\conn.inc.php');
$sensor = $_GET['sensor'];
$sdata = $_GET['sdata'];
$geeker = $_GET['geeker'];
$showtime = date("Y-m-d H:i:s");
if (mysqli_connect_errno()){
echo 'can not connect to database!';
} else {
if($sensor==NULL || $sdata == NULL || $geeker==NULL){
echo 'Error. Please check your data!';
}else{
$query="insert into arduino values(".'NULL'. ", '".$geeker. "', '".$sensor. "', '".$sdata. "', '".$showtime."')";
$result = $db->query($query);
echo 'Submitted OK!';
}
}
}
function getHistory(){
require('inc\conn.inc.php');
echo '<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Arduino上传数据至网络测试页面</title></head>
<div align="center"><h1>Arduino上传数据至网络测试历史记录</h1></div>';
if (mysqli_connect_errno()){
echo 'can not connect to database!';
} else {
$query='select * from arduino order by id desc limit 100';
$result=$db->query($query);
$num=$result->num_rows;
if($num!=0)
{
echo '<table width="640" border="1" align="center">
<tr>
<td><strong>编号</strong></td>
<td><strong>作者</strong></td>
<td><strong>传感器</strong></td>
<td><strong>传感器数据</strong></td>
<td><strong>上传时间</strong></td>
</tr>';
while($allrow=$result->fetch_array()){
echo '<tr>';
echo '<td>'.$allrow['id'].'</td>';
echo '<td>'.$allrow['geek'].'</td>';
echo '<td>'.$allrow['sensor'].'</td>';
echo '<td>'.$allrow['sensor_data'].'</td>';
echo '<td>'.$allrow['time'].'</td>';
echo '</tr>';
}
echo '</table>';
}else{
echo '没有历史记录可查';
}
}
echo '<body></body></html>';
$db->close();
}
W5100的代码如下,你需要自己写获取传感器数据的部分,不过如果只是做测试的,直接使用下面的代码也行。红色的部分需要改成你自己的,黄色的部分可以改也可以不改。具体的做法参见 http://www.soxitoday.com/archives/1926.html:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {0x8C, 0xB8, 0×64, 0xEF, 0×71, 0×97 };
IPAddress ip(218,23,63,34);
EthernetClient client;
char serverName[] = "www.lycabc.com";
void setup() {
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.println("Attempting to get an IP address using DHCP:");
if (!Ethernet.begin(mac)) {
Serial.println("failed to get an IP address using DHCP, trying manually");
Ethernet.begin(mac, ip);
}
Serial.print("My address:");
Serial.println(Ethernet.localIP());
connectToServer();
}
void loop()
{
if (client.connected()) {
if (client.available()) {
char inChar = client.read();
Serial.print(inChar);
}
}
}
void connectToServer() {
Serial.println("connecting to server…");
if (client.connect(serverName, 80)) {
Serial.println("making HTTP request…");
String Requesting;
String sensor="mysensor";//传感器的名称
int sdata=100;//传感器的数值
String geeker="yourname";//你的昵称
Requesting= "GET /?sensor="+sensor+"&sdata="+sdata+"&geeker="+geeker+"&statue=1 HTTP/1.1";
client.println(Requesting);
client.println("HOST: www.lycabc.com");
client.println();
}
}
mysql端做个接口这个简单。 这个应该是服务器端脚本解决吧。 完全无从下手 实在是太感谢啦 很有帮助 soxitoday 发表于 2012-8-30 20:47 static/image/common/back.gif
用php+apache+mysql在自己的电脑上搭建一个网站,或者如果你有一个网站的话也可以。可以让W5100发送查询字符 ...
你好,请问inc\conn.inc.php这个函数在哪可以找到? 试了一下,代码编译不过去,期待更多细节
终于搞定,返回了那么多的400,终于见到了200
页:
[1]