我是靠谱客的博主 灵巧柠檬,最近开发中收集的这篇文章主要介绍【STM32】引入MQTT协议和FreeRTOS前言一、什么是MQTT协议二、如何使用MQTT协议通讯三、什么是FreeRTOS?总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 前言
  • 一、什么是MQTT协议
  • 二、如何使用MQTT协议通讯
    • 1.官网下载
  • 三、什么是FreeRTOS?
  • 总结


前言

在上一次的项目中,利用STM32开发板和ESP8266模块,完成了一个物联网台灯、门铃报警的小项目。利用手机上的微信小程序,就能控制开发板上LED灯的亮灭,按下开发板上的按键,也能够在微信小程序上显示报警。
虽然说完成了这个项目,但仔细思考就能发现明显缺陷。手机和开发板必须连接在同一个WiFi信号下,如此一来,实际的应用场景就会变得非常狭窄了。只有使用者在家中,且手机连着WiFi的情况下,才能发挥作用。如果使用者外出,手机和开发板不在同一个WiFi上,那就不能控制台灯,也不能收到门铃报警了。
那么如何克服这个缺点呢?这里就引入了MQTT协议来解决这个问题。
同时,还引入了FreeRTOS系统,来怼项目进行优化。


`

一、什么是MQTT协议

在理解MQTT协议之前,首先要知道,网络通讯的基础。两个设备之间,是如何传输数据的。
在之前的项目中,开发板和手机连在同一个WiFi上,让开发板和手机通讯的时候,必须要确定的两个要素,分别是IP地址和Port端口。
也就是说,想要在两个设备之间传输数据,就必须要知道两个设备的IP地址和Prot端口。那么同样的,如果想要我们不同网络下,实现开发板和手机之间的网络通讯,也需要知道两个设备的IP地址和prot端口。
但是呢,仅仅是知道了IP地址和端口之后,也是不能直接进行通讯的,因为两个路由器之间,不能直接进行通讯,中间必须要有一个服务器的存在。路由器a将信息放到服务器上,路由器b在服务器上查询这个信息。这种通过发布和订阅的形式进行通讯的网络通讯协议,就是叫做MQTT协议。
MQTT协议,是一种基于TCP/IP形式的网络协议。可以以一对一的形式进行发布和订阅,也可以以一对多的形式进行发布的订阅。
在这里插入图片描述在嵌入式中,MQTT协议的发布者,常常是单片机,它采集各种传感器的信息,通过MQTT协议将数据发布到服务器上。而订阅者,则是通过Linux或者java程序编写的可以在电脑或者手机上运行的程序。

二、如何使用MQTT协议通讯

1.官网下载

首先需要登录网站,mqttx.app,下载并安装客户端。
在这里插入图片描述然后选择阿里云或者其他云服务商,注册之后,配置嵌入式设备,通过四个连接参数,输入客户端中就可以进行连接了。
在这里插入图片描述在这里插入图片描述连接上之后,就能在服务器和客户端之间,进行发布和订阅了。

以上,只是利用客户端开验证配置的服务器有没有成功,在验证成功之后,就需要将MQTT协议相关的程序移植到开发板上了。
之后我们需要登入GitHub网站,下载要移植的程序。
https://github.com/eclipse/paho.mqtt.embedded-c
该网站登录下载可能很慢,甚至失败,可在别的地方找资源。
然后就可以把需要的文件加载到程序中了。
在这里插入图片描述

三、什么是FreeRTOS?

在之前的项目中,我们的程序是运行在一个while(1){程序}的无限循环中的。单片机在不断运行,进行轮询。虽然还有中断方式辅助,但这种裸机的运行方式效率比较低,当需要处理的传感器数量多了起来,就难以对付了。
故而要引入RTOS,也就是实时操作系统,它可以以多任务的方式对运行,多效率的提高有很大的帮助。
而FreeRTOS,是RTOS中的一个系统,因为是免费提供的,这里采用这个。
和上面的MQTT一样,我们也需要下载一个官方提供的支持包,在freertos.org下载。然后将其移植。

在这里插入图片描述


总结

在物联网开发中,MQTT和FreeRTOS是必须要掌握的。对台灯这个小项目的改造,并没有用到很复杂的逻辑,但在这个过程中,对MQTT和FreeRTOS,有了最基本的了解。

最后

以上就是灵巧柠檬为你收集整理的【STM32】引入MQTT协议和FreeRTOS前言一、什么是MQTT协议二、如何使用MQTT协议通讯三、什么是FreeRTOS?总结的全部内容,希望文章能够帮你解决【STM32】引入MQTT协议和FreeRTOS前言一、什么是MQTT协议二、如何使用MQTT协议通讯三、什么是FreeRTOS?总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部