<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/Learn-NB-IOT-Air302-ForLua" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
说明
云服务器:
就是一台电脑,和咱使用的是一样的.云服务器实际上最终还是物理机,只不过物理机是服务商的,服务商负责维护运行.
服务商提供了网页端让咱去购置和选型,购置完以后就可以登录使用.
云服务器还有一个特点是IP地址是公网IP地址.就是说凡是可以上网的设备都可以访问这个IP地址.
咱自家使用的电脑的IP是路由器或者交换机分配的IP地址,咱这个IP地址一般只能局域网内访问.
MQTT:
MQTT是一套通信协议的简称!
这套协议是建立了TCP连接之后,使用的通信数据协议.
安装上MQTT服务器(TCP服务器)软件之后,所有的设备都以TCP的方式连接上服务器,
然后使用MQTT规定的协议,就可以轻松的实现设备和设备之间通信.
MQTT服务器实际上就是做TCP数据转发.
购买阿里云服务器
阿里/腾讯/百度/华为等等各家都推出了云服务器,用户可以根据自己的情况选择购买.
这节以阿里云为主.(只要会使用一家,其他触类旁通)
1.登录阿里云:
https://www.aliyun.com/
2.搜索云服务器
3.立即购买
4.选择1核(处理器1核) 1G(运行内存1G)的就可以.
如果是做项目/产品,不建议使用Windows,用作测试学习是可以的.
建议看后面的文章linux
6.选择windows ; 系统版本 ; 购买时长
7.下一步
8.下一步
9.设置开机密码,直接点击确认即可
10,付钱
配置安全组
安全组是设置云端电脑开放的端口号
为了方便学习,减少繁琐,直接开启所有的端口号.
https://www.aliyun.com/
1.选择控制台
2.点击云服务器
3.点击
4.管理
5.选择安全组 ; 配置规则
6.用户看一下入方向有没有以下设置
如果没有则手动添加
7.用户看一下出方向有没有以下设置
如果没有则手动添加
登录云服务器(在浏览器器上登录)
这是自己电脑的公网IP地址
登录云服务器(本地电脑登录)-推荐
1.按下键盘 Windows + R
输入 mstsc
2.输入电脑的IP地址
用户名填写 administrator (这是默认的,如果你购买服务器的时候没有修改的话)
挂载本地硬盘
1.关掉
2.点击显示选项
3.点击详细信息
4.选择自己的一个盘
注:此盘设置以后便可以挂在云端电脑,方便拷贝文件
5.连接
6.效果如下
安装MQTT软件
1.把安装补丁和emqtt软件压缩包文件放到挂载在云端的硬盘里
2.我挂载了D盘到了云端
3.复制到云端的C盘
5.解压
6.拷贝32位补丁
7.在云端电脑运行 cmd
需要以管理员身份运行
8.进入目录
cd C:emqttd-windows7-v2.3.0emqttdin
9.以控制台模式运行(第一次启动不起来,再运行一次启动命令)
emqttd console
1883端口是普通TCP连接
8883端口是TCP + SSL
8083端口是WebSocket
8084端口是WebSocket + SSL
测试通信
1.打开调试助手
2.这是我写的一个C#上位机MQTT调试助手,提供了源码.
①:
输入自己服务器的IP地址
端口号填写 1883
ClientID 如果不填写内部自动生成
用户名可以不填写,因为还没设置MQTT的用户名
密码同上
② 点击连接
③ 点击订阅
④ 发送数据
以上软件设置的是自发自收
因为发布的主题是 Topic 订阅的主题也是 Topic
实际上是数据携带着Topic发给了MQTT服务器,
因为软件订阅的主题是 Topic
所以服务器把数据转发给了软件
修改MQTT用户名和密码
1.退出控制台
2.修改一下文件里面的 mqtt.allow_anonymous = false
3.修改用户名和密码(可以设置多套)
auth.user.1.username = yang
auth.user.1.password = 11223344
4.启动控制台
emqttd console
5.浏览器输入: http://服务器IP地址:18083
默认用户名 admin 密码: public
6.启用用户鉴权
测试
1.用户名密码填写自己设置的密码
把MQTT安装到电脑
1.退出控制台
2.emqttd install
3. emqttd start
其它:
停止MQTT: emqtt stop
卸载MQTT: emqtt uninstall
网页端调试助手测试
1.源码路径
2.双击打开调试助手,和上面上位机一样测试即可
注:网页端走的是WebSocket