智能家居(4)---火灾报警线程封装

这篇具有很好参考价值的文章主要介绍了智能家居(4)---火灾报警线程封装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

封装火灾报警线程实现智能家居中的火灾报警功能
mainPro.c(主函数)文章来源地址https://www.toymoban.com/news/detail-648146.html

#include <stdio.h>
#include "controlDevice.h"
#include "inputCommand.h"

#include <pthread.h>

struct Devices        *pdeviceHead  = NULL;         //设备工厂链表头

struct Devices* findDeviceByName(struct Devices *phead,char *name)          //在设备链表中查找设备(语音和socket均可使用)
{
    struct Devices *tmp = phead;
    if(tmp == NULL){
        printf("The devicesLink is NULL");
        return NULL;
    
    }else{
        while(tmp != NULL){
            if(strcmp(tmp->deviceName,name) == 0){
                return tmp;
            }
            tmp = tmp->next;
        }
   
     return NULL;   

    }

}

void* fire_pthread(void *data)					//火灾报警线程处理函数
{
    struct Devices *fire;
    struct Devices *beep;
    int status;

    fire = findDeviceByName(pdeviceHead,"fire");        //从设备链表找出火灾检测和蜂鸣器
    beep = findDeviceByName(pdeviceHead,"beep");

    fire->deviceInit(fire->pinNum);                     
    beep->deviceInit(beep->pinNum);

     while(1){                                           //检测到火灾通过蜂鸣器报警
        status = fire->readStatus(fire->pinNum);
        if(status == 0){
            beep->open(beep->pinNum);
            printf("fire warning\n");
            delay(20000);
        }else
            beep->close(beep->pinNum);
            
    } 

 
 int main()
{
    pthread_t fire_pth;

    if(wiringPiSetup()<0){//初始化wiringPi外设库

            printf("wiringPi Init failed\n");
            return -1;
        }


    //1.指令工厂初始化


    //2.设备控制工厂初始化
  
    pdeviceHead = addFireToDeviceLink(pdeviceHead);                 //将火灾检测加入设备链表
    pdeviceHead = addBeepToDeviceLink(pdeviceHead);                 //将蜂鸣器加入设备链表

   
    //3.线程池建立
   

    //3.3火灾线程
    ret = pthread_create(&fire_pth,NULL,fire_pthread,NULL);
     if (ret != 0) {
        printf("Failed to create firethread.\n");
        return -1;
    }


    //等待线程退出
    pthread_join(fire_pth,NULL);


    return 0;
}

到了这里,关于智能家居(4)---火灾报警线程封装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于RAM树莓派实现智能家居:语音识别控制,Socket网络控制,火灾报警检测,实时监控

    目录 一   项目说明 ①   设计框架 ②   功能说明 ③   硬件说明 ④   软件说明 二   项目代码 1 mainPro.c 主函数 2 InputCommand.h 控制设备头文件 3 contrlDevices.h 外接设备头文件 4 bathroomLight.c 泳池灯 5 livingroomLight.c 卧室灯 6 restaurantLight.c 餐厅灯 7 upstairLight.c 二楼灯 8 fire.c 火焰

    2024年02月02日
    浏览(25)
  • 智能家居(3)---socket网络控制线程封装

    封装socket网络线程实现对智能家居中各种灯光的控制 main.Pro(主函数) inputCommand.h(控制类) socketControl.c(socket)

    2024年02月13日
    浏览(22)
  • 智能家居(2)---串口通信(语音识别)控制线程封装

    封装语音线程(语音通过串口和主控设备进行交流)实现对智能家居中各种灯光的控制 mainPro.c(主函数) inputCommand.h(控制类) voiceControl.c(语音)

    2024年02月13日
    浏览(15)
  • 105-基于stm32单片机智能家居温湿度烟雾监测人体红外防盗报警系统Proteus仿真+程序源码

    一:功能介绍 1、采用stm32单片机+LCD1602+DHT11温湿度传感器+烟雾传感器+按键开关+蜂鸣器+LED灯,制作一个智能家居温湿度烟雾监测人体红外防盗报警系统; 2、通过按键开关来模拟人体红外检测触发,并且可以通过按键开关来设置正在布防和停止布防状态,布防状态下,当检测

    2024年02月03日
    浏览(27)
  • 智能家居(13)——智能家居控制系统

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

    2024年02月11日
    浏览(28)
  • 虚拟现实与智能家居:智能家居的未来

    随着科技的不断发展,我们的生活也在不断变化。智能家居是一种新兴的技术,它将人工智能、互联网和家居三者相结合,为我们的生活带来了更多的便利和舒适感。虚拟现实(Virtual Reality,简称VR)则是一种将人引入到计算机生成的虚拟世界中的技术,它可以让我们在不离开现

    2024年04月16日
    浏览(32)
  • Linux MQTT智能家居项目(智能家居界面布局)

    1.选择工程名称和项目保存路径 2.选择QWidget 3.添加保存图片的资源文件: 在工程目录下添加Icon文件夹保存图片: 将文件放入目录中: 将图片添加进入资源文件中: 这里我们一共显示4个界面:LED控制界面,温度湿度显示界面,光照强度显示界面,摄像头监测界面。 所以这里

    2024年02月13日
    浏览(29)
  • 基于MicroPython的智能火灾报警器系统的设计与实现

    最近闲来没事,总结一下自己的一个物联网综合课程设计的内容,将它上传到往上,一方面可以供自己日后的学习和回顾,另一方面希望帮助到其他有需要的人。 基于MicroPython的智能火灾报警器系统的设计与实现 硬件方面:主控板使用的是 ESP-WROOM-32 开发板,另外,传感器使

    2024年02月10日
    浏览(35)
  • 基于智能家居控制器的智能家居智能化控制:基于强化学习技术

    引言 1.1. 背景介绍 随着科技的发展,智能家居逐渐成为人们生活中不可或缺的一部分。智能家居通过引入各种智能化设备,如智能门锁、智能照明、智能空调等,使人们的生活更加便捷、舒适。然而,智能家居的复杂性导致用户在控制过程中面临诸多困难,如操作复杂、界面

    2024年02月11日
    浏览(25)
  • 【OrangePi Zero2 智能家居】智能家居项目的软件实现

    一、项目整体设计 二、项目代码的前期准备 三、实现语音监听接口 四、实现socket监听接口 五、实现烟雾报警监听接口 六、实现设备节点代码 七、实现接收消息处理接口 整体的软件框架大致如下: 整个项目开启4个监听线程, 分别是: 语音监听线程:用于监听语音指令,

    2024年02月22日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包