我正在研制覆盆子Pi 4B,并连接了一个BME680空气质量传感器。我每秒钟读取一次数据,并将其写入MySQL数据库
如果空气质量、温度等超出最佳范围,我希望能够发出警报。我遇到的问题是,传感器每秒读取一个读数,因此,如果我尝试建立警报,它会每秒关闭一次,直到范围恢复到最佳状态。我想知道如何仅在值超出范围时发出警报
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
import time
import board
from busio import I2C
import adafruit_bme680
import subprocess
import mysql.connector
from datetime import datetime
#SQL Setup
mydb = mysql.connector.connect(
host="localhost",
user="some_user",
password="some_pass",
database="some_db"
)
# Create library object using our Bus I2C port
i2c = I2C(board.SCL, board.SDA)
bme680 = adafruit_bme680.Adafruit_BME680_I2C(i2c, debug=False)
# change this to match the location's pressure (hPa) at sea level
bme680.sea_level_pressure = 1013.25
# You will usually have to add an offset to account for the temperature of
# the sensor. This is usually around 5 degrees but varies by use. Use a
# separate temperature sensor to calibrate this one.
temperature_offset = -1
while True:
now = datetime.now()
formatted_date = now.strftime('%Y-%m-%d %H:%M:%S')
# print("\nTemperature: %0.1f C" % (bme680.temperature + temperature_offset))
# print("Gas: %d ohm" % bme680.gas)
# print("Humidity: %0.1f %%" % bme680.relative_humidity)
# print("Pressure: %0.3f hPa" % bme680.pressure)
# print("Altitude = %0.2f meters" % bme680.altitude)
# print (formatted_date)
tmp = (bme680.temperature + temperature_offset)
real_temp = (tmp * 1.8) + 32
# print(real_temp)
gas = (bme680.gas)
humid = (bme680.relative_humidity)
pres = (bme680.pressure)
mycursor = mydb.cursor()
sql = "INSERT INTO data (Temperature, Gas, Humidity, Pressure, DT) VALUES (%s, %s, %s, %s, %s)"
val = (real_temp, gas, humid, pres, formatted_date)
mycursor.execute(sql, val)
mydb.commit()
## if ( tmp > 19 ):
## subprocess.call(['python3', 'alert.py'])
# else:
# print ("nothing to do")
time.sleep(1)
这是我的密码。同样,我不想每秒都给我的alert.py
打电话,这会影响我正在提醒的服务器,我希望在温度降至19摄氏度以下时提醒一次
多谢各位
您可以添加一个函数来获取当前温度的范围。如果范围已更改,请再次发送警报。你的状态就是你的体温下降的范围
请参阅下文:
计算完温度
tmp
后,在while True
循环中调用函数。像这样:相关问题 更多 >
编程相关推荐