本文最后更新于291 天前,其中的信息可能已经过时,如有错误请发送邮件到273925452@qq.com

放暑假了!这是学习一个多月Linux驱动和应用后做的一个成果验证项目😊
有许多没有完善的地方,希望大家提出来。😀
如果需要教程的人多的话,小鹿就写一篇详细教程
开源链接在底部😊
有许多没有完善的地方,希望大家提出来。😀
如果需要教程的人多的话,小鹿就写一篇详细教程
开源链接在底部😊
视频展示
项目介绍
项目名称: 基于 IMX6ULL PRO 的智能家居控制系统
项目概述:本项目开发一套简易智能家居控制系统,利用 IMX6ULL PRO 开发板作为核心硬件平台,搭载 Linux 实时操作系统。项目通过移植和开发各类驱动及应用程序,实现了对家居环境的有效监测与智能控制。
关键技术与实现:
- 驱动开发与设备树配置:
- 成功移植并实现了 DHT11 温湿度传感器、SR501 红外人体感应器、AP3216C 环境光与接近传感器以及 SG90 伺服电机控制器等外设的 Linux 驱动程序。
- 通过对设备树(Device Tree)的精确配置,确保了硬件资源的有效管理和外设的正确识别。
- QT 图形界面移植与开发:
- 使用 Qt 框架开发了用于设备控制和状态显示的图形用户界面,并成功移植到 ARM 架构的开发板上运行。
- MQTT 协议栈移植:
- 移植了 MQTT 协议栈到 ARM 开发板上,确保设备与阿里云服务器之间的稳定数据传输。
- GPIO、I2C、PWM 和中断管理:
- 利用 GPIO(通用输入输出接口)、I2C(串行总线协议)、PWM(脉宽调制)等接口的管理,为外设提供了灵活的控制手段。
- 利用高效的中断处理机制,保证了系统可靠性。
- LCD 显示与 Input 子系统:
- 利用 LCD 显示屏,支持显示图形界面和其他相关信息。
- 开发板集成了 Input 子系统,用于处理来自触摸屏或其他输入设备的用户输入。
- Pinctrl 子系统与同步机制:
- 应用了 Pinctrl(引脚控制)子系统来动态配置引脚功能,提高了系统的灵活性。
- 实现了多任务间的同步与互斥机制,确保了多线程操作的一致性和稳定性。
系统架构与功能:
- 通过集成开发板内置的 Wi-Fi 模块,实现了设备与互联网的无缝连接。
- 移植 MQTT 协议栈,确保了与阿里云服务器之间的高效数据交换。
- 开发了网页端交互界面,支持远程控制家居自动化模块,使得用户可以通过任何联网设备轻松管理家庭环境。
关键技术:驱动开发、应用开发,设备树配置、QT移植与应用开发、MQTT移植,gpio、i2c、pwm、Interrupt, lcd,Input子系统,Pinctrl子系统,同步与互斥
环境
开发板:IMX6ULL_PRO
屏幕:7寸LCD触摸屏;
内核版本:Linux-4.9.88
QT版本: 5.12.9
Qt Creator: 4.12.2
编译器:arm-buildroot-linux-gnueabihf-gcc
MQTT版本:5.12.9
屏幕:7寸LCD触摸屏;
内核版本:Linux-4.9.88
QT版本: 5.12.9
Qt Creator: 4.12.2
编译器:arm-buildroot-linux-gnueabihf-gcc
MQTT版本:5.12.9
文件说明
|-- 基于 IMX6ULL PRO 的智能家居控制系统
|-- 01_QT程序
|-- build-SmartHome-Heiweilu-Debug09 (qt编译后的文件)
|-- SmartHome (qt工程)
|-- 02_驱动程序
|-- 01_模块驱动合集
|-- 8723bu.ko
|-- ap3216c_drv.c
|-- dht11_drv.c
|-- led_drv.c
|-- sg90_drv.c
|-- sr501_drv.c
|-- rcS (驱动安装脚本)
|-- 03_设备树文件
|-- 100ask_imx6ull-14x14.dtb
|-- 04_小鹿自己的远程测试网站
模块引脚
LED | pin-131(GPIO5_3) |
舵机-SG90 | pin-115(GPIO4_19) |
温湿度模块-DHT11 | pin-116(GPIO4_23) |
红外感应模块-SR501 | pin-117(GPIO4_21) |
AP3216C | I2C1-SCL DATE |
说明
网页端app:https://a120wkbjrqvdpkkg.vapp.cloudhost.link/page/1338196?token=97cd6ec4d0db9a2b7b046f199d8e4b9d
先单独测试各个模块是否可用,详细参考小鹿之前的模块文章;
LCD驱动是开发板自带,使用前先设置环境变量
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event1 export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0 export QT_QPA_FONTDIR=/usr/lib/fonts/
wifi模块也是开发板自带,使用前也需要先配置环境,有点麻烦,可以外接wifi模块,如果需要我在出教程;
启动Qt:/root/SmartHome
请问你的dht11驱动程序是自己写的吗还是韦老师的哪个?如果是韦老师的,请问具体是哪个视频的哪一节呢?因为我在使用《应用开发入门实验班》里的驱动程序时出现了问题,存在中断丢失的情况,因此想问问up是用的哪个?
我是参考韦老师然后自己修改的,因为买的模块规格可能不一样,用韦老师的有问题,就自己修改了时序
我想问一下up,韦老师的实验班用的QT里面,怎么移植的MQTT的库啊,就差最后一步很难受啊!!
后面跟新的视频我还没有看,韦老师没有讲吗?我看后面出一篇教程吧