嵌入式开发记录-day60 智能家居简介、mqqt协议测试
1、最终实现的效果:
1、实现的框架结构:

2、手机端控制设备(LED、蜂鸣器、继电器、步进电机),在终端响应;
2、为什么需要这样做:
1、本次的控制端与响应端是在广域网下通信,因此引入了云服务器;
2、如果控制端需要控制多个终端,引入云服务器更加方便(控制端如何准确找到多个终端);
3、如果控制端对同一类设备发送不同的命令格式,终端需要有区分性的解析请求格式。也就需要用到json;
3、重点学习对象:
1、如何将mqtt协议搭建、移植到开发板上(广域网下找到多个终端);
2、json的数据格式(解析不同的数据格式);
4、MQTT协议
1、mqtt协议是一种基于订阅者和发布者的一种轻量级通信协议;
2、基于TCP/IP协议基础上开发的一种协议;
3、MQTT协议实现的方法有多种,其中比较强大的是Mosquitto
4、三种角色:
消息发布者:对应于控制终端,控制端发出控制命令;APP
消息转发者:对应于服务器,用于消息转发;云服务器;
消息订阅者:对应于响应终端,用于命令解析,响应动作;开发板;(通过订阅,可使服务器找到自己)
5、Ubuntu下MQTT协议测试:
1、安装MQTT
sudo apt-get install mosquitto // 安装mosquitto sudo apt-get install mosquitto-clients // 安装mosquitto的客户端
2、两个窗口之间通信测试
1、主机启动mosquitto服务
service mosquittos start // 启动服务 ps -ef|grep mosquitto // 查看服务是否启动

2、新打第二个终端
mosquitto_sub -h localhost -t "mqtt" -v // -h 指定要连接的MQTT服务器(IP),这里使用的是本机,也可以直接使用本机的IP // -t 订阅主题,此处为mqtt,所以主题为mqtt // -v 打印更多的调试信息

运行完成,阻塞在这里,等待接收数据;订阅者,相当于开启了客户端,等待服务器发送数据;
3、新打开第三个终端
mosquitto_pub -h localhost -t "mqtt" -m "hello MQTT" // -h 指定要连接的MQTT服务器,这里连接的是本机,所以是localhost,也可以是要连接的设备的IP地址 // -t 订阅主题,此处为mqtt // -m 指定消息内容,这里发送的是Hello MQTT

运行完成,等待下一次发送数据;开启的发布者,相当于服务端发送数据;对应于控制端;
此时订阅端接收的数据:


浙公网安备 33010602011771号