html网页上传到服务器_通过web网页远程控制智能硬件LED灯(自己搭建服务器),IOT物联网开发实例(2)...

f5c039823623464e219805cdbe94b345.png

啰嗦一下

上一篇中提到硬件通过http——GET的方法不停地访问服务器,来实现实时控制,但是这种办法会造成浪费服务器资源,如果并发多的话那就服务器就会废掉了。

为了实现不用多次访问服务器,浪费资源,所以自己也找了不同方法,结果发现可以使用两种方式(这两种方式在nodemcu的固件里面都有相关的API,开发起来简单):一种是websocket,另外是一种MQTT。自己也试过了两种方式,结果发现还是MQTT比较好用,感觉也比较简单。

使用MQTT协议对于新手的我来说是一个iot物联网实践中的一个重要里程碑,就好像又一次发现了新大陆

MQTT是比较适合硬件的控制,逻辑也很简单。在做实践的时候自己觉得里面有几个关键字,订阅主题、发布主题,消息代理;(如果是更详细了解可以google一下就好了)

硬件可以订阅主题和发布主题:订阅主题——用于接收服务器发来的数据;发布主题——用于传输数据到服务器。同样的服务器也一样。

消息代理就是一个消息转发的中介,其实是一个软件,可以安装在服务器中——我用的是mosquitto;它里面的怎样实现消息转发的细节自己没有了解,只会使用(自己不是什么牛人,不懂研究个中的逻辑,只会拿来主义)。

安装mosquitto(消息代理)

安装mosquitto,部署环境总是比较麻烦,过程中总会遇到各种大小问题,幸好有google,自己搜索一大堆不同的资料,一点一点的尝试,最终还是搞定。

自己的环境是:window系统+wamp服务器,简单的mosquitto安装步骤(根据自己的情况总结出来的)

1)先安装cywin,openssl-light,mosquitto

2)下载动态库文件cygcrypto-1.0.0.dll、cyggcc_s-1.dll、cygssl-1.0.0.dll、cygwin1.dll、cygz.dll、libssl-1_1-x64.dll、libssl32.dll、msvcr100.dll并复制到 mosquitto安装文件夹中

3)配置好并可以在服务器中测试可以连接,需要配置mosquitto.conf文件

需要添加内容:

listener 1883(mosquitto 端口)

listener 9001(websocket 端口)

protocol websockets (支持websocket协议)

http_dir C:wamp64www(web网站更目录路径)

-----------------------------------------------------

安装部署完成后,需要启动mosquitto

打开cmd

进入mosquitto目录

输入命令 mosquitto -c mosquitto.conf 即可

以上mosquitto消息代理已经安装完成

实现远程控制led灯

硬件方面,使用esplorer软件重新编写代码,上传到硬件中;用mqtt方法,代替之前的http-get方法。里面逻辑是:定义一个客户端标识,连接上mosquitto,订阅一个主题,发布一个主题,接收消息,发布消息(这样就可以和服务器进行双向的沟通)

服务器方面,建立一个html页面(主要使用jquery来get数据和post数据),其中首先要与mosquitto代理建立连接,其中需要引入mqttws31.js(用于与mosquitto沟通,这个文件可以自行下载)。你可以利用mqttws31.js来定义一个客户端标识,连接上mosquitto,订阅一个主题,发布一个主题,接收消息,发布消息(与MQTT连接逻辑其实和硬件的一样)。但是注意的一点,服务器端订阅的主题其实是硬件端中发布的主题(这样服务器就可以获取硬件传来的数据);服务端发布的主题其实是硬件端订阅的主题(这样服务器就可以发布数据到硬件中)。两个终端的主题是对应的,这样两个终端之间数据才能互传。

待html页面与mosquitto建立连接后,对led控制的逻辑设计(用JavaScript即可)具体如下:用户访问html页面,用户开启led灯,调用mqttws31.js其中的发送数据方法,将json数据发送到led灯中,然后led灯解释json数据,最后修改led灯的状态(其实html页面的led状态数据先发送到mosquitto,然后mosquitto根据关联的主题,最后将数据转发到对应主题的led灯中);

同时led灯也将自己的状态发送到html页面当中,html页面再进行逻辑操作,这样就可以实现led的状态同步和实时控制。

实现思路图如下:

576e0cfb7d415333c048bed3e0130175.png

==================================================================

yeah!简单的远程控制led灯已经结束,但下边需要如何呢?既然自己都开了个头,来,做一个可以控制n个智能硬件的平台吧~~。初步的设想:用户可以自定义添加多个硬件(我想用扫码添加的方式),添加用户进入不同的智能硬件控制页面单独控制硬件;智能管理后台的搭建,框架的选定,数据库的建立,逻辑的设计开发。。。。。感觉路还有很长~~,下一篇更精彩

相关文章:

通过web网页远程控制智能硬件LED灯(自己搭建服务器),IOT物联网开发实例(1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值