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

啰嗦一下

上一篇中提到硬件通过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:\wamp64\www(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的状态同步和实时控制。

实现思路图如下:


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

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,012评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,628评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,653评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,485评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,574评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,590评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,596评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,340评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,794评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,102评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,276评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,940评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,583评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,201评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,441评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,173评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,136评论 2 352

推荐阅读更多精彩内容