0

0

Arduino 数据传输至数据库:PHP 脚本集成指南

聖光之護

聖光之護

发布时间:2025-07-21 18:34:26

|

1007人浏览过

|

来源于php中文网

原创

arduino 数据传输至数据库:php 脚本集成指南

本文旨在解决 Arduino 通过 PHP 脚本向数据库传输数据时遇到的常见问题。核心内容包括:修正 Arduino 端 HTTP 请求的构建方式,确保数据正确传递至 PHP 脚本;并提供一份简明的 PHP 脚本示例,用于接收并处理 Arduino 发送的数据,最终将其写入数据库。通过本教程,开发者可以快速搭建起 Arduino 与数据库之间的数据桥梁,实现远程数据采集与存储。

Arduino 端 HTTP 请求构建

Arduino 通过以太网 shield 与服务器通信,将传感器数据发送到数据库。关键在于正确构建 HTTP GET 请求。原代码中存在一些问题,导致数据无法正确传递。

正确的 HTTP GET 请求应该将数据作为 URL 的一部分传递。以下是修正后的 Arduino 代码片段:

if (client.connect("", 80)) {
    client.print("GET /arduino_connect_to_db.php?");
    client.print(waterLevelString);
    client.println(" HTTP/1.1");
    client.println("Host: ");
    client.println("User-Agent: arduino");
    client.println("Accept: */*");
    client.println("Connection: close"); // 建议添加,关闭连接
    client.println();
}

解释:

立即学习PHP免费学习笔记(深入)”;

  • GET /arduino_connect_to_db.php?: 指定请求方法为 GET,并指明要访问的 PHP 脚本。问号 ? 表示后面将跟随查询字符串(即要传递的数据)。
  • client.print(waterLevelString);: 将包含传感器数据的 waterLevelString 变量附加到 URL 后面。例如,如果 waterLevelString 的值为 "waterlevel=123", 那么最终的 URL 将是 /arduino_connect_to_db.php?waterlevel=123。
  • HTTP/1.1: 指定 HTTP 协议版本。
  • Host: : 指定服务器域名或 IP 地址。
  • User-Agent: arduino: 添加 User-Agent 标头,方便服务器识别客户端类型。
  • Accept: */*: 表明客户端可以接受任何类型的数据。
  • Connection: close: 建议添加此行,通知服务器在完成请求后关闭连接,释放资源。
  • client.println();: 发送一个空行,表示 HTTP 头部结束。

注意事项:

通义万相
通义万相

通义万相,一个不断进化的AI艺术创作大模型

下载
  • 确保 替换为实际的服务器域名或 IP 地址。
  • 根据实际情况调整传感器数据的名称和格式。
  • 如果数据包含特殊字符,需要进行 URL 编码。

PHP 脚本的数据接收与处理

PHP 脚本负责接收 Arduino 发送的数据,并将其插入到数据库中。以下是一个示例 PHP 脚本:


"; // 使用 $_GET 获取 Arduino 发送的数据 $waterlevel = $_GET["waterlevel"]; echo "Received Water Level: " . $waterlevel . "
"; // 预处理 SQL 语句,防止 SQL 注入 $query = "INSERT INTO waterLevelTable (waterlevel) VALUES (?)"; $stmt = mysqli_prepare($connect, $query); // 绑定参数 mysqli_stmt_bind_param($stmt, "i", $waterlevel); // "i" 表示整数类型 // 执行 SQL 语句 $result = mysqli_stmt_execute($stmt); if ($result) { echo "Insertion Success!
"; } else { echo "Insertion Failed: " . mysqli_error($connect) . "
"; } // 关闭语句和连接 mysqli_stmt_close($stmt); mysqli_close($connect); ?>

解释:

立即学习PHP免费学习笔记(深入)”;

  • require_once "sql_connect.php";: 包含数据库连接信息。
  • $waterlevel = $_GET["waterlevel"];: 使用 $_GET 超全局变量获取 Arduino 发送的 waterlevel 数据。
  • SQL 注入防护: 使用预处理语句 mysqli_prepare 和参数绑定 mysqli_stmt_bind_param 可以有效防止 SQL 注入攻击。
  • mysqli_stmt_execute($stmt);: 执行预处理的 SQL 语句。
  • mysqli_stmt_close($stmt);: 关闭预处理语句。
  • mysqli_close($connect);: 关闭数据库连接。

注意事项:

  • sql_connect.php 文件应包含数据库连接的必要信息(主机名、用户名、密码、数据库名)。
  • 根据数据库表结构和数据类型,调整 SQL 语句和参数绑定。
  • 务必进行错误处理,以便在出现问题时能够及时发现和解决。
  • 强烈建议使用预处理语句和参数绑定,以提高安全性。

总结

通过修正 Arduino 端的 HTTP 请求构建方式,并使用预处理语句在 PHP 脚本中处理数据,可以实现 Arduino 与数据库之间安全可靠的数据传输。本教程提供了一个基础框架,开发者可以根据实际需求进行扩展和修改。记住,安全性和错误处理是构建可靠系统的关键。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2687

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1662

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1523

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

953

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1420

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1235

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1488

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1306

2023.11.13

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.8万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 801人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号