动态创建一个配置文件


create a config file on the fly

我正在制作树莓派,并为我们的温室创建一个网站。我正在使用温度传感器读取我们主温室中各个地方的温度,并创建了几个网页,每1分钟显示一次温度。

当我在温室中添加一个新的传感器时,我会将同样的东西添加到数据库中。我使用GroceryCRUD,并使用仪表的默认值,但每个温度传感器都有一个唯一的值和一个在pi上创建的唯一文件夹。

我使用Python脚本读取数据并将其插入到mysql数据库中,然后Python脚本选择最后一个条目并将其显示到带有所有仪表的php文件中。仪表页面根据传感器表中的内容创建仪表计数。这一切都很好地解决了一些需要更好编码的问题。

数据库有另一个名为relays的表,它与传感器有关,这样我就可以得到什么继电器去了什么传感器。

我正在做的下一件事是一个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和path,或者删除一个。

我已经尝试使用它来创建上面的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()

当我运行脚本时,如果我在末尾放一个print命令来查看test2,我会得到正确的值来打印出来,但我需要它成为脚本中的一个变量,而现在它不是。

我想让一个脚本读取传感器表,然后用正确的temp_sensor变量创建/写入一个新的配置文件,并根据3个传感器或传感器数量创建/写入新的函数,这样我就不必总是回到代码中进行这些更改。

我也可以使用脚本将这些值放在数据库表中,然后将新的配置文件写入到一个文件中,但不确定这是否有效,所以我想知道使用ether-perl、python、php和mysql有什么好方法可以做到这一点。

我通过创建一个python脚本找到了答案,该脚本查找表中的所有内容,然后使用f.write写入一个新文件。因此,每当我正在处理的数据库表更新、添加或删除时,我都会创建一个新的配置文件。

现在,我需要一种方法,在表格更改后自动完成。我必须点击一个按钮,或者找到一种可以监控表格的方法。那是下一个!