如何制作一个对流量进行远程监控的系统

电子说

1.3w人已加入

描述

步骤1:需要什么?

这项工作需要:

1 流量计 http://pt.aliexpress.com/item/New-Black-G1-2-Wate 。..

1 NodeMcu http://pt.aliexpress.com/item/NodeMcu-Lua-WIFI-dev 。..

或http://pt.aliexpress.com/item/V2-4M-4FLASH-NodeMcu 。..(我更喜欢这个)

1 面包板(取决于NodeMcu版本,此功能适用于我上面提到的第二个http://pt.aliexpress.com/item/400-Tie-Point-Interl 。..)

3条面包板电缆,就像这样http://pt.aliexpress.com/item/Free-shipping-Dupon 。..,您只需要3个,这样您就可以将其余的保留给其他项目使用。

所有代码都是在Arduino IDE。 (https://www.arduino.cc/zh/Main/Software)

最后,我使用LUA语言使用ESPlorer进行了示例,以尝试获得相同的结果(http://esp8266 .ru/esplorer/)

硬件连接是通过在流量计和 nodemcu 之间连接3条电缆(跳线)来完成的

电缆连接(使用面包板电缆,公对公):

将流量计的红色电缆输出连接到nodemcu上的3.3v引脚。

将流量计的黑色电缆输出连接到nodemcu上的“接地”。

将流量计的黄色电缆输出连接至nodemcu上的控制引脚(在我的情况下为D2引脚)

这就是开始,所以下一步是对nodemcu进行编程(控制流量计中经过的公升)。

注意:在编写任何代码之前,您可能需要将新固件刷入NodeMcu中,请使用ESP8266Flasher(https://github.com/github .com/nodemcu/nodemcu-flasher)。

我做了3个示例,将在下一步中显示,但是我只会显示第一个示例的代码。

* 流量计的规格表明+/- 440“ pulses”等于1升。

步骤2:示例1

远程监控

在第一个示例中,我们有:

在Arduino IDE的串行监视器中的升数;

在ESP8266中设置一个网络服务器,其中显示了来自升消耗量的数据以响应HTTP请求。可以在网络内部或外部进行对Web服务器的访问,这需要对Wi-Fi路由器进行相应的设置。

通过HTTP GET请求,其总数升被发送到外部服务器(ThingSpeak)。有了该信息,便可以在ThingSpeak平台(请参阅https://thingspeak.com/channels/120470)中显示一个图,可以在任何Internet终端中进行访问并随时进行分析。

可以在本地网络服务器中使用“ html iframe”来显示ThingSpeak的图形(如上图所示)。

已附上了该示例的完整代码。

步骤3:示例2

远程监控

在第二个示例中,我们有:

公升计数在Arduino IDE的串行监视器中;

通过HTTP GET请求,将总升数发送到外部服务器(Emoncms)。通过该信息,可以在EmonCms中创建图形(请参阅http://emoncms.org/a21210&id=32359),该图形可以远程访问并进行实时分析。

可以通过将示例1中的URL替换为emoncms的输入API中的URL来获得此示例的代码。

步骤4:示例3(仅ThingSpeak)

远程监控

在第三个示例中,我们有:

在Arduino IDE的串行监视器中计数的升数;

通过HTTP GET请求,将总升数发送到外部服务器(ThingSpeak)。有了该信息,便可以在ThingSpeak平台(请参阅https://thingspeak.com/channels/120470)中显示一个图,该图可以在任何Internet终端中访问并随时进行分析。 (现在由ThingSpeak网站页面说明。)

可以很容易地修改示例1中的代码来实现此示例的代码。

第5步:ESplorer示例(LUA代码)

远程监控

附带了一些带有LUA示例代码的文件。

关于ESplorer和LUA:使用ESplorer(Lua代码)与NodeMcu配合使用时,可以将多个文件发送到其内存。一方面使软件更具模块化,另一方面,我们可以将HTML页面存储在NodeMcu内存中,可以在代码上随时调用。

有用的链接:

Lua示例:https://learn.adafruit.com/adafruit-huzzah-esp8266 。..

软件ESPlorer:http://esp8266.ru/esplorer/

步骤6:最后的话。..?

和其他项目一样,出现故障。..

NodeMcu发送随机堆栈错误,有时是由于无法连接到wifi网络,或者是通过使用函数attachInterrupt。

启动代码时,我使用的是库ESP8266WiFiMulti.h,并决定换成库ESP8266WiFi.h,错误开始出现的频率越来越低。

尽管我的编码能力比电子技术要好一些(一点都不懂:P),但我一直在网上阅读有关此问题的信息,但没有运气。我使用了3个单位的NodeMcu(2个不同的模型)来检查错误是否来自有缺陷的错误,但是没有任何区别。

也许有人可以告诉我我哪里失败了?

责任编辑:wv 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分