单片机连接MySQL数据库

功能介绍:
stm32单片机通过串口将温度数据在上位机软件中显示,上位机软件可以将温度数据保存在mysql数据库中,同时能对数据进行增删改查。

前期准备:
1、安装Visual Stdio 2013
2、安装MySQL数据库 安装教程
3、下载、安装mysql odbc驱动,mysql-connector-odbc-8.0.28-win32.msi

硬件准备:
1、单片机,32、51都行
2、温度传感器DS18B20
3、USB转TTL模块,保证能够实现串口通信
4、ST-LINK下载器,用于下载32单片机程序

功能演示:
上位机软件
在这里插入图片描述
数据库
在这里插入图片描述

代码实现:
32代码:
main.c文件

#include "system.h"
#include "SysTick.h"
#include "led.h"
#include "usart.h"
#include "ds18b20.h"

int main()
{
	float temper;
	SysTick_Init(72);
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中断优先级分组 分2组
	LED_Init();
	USART1_Init(9600);
	while(DS18B20_Init())
	{
		printf("DS18B20检测失败,请插好!\r\n");
		delay_ms(500);
	}
	printf("DS18B20检测成功!\r\n");
	
	while(1)
	{
		temper=DS18B20_GetTemperture();
		printf("Temp:%.1fC\r\n",temper);
		delay_ms(1500);
	}
}

上位机软件代码:
关注博主,并且有礼貌地问我拿就行了。

关于数据库的一些操作:

使用管理员身份运行cmd命令
e:            //我的数据库在e盘
//把当前路径修改为:…\mysql-8.0.18-winx64\bin。
cd E:\DataBase\mysql-8.0.25-winx64\bin 
 //启动服务,名字是localmysql  
net start localmysql   
//登陆数据库,用户名root  
mysql -u root -p       
 //输入密码
123456                  
 // 新建数据库uartdb_csdn
create database uartdb_csdn; 
//连接数据库uartdb_csdn
use uartdb_csdn;     
//新建数据表
create table mytable(id int primary key, data varchar(10), time varchar(30));  
//插入数据
insert into mytable(id,data,time) values(1,26, '2022-3-26 20:06:30');
//查看mytable表中所有数据
select * from mytable;
//删除mytable表
drop table mytable;  //现在不删

通过以上操作,我们就创建了一个mytable的数据表,接下来就是通过上位机软件将温度数据存储在这张表中。

修改上位机代码:
拿到我的代码后,如果想要将别的数据存储到自己的数据库,可以这样操作。
1、先移除/删除mytable的源文件和头文件
在这里插入图片描述
选中工程名称右击-》添加-》类
在这里插入图片描述
MFC-》MFC ODBC使用者-》确定
在这里插入图片描述
选中快照-》数据源(S)…
在这里插入图片描述
新建(N)…
在这里插入图片描述
选择MySQL ODBC 8.0 UniCode Driver,若无此选项,需要安装mysql odbc驱动
在这里插入图片描述
预览®…
在这里插入图片描述
给数据源起个名字,然后保存
在这里插入图片描述
下一步-》完成
在这里插入图片描述
按照下面填写,root为数据库用户名,Password为数据库密码-》ok
在这里插入图片描述
选择我们刚刚新建的数据源dataSource2.dsn-》确定
在这里插入图片描述
填写密码后OK
在这里插入图片描述
选中我们之前在数据库创建的mytable数据表-》确定
在这里插入图片描述
完成
在这里插入图片描述
正常情况,点确定即可
在这里插入图片描述
编译后出现如下错误,把它(#error…)注释掉即可
在这里插入图片描述
重定义错误删掉或注释掉
在这里插入图片描述
找到mytable.c文件,注释掉或删掉重复的内容,将6改为3,因为我们只是插入3个数据(id,data,time)。
在这里插入图片描述

继续注释掉/删掉重复的
在这里插入图片描述
解释下,为什么会出现重复:因为我之前创建的数据表也有id、data、time

在ThreadComm.cpp文件中从81行到93行就是将串口发送来温度数据截取出来,然后将数据赋值给gData这个全局变量,因为再32代码中有printf(“Temp:%.1fC\r\n”,temper);故我们可以定位到温度数据。
在这里插入图片描述
接上单片机,运行上位机软件,数据可以正常存储在数据库中
在这里插入图片描述

完毕

需要注意的几点:
1、我的串口是COM3,你们的串口号不一定是这个
2、数据表的名字最好用mytable,不然得多改几处地方

为了让别人的电脑也可以运行我们的上位机软件,可以这样做:
1、选中项目名称-》右击-》配置属性-》常规-》MFC的使用-》在静态库中使用MFC-》应用
在这里插入图片描述

2、C/C+±》代码生成-》运行库-》多线程(/MT)-》确定
在这里插入图片描述
3、最后再运行下,重新生成.exe文件
在工程文件下有个WinDemo.exe文件,可以双击它运行上位机软件。
在这里插入图片描述

鉴于博主比较忙,需要代码的请自取
链接:https://pan.baidu.com/s/1nzRv5vD_WZZkSZh1mrfDUA?pwd=q69t
提取码:q69t

  • 38
    点赞
  • 256
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 95
    评论
MySQL是一种广泛使用的开源数据库管理系统,而51单片机是一款基于Intel 8051系列微控制器的单片机。 要连接MySQL和51单片机,我们需要使用51单片机的串口功能与计算机进行通信。首先,在51单片机上设置一个串口通信模块,例如UART。然后,通过串口将51单片机连接到计算机的串口或USB串口适配器。 接下来,在计算机上安装MySQL,并在MySQL的服务器端创建一个数据库和相应的表用于存储和管理数据。在51单片机的程序中,我们需要编写代码来与MySQL服务器进行通信和执行查询。 一种常见的方法是使用MySQL的C语言API,如MySQL Connector/C。这个API可以让我们在51单片机上使用C语言与MySQL服务器进行交互。我们可以通过编写相应的代码来建立与MySQL服务器的连接,执行查询语句,并将结果返回给51单片机进行处理。 在连接过程中,我们需要指定MySQL服务器的IP地址、端口号以及用户名和密码等信息。可以通过代码来配置这些参数,并使用合适的函数进行连接和发送查询。一旦连接成功,我们就可以在51单片机上使用MySQL服务器提供的功能,比如插入、更新和读取数据等。 需要注意的是,由于51单片机的资源有限,连接和通信的速度可能较慢。因此,在编写代码时,需要考虑到51单片机的处理能力和内存限制,以及MySQL服务器的响应时间。 总的来说,要连接51单片机MySQL,我们需要使用51单片机的串口功能与计算机进行通信,并在51单片机的程序中使用MySQL的C语言API来与MySQL服务器进行交互和查询。这样,我们就可以在51单片机上利用MySQL的功能来存储和管理数据了。
评论 95
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

⁽⁽ଘ晴空万里ଓ⁾⁾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值