物联网小项目智能家居(QT、MQTT、嵌入式开发板、Ubuntu) |
您所在的位置:网站首页 › 物联网系统怎么做 › 物联网小项目智能家居(QT、MQTT、嵌入式开发板、Ubuntu) |
项目框架:
概述:搭建一个物联网的实战小项目,为本阶段的学习做了一次总结及记录。把构建的整个过程分享出来给大家,项目难点在于各种环境的搭建,而代码逻辑并不难。 (1)本项目总共涉及到了4个MQTT客户端以及1个MQTT服务器; (2)其中,需要我们实现的是2个客户端:家(开发板)和APP_1(Ubuntu),其他客户端都是现成的; (3)服务器是直接使用现成的(对于我们初学者而言不需要去关心别的,我们只会用到服务器的地址+端口); (4)客户端的安卓端也是直接下载现成的(因为作者没有学过安卓或者IOS的开发),此部分即使是不做也不会对项目效果造成影响。 项目步骤: 1 客户端-MQTTX下载以及MQTT的协议测试(1) 现在MQTTX(MQTT客户端) MQTTX的下载官网 https://mqttx.app/zh 我是在Windows下运行的这个客户端(读者可以根据需要选择Linux下,这个没有任何关系) (作者所使用的开发板是韦东山老师的IMX6ULL PRO) 概述:QT的环境搭建、MQTT的环境搭建、Ubuntu可以连公网。 Ubuntu内QT的环境搭建以及MQTT的环境搭建,网上的方法比较多,只需在百度上搜索即可找到大量的教程,作者也是参考了比较多的文章。 Ubuntu的联网我是参考韦老师的文章搭建的,大家如果没有韦老师手册的话,可以直接在CSDN搜索韦老师的账号。 3 开发板的环境搭建(交叉编译)这边的所谓开发板的环境搭建实际上就是在Ubuntu上面把库都使用交叉编译工具链编译好,然后打包到开发板上面。 我们同样需要在开发板上面完成QT、MQTT的搭建,以及确保可以开发板联网。 QT在开发板上面如何使用,网上也有很多文章介绍的,我使用的是正点原子的方案,大家可以直接参考正点原子的手册《05【正点原子】I.MX6U出厂系统Qt交叉编译环境搭建V1.6》,里面介绍了一个常用的开发方案,也就是,你在Ubuntu里面使用QT Create编写代码,点击运行后,可以直接远程控制开发板实现代码效果,然后等你感觉代码没有问题了,在拷贝到开发板上面即可。 MQTT在开发板上面使用的方法同样也有很多,我在这边推荐一篇文章。 https://itcn.blog/p/2243502540.html 文章里面介绍了MQTT如何在Ubuntu、IMX6ULL板子上面运行。 作者也是根据这边文章操作的,需要注意的是,如果读者在最后运行(可执行文件)的时候,如果看到提示说格式错误时,那就说明得到的可执行文件或者.so库的格式有问题,此时读者要使用linux的“file file_name”命令去查看文件的格式是否有问题。如果程序是放在开发板上面运行的,那么格式就不能是x86或者x64的(对于ARM开发板而言),那么此时你就需要好好检查交叉编译的设置有没有问题了。 下图是file命令的一个示例: 至此,我已经默认你搭建好了所有的开发环境。下面开始编写QT的Ubuntu上位机。 我会把源码公布出来(很简单的),下面介绍功能。下图为界面1。 输入用户名密码,在代码中暂时用字符串代替, 用户名:usetest;密码:123456 环形缓存区(环形队列):这个数据结构个人认为会比链表实现更加简单,网上也有大量的实现方法,作者这边做最简单的讲解。 队列的简单实现:(静态型) (1)定义全局read、write变量,(读者可以理解为)用于访问数组; (2)定义一个缓存区,可以是普通的数据、也可以是结构体数组(常用), 到这里,作者已经迫不及待的要去验证开发板了,所以就随便写了1个窗口 代码我会传到git,后面发出来。 本文是作者的一个项目记录,比较粗糙。 有什么问题也可以提出来,大家讨论。 ======================================= 第一次添加:ubuntu上面编写的qt APP源码。git clone https://gitee.com/guo-jinpeng-666/smart-home.git |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |