从零开始开发物联网项目(1)——mqtt服务器搭建[通俗易懂]

从零开始开发物联网项目(1)——mqtt服务器搭建[通俗易懂]去年开发了一个物联网的项目,入了很多坑,花了很多时间,不过最后终于做出了一个初代版本,也算完成了项目。为了避免自己遗忘,也为了让有兴趣学习物联网的同学少入点坑,我整理了一下,写成一个系列教程。通过这个教程,你可以从一个小白成长为可以自己开发物联网项目的菜鸟。项目主要要完成的功能也很简单,就是将传感器的数据通过互联网发送给服务器,然后服务器将数据保存在数据库里;或者通过web端的页面反向控制物联…

大家好,又见面了,我是你们的朋友全栈君。

在这里插入图片描述
去年开发了一个物联网的项目,入了很多坑,花了很多时间,不过最后终于做出了一个初代版本,也算完成了项目。为了避免自己遗忘,也为了让有兴趣学习物联网的同学少入点坑,我整理了一下,写成一个系列教程。通过这个教程,你可以从一个小白成长为可以自己开发物联网项目的菜鸟。
项目主要要完成的功能也很简单,就是将传感器的数据通过互联网发送给服务器,然后服务器将数据保存在数据库里;或者通过web端的页面反向控制物联网硬件,实现类似智能开关之类的功能。

现在比较流行的物联网方式主要有两种,lora和nbiot,当然如果仅仅在家里使用的话用wifi也可以。关于这两种物联网的简介自己去百度吧。这两种方式不太一样,lora需要自己搭建基站,是星系网络连接,所有的节点都和基站通讯,基站负责将数据上传到服务器,基站可以使用wifi,或者4G;nbiot则完全不一样,它的每个节点都自己接入网络,直接上传数据到服务器。两种各有优缺点吧,不过lora在具体安装阶段比较麻烦,因为有时候节点与基站之间距离太远,这时还得加上中继,安装的工作量比较大。nbiot就简单了,完全使用移动运营商的网络。

向服务器上传数据的方式有很多种,不过比较流行的是mqtt协议,首先我们来学习如何搭建mqtt服务器,以及使用手动指令的方式使用esp8266 wifi模块来发送和接收数据。

mqtt服务器搭建

mqtt服务器有很多选择,这里选择emqtt,因为它的搭建实在是非常简单,只要会用电脑的同学都可以顺利完成。首先呢先去
https://www.emqx.io/cn/downloads
下载emqtt服务器,就选择最新的,支持windows的版本吧,下载下来是个zip压缩文件。然后将它解压在D盘(或者其他盘)根目录方便一点,解压后进去就是一个名为emqx的文件夹
在这里插入图片描述
文件夹里有这些文件。好了,先不管这些,现在我们进入cmd控制台,如果是win10,左下角框内输入cmd从零开始开发物联网项目(1)——mqtt服务器搭建[通俗易懂]
注意,现在要用鼠标右击最上面的命令提示符应用
从零开始开发物联网项目(1)——mqtt服务器搭建[通俗易懂]
选择以管理员身份运行
从零开始开发物联网项目(1)——mqtt服务器搭建[通俗易懂]
然后在输入 d: 回车
从零开始开发物联网项目(1)——mqtt服务器搭建[通俗易懂]
就来到了D盘,当然如果你放在其他盘的话就输其他盘符。
然后进入你放置解压开来的emqx服务器的文件夹,我放在了d:\emqx4里了,所以输入cd emqx4,然后用cd命令一层一层知道进入bin文件夹
从零开始开发物联网项目(1)——mqtt服务器搭建[通俗易懂]
最后输入启动服务器的命令:emqx start
从零开始开发物联网项目(1)——mqtt服务器搭建[通俗易懂]
几秒后它自己返回了emqx文件夹,说明服务已经启动了
接下去我们打开浏览器来检验一下服务是否启动,最好用chrome浏览器哦!

输入http://127.0.0.1:18083/
从零开始开发物联网项目(1)——mqtt服务器搭建[通俗易懂]
就进入了控制页面了,然后输入用户名admin,密码public 登录
在这里插入图片描述
到此,mqtt服务器正式启动完毕,怎么样,超级简单吧!

打开左侧工具栏的websocket,就可以测试mqtt数据发送了。
在这里插入图片描述
先点击主页面中的连接,就可以连接上mqtt服务器了,然后订阅一个主题为r的mqtt服务。
从零开始开发物联网项目(1)——mqtt服务器搭建[通俗易懂]
在下面的消息内发送一个主题为r,内容为”Hello world!“的消息
下面就可以看到消息的发送与接收了。
现在你肯定觉得挺无聊,自己给自己发消息有什么意思啊。不要着急,现在我们和手机来进行一下互动。如果是苹果手机,就在App store里搜索mqttool:
在这里插入图片描述
安装完并进入软件,这时你需要查一下自己电脑的ip地址,可以双击电脑右下角的wifi符号,然后进入属性查看。我的是10.0.0.252,大家的和我的肯定不一样哦,自己查!一般局域网内都是192.168.0.***之类的,我的比较特殊,不要介意。
然后打开手机上的软件
在这里插入图片描述
Host就是你电脑的ip地址,Port填1883,然后点击Connect,连接成功后再选择下方的“Publish”
从零开始开发物联网项目(1)——mqtt服务器搭建[通俗易懂]
Topic就输入我们网页里之前订阅的”r”,Message就随便填了,然后点击Publish发送,再回到计算机网页端看看是否收到消息了
在这里插入图片描述
这样,手机和电脑端的网页就能互通消息了,当然也可以手机端也订阅(Subscribe)一个主题,电脑端发送这个主题的消息,手机端也可以收到,我这里就不再写了,自己多玩玩吧。

好了,今天就写到这里了,我们已经成功的搭建了mqtt服务器,并且可以和手机端互动消息了。下一节我们会具体来聊聊mqtt协议。
本文章发在我的微信公众号了,大家有兴趣可以关注我的公众号,那里更新更及时点。
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/141050.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • zabbix监控网络设备

    zabbix监控网络设备终工作中遇到,办公网有防火墙和交换机,要监控一下他们的流量。可以通过zabbix来做。从整个操作过程来看,主要有两个难点。监控的原理是,zabbix模板里用自带的OID,去交换机上获得值,因此,我们要开启交换机上的snmp,另外要拿到相关监控项的OID值。再去zabbix上添加监控模板就可以了。开启交换机的snmp功能这里不做介绍,因为不是我开的,所以这部分以后补充。下面先介绍如何获得…

  • 锐捷交换机常用命令速查[通俗易懂]

    锐捷交换机常用命令速查[通俗易懂]准备工作       >Enable进入特权模式  #Exit  返回上一级操作模式  #End  返回到特权模式  #writememory或copyrunning-configstartup-config  保存配置文件  #delflash:config.text  删除配置文件(交换机及1700系列路由器)  #erasestartup-co

  • 大数据治理平台建设规划方案

    大数据治理平台建设规划方案推荐阅读:世界的真实格局分析,地球人类社会底层运行原理不是你需要中台,而是一名合格的架构师(附各大厂中台建设PPT)企业IT技术架构规划方案论数字化转型——转什么,如何转?华为干部与人才发…

  • 汇编介绍

    汇编介绍汇编大多是指汇编语言,汇编程序。把汇编语言翻译成机器语言的过程称为汇编。在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序…

    2022年10月13日
  • 游戏建模,室内设计哪个更有前景?[通俗易懂]

    游戏建模,室内设计哪个更有前景?[通俗易懂]游戏建模职业分类及发展:进入游戏建模行业你可以选择不同的发展方向,比如:(1)手绘3D美术设计师:制作纯手绘风格游戏的所有3D物品如:角色、道具、建筑、山体;(2)次世代3D美术设计师:制作写实次世代风格游戏的所有3D物品,如:角色、道具、建筑。(3)关卡设计师:根据游戏风格要求,使用模型资源,搭建3D游戏世界(4)模型师:制作3D打印、影视动画中的所有模型。如:角色、道具、建筑、山体。次世代美术设计师做什么?次世代游戏:“次世代游戏”指代和同类游戏相比下更加先进的游戏,即“下一代游戏”。

  • java按位异或的运算是,深入理解按位异或运算符

    java按位异或的运算是,深入理解按位异或运算符参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即:0^0=0,1^0=1,0^1=1,1^1=0按位异或的3个特点:(1)0^0=0,0^1=10异或任何数=任何数(2)1^0=1,1^1=01异或任何数-任何数取反(3)任何数异或自己=把自己置0按位异或的几个常见用途:(1)使某些特定的位翻转例如对数10100001的第2位和第3位翻转,则…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号