arduino 将BH1750数据传入本地数据库代码
时间: 2023-09-10 19:05:40 浏览: 304
以下是一个示例代码,将BH1750传感器数据传入本地MySQL数据库:
```c++
#include <Wire.h>
#include <BH1750.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
// MySQL数据库登录信息
IPAddress server_addr(192,168,1,100); // MySQL服务器IP地址
char user[] = "username"; // MySQL用户名
char password[] = "password"; // MySQL密码
char db_name[] = "database_name"; // 数据库名
// BH1750传感器
BH1750 lightMeter;
void setup() {
Serial.begin(9600);
// 初始化BH1750传感器
lightMeter.begin();
// 初始化网络连接
Ethernet.begin(mac);
// 连接MySQL数据库
MySQL_Connection conn((Client *)&client);
if (conn.connect(server_addr, 3306, user, password)) {
Serial.println("Connected to MySQL server successfully.");
} else {
Serial.println("Connection to MySQL server failed.");
while (1);
}
}
void loop() {
// 读取光照强度
float lux = lightMeter.readLightLevel();
// 将数据插入数据库
MySQL_Connection conn((Client *)&client);
MySQL_Cursor *cursor = new MySQL_Cursor(&conn);
char query[128];
sprintf(query, "INSERT INTO light_sensor (lux) VALUES (%f)", lux);
cursor->execute(query);
delete cursor;
// 等待一段时间再重新读取数据
delay(5000);
}
```
在上面的代码中,我们首先连接到MySQL服务器,然后初始化BH1750传感器。在主循环中,我们读取光照强度并将其插入到我们的MySQL数据库中。注意,我们使用sprintf函数将浮点数转换为字符数组,并将其作为查询语句的一部分。最后,我们等待一段时间再次读取数据。
请注意,上面的代码仅作为示例,需要根据您的具体情况进行修改。例如,您需要将IP地址、用户名、密码和数据库名称更改为您自己的值,并确保您已经安装了必要的库。
阅读全文