2015-12-30 51 views
0

我正在研究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個傳感器創建/寫入新功能或有多少個傳感器,所以我做不必總是回到代碼中並進行這些更改。

我也可以使用腳本將這些值放在數據庫表中,然後寫入一個文件新的配置文件,但不知道這是否會工作,所以我問什麼是使用乙醚做這件事的好方法perl,python,php和mysql。

+0

您可以在讀取傳感器之後或在讀取傳感器之間創建配置文件。 –

回答

1

我找到了答案,通過創建一個python腳本來查找我表格中的所有內容,然後使用f.write寫入一個新文件。因此,每次我正在處理的數據庫表都會更新,添加或刪除時,我都會創建一個新的配置文件。

現在我需要一種方法來在表更改後自動完成它。我必須點擊按鈕或找到一種可以監控桌子的方式。那是下一個!