在本教程中,我们将学习如何将四合一BME680压力、气体、湿度和温度传感器与树莓派(RPi)连接。这将包括了解如何记录和检索数据库中的数据。
BME680可以通过SPI (serial peripheral interface)和I2C协议与外部控制器“通信”。对于这个项目,我们将使用RPi的I2C端口连接到传感器。与Arduino非常相似,RPi提供了预定义的库,包括一个用于BME680及其前身的库。
首先,安装RaspbianOS在你的RPi上,启用I2C接口/端口。要做到这一点,请使用图形用户界面或GUI -转到开始菜单>首选项>覆盆子π配置并选择I2C接口旁边的单选按钮)。
您也可以在命令提示符/Shell中输入sudo raspi-config,从蓝屏开启I2C端口.
接下来,安装最新版本的Python。
sudo apt更新
Sudo apt install python3 idle3
接下来,安装用于BME680传感器的Python包。注意:如果系统说,“没有找到pip”,您需要首先安装pip。
Sudo PIP安装bme680
出于数据日志记录的目的,我们使用了“PyMySQL”Python RPI包。我们将同时使用RPI作为服务器来托管我们的数据库。
安装PyMySQL:
Python PIP安装pymysql
上面的PIP安装语句只适用于Python 2.0。对于Python 3,您需要使用PIP 3来代替。安装包之后,有必要将它们导入到代码中。
的代码
首先,导入BME680传感器和PyMySQL库。包含时间库,因此如果/当需要时,可以在语句执行之间输入延迟。
接下来必须建立到数据库的连接。因为我们使用RPI作为服务器,所以localhost作为服务器参数传递。
注意:
- 用户名是数据库管理员的名称
- 密码是数据库的密码(如果设置了)
- 数据库的名称为“dbname”。
有必要确保这些名称是正确的或替换的,如果可能的话。传感器由以下语句初始化:bme680.BME680()语句。
接下来,必须定义传感器的各个参数采样率。
为:
- 湿度- 2 x
- 压力- 4 x
- 温度- 8 x
- 过滤掉所有的背景噪音
下面是程序的主体。循环不断地从传感器读取数据,过滤数据,并将其传递到数据库进行存储。
- 声明,get_sensor_data (),检查是否存在任何数据。如果发现“true”,则读取数据并将其存储在输出变量中。
- 的sensor.data.temperature语句提供温度读数。该读数放在输出字符串变量中。
- 在{0: .2f},0表示第一个占位符,.2f表示浮点数(有两位小数点)。
- 其余2{1和2}参数与压力和湿度有关。
- 的heat_stable语句启用气体读取。如果数据相当稳定(没有剧烈波动),那么它将打印输出变量——该变量存储温度、湿度和压力值以及气体读数。
- 三分钟的延迟包括稳定传感器。
为了记录数据库中的数据,需要在DB中插入数据。SQL查询语句。“%s”作为每个值的占位符。最后,提交数据以更新数据库,然后关闭连接。
SQL插入查询将表名登记为LOGTABLE。但是,您必须首先创建这个表来记录其中的数据。假设我们创建了一个名为“MasterDB”的数据库,其中有一个名为“LOGTABLE”的表。
SQL语句如下:
创建数据库MasterDB;创建一个名为MasterDB的数据库
使用MasterDB;#Set 's MasterDB正在使用-现在每个查询都到这个DB
创建表MasterDB创建库仑表
温度浮动,
压力浮动,
湿度浮动,
气体浮动
);
SQL语句是一般的MySQL语句。要在Python代码中运行它们,首先要将它们放在适当的Python MySQL绑定器中——就像我们在上面的代码中对PyMySQL所做的一样(INSERT语句)。
要从数据库中提取数据,PyMySQL绑定器的Python语句是:
从MasterDB中选择库仑(用于温度,压力,湿度,气体)。取一张记录,在控制台上打印出来。
这个项目可以使用任何Python RPI IDE。我们使用Thonny.
线路图
到哪里去买零件?
你也可能喜欢:
了下:188金宝搏提款有问题吗,188app官网