對這個東西有興趣的可以先訪問 122.225.89.12:9880 看看最終的實現效果。
偶然間得到一塊交流電壓電流采集模塊(jsy-mk-109)就尋思著可以拿這東西來做點什么,恰好這模塊也提供了485接口可以采集數據。想法就成型了,做一個實時顯示的智能電表。
要能實現實時顯示,我可以通過app、web頁面、或者液晶屏實現,液晶屏太不靈活,沒法做到隨時隨地查看,排除。app要制作ios和安卓的,為了一個小玩意不值得,排除。最后選擇web頁面來展示。web頁面要實時實現,那么必須實現長鏈接,比較容易的辦法是用websocket。然后要考慮去采集jsy-mk-109的數據,我希望是把這東西做的夠小巧,又能自帶wifi功能可以把數據發送到web服務器,綜合考慮下來最后選擇采用esp8266-01模塊,刷上了nodemcu的固件,但是這個模塊不支持485接口,而且本身也沒有多余的GPIO可供模擬,所以決定加上一塊485轉ttl的模塊。最后整套系統實現下來總共使用了如下東西。
jsy-mk-109 + esp8266-01 + 樹莓派 + TTL轉RS485模塊 + 開關電源模塊(220V轉3.3V)
2.jpg (109.66 KB, 下載次數: 62)
下載附件
2016-12-23 13:11 上傳
實現過程,首選esp8266-01刷入nodemcu,utx和rtx針腳分別連接TTL轉RS485模塊的TX和RX,TTL轉RS485模塊上的485接口和jsy-mk-109的485接口互聯,開關模塊電源為8266和轉換模塊供電。物理上的連接大概就是這樣。接下來我們讓8266每一秒鐘通過串口發送一個查詢字符串,在經過轉換模塊后發送給jsy-mk-109,如果信號正確就會返回數據信號,8266拿到返回的數據信號后通過udp協議發送給服務器(這里就是那臺樹莓派),理論上樹莓派每秒都會收到一條包含了電壓電流功率用電量信息的數據,然后會判斷這條數據中的功率數值,如果和上一條中功率的數據相差超過2W,就會通過websocket發送給最終用戶。最終用戶就會看到一個實時變動數值的界面。 我把那些東西隨便找了一個殼子裝在一起,最終做好的東西就是下圖那樣
22.jpg (45.1 KB, 下載次數: 66)
下載附件
2016-12-23 13:11 上傳
實現的最終界面是這樣的
33.jpg (56.8 KB, 下載次數: 55)
下載附件
2016-12-23 13:11 上傳
|