物联网不求人-服务器搭建So Easy

这篇具有很好参考价值的文章主要介绍了物联网不求人-服务器搭建So Easy。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

blynk服务器搭建,物联网不求人,服务器,物联网

物联网不求人-服务器搭建So Easy

最近我所在的创客交流群里面又双叒叕炸开锅了,大家纷纷表示伤不起,原因是提供的免费blynk物联网服务器宕机了,很多老师有一些重要的项目还在服务器上面,但现在服务器又访问不了,特别是对于那些比赛在即的老师尤其感到绝望,纷纷傻眼,到处“求神拜佛”求拯救方法。以前我对自建物联网服务器并没有这种强烈需求,认为只要用“好心人或者好心厂家”提供的免费服务器就好了,没必要自己搭建,费时费力还费金钱。但直到我亲身经历个人服务器提供者停机与厂家由免费转付费时,才猛然发现原来自己一直都错了,原来免费的才是最“贵”的,果然核心技术还是要掌握在自己手里,自己能够掌控的才是最好的。考虑到云服务器比较贵,个人电脑又不可能一直开机,于是我开始寻求一种低成本高性价比的服务器部署方法,经过不懈努力终于让我找到了这种方法,那就是用ARM的电视盒子使用docker部署创客所需的各种物联网服务器,其中包括常见的Blynk,EMQX,Nodered,Webserver等,下面我将详细介绍如何搭建属于自己的物联网服务器,真正做到物联网不求人。

视频演示

下面让我们来看看这个项目的演示视频,该视频中我们使用自建服务器搭配M5 ATOM SPK实现订阅MQTT服务器播报网络MP3的例子,搭配Nodered,一言API与语音合成实现任意文字播报,按下板载按钮随机播报一段语录:

物联网不求人-服务器搭建So Easy

硬件介绍

blynk服务器搭建,物联网不求人,服务器,物联网
ATOM SPK 是一款适配ATOM LITE主控的音频播放器, 内置I2S数字音频接口的功放芯片NS4168,具备自动采样率检测,自适应功能,并能够有效防止音频信号失真。集成TFCard卡槽,便于音频文件的保存与读取。提供3.5mm耳机接口与外部扬声器接口, 用户可通过外接耳机或是扬声器进行音频播放。

硬件特点

  • 功放芯片NS4168
  • I2S 串行数字音频输入接口
  • 支持宽范围采样速率:8kHz~96kHz
  • 自动采样率检测,自适应功能
  • TFCard卡槽
  • 耳机接口
  • 扬声器接口

为什么要自建服务器

任何个人或者公司都不能保证永久提供稳定可用的服务,重要服务掌握到别人手中本身就存在巨大风险,就像我所在创客交流群的老师们一样,临近比赛服务器又异常,这无疑是一种致命的问题,辛苦几个月制作的作品,毁于一旦,重做时间又不足。再者单片机本身性能有限,复杂功能很难实现,如果仅仅把单片机用作数据传输,针对特定功能编写简单程序或者烧录特定功能固件(例如这里的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主视图如下:

blynk服务器搭建,物联网不求人,服务器,物联网

docker基础

docker是一种开源项目,用于将应用程序自动部署为可在云或本地运行的便携式独立容器,Docker基础可通过bilibili“Docker 10分钟快速入门”进行了解,通过docker我们可以使用一条指令便可部署服务而无需理会各种环境与配置问题,在这里我们仅需了解镜像,映射端口与挂载点即可,这个我们将下面实际服务器部署中进行说明。

openwrt基础

任何具备docker安装最低要求的Linux系统都可以使用安装docker并部署各种服务,但Linux系统对于习惯了图形化界面的我们来说显得晦涩难懂,因此我们这里使用图形化的openwrt软路由系统,该系统除了普通路由器功能外还内置docker与各种实用插件,例如文件共享,USB打印机服务器,内网穿透等,这里如需详细了解可自行百度查阅相关资料。

开始服务器搭建

镜像烧录

准备一张16G的U盘使用文末附件中的镜像烧录工具烧录openwrt镜像如下

blynk服务器搭建,物联网不求人,服务器,物联网

blynk服务器搭建,物联网不求人,服务器,物联网

准备从U盘启动系统

电视盒子使用HDMI线连接显示器插电开启,并进入应用主页打开下图所示应用(部分系统此应用名称为U盘启动之类的,具体以实际应用为准)

blynk服务器搭建,物联网不求人,服务器,物联网
打开应用后使用遥控选择确认,此时设备系统将会重启,重启显示器黑屏瞬间靠近网口处USB口插入我们烧录镜像的U盘,看到显示器花屏后出现下列字样,此时设备成功从U盘启动了系统。
blynk服务器搭建,物联网不求人,服务器,物联网
当显示器显示文本不再更新时使用盒子自带的网线连接电脑与盒子(电脑需断开其他网络)电脑浏览器访问盒子的IP地址192.168.1.1即可进入openwrt管理后台如下
blynk服务器搭建,物联网不求人,服务器,物联网
输入默认管理登陆账号root密码password成功进入openwrt管理后台如下:
blynk服务器搭建,物联网不求人,服务器,物联网
接下来我们点击左侧的网络→接口→LAN看到如下界面
blynk服务器搭建,物联网不求人,服务器,物联网
这里如果你知道自己主路由的网关地址那么你可以按照如下设置,给盒子分配一个静态IP,以后只要同一局域网便可通过手机或者电脑等设备访问你设置的IP地址访问openwrt管理界面,例如下面家里网关为192.168.1.1,我们给盒子分配IP为192.168.1.168。

blynk服务器搭建,物联网不求人,服务器,物联网
如果你不想分配IP而是想要盒子由上一级路由自动分配地址那么你可以将盒子设置为DHCP客户端,此时你要通过上级路由的后台手动查看名为openwrt的设备然后通过其IP地址访问管理界面,DHCP客户端设置如下:

blynk服务器搭建,物联网不求人,服务器,物联网
以上操作完成后点击下方的保存应用,便可断开盒子与电脑的网线,将盒子与电脑均连接到路由器上面,通过盒子IP地址再次进入openwrt管理后台,此时盒子处于联网状态,接下来我们便可开始部署物联网服务了。

常见物联网服务器部署

Blynk服务器部署

Blynk是一个优秀的物联网平台,它通过图形化拖拽的方式便能让我们轻松搭建APP的图形界面,方便我们制作出各种物联网项目,下面将介绍Blynk服务器的搭建。按照上面方法成功联网并进入openwrt后台后我们选择左侧的Docker→容器→添加如下图

blynk服务器搭建,物联网不求人,服务器,物联网
点击命令行并添加docker run -it -p 8080:8080 -p 9443:9443 --name blynk choromanski/blynk-server:arm64v8-java8现在我们来解释一下该命令 --name blynk表示新建容器名称为blynk,-p 8080:8080 -p 9443:9443表示将容器的8080端口与9443端口映射到盒子的8080端口与9443端口,其中第一个8080代表盒子端口后一个8080代表容器端口,choromanski/blynk-server:arm64v8-java8表示镜像名称,该镜像为ARM架构的Blynk服务器镜像,如果你的设备CPU架构为X86那么便要寻找对应架构的镜像才能正常使用。命令输入完成后点击提交便能看到如下所示的界面
blynk服务器搭建,物联网不求人,服务器,物联网
当镜像下载完成后我们再按照上述方法依次添加如下命令拉取对应的镜像,其中部分命令如下:

  • homeassistant家庭助理docker run -it -p 8123:8123 --name homeassistant homeassistant/home-assistant:latest
  • Nodered流程控制docker run -it -e TZ=“Asia/Shanghai” -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red:latest
  • EMQX服务器(MQTT)docker run -it -p 1883:1883 -p 8081:8081 -p 18083:18083 --name emqx emqx/emqx:4.3.10-alpine-arm64v8
  • Web服务器docker run -it -p 80:80 gabxav/webserver:latest
  • portainer(Docker管理工具)docker run -d --restart=always --name=“portainer” -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data 6053537/portainer-ce:linux-arm64

添加完以上镜像后我们启用EMQX与Blynk镜像,勾选容器并点击重新启动如下图所示

blynk服务器搭建,物联网不求人,服务器,物联网
到这里我们便能局域网下通过自定义Blynk服务器地址访问Blynk了,接下来我们访问EMQX并添加一个账号,我们访问http://ip:18083便来到了EMQX的管理后台如下所示:
blynk服务器搭建,物联网不求人,服务器,物联网
输入默认用户名和密码点击登陆,选择Settings设置界面为中文,如下所示
blynk服务器搭建,物联网不求人,服务器,物联网
接下来安装如下所示添加一个用户
blynk服务器搭建,物联网不求人,服务器,物联网
添加完用户后我们便可以让任意MQTT客户端使用我们的MQTT服务器了。

内网穿透

目前为止我们所有的服务都只能在局域网下使用,如果我们脱离了局域网那么便不能正常使用以上服务器了,为了能够让我们在任何地方都能够访问我们的私有服务器那么便需要一个工具帮我们把内网服务发布出去,这里我们用到的工具便是内网穿透,国内内网穿透比较出名的有花生壳,但它提供的免费流量每月只有2GB且需要一个单独的设备使用其服务,对于我们来说这多少有些不便,其实openwrt本身就自带了两个内网穿透方式,分别是frp与nps,这里我们以frp为例演示如何使用内网穿透公开我们的服务。

frp内网穿透

这里我们以浮居frp为例,进入其官网并注册账号登陆其控制台,左侧点击添加隧道配置需要内网穿透的服务信息配置说明如下所示
blynk服务器搭建,物联网不求人,服务器,物联网
这里我们选择免费线路并添加openwrt管理后台与blynk远程控制两条内网穿透线路,添加完成后点击配置文件查看配置信息如下图所示,记录下面的各种授权信息信息如下图
blynk服务器搭建,物联网不求人,服务器,物联网
接下来我们点击openwrt控制面板的左侧找到服务→frp内网穿透按照下面所示方法添加自己的账号信息
blynk服务器搭建,物联网不求人,服务器,物联网
添加内网穿透线路方法如下
blynk服务器搭建,物联网不求人,服务器,物联网
线路添加完成后点击保存并应用,看到frp运行中后通过添加的域名和随机端口号便能打开openwrt的管理后台,到这里恭喜你完成了服务器的搭建与服务公开,现在你能够将你的外网服务地址和端口发给别人,那他们便能享用到你的服务了。

实际应用

演示Nodered程序

blynk服务器搭建,物联网不求人,服务器,物联网

如上nodered程序所示,通过订阅按钮主题获取ATOM按钮是否单击,当按钮单击则使用网络请求节点获取一言随机语录文本,获取文本后将其拼接到语音合成接口链接当中作为语音合成参数,最后发送拼接后的完整链接给ATOM并实现语音合成播报功能。除此之外你还可以将其作为闹钟进行整点报时;每日新闻播报等等。单片机若使用传统编程要实现上述功能,程序将变得复杂且不易维护,更不能与其他项目进行有机结合,无法实现真正的“万物互联”,搭配上服务器以后,我们便能实现以前传统单片机编程不敢想以及无法实现的项目,让我们的项目拥有一颗“聪慧的大脑”,达到传统单片机编程无法企及的高度。

程序下载

以上就是自建物联网服务器的全部介绍,如果你想体验演示视频中的ATOM网络MP3项目,那么你可以访问https://docs.m5stack.com/zh_CN/download根据你自己的系统下载M5Burner烧录工具进行安装,打开软件按照下面的步骤进行烧录体验。
blynk服务器搭建,物联网不求人,服务器,物联网

blynk服务器搭建,物联网不求人,服务器,物联网

使用说明

  1. 下载M5Burner烧录软件
  2. 打开软件选择ATOM开发板
  3. 下滑到底部选择ATOM网络MP3播放器下载并烧录固件
  4. 点击USER CUSTOM登陆或者注册账号
  5. 进入用户主页点击BurnerNVS跳出弹窗选择对应的串口并连接
  6. 输入网络信息与本教程自建的MQTT服务器地址等信息
  7. 各数据输入完成确认并保存后单击复位按钮,ATOM将自动重启并自动连接网络
  8. 联网前指示灯为红色,联网中为蓝色,联网成功变绿色
  9. 音频播放开始指示灯变蓝色,播放完成指示灯变绿色

总结

从本教程中我们学习了如何低成本搭建私有物联网服务器,由于文章篇幅限制,没有办法将我们所搭建的其他物联网服务一一介绍,后续我们将通过项目实例逐一介绍私有服务器并了解其如何搭配单片机完成复杂项目,如果你不想购买本文盒子搭建服务器仅仅是体验那么你也可以使用电脑安装docker,并使用本文的docker命令搭建本文中的服务器,这里就不再继续展开,若对本项目感兴趣可查看M5Burner中ATOM网络MP3播放器的详细项目介绍,搭建服务器,考虑到部分朋友可能存在网络问题导致docker镜像下载缓慢或者失败,因此笔者使用16GU盘配置好文中所有镜像并将其设置为DHCP客户端,使用时仅需使用16G以上U盘烧录该镜像按照文中的方法使用即可。文章来源地址https://www.toymoban.com/news/detail-735525.html

到了这里,关于物联网不求人-服务器搭建So Easy的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 宝塔面板搭建Discuz论坛并发布互联网访问【无需云服务器】

    ✨个人主页:bit me👇 转载自cpolar极点云的文章:Linux宝塔面板搭建Discuz论坛,并公网远程访问【内网穿透】 Crossday Discuz! Board(以下简称 Discuz!)是一套通用的社区论坛软件系统,用户可以在不需要任何编程的基础上,通过简单的设置和安装,在互联网上搭建起具备完善功能

    2024年02月03日
    浏览(29)
  • Microdot是一个可以在micropython中搭建物联网web服务器的框架

    micordot英文官网 只要是支持micropython的设备都可以使用它 什么是Microdot?Microdot是一个受Flask启发的简约Python Web框架,旨在运行在 资源有限的系统,例如微控制器(esp32,esp8266)。它在标准上运行 Python和MicroPython。 [项目需要的所需的Microdot源文件代码](miguelgrinberg/microdot: The impos

    2024年02月03日
    浏览(17)
  • 基于ESP32搭建物联网服务器十二(使用MQTT协议与ESP32互动)

    在之前的文章中:基于ESP32搭建物联网服务器十一(用WEB页面控制引脚(GPIO)功能)_esp32webserver 控制io_你的幻境的博客-CSDN博客 已经简单地介绍了MQTT协议,对比于其它网络协议,MQTT协议在物联网的开发中,它的特点使它适用于大多数受限的环境。例如网络代价昂贵,带宽低、不可

    2024年02月02日
    浏览(16)
  • 提供最全面最详细的ESP32从零开始搭建一个物联网平台教程(从最基本的配网和内建WEB服务器开始到自已搭建一个MQTT服务器)

    目录 教程大纲  硬件需求 教程说明 教程章节链接 ESP32搭建WEB服务器一(AP配网) ESP32搭建WEB服务器二(STA模式) ESP32搭建WEB服务器三(AP模式与STA模式共存) ESP32搭建WEB服务器四(最简单的WEB服务器) ESP32搭建WEB服务器五(内嵌HTML) ESP32搭建WEB服务器六(利用SPIFFS存放html,css,js等文件(读取

    2024年02月13日
    浏览(18)
  • 分享本周所学——在Windows上搭建自己的Git服务器并支持互联网远程访问

            大家好,欢迎来到《分享本周所学》第十期。本人是一名人工智能初学者(虽然我最近写的东西都跟人工智能没什么关系),刚刚上完大一。之前想跟同学搞项目,我的学校自己有一个GitLab服务器,于是就把项目存在上面,但是后来收到学校邮件说学校服务器不允

    2024年02月09日
    浏览(12)
  • 基于ESP32搭建物联网服务器六(利用SPIFFS存放html,css,js等文件(读取html)

    在前文中:ESP32的web服务器(内嵌HTML)_你的幻境的博客-CSDN博客 已经实现建立了一个WEB服务器了,但是页面的HTML代码是镶嵌在C语言代码中的,大部份情况下,不管是调试或者使用都是很不方便的。但是ESP32的SPIFFS提供了很好的解决方法,SPIFFS相当于ESP32中的一个硬盘分区,每种版

    2024年02月02日
    浏览(15)
  • 一个服务器实现本机服务互联网化

    欢迎来到我的博客,代码的世界里,每一行都是一个故事 在数字世界的网络战场上,中微子代理就像是一支潜伏在黑暗中的数字特工队,通过看似微不足道的信息流进行高效的通信。想象一下,你正在追踪一项机密任务,而中微子代理就是你的数字伪装大师,让你在网络的阴

    2024年03月12日
    浏览(22)
  • centos7 arm服务器编译升级安装动态库libstdc++.so.6,解决GLIBC和CXXABI版本低的问题

    前言         由于centos7内置的libstdc++.so.6版本太低,导致安装第三方包的时候,会报“CXXABI_1.3.8”不存在等问题。         自带的打印如下: 如图 升级 注意:当前的libstdc++.so.6.0.25只适用于centos7 arm服务器,其他系统慎用! 1、把libstdc++.so.6.0.25拷贝到/usr/lib64目录下 2、备份

    2024年01月18日
    浏览(20)
  • Windows配置互联网访问检测服务器-IspSrv

    赛题 1、搭建服务 2、配置服务 3、配置IIS 4、客户端        原理 (一)服务器 IspSrv 上的工作任务 1.互联网访问检测服务器  为了模拟 Internet 访问测试,请搭建网卡互联网检测服务。

    2024年02月13日
    浏览(19)
  • MQTT服务器详细介绍:连接物联网的通信枢纽

    随着物联网技术的不断发展,MQTT(Message Queuing Telemetry Transport)协议作为一种轻量级、可靠、灵活的通信协议,被广泛应用于物联网领域。在MQTT系统中,MQTT服务器扮演着重要的角色,作为连接物联网设备和应用程序的通信枢纽。本文将详细介绍MQTT服务器的组成、运行机理、

    2024年02月10日
    浏览(15)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包