物联网不求人 | 您所在的位置:网站首页 › 物联网平台怎么搭建网络 › 物联网不求人 |
最近我所在的创客交流群里面又双叒叕炸开锅了,大家纷纷表示伤不起,原因是提供的免费blynk物联网服务器宕机了,很多老师有一些重要的项目还在服务器上面,但现在服务器又访问不了,特别是对于那些比赛在即的老师尤其感到绝望,纷纷傻眼,到处“求神拜佛”求拯救方法。以前我对自建物联网服务器并没有这种强烈需求,认为只要用“好心人或者好心厂家”提供的免费服务器就好了,没必要自己搭建,费时费力还费金钱。但直到我亲身经历个人服务器提供者停机与厂家由免费转付费时,才猛然发现原来自己一直都错了,原来免费的才是最“贵”的,果然核心技术还是要掌握在自己手里,自己能够掌控的才是最好的。考虑到云服务器比较贵,个人电脑又不可能一直开机,于是我开始寻求一种低成本高性价比的服务器部署方法,经过不懈努力终于让我找到了这种方法,那就是用ARM的电视盒子使用docker部署创客所需的各种物联网服务器,其中包括常见的Blynk,EMQX,Nodered,Webserver等,下面我将详细介绍如何搭建属于自己的物联网服务器,真正做到物联网不求人。 视频演示下面让我们来看看这个项目的演示视频,该视频中我们使用自建服务器搭配M5 ATOM SPK实现订阅MQTT服务器播报网络MP3的例子,搭配Nodered,一言API与语音合成实现任意文字播报,按下板载按钮随机播报一段语录: 物联网不求人-服务器搭建So Easy 硬件介绍
任何个人或者公司都不能保证永久提供稳定可用的服务,重要服务掌握到别人手中本身就存在巨大风险,就像我所在创客交流群的老师们一样,临近比赛服务器又异常,这无疑是一种致命的问题,辛苦几个月制作的作品,毁于一旦,重做时间又不足。再者单片机本身性能有限,复杂功能很难实现,如果仅仅把单片机用作数据传输,针对特定功能编写简单程序或者烧录特定功能固件(例如这里的M5 ATOM网络MP3播报固件)把复杂的控制逻辑交给服务器来完成,那么将极大的简化整个项目的实现,轻松实现复杂项目,我们的演示视频当中按下ATOM板载按钮ATOM将向设置的MQTT主题发送一个消息为atom的信息,当Nodered的MQTT节点收到此消息后使用网络请求节点请求一言API数据,得到请求数据后将数据添加到语音合成接口参数中,最后将构造后的完整链接发送给ATOM,ATOM收到此链接便可语音播报随机语录了,这样ATOM仅负责收集按钮是否按下并反馈给服务器,同时订阅网络MP3链接主题播报网络MP3,复杂的控制逻辑都交给了Nodered,这样原来较难实现的功能也能轻松实现了,同时可以有机结合所有物联网服务与项目,做到真正的万物互联,搭配上一期的M5StickC语音助理你甚至可以结合聊天机器人接口制作对话机器人给自己解闷。 自建服务器需要那些准备 硬件准备 旧电脑或者电视盒子等任何可装Linux的设备;一个U盘(至少16G用于写入镜像);这里我们使用型号为CM311-1A电视盒子为例,此电视盒子为运营商宽带赠送,某鱼某多价格50+,配置为2+8G架构为ARM,与同为ARM架构的树莓派相比尽管没有千兆网口与USB3.0,但其价格感人,不足同等配置树莓派的1/10,作为个人第一款入门级服务器来说是绰绰有余的,购买时只需告知商店帮刷安卓系统可以从U盘启动系统即可。CM311-1A主视图如下: docker是一种开源项目,用于将应用程序自动部署为可在云或本地运行的便携式独立容器,Docker基础可通过bilibili“Docker 10分钟快速入门”进行了解,通过docker我们可以使用一条指令便可部署服务而无需理会各种环境与配置问题,在这里我们仅需了解镜像,映射端口与挂载点即可,这个我们将下面实际服务器部署中进行说明。 openwrt基础任何具备docker安装最低要求的Linux系统都可以使用安装docker并部署各种服务,但Linux系统对于习惯了图形化界面的我们来说显得晦涩难懂,因此我们这里使用图形化的openwrt软路由系统,该系统除了普通路由器功能外还内置docker与各种实用插件,例如文件共享,USB打印机服务器,内网穿透等,这里如需详细了解可自行百度查阅相关资料。 开始服务器搭建 镜像烧录准备一张16G的U盘使用文末附件中的镜像烧录工具烧录openwrt镜像如下 电视盒子使用HDMI线连接显示器插电开启,并进入应用主页打开下图所示应用(部分系统此应用名称为U盘启动之类的,具体以实际应用为准)
Blynk是一个优秀的物联网平台,它通过图形化拖拽的方式便能让我们轻松搭建APP的图形界面,方便我们制作出各种物联网项目,下面将介绍Blynk服务器的搭建。按照上面方法成功联网并进入openwrt后台后我们选择左侧的Docker→容器→添加如下图
添加完以上镜像后我们启用EMQX与Blynk镜像,勾选容器并点击重新启动如下图所示
目前为止我们所有的服务都只能在局域网下使用,如果我们脱离了局域网那么便不能正常使用以上服务器了,为了能够让我们在任何地方都能够访问我们的私有服务器那么便需要一个工具帮我们把内网服务发布出去,这里我们用到的工具便是内网穿透,国内内网穿透比较出名的有花生壳,但它提供的免费流量每月只有2GB且需要一个单独的设备使用其服务,对于我们来说这多少有些不便,其实openwrt本身就自带了两个内网穿透方式,分别是frp与nps,这里我们以frp为例演示如何使用内网穿透公开我们的服务。 frp内网穿透这里我们以浮居frp为例,进入其官网并注册账号登陆其控制台,左侧点击添加隧道配置需要内网穿透的服务信息配置说明如下所示 如上nodered程序所示,通过订阅按钮主题获取ATOM按钮是否单击,当按钮单击则使用网络请求节点获取一言随机语录文本,获取文本后将其拼接到语音合成接口链接当中作为语音合成参数,最后发送拼接后的完整链接给ATOM并实现语音合成播报功能。除此之外你还可以将其作为闹钟进行整点报时;每日新闻播报等等。单片机若使用传统编程要实现上述功能,程序将变得复杂且不易维护,更不能与其他项目进行有机结合,无法实现真正的“万物互联”,搭配上服务器以后,我们便能实现以前传统单片机编程不敢想以及无法实现的项目,让我们的项目拥有一颗“聪慧的大脑”,达到传统单片机编程无法企及的高度。 程序下载以上就是自建物联网服务器的全部介绍,如果你想体验演示视频中的ATOM网络MP3项目,那么你可以访问https://docs.m5stack.com/zh_CN/download根据你自己的系统下载M5Burner烧录工具进行安装,打开软件按照下面的步骤进行烧录体验。 从本教程中我们学习了如何低成本搭建私有物联网服务器,由于文章篇幅限制,没有办法将我们所搭建的其他物联网服务一一介绍,后续我们将通过项目实例逐一介绍私有服务器并了解其如何搭配单片机完成复杂项目,如果你不想购买本文盒子搭建服务器仅仅是体验那么你也可以使用电脑安装docker,并使用本文的docker命令搭建本文中的服务器,这里就不再继续展开,若对本项目感兴趣可查看M5Burner中ATOM网络MP3播放器的详细项目介绍,搭建服务器,考虑到部分朋友可能存在网络问题导致docker镜像下载缓慢或者失败,因此笔者使用16GU盘配置好文中所有镜像并将其设置为DHCP客户端,使用时仅需使用16G以上U盘烧录该镜像按照文中的方法使用即可。 |
CopyRight 2018-2019 实验室设备网 版权所有 |