我正在为Raspberry pi工作并为我们的温室创建一个网站。我正在使用温度传感器读取我们主温室中不同位置的温度,并创建了几个显示每1分钟显示温度的仪表的网页。
当我向温室添加新传感器时,我将相同的东西添加到数据库中。我正在使用GroceryCRUD并使用仪表的默认值,但每个临时传感器都有一个唯一的值和一个在pi上创建的唯一文件夹。
我使用Python脚本读取数据并将其插入到mysql数据库中,然后Python脚本选择最后一个条目并将其显示到包含所有仪表的php文件中。仪表页面根据传感器表中的内容创建仪表计数。这一切都很好用,有些事情需要更好地编码。
数据库有另一个叫做继电器的表,它与传感器有关系,所以我可以得到什么继电器去哪些传感器。
我正在研究的下一件事是Python脚本(或者它可以是任何其他可行的语言),它读取这些传感器,并根据读数打开和关闭连接到pi的继电器。
有没有办法根据传感器和继电器表中的内容动态创建配置文件?
我希望能够让配置文件中包含传感器代码和GPIO引脚编号,但如果我在传感器表中添加或删除传感器,它将在配置文件中添加或删除该信息。
这是一个例子......
temp_sensor1 = '/sys/bus/w1/devices/28-000007299ce9/w1_slave'
temp_sensor2 = '/sys/bus/w1/devices/28-0000072963c5/w1_slave'
temp_sensor3 = '/sys/bus/w1/devices/28-000007299cg5/w1_slave'
当我向温室添加一个新的传感器时,我需要将它连接到pi并获得以28-00000开头的新代码并将其输入数据库以及需要哪些继电器和GPIO引脚连接并将其放入数据库。然后进入python脚本并添加新的temp_sensor和路径或删除一个。
我试图用它来创建上面的temp_sensor变量。
x=1
tempsensor = 'temp_sensor'
try:
cursor.execute(sql)
rows = cursor.fetchone()
for row in rows:
sensorcode = row
tempsensor2 = str(tempsensor) + str(x)
test = " = '/sys/bus/w1/devices/%s/w1_slave'" % sensorcode
test2 = str(tempsensor2) + str(test)
use(test2)
x = x + 1
except:
print "Error: unable to fecth data"
# disconnect from server
db.close()
当我运行脚本时,如果我在末尾放置一个打印命令来查看test2,我会得到正确的值来打印出来但是我需要将它作为脚本中的一个变量,现在它不是。
我想让脚本读取传感器表,然后使用正确的temp_sensor变量创建/编写新的配置文件,以及基于3个传感器创建/编写新功能或者有多少传感器,所以我不知道必须始终返回代码并进行这些更改。
我还可以使用脚本将这些值放在数据库表中,然后将新配置文件写入文件,但不确定是否可行,所以我想问一下使用ether perl做什么的好方法,python,php和mysql。
答案 0 :(得分:1)
我通过创建一个python脚本找到答案,该脚本查找表中的所有内容,然后使用f.write写入一个新文件。因此,每当我正在处理的数据库表得到更新,添加或删除时,我都会创建一个新的配置文件。
现在我需要一种方法让表在更改后自动完成。我必须点击按钮或找到一种可以监控桌子的方法。那是下一个!