智能家居项目(三)之框架设计及框架代码文件工程建立

本文介绍了智能家居项目的设计,包括框架设计草图和代码工程建立。通过指令工厂和控制工厂,实现了不同模块的功能。详细讲述了如何创建源文件、头文件,并在树莓派上编译运行,展示了语音识别模块的串口读取功能。
摘要由CSDN通过智能技术生成

目录

一、智能家居项目框架设计草图

二、框架代码文件工程建立

三、添加声音识别模块的串口读取功能


一、智能家居项目框架设计草图

 代码思路讲解:

1、一个指令工厂,一个控制工厂,实际上就是通过链表链起来的数据。具体怎么链接起来,就是基于简单工厂模式的类与对象的概念,上一篇文章有学习记录。
2、主函数语音指令程序和tcp指令程序各起一个线程,然后通过指令名字找到对应的控制程序,实现对应的模块的功能。

二、框架代码文件工程建立

1、在桌面新建一个项目文件夹smartHose,然后在文件夹中创建如下文件:

2、把上述的所有文件,都加载到Source lnsight工具中,如下图代表加载完毕

3、创建inputCommand.h头文件

//面向指令工厂的头文件
#include <wiringPi.h>
#include <stdlib.h>

struct InputCommander{

	char commandName[128];             //名字
	char command[32];                  //指令
	int (*Init)(char *name,char *ipAdress,char *port);  //操作函数 
	int (*getCommand)(char *cmd);      //获取数据函数

	char log[1024];                    //log日志获取
	struct InputCommander *next;
};

4、创建contrlDevices.h头文件

//设备头文件
#include <wiringPi.h>

struct Devices{

	char deviceName[128]; //名字
	int status;           //状态
	int pinNum;           //引脚
	
	int (*open)(int pinNum);        //打开
	int (*close)(int pinNum);       //关闭
	int (*deviceInit)(int pinNum);  //设备初始化

	int (*readStatus)();  //火灾
	int (*changeStatus)(int status);

	struct Devices *next;
};

struct Devices* addBathroomLightToDeviceLink(struct Devices *phead);
struct Devices* addUpstairLightToDeviceLink(struct Devices *phead);
struct Devices* addLivingRoomLightToDeviceLink(struct Devices *phead);
struct Devices* addRestaurantLightToDeviceLink(struct Devices *phead);
struct Devices* addFireToDeviceLink(struct Devices *phead);

5、创建bathroomLight.c文件

//浴室的灯
#include "contrlDevices.h"
#include<stdlib.h>

int bathroomLightOpen(int pinNum){

	digitalWrite(pinNum,LOW);
}
int bathroomLightClose(int pinNum){

	d
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值