A9+zigbee+web 智能家居

我要开发同款
proginn22203309612023年05月25日
236阅读
所属分类智能硬件

作品详情

硬件信息:
Cortex-A9开发板 CC2530开发板(下称Zigbee模块) 普通USB摄像头
系统环境:
Ubuntu20.04 U-boot 2013.01
开发工具:
GCC Vim Source Insight 4.0
项目简介:
移植了一个BOA服务器用以实现web前端交互。
移植CGIC库用以实现html和C语言之间的转换。
另外编写一个C代码(下面称为main文件),使用arm-none-linux-gnueabi-gcc编译。main文件和cgi通过FIFO实现通信。
开发板移植了一个3.14的linux内核(linux使用U-boot2013.01进行引导启动),同时实现了些字符设备。包括GPIO控制的四个LED灯,采用ADC的一个滑动变阻器,PWM方式控制的蜂鸣器,I2c总线控制的一个mpu6050的六轴传感器。
使用了三Zigbee模块使用USB串口和A9进行通信,Zigbee模块之间使用Zigbee协议实现通信。其中一个Zigbee模块上用GPIO连接了一个风扇,另一个则连接了一个DHT11的温湿度传感器。
项目功能:
简单的说,就是实现用户通过html页面可以控制各种硬件和获取各种硬件采集的数据。大致的流程如下:
1. 用户通过html页面下发指令,此时浏览器会通过from表单把相应的参数传递给BOA服务器,然后由BOA服务器调用相应的CGI文件处理指令。
2. CGI不会直接控制硬件,而是把相应的数据通过FIFO发送给main程序,然后等待main程序返回执行的结果。
3. main通过判断FIFO当中读到的数据确定哪个线程处理任务,相应处理任务的线程再通过open->ioctl->close的方式向设备发送指令,并将执行结果发送到FIFO当中。
4. CGI从FIFO读到执行结果以后,生成相应的html代码,并且将代码通过CGIOUT的环境变量,将html代码传递给BOA服务器。
5. 再由BOA服务器把html页面信息发送给浏览器。再由浏览器渲染html页面,把最终数据呈现给用户;
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论