搭建本地MQTT服务器并连接esp8266实现温湿度采集红外遥控和天气时钟(上)

一、首先要先搭建本地MQTT服务器

1、以电脑搭建MQTT服务器为例,要下载mosquitto开启MQTT服务。这是一个开源的软件,且比较简单。

下载与安装

    Mosquitto存在很多版本,如果想体验比较新版本可以上github,但是比较麻烦的是需要自己去编译成windows文件,编译需要用到cmake软件,可以参照其他博主的文章:博客

    官方后面提供了比较稳定的window安装版本,安装完成后可以直接使用,并且自动添加成 windows服务,非常方便,下载路径:Download | Eclipse Mosquitto

 

可以根据自己电脑下载合适的msoquitto。

  • 双击下载好的程序
    在这里插入图片描述

  • 点击Next
    在这里插入图片描述

  • 点击Next
    在这里插入图片描述

  • 选择安装路径,点击Install
    在这里插入图片描述

  • 在弹出的对话框中选择同意,然后点击安装
    在这里插入图片描述

  • 安装完成点击关闭
    在这里插入图片描述

  • 点击Finish完成安装。

  • 在这里插入图片描述

  • 同时按“Windows 徽标键+R键”,打开运行框
    在这里插入图片描述

  • 输入“services.msc”按回车,快速调出“服务”,如下图示:
    在这里插入图片描述

  • 找到Mosquitto Broker,点击启动此服务
    在这里插入图片描述
    在这里插入图片描述

  • Mosquitto服务默认占用 1883端口,所以可不在配置文件中显式设置。

    四、配置登录账号和密码

        在配置文件mosquitto.conf中,任意位置加入下面文本,保存退出(我说的全新安装的情况下,如果是维护已经使用很久的系统,可在配置文件中找到对应的属性进行更改)

     上面的文件路径根据自己需要修改,这是之后MQTT的账号密码存放的位置。最后的pwfile.example就是存放账号密码的地方。

 

将上述代码在mosquitto.conf打好后,对mosquitto.conf的修改就结束了。记得保存修改!

接下来在下载mosquitto的文件夹内打开终端。(之后要打开mosquitto都要在这个文件夹下,因为没给mosquitto配置环境变量)

重启mosquitto服务配置文件的修改才能生效。为了方便调试和操作,我们后面的操作全部通过命令行模式进行。

插入新用户名及密码,输入密码时界面是不会显示的,直接输入后回车就可以,需要连续输入两次。保证pwfile.example的路径和上面的配置一致。下面打开CMD并进入mosquitto根目录输入:

mosquitto_passwd -c /MosquittoTest/pwfile.example FirstUserName (使用-c 参数会导致清空密码文件,重新插入用户)

mosquitto_passwd /MosquittoTest/pwfile.example SecondUserName (不使用-c 表示追加用户,不影响旧用户)

当然要记得修改上面的文件路径要让程序找到pifile.example。


后面的admiee是自己设置的账号名,成功后输入两次密码,就能在pifile.example里找到生成的账号密码信息了。

创建成功后pwfile.example会出现刚刚添加的用户信息。


圈起来的是自己设置的账号名。

配置成功后我们的mosquitto的配置就结束了。

2.搭建物联网平台

我们使用的是node-red这个应用的优点在于不用敲代码,只需要托控件就能实现物联网平台的搭建,比较简单。在下node-red之前我们要先下载node-js。

nodejs官网

点击Download然后选择版本。我们最好去选择有LTS的这是长期维护版的意思比较稳定。后面选择windows根据自己电脑选择x32或者x64。

下载完之后进行安装

双击安装包,点击Next,勾选使用许可协议,点击Next,选择安装位置(可根据个人情况更换路径,我这里选择安装在C:\Program Files\nodejs)如何安装在自定义位置可以不用配置环境变量,如果安在其他位置就要手动配置环境变量了。继续点击Next,点击Next,点击Install,点击Finish完成安装。
3.添加环境变量

一般右击【此电脑】点击【属性】找到【高级系统设置】就能找到【环境变量】

点开【环境变量】点下面的【path】然后【新建】将你解压好的nodejs的路径加进去。还有node-global的路径。

添加成功后在任何地方打开终端输入以下代码

node -v
npm -v

成功后可以输出下载版本

接下来安装node-red。配置好环境变量后在终端直接输入以下代码 就可直接下好。

npm install -g --unsafe-perm node-red

 加载完毕后就ok了!

 在使用之前最好先配置一下防火墙。MQTT的使用要添加一下入站规则。我们找到防火墙的【高级设置】

【入站规则】然后点击【新建规则】接下来跟我演示的一样就好

剩下的默认直接点【下一步】

最好命名写上MQTT就ok了!

成功后就能看到

成功后我们就可以启动了。我们既需要打开mosquitto也需要打开node-red。

首先我们在mosquitto所在的文件夹里打开终端输入以下命令就可以启动

mosquitto -c mosquitto.conf -v

运行成功后结果如下

有些时候会遇到端口被占用的问题无法成功启动,不要担心。运行以下代码就可以解决。不过终端最好进入管理员模式。

netstat -ano | findstr 1883

先查看端口被谁占用了。再杀掉相关进程

taskkill /pid 4234 /f

其中 /f 表示强制关闭该进程,4324是查询结果显示的pid号 

启动成功后这个终端就无法输入数据了,这表示运行成功。我们需要打开一个新的终端运行以下命令运行node-red

node-red

成功后显示以下结果

我们到这一步物联网平台的预设置就完成了。接下来开始正式搭建。

打开浏览器,输入以下网址。

打开成功后就可以搭建了。

打开节点管理下载以下节点。之后要用到这是有关物联网平台各类控件的。

下载完成后就会多以下控件

我们开始正式搭建。

托出以下控件进行测试

进行连接

一一进行配置。不想动脑就和我配置一样即可。

 上面的ip要换成你电脑的ip!!!

客户端可以随便写,但连接你MQTT的各个设备不能有重名的ip。

设置完成后进行测验。



点击部署后,单机输入端这个地方,会弹出成功注入。点击右上那个小虫图标下面会显示mqtt接收端debug接收到的数据,上面显示“1”是因为我输入端发送的就是“1”.这说明我们的MQTT服务器能够正常使用。我们建一个简单的控制灯开关的物联网平台。

这是对button的配置。重要的是对Group的配置,不用太需要注意输入的什么,重要的是都要输入新建。因为里面都是命名。

一定要点击更新。

这是对接收端那个标有text的控件。Group要和上面的button是一个。点击部署查看结果浏览器输入查看结果。(继续看我下一章帖子)

### ESP8266 使用 MQTT.fx 连接到阿里云 IoT 平台 #### 准备工作 为了使ESP8266能够通过MQTT.fx连接至阿里云IoT平台,需先完成一系列准备工作。这包括但不限于注册阿里云账户、创建所需的产品设备实例,获取相应的认证信息以便后续配置MQTT.fx客户端[^2]。 #### 创建产品与设备 登录阿里云物联网控制台后,在平台上定义一个新的产品类别及其下的具体设备实体。此过程会自动生成用于身份验证的关键参数,如ProductKey, DeviceName DeviceSecret等必要字段值。 #### 获取连接凭证 上述操作完成后,应记录下所分配给特定设备的身份识别三元组(ProductKey, DeviceName, DeviceSecret),这些将在稍后的MQTT.fx设置环节中被调用作为安全接入依据。 #### 配置MQTT.fx 客户端 安装启动MQTT.fx应用程序之后,进入其内部设定界面输入之前准备好的各项认证资料来初始化新的连接文件。特别注意的是Broker URL应当指向阿里云提供的官方服务器地址,通常形式为`ssl://<productkey>.iot-as-mqtt.<region>.aliyuncs.com:1883`。 对于ESP8266本身而言,则需要编写一段Arduino IDE兼容的固件程序实现Wi-Fi联网功能通过AT命令集发送MQTT协议消息到指定主题(Topic)上;然而这里讨论的重点在于利用桌面级工具(MQTT.fx)而非嵌入式硬件直接交互的方式来进行测试验证[^1]。 ```cpp // 下面展示了一个简单的ESP8266 AT指令序列示例,实际应用时可能有所不同取决于具体的模块型号其他环境因素。 AT+CWMODE=1\r\n AT+CWJAP="SSID","PASSWORD"\r\n AT+MQTTUSERCFG=0,1,"deviceName","productKey.deviceName","deviceSecret",0,0,""\r\n AT+MQTTCONN=0,"ssl://productKey.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883"\r\n ``` #### 测试通信链路 当一切就绪以后就可以尝试向预设的主题发布一些简单字符串看看能否成功抵达云端服务端点处。同样也可以监听来自同一Topic的消息流确认双向通讯无误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值