基于Linux的智能家居的设计(3)[通俗易懂]

基于Linux的智能家居的设计(3)

大家好,又见面了,我是全栈君。

2  硬件设计

 

本课题的硬件设计包含主控制器、传输数据设计、数据採集设计、控制驱动设计、显示设计。门禁设计。

2.1  主控制器

依据方案三选择S3C6410主控芯片,S3C6410是由Samsung公司推出的一款低功耗、高性价比的RSIC处理器 。基于ARM11内核。内置强大的硬件加速。显示处理和缩放,运动视频处理。音频处理[9]。这个作为智能家居的处理器是不二之选。硬件性能上全然能够实现。本设计选用的基于S3C6410的OK6410开发板。开发板上拥有例如以下特征[10]

(1)  12MHz、48MHz、27MHz、32.768KHz时钟源,支持5V电压供电;

(2)  採用8位拨码开关设置系统启动方式;

(3)  共4个串口,包含1个五线RS 232电平串口(DB9母座)。

(4)  触摸板接口支持4线电阻式触摸板;LCD接口支持4.3寸TFT LCD,利用触摸屏实现人机交互。

(5)  1个CMOS摄像头接口,支持ITU-RBT601/656 8位模式,使用10*2插针连接器。

(6)  1个100M网口,採用DM9000AE,带连接和传输指示灯。

本次课题OK6410开发板的RS232电平串口与PC机相连;3个三线TTL电平串口(20pin2.0mm间距插头座)与ZigBee协调器相连。网口与PC相连进行网络通信;10*2插针连接器与CMOS摄像头相连。

OK6410开发板实物图如图2-1所看到的:

基于Linux的智能家居的设计(3)[通俗易懂]

2.2  传输数据

本课题的传输数据分为PC机和主控制板之间的传输数据。它们之间使用网络双绞线和串口线进行连接。主控制板与无线网络传感器之间的通信,使用TTL电平转串口。无线网络传感器与无线网络传感器之间的通信。使用Zigbee协议栈;以及摄像头与主控制器通过10*2插针连接器直接进行通信。详细的设计框图如图2-2所看到的:

基于Linux的智能家居的设计(3)[通俗易懂]

2-2  传输数据设计框图

2.3  数据採集部分

数据採集包括有温湿度的採集、光照度的採集、视频数据的採集。

2.3.1  温湿度传感器DHT11

温度传感器採用的是含有已校准数字信号输出的DHT11温湿度传感器。其电路原理图如图2-3所看到的:

基于Linux的智能家居的设计(3)[通俗易懂]

2-3  DHT11温湿度传感器的电路原理图

2.3.2  光照度传感器

光照度採集传感器採用的是採用灵敏型光敏电阻传感器。模块在环境光线亮度达不到设定阈值时,DO 端输出高电平,当外界环境光线亮度超过设定阈值时。DO 端输出低电平。电路原理图如图2-4所看到的:

基于Linux的智能家居的设计(3)[通俗易懂]

2-4  光照度传感器电路原理图

2.3.3  COMS摄像头

本课题COMS摄像头採用的硬件是OV9650作为图像採集传感器。OV9650与S3C6410的接口原理图如图2-5所看到的:

基于Linux的智能家居的设计(3)[通俗易懂]

2-5  OV9650S3C6410的接口原理图

2.4  无线传输模块

本课题採用的是网蜂的Zigbee模块进行无线传输。

网蜂Zigbee的特点例如以下[11]

(1)  高性能、低功耗的8051微控制器内核;

(2)  适应2.4GHz IEEE 802.15.4的RF收发器;

(3)  电源电压范围宽(2.0~3.6V);

(4)  看门狗、电池监视器和温度传感器;

(5)  具有8路输入8~14位ADC。

(6)  2个支持多种串行通信协议的USART,1个红外发生电路;

(7)  1个通用的 16 位和2个8位定时器;

(8)  21个通用I/O引脚,2个具有20mA的电流吸收或电流供给能力。

(9)  小尺寸QLP-40封装。6mm×6mm。

电路原理图如图2-6所看到的:

基于Linux的智能家居的设计(3)[通俗易懂]

2-6  zigbeeCC2530电路原理图

Zigbee的P0_2、P0_3分别与OK6410开发板上的RXD1和TXD1连接实现数据的传输。Zigbee的P0_6与DHT11的数据port相连接,实现温湿度数据的传输;P1_4、P1_3、P1_2、P1_1分别接到UL2003A芯片驱动电灯;可调的光敏传感器的数据port接P1_5port;P1_6接在电机(空调)的驱动器上,控制电机的转动。P1_7接在减速电机(窗帘)的驱动器上,控制窗帘的开关。P0_4、P0_5与门禁模块相连接。读取门禁卡的信息;P0_0与舵机的信号线相连,控制门的开关。

2.5  控制驱动部分

空调电机的控制和窗帘电机的控制使用的LN298电机驱动模块,其原理图如图所看到的:

基于Linux的智能家居的设计(3)[通俗易懂]

2-7  LN298电路原理图

灯具的控制驱动使用的是UL2003A驱动芯片。

8号引脚接电源的+5V,16号管脚接电源的GND。逻辑电路原理图例如以下所看到的:

基于Linux的智能家居的设计(3)[通俗易懂]

2-8  UL2003A逻辑电路原理图

2.6  显示部分

本课题的显示部分使用的4.3寸TFT屏,LCD的硬件主要包含LCD玻璃板、LCD驱动器和LCD控制器。LCD控制器和LCD驱动器之间的接口信号主要有:VD0~VD23、VCLK、HSYNC、VSYNC、VDEN、LCD_PWERN、TSXP、TSYP、TSXM、TSYM[12]

这里的VD0~VD23是LCD像素数据信号线。用来传输要显示的数据;VCLK是显式时钟信号,每一个VCLK信号,LCD控制器传送一个像素的数据到LCD;HYSNC是水平同步信号,也称为行同步信号;VSYNC是垂直同步信号,也称为帧同步信号;VDEN是数据使能信号。TSXP、TSXM是用来确定平面上X轴上的坐标;TSYP、TSYM是用来确定平面上Y轴上的坐标。TFT触摸屏和ARM之间的硬件框图如图2-9所看到的:

基于Linux的智能家居的设计(3)[通俗易懂]

图2-9  TFT触摸屏和S3C6410硬件接口图

2.7  门禁部分

门禁系统使用的是RFID读卡模块RC522,利用舵机控制门的开关,当钥匙不对时刷卡会出现蜂鸣器报警。直到正确的钥匙到了开门才停止报警。门禁部分的基本框图如图2-10所看到的:

基于Linux的智能家居的设计(3)[通俗易懂]

2-10  门禁部分的基本框图

后面的在基于Linux的智能家居的设计(4)。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115262.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何搭建自己的git服务器_git 创建远程仓库

    如何搭建自己的git服务器_git 创建远程仓库GitHub,Gitee想来大家都用过,我们的代码就是托管在这些平台上的。因此,你可能好奇为什么我们不自己大家一个git服务器呢?下面,就开始教大家如何一步步搭建自己的git服务器(试验成功的那一刻还是很让人激动的)。我自己的虚拟机是centOS7的,首先肯定要安装git和git-daemon,可以使用自带的yum进行安装。yuminstall-ygityuminstall-ygit-daemon虚拟机服务端创建git目录[root@ma.

    2022年9月25日
    0
  • snmptrap作用_trap是什么

    snmptrap作用_trap是什么SNMPTRAP格式snmptrapenterpriseOID(genericOID)OID(subOID)typevalueTheTYPEisasinglecharacter,oneof:iINTEGERuUNSIGNEDcCOUNTER32

    2022年8月20日
    5
  • 【python表白神器】手把手教你用代码浪漫追求对象!(附完整源码+讲解)

    【python表白神器】手把手教你用代码浪漫追求对象!(附完整源码+讲解)文章目录前言演示网站制作部署网站二维码制作总结前言跟着我做,不要跳着看,否则你会失败。第一步是制作二维码;第二步是制作网站。演示具体成果地址:https://yanghanwen.xyz/ai/网站制作首先你需要下载我的这个完整项目:链接:https://pan.baidu.com/s/1EmRehx_gRnT5hLjJvKuAIg提取码:pz1y–来自百度网盘超级会员V2的分享下载好后文件目录如下:然后你需要注意的是我把img里面的图片删了,涉及隐私,大家自己替换自己追

    2022年10月15日
    0
  • window location href 跳转之后怎么获得后面带参数

    window location href 跳转之后怎么获得后面带参数functionGetRequest(){varurl=location.search;//获取url中"?"符后的字串vartheRequest=newObject();if(url.indexOf("?")!=-1){varstr=url…

    2022年7月13日
    33
  • C++面试题之虚函数(表)实现机制

    C++面试题之虚函数(表)实现机制前言大家都应该知道C++的精髓是虚函数吧?虚函数带来的好处就是:可以定义一个基类的指针,其指向一个继承类,当通过基类的指针去调用函数时,可以在运行时决定该调用基类的函数还是继承类的函数.虚函数是实现多态(动态绑定)/接口函数的基础.可以说:没有虚函数,C++将变得一无是处!既然是C++的精髓,那么我们有必要了解一下她的实现方式吗?有必要!既然C++是从C语言的基础上发展而来…

    2022年7月13日
    13
  • sql 未明确定义列_查询块具有不正确的结果列数

    sql 未明确定义列_查询块具有不正确的结果列数ORA-00918:未明确定义列:你在做多表查询的时候出现了字段重复的情况,因为你有时候会对字段进行重新命名,表A的A1字段与表B的B1字段同时命名成了C,这时候就会出现未明确定义列,假设A表中有一个字段名叫:A_B_C,实体类就会有个叫ABC的字段,sql你写成:SELECT*FROM(SELECTDISTINCTA.,B.B1ASABC这样写是没有问题的,但是:SELECT*FROM(SELECTDISTINCTA.,B.B1ASA_B_C就有问题了;

    2022年10月4日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号