智能家居(13)——智能家居控制系统

基于树莓派制作智能家居控制系统

一、功能介绍

  1. 灯光的控制:模拟客厅灯、餐厅灯、二楼灯、卫生间灯。灯光可以通过手机App、语音、控制开关。
  2. 家内发生火灾后报警功能。
  3. 温湿度检测通过服务器上传到手机App。
  4. 摄像头安全监控,将视频上传到手机App,并通过摄像头实现人脸识别智能开锁。

二、实现思路

  1. 灯光通过普通IO口控制,自己实现IO口的引脚输入输出驱动程序。
  2. 树莓派创建Socket线程,手机通过Socket与树莓派实现网络通信,从而控制灯光。
  3. 语音模块通过SU-03T模块,在官网设置好指令,烧写SDK,输出的指令通过串口输出给树莓派,从而解析指令实现语音灯光控制。
  4. 通过烟雾传感器和蜂鸣器实现火灾报警功能。
  5. 温湿度检测传感器采集数据,通过socket和手机App通信,将数据发送给App。
  6. 摄像头人脸识别,主要通过翔云人工智能平台提供的人脸对比服务开发。
  • 注意: 树莓派通过socket给客户端发送数据时,如果客户端直接退出,主程序也会直接崩溃。
  • 解决办法: 在检测到客户端退出连接后,服务端必须退出socket读取和写入的两个线程。

三、源代码分析

  1. 主函数
    1.1 主程序中根据指令工厂将语音类、socket类添加到指令工厂的链表中。设备控制工厂将灯、火灾报警、人脸锁类添加到设备控制的链表中。
    1.2 并且创建火灾报警、语音、socket线程。
    1.3 火灾报警线程: 读取烟雾传感器的值,如果为0,表示有烟雾,对蜂鸣器设备进行控制报警。
    1.4 语音线程: 语音线程中,使用串口读取到数据,根据不同的指令控制不同的灯光。对“人脸识别”指令创建新的线程,在人脸识别的线程中通过摄像头拍照并识别人脸,并且将识别到的结果写入到SQLite数据库中。
    1.5 socket线程: 在socket线程中创建服务端,等待客户端接入,客户端接入后,分别创建读取数据和发送数据两个线程。读取线程用于识别灯光控制指令、开关监控。发送数据指令用于将采集到 的温湿度数据发送给客户端。
    int main()
    {
        pthread_t voice_pt;
        pthread_t socket_pt;
        pthread_t smoke_thread;
    
        wiringPiSetup();
    
        //添加设备节点,设备控制初始化
        pdeviceHead = addBathroomLightToDeviceLink(pdeviceHead);
        pdeviceHead = addupstairLightToDeviceLink(pdeviceHead);
        pdeviceHead = addrestaurantLightToDeviceLink(pdeviceHead);
        pdeviceHead = addlivingroomLightToDeviceLink(pdeviceHead);
        pdeviceHead = addFireDeviceLink(pdeviceHead);
        pdeviceHead = addCameraToDeviceLink(pdeviceHead);
        pdeviceHead = addBuzzerToDeviceLink(pdeviceHead);
    
        //添加命令节点,指令工厂初始化
        pcommandHead = addvoiceToCommandLink(pcommandHead);
        pcommandHead = addsocketToCommandLink(pcommandHead);
    
        //3. 线程池建立
            //3.1 语言线程
            //3.2 socket线程
        pthread_create(&voice_pt, NULL, voice_handler, NULL);
        pthread_create(&socket_pt, NULL, socket_handler, NULL);
     	    //3.4 火灾线程
    	pthread_create(&smoke_thread, NULL, smokeAlarmThread, NULL); 
    
        while(1) {
            ;
        }
            //3.3 摄像头线程通过语音线程中创建。
        return 0;
    }
    
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
21世纪是信息化的世纪,各种电信和互联网新技术推动了人类文明的巨大进步。本文介绍的数字化家居控制系统可以使得人们可以通过手机或电话在任何时候、任意地点对家中的任意电器(空调、热水器、电饭煲、灯光、音响、DVD录像机)进行远程控制;也可以在下班途中,预先将家中的空调打开、让热水器提前烧好热水、电饭煲煮好香喷喷的米饭……;而这一切的实现都仅仅是打一个简单的电话。此外,该系统还可使家庭具有多途径报警、远程监控等多种功能,如果不幸出现某种险情,您和110可以在第一时间获得通知以便进一步采取行动。舒适、时尚的家居生活是社会进步的标志,智能家居控制系统能够在不改变家中任何家电的情况下,对家里的电器、灯光、电源、家庭环境进行方便地控制,使人们尽享高科技带来的简便而时尚的现代生活。 实现智能化离不开运算和控制单元,本系统采用MCU(SM8952AC25P)作为主控器件,单片机应用系统由硬件和软件组成。硬件由单片机扩展的存储器、输入/出设备以及各种实现单片机系统控制要求的接口电路和有关的外围电路芯片或部件组成;软件由单片机应用系统实现其特定控制功能的各种工作程序和管理程序组成。在单片机应用系统开发的过程中,应不断调整软、硬件,协调地进行软、硬件设计,以提高工作效率,当系统硬件和软件紧密配合、协调一致,就可以组成高性能的单片机应用系统。本课题完成了单片机应用系统其开发过程的系统的总体设计、硬件设计、软件设计和系统调试,根据开发的实际需要,相互协调、交叉,有机的进行。本设计的MCU与各个芯片和模块的接口、各项标准都严格遵循国家有关标准,为以后的产品化提供了良好的基础。 本系统的电话远程控制是基于电话交换网络的国际双音频通信标准DTMF通信方式,程控交换信令作为系统控制命令,采用MT8870双音频编解码电路实现,单片机通过MT8870识别来自电话程控交换机的网络的控制信号,用户只需拨通家中的电话可以根据系统的语音提示进行按键选择以实现用户身份的识别、远程控制和安防操作;各种传感器的检测是利用数据采集系统将多路被测量值转换成数字量,再经过单片机进行数据处理,实现实时测控;短消息发送部分采用基于SIEMENS TC35 GSM模块TC35 modem 和TI公司的电平转换芯片MAX3238等器件构成的移动终端的硬件电路可以完成短消息收发等功能。 在设计本系统时,面对各种检测对象和大量控制单元,需要利用各种接口标准和MCU进行连接,再经过MCU进行数据处理,实现实时测控。而此时采用单片机来实现智能家居控制系统不仅具有采集控制方便、简单、灵活等优点,而且可以大幅度提高采各模块和芯片的协调性,从而大大提高系统的可利用性。此次系统设计统正是把MT8870、TC35 modem与SM8952AC25P单片机有机的结合起来,顺利的完成了本设计的要求。并且实现了学习型远程红外遥控功能,为控制红外家电和设备提供了良好的基础。本系统也可应用于工农业中,实现对无人值守岗位的远程监控等。
Hestia是一个基于树莓派的智能家居项目,它利用了现代技术,如物联网(IoT)、云计算和人工智能(AI)等,为用户提供更加智能化、便利的家居体验。 Hestia的主要特点包括: 1. 轻松部署:Hestia可以在树莓派上轻松部署,使用简单快捷。 2. 模块化设计:Hestia采用模块化设计,可以根据用户需求,自由搭配各种传感器和执行器,实现家居自动化控制。 3. 云端控制:用户可以通过手机或电脑,随时随地远程控制家居设备,方便快捷。 4. 智能化:Hestia利用机器学习和人工智能算法,学习用户的生活习惯和喜好,为用户提供更加便捷的智能家居体验。 Hestia的具体实现方案如下: 1. 硬件方案:使用树莓派作为主控制器,搭配各种传感器和执行器,如温度传感器、湿度传感器、光线传感器、电机、继电器等,实现家居设备的自动化控制。 2. 软件方案:使用Java语言开发控制程序,通过网络连接,将传感器和执行器的数据传输到云端服务器。在云端服务器上,使用Python语言进行数据处理和机器学习算法,根据用户的生活习惯和喜好,自动控制家居设备。 3. 用户界面:提供手机App和网页端,用户可以随时随地远程控制家居设备,查看家居设备的状态和历史数据。用户可以通过App或网页端设置家居设备的自动化控制规则和时间表。 总之,Hestia是一款高效、智能、可扩展的智能家居系统,将为用户带来更加便利、舒适的家居体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值