|
很久之前就想做一個智能電度表,可以通過網絡查看實時電能參數,以及每天每月的用電情況,但由于沒有找到合適電能測量模塊,所以一直沒能實現;直到偶然中我發現了Peacefair PZEM 004T 電能模塊,它能較好地測量電能,價格也可以接受,所以用它來實現是再好不過了。ESP8266是個小巧便宜的模塊,內置獨立處理器芯片,具很強的網絡功能,利用它就能做出可以聯網的智能設備,同時還省去了單片機。所以借助于ESP8266和PZEM 004T就可以很方便的實現智能電度表。
首先購買NodeMCU開發板,這個開發板搭載ESP8266模塊,集成了串口下載芯片,是非常理想的實驗平臺,然后刷了NodeMCU固件,打算使用LUA進行開發。說起來簡單做起來難啊!程序寫進去后各種問題不斷,于是又一個一個的想辦法解決,但是我遇到了一個最終也沒有解決的問題,那就是模塊老是莫名地重啟,串口輸出亂碼,查找了兩天原因未果后(已找到解決方法,將整個flash擦除再燒寫就不會出現這個問題了),不得不放棄使用NodeMCU固件開發...接下來換為Arduino集成開發環境進行開發,但是發現這樣無法了解ESP8266的許多細節了,并且Flash占用也大,繞了一圈之后,最終選擇了官方SDK開發,雖然效率不高,但可以了解ESP8266的工作細節,使用的也是我熟悉的C語言,程序的運行效率也應該比其他方式要高。然后就去下載了官方SDK,開發軟件,ESP8266的各種技術文檔,按照教程一步一步地搭建開發環境,這些都做完后三天就過去了。按照最初的設想,我要使用Web瀏覽器查看系統的各種參數,所以就讓ESP8266做web server;經過近一個星期的努力,做出了一個非常簡單的原型機,由于缺乏html等相關方面的知識,顯示效果不理想;ESP8266做web server感覺有些勉強,畢竟其數據處理能力很有限,所以最終選擇使用Labview做上位機,這樣模塊的數據傳輸量降低了不少,同時方便編程,做出的顯示界面也較為美觀。然后就沿著選定的方案一步一步地去實現功能,中間各種各樣的坑就不說了,經過一個多月的開發,終于實現了最基本的功能,即查看實時電能參數,至于記錄各時段的電能參數不太好實現,因為ESP8266沒有獨立的RTC,而且需要設計一個存儲模型來存儲電能參數,這還需要不少時間。同時已支持一鍵配網功能,使用Esptouch實現,使用超級方便!
此版本定為V2.0,以后還會對其進行升級,增加新的功能,比如存儲歷史電量信息,添加繼電器等。
昨天花了幾個小時制作實物,進行的還算順利,畢竟硬件連接很簡單!難就難在軟件開發上。
|
評分
-
查看全部評分
|