
一個項目,以讀取智能電錶的儀表讀數,在數據庫中寫入並可視化。



隨後輸入數據庫的data文件夾,帶有私人舊電錶。 python包含用於讀取儀表支架的Python腳本。
使用Raspberry Pi模型A。兩名IR讀者通過USB連接到此。在這裡訂購:Weidmann Elektronik提供的智能電錶是EMH Company的EHZ。
在SD卡(最小8GB)上安裝Raspberry Pi圖像Raspberry Pi Image(Raspbian)。說明使標准設置是關於時間並擴大內存的時間:
sudo raspi-config
sudo apt-get upgrade all將Python腳本python複製到Raspberry。例如通過FTP。我將數據複製到homepiDocumentsEHZ文件夾中。
現在,您仍然必須調整Python腳本。要測試哪些消息,電錶發送了所有內容,以便您可以調用腳本pythonSensortest.py 。在此之前,您應該確保在此處輸入正確的模擬連接。當然,您還必須關注奇偶校驗並停止碎屑。默認情況下,IR讀取頭與devttyUSB0綁定。看著您可以在以下設備下在其前面搜索:
cd dev pythonSensortest.py之後,應該出現不同的消息。但是,僅發出包括儀表讀數的相關領口。
# 77078181c78203ff0101010104454d4801
# 77070100000009ff010101010b06454d480104c56ec5bd01
# 77070100020800ff6400000001621e52ff5600020f37e201
# 77070100020801ff0101621e52ff5600020f37e201 //Zählerstand
# 77070100100700ff0101621b52ff550000000001 //momentaner Bezug / Leistung
# 77078181c78205ff01726201650136ece901018302739899a4350308b2be3a7022b69067cf0a021eb85e02a2f95810a06a6a1f5e48ed56bc3a53e771f68d66540c260e6d1c010101+現在,您查看那裡的OBIS指標在那裡被識別。通常,這應該是參考01-08-01和交付02-08-01 。在示例中,這是在3。行中:77070100 020801 FF0101621E5600020F37E201您想要的值在ff56和01之間: 00020f37e2 。然後將該十六進制值轉換為10^4的整數值。然後,您將獲得所需的結果。
如果您找到了相應的值,您會注意到OBIS指標的數字序列。例如: 77070100020801ff 。然後將其作為搜索參數輸入到腳本中。我的腳本基於亞歷山大·卡布扎(Alexander Kabza)的腳本。我已經處理了這樣的方式,即一旦讀取消息,該值就會寫在數據庫中。然後,我將有關Python腳本的可執行外殼腳本。
外殼腳本:
#! /bin/bash
sudo python /home/pi/Documents/EHZ/strombezug.py使可執行
chmod +x strombezug.sh然後,我讓腳本在晚上11:59運行一次。由Cronjob。 Cronjobs閱讀
crontab -e創建 /修改。並與
crontab -l您可以顯示所有Cronjobs。
59 23 * * * /home/pi/Documents/EHZ/stromlieferung.sh
59 23 * * * /home/pi/Documents/EHZ/strombezug.sh因此,我明白了光伏系統每天所做的事情或房屋每天消耗的電力,然後可以呈現整個事物以後可視化。
sudo apt-get mysql-server mysql-client apache2 php5-cgi php5-mysql-mysql用戶創建用戶並創建數據庫-greate sql -mysql訪問數據到python腳本 / save / in index.php和api.php中
數據庫包含一個保存計數器的表。計數器具有ID,名稱和偏移。使用新計數器時,該偏移用於保存計數器狀態。因此,您可以創建一個新的計數器,其中offset =舊計數器的儀表比例。因此,您可以稍後精確地進行計算。
還有一張用於蓋子和交付的桌子,其中儀表ID,時間戳和儀表狀態保存。如果需要,您還可以運行一個腳本,該腳本寫入計數器的當前值,即每秒每秒的當前性能 /引用。當然,您也可以對此進行不同的解決。
todo create-sql
為了進行可視化,我寫了一個小的API,例如,該API每月返回每月的值或JSON格式的值。為了顯示整體,我使用oss Chart.js。然後讓API使用AJAX獲取值。
?q=yearly每年的價值(交貨)
?q=yearlybezug一個價值(參考)
?q=year&y=xxxx年度為每年一個值xxxx
?q=year所有現有年度每月的價值
?q=c返回儀表量表的當前值(交付 +蓋)
?q=w給出了最後7天的值
http://wiki.volkszaehler.org/sml http://www.kabza.de/myhome/rpi.html