|
很久之前就想做一个智能电度表,可以通过网络查看实时电能参数,以及每天每月的用电情况,但由于没有找到合适电能测量模块,所以一直没能实现;直到偶然中我发现了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,以后还会对其进行升级,增加新的功能,比如存储历史电量信息,添加继电器等。
昨天花了几个小时制作实物,进行的还算顺利,毕竟硬件连接很简单!难就难在软件开发上。
|
评分
-
查看全部评分
|