MQTT服务器 Mosquitto的部署和应用

MQTT服务器Mosquitto的部署和应用

MQTT相关介绍请点击

项目目的

利用MQTT协议实现信号远程监控。
传感器->信号收集->lora网关->服务器->客户端

应用环境

操作系统 Windows 10
硬件配置 Lora网关ND65-L01CE-470M-EA
IoT 开关传感器

平台搭建

1.搭建MQTT服务器

1.本项目使用Mosquitto来搭建服务器。从官网下载Mosquitto,请注意版本。
https://mosquitto.org/download/
下载对应版本2.安装完成后,打开安装目录下的 配置文件mosquitto.conf中,任意位置加入下面文本,保存退出

#设置不允许匿名登录
allow_anonymous false
#设置账户密码文件位置为C:\MosquittoTest\pwfile.example
password_file /MosquittoTest/pwfile.example

在安装目录下打开cmd控制台
执行以下命令
./mosquitto_passwd -c pwfile.example user
会弹出对话框输入密码,(密码不会显示)
在这里插入图片描述

3.配置地址和端口号
在这里插入图片描述
如果又多个需要绑定IP和端口可以多次使用listener.
4.保存完成后,重启服务 cmd里运行 service.msc或者再任务管理器里打开服务对话栏目

重新启动即可。
5.测试服务器
常用的测试软件包括MQTTFx.MQTT Box
http://mqttfx.jensd.de/index.php/download
现在已MQTTFx为例介绍
也可以在控制太直接进行调试,可以参考文件开头的链接。

打开MQTTfx,点击设置按钮,输入服务器地址和端口号
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210525165853846.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzOTk2OTM5,size_16,color_FFFFFF,t_70选择User Credentials输入第二步注册的账号和密码
在这里插入图片描述然后选择连接。
publish 发布主题
在这里插入图片描述订阅服务
在这里插入图片描述服务器安装完毕。

2.配置LoRa网关

连接LoRa网关。
在这里插入图片描述打开Network Server
在这里插入图片描述输入应用名称,“数据传输”中点击“ ”添加第三方 MQTT/HTTP/HTTPS 服务器信息,网关即可将数据传输到对应
的服务器。
在这里插入图片描述输入服务器地址 端口 用户名 密码保存后会显示连接状态
在这里插入图片描述
在“Profile”页面根据 LoRaWAN节点类型添加一个设备配置文件
在这里插入图片描述在这里插入图片描述在“设备”页面点击“添加”即可逐一添加 LoRaWAN节点设备。
在这里插入图片描述
设备EUI请参考3.配置控制器。

3.配置LoRa控制器

本次使用的LoRa控制器为NC502-470M星纵,为实现开关量信号远程监控。
A. 将UC11-N1连接到电脑,连接方式参见手册3.3。
B. 在星纵物联官网下载本地配置软件Toolbox。下载后运行其中的exe程序进入配置界面。选择对应的串口后输入登录密码(默认密码为123456),其他参数保持默认。
Toolbox下载链接:下载链接
在这里插入图片描述
输入密码。
在这里插入图片描述查看状态和对应的EUI地址供网关使用。

在这里插入图片描述
设置上传频率
在这里插入图片描述
设置通道和高低电平触发

4. C# .net 编程

本项目使用MVVM架构使用 4.5.2.NET FRAMEWORK
使用NUGET下载M2MQTT
在这里插入图片描述

具体代码请参考如下
在主函数中添加MQTT链接和初始化。

		public Main(object para)
        {
            _viewModel = (MenuViewModel)para;
            //mqtt connect
            try
            {
                MqttClient = new MqttClient(System.Net.IPAddress.Parse(Properties.Settings.Default.Server));
                MqttClient.MqttMsgPublishReceived += Client_MqttMsgPublishReceived;
                string clientId = Guid.NewGuid().ToString();
                MqttClient.Connect(clientId, "admin", "123");
                MqttClient.Subscribe(new string[] { "/platform_1/uplink" }, new byte[] { MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE });
            }
            catch (Exception e)
            {
                MessageBox.Show("Mqtt服务器链接错误" + e.Message);
                _viewModel.CloseSystem();
            }
		}

接收订阅消息

void Client_MqttMsgPublishReceived(object sender, MqttMsgPublishEventArgs e)
        {
            //处理接收到的消息
            string msg = System.Text.Encoding.Default.GetString(e.Message);         
            UplinkTelegram telegram = JsonConvert.DeserializeObject<UplinkTelegram>(msg, _serializerSettings);         
            switch(telegram.ApplicationName)
            {
                case "Platform_1":
                    Plantform_1Execute(telegram);
                    break;
            }
        }
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值