arduino如何调用mysql,Arduino IDE编程Arduino开发板连接ESP8266-01向MySql数据库插入查询数据...

如果你的开发板一直连接不上WiFi的话,而且一直报错connection_______...........connection________.......,最后还是链接不上的话,请参考我的另外一篇博客:https://blog.csdn.net/yaoyaoyao_123/article/details/103888526

至于怎么购买一块云服务器,以及在云服务器上安装数据库,暂时还没有总结。再次默认大家已经安装好了MySql,并且已经创建了数据库arduino_test,新建了一张表test1,具体建表语句:

create table test1(

`tem` double(3,1) DEFAULT NULL,

`hem` double(3,1) DEFAULT NULL

)engine=innodb default charset=utf8 auto_increment=1;

alter database arduino_test default character set 'utf8';

SET character_set_client='utf8';

SET character_set_connection='utf8';

SET character_set_results='utf8';

当然,中间还有好多细节,没有时间一一记录,没有新建成功的可以留言。

准备工作完成之后,编写Arduino IDE程序:

#include // esp8266库

#include // Arduino连接Mysql的库

#include

IPAddress server_addr(106,12,195,127); // 安装Mysql的电脑的IP地址

char user[] = "root"; // Mysql的用户名

char password[] = "123456"; // 登陆Mysql的密码

// Mysql中添加一条数据的命令

// arduino_test,test1:刚才创建的数据和表

char INSERT_SQL[] = "INSERT INTO arduino_test.test1(tem,hem) VALUES ('%s','%s')";

char ssid[] = "TP-LINK_702"; // WiFi名

char pass[] = "weilaoshi"; // WiFi密码

WiFiClient client; // 声明一个Mysql客户端,在连接Mysql中使用

MySQL_Connection conn(&client);

MySQL_Cursor* cursor; //

int isConnection=0;

// 读取传感器的数据并写入到数据库

void readAndRecordData(){

char buff[128];// 定义存储传感器数据的数组

char tem[5];

char hem[4];

// 将传感器采集的浮点数转换为3位整数一位小数的字串放入temp

dtostrf(12.56,2,1,tem);//表示把123.56转换成整数部分3位数字,并且一位小数详情https://blog.csdn.net/qq_25827845/article/details/50717522

dtostrf(23.98,2,1,hem);

Serial.println(tem);

Serial.println(hem);

sprintf(buff,INSERT_SQL,tem,hem); // 将tem和hem中数据放入SQL中sprintf()函数详情https://blog.csdn.net/oyhb_1992/article/details/75095472

MySQL_Cursor *cur_mem = new MySQL_Cursor(&conn); // 创建一个Mysql实例

cur_mem->execute(buff); // 将采集到的温湿度值插入数据库中

Serial.println("读取传感器数据,并写入数据库");

delete cur_mem; // 删除mysql实例为下次采集作准备

}

void setup()

{

Serial.begin(9600);

while (!Serial); // 等待端口的释放

Serial.printf("\nConnecting to %s", ssid);

WiFi.begin(ssid, pass); // 连接WiFi

while (WiFi.status() != WL_CONNECTED) { // 如果WiFi没有连接,一直循环打印点

delay(500);

Serial.print(".");

}

Serial.println("\nConnected to network");

Serial.print("My IP address is: ");

Serial.println(WiFi.localIP()); // 打印开发板的IP地址

Serial.print("Connecting to SQL... ");

if (conn.connect(server_addr, 3306, user, password)) // 连接数据库

{

isConnection=1;

Serial.println("成功连接数据库---OK.");

}else{

isConnection=0;

Serial.println("连接数据库失败---FAILED.");

}

cursor = new MySQL_Cursor(&conn); // 创建一个数据库游标实例

}

void loop()

{

if(isConnection==1)

{

readAndRecordData();

delay(5000);

}

}

程序中用到了MySQL_Connection库,需要手动添加进去,我这里把该库的压缩包放在了:

下载之后解压到Arduino库文件夹下即可。

c6e1541f0b3b623f2dd8b2921f9a7430.gif

4a668feaa3018a2e1706f07e5002bcc8.png

北京流浪狗

发布了76 篇原创文章 · 获赞 31 · 访问量 1万+

私信

关注

标签:01,ESP8266,Arduino,数据库,WiFi,char,Mysql,println,Serial

来源: https://blog.csdn.net/yaoyaoyao_123/article/details/103935266

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值