现在物联网平台非常多,百度、腾讯、阿里、京东、等,这些物联网平台都各具特色,但毕竟是别人的,我们自己能否搭建属于自己的物联网平台呢?答案是可以的,我们只需要一个服务器,在服务器上搭建IOT平台,然后再让设备连接上,就可以了
本篇文章是使用 ubuntu + emqx + nodered 方式搭建属于自己的IOT平台,并在平台监控Hi3861上的数据,然后通过手机app同步hi3861的数据。文章涉及篇幅较多,故打算用多篇文章来讲解,这是第一章,搭建EMQX服务器。
如何搭建EMQX服务器:
1.前面说到,搭建一个IOT平台需要一个服务器 ,我个人建议使用云服务器来搭建,一来是可以直接外网连接,二来是我们的代码可以直接放在服务器上,在不同的地方只需要连接服务器就可以开发,当然,最好还是配合github或者gitee来进行代码管理。
2.如果是使用虚拟机的,那么你需要多做一个步骤就是,内网映射,把虚拟机服务器的IP地址映射到公网,这个我之前也弄过,是使用花生壳内网映射,把内网映射出去,不过这个弄起来稍微复杂一点,所以还是不推荐用虚拟机,加上平台是24小时运行,所以还是弄一个云服务器香,如果你是学生的话,几十块钱就可以买一年的服务器了。
接下来的步骤在虚拟机或者云服务皆可以实现,操作步骤都一样
安装emqx服务器步骤很简单
先去官网找到对应你的ubuntu版本的安装包
然后远程连接你的服务器输入指令
等待下载完毕再执行
sudo dpkg -i emqx-ee-ubuntu20.04-4.2.1-x86_64.deb
安装好之后再输入
sudo emqx start
如果出现
EMQ X Broker 4.2.2 is started successfully!
证明EMQ服务器已经部署完毕
图上为虚拟机的
图上为我的云服务器的安装成功图示
证明服务器启动成功,因为我的云服务器是24小时运行的,所以可以不加入开机启动
然后就可以在浏览器中打开了 地址为 你的服务器ip地址:18083,如:192.168.31.205:18083
打开后是这样子,默认的账号是admin,密码是public
这是我云服务器打开后的样子
这是我本地虚拟机打开的,
这两个页面的UI不一样,可能是因为安装的版本不一样导致,这不影响下面的操作
注意:本地虚拟机搭建的EMQX服务器,运行的话可以不用在虚拟机里面打开浏览器,直接在主机打开浏览器输入ip:18083即可打开!
如果是云服务器,搭建之后,在公网打开的时候有可能遇到打不开的情况,这是因为你的端口没有打开,你需要在你的云服务器控制台的安全组里面添加EMQX的端口 18083,这样就可以在公网打开了!
在下一步验证服务器之前,需要打开EMQX的一个客户端,用来发布和订阅消息
在 工具->Websocket 中点击连接
然后就可以先进性下一步验证了,云服务器和本地搭建均一样,下面直接以本地搭建做教程。
这里先设置一下订阅和发布的主题,设备和服务器是如何进行消息传输的呢?就是通过订阅和发布,如下图的订阅框内的testsubscrib这个主题,就是服务器订阅的主题,当设备连上服务器之后,发布数据经过这个主题,那么服务器就会收到数据,反之一样
服务器订阅的主题 <==> 设备端发布的主题
服务器发布的主题 <==> 设备端订阅的主题
服务器端搭建完毕,接下来就是验证MQTT服务器
测试连接服务器
我们需要一个软件来连接到emqx服务器,这个软件是MQTT.FX
下载了直接安装在Windows下,然后打开后设置相关属性
点OK后返回主页面,然后点击Connect,如果右边的指示灯变绿证明已经连接上服务器
然后就可以填入发布的主题了,前面在服务器端设置了订阅的主题叫testsubscrib,我们填进去之后,在下面的输入框内输入想发布的数据,然后点Publish 然后在服务器端就可以接收到数据了
接下来测试设备端接受服务器端发布的消息,在MQTT.fx主页面选择Subscribe,然后填入服务器定义的发布的主题 testpublic,点Subscribe
然后在服务器端点发布
然后就可以收到消息了
至此,搭建自己的IOT平台第一步完成。
下一篇是让3861连上我们的服务器,并传输数据