如何通过服务器实现监控远程,如何制作一个对流量进行远程监控的系统

news/2024/7/3 4:43:29

描述

步骤1:需要什么?

b1e61dfe844b93b47d51713f98769a1b.png

这项工作需要:

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

796d39fd9e90ab2a645c8a9496d29777.png

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

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

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

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

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

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

步骤3:示例2

74c9c56708f49c3d04d8d25eb751c1cf.png

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

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

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

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

步骤4:示例3(仅ThingSpeak)

a73717104c6274b07590c168f3595b89.png

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

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

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

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

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

f2cca0f329ab69523877e244ab9ebc3f.png

附带了一些带有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精彩内容

点击阅读全文


http://www.niftyadmin.cn/n/4254516.html

相关文章

JavaScript中的call和apply应用

ECMAScript3给Function的原型定义了两个方法,他们是Function.prototype.call 和 Function.prototype.apply. 在实际开发中,特别是在一些函数式风格的代码编写中,call和apply方法尤为有用。 call和apply区别 其实他们的作用是一样的&#xff0…

SQL 复制过程的注意事项(转)

相关链接: 利用数据库复制技术 实现数据同步更新[摘] SQL 复制过程的注意事项(转) 1、设置共享复制目录: computer_machine//C$...//..如果服务器取消过默认的共享($)则会失败;此时新建一个目录,并赋予权限&#x…

AS3.0中自定义matedata

metadata就是元数据,反应一个类本质的属性,可以通过describeType(obj)来得到反应该对象的xml. 要自定义元数据,如[MyMatedata()]: 1 package {2 public class MyClass extends Object{3 [MyMatedata(name"ha",name2&qu…

redies常用命令

如果要使用多台redies端口就要多复制几个redies 然后将其中的redies.conf文件中端口修改一下即可 启动redies,j进入到启动文件夹子中 redis-server ./redis.conf #如果更改了端口,使用redis-cli客户端连接时,也需要指定端口,例如:…

VB中如何修改treeview的背景色

改变 TreeView 的背景 Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long Private Declare Function GetWindowLong Lib "User3…

三台服务器信息共享,三台服务器共享使用一个弹性ip

三台服务器共享使用一个弹性ip 内容精选换一换会话保持,指负载均衡器可以识别客户与服务器之间交互过程的关联性,在实现负载均衡的同时,保持将其他相关联的访问请求分配到同一台服务器上。会话保持有什么作用呢,举例说明一下&…

关于VS2008/2010中SORT,stable_sort的比较函数中strict weak ordering

在VS2008/2010中SORT&#xff0c;stable_sort的比较函数是strict weak ordering。当比较的时候出现元素相等的情况是编译器默认必须返回false&#xff0c;而如果在自定义比较函数时&#xff0c;将相等返回true。将会出现invalid operator<的异常。 注意&#xff1a;这种异常…

lv扩展磁盘空间

2019独角兽企业重金招聘Python工程师标准>>> 1、查看磁盘空间&#xff0c;有一部分没有加进来 [rootlocalhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/rootvg-lvroot 29G 7.1G 21G 26% / tmpfs …