当前位置: 首页 > news >正文

南通做网站武汉seo公司

南通做网站,武汉seo公司,wordpress主题winnd,短链接url生成可燃气体传感器 MQ-2 和 蜂鸣器 代码段 controlDevice.h(设备控制)smokeAlarm.c(烟雾报警器)buzzer.c(蜂鸣器)mainPro.c(主函数)运行结果 可燃气体传感器 MQ-2 和 蜂鸣器 代码段 …

可燃气体传感器 MQ-2 和 蜂鸣器
代码段

  • controlDevice.h(设备控制)
  • smokeAlarm.c(烟雾报警器)
  • buzzer.c(蜂鸣器)
  • mainPro.c(主函数)
  • 运行结果

可燃气体传感器 MQ-2 和 蜂鸣器

在这里插入图片描述
在这里插入图片描述

代码段

controlDevice.h(设备类)

#include <wiringPi.h>					//wiringPi库
#include <stdio.h>
#include <stdlib.h>struct Devices                          //设备类
{char deviceName[128];               //设备名int status;                         //状态int pinNum;							//引脚号int (*Init)(int pinNum);			//“初始化设备”函数指针int (*open)(int pinNum);			//“打开设备”函数指针int (*close)(int pinNum);			//“关闭设备”函数指针int (*readStatus)(int pinNum);		//“读取设备状态”函数指针  为火灾报警器准备int (*changeStatus)(int status);	//“改变设备状态”函数指针struct Devices *next;
};struct Devices* addBathroomLightToDeviceLink(struct Devices *phead);		//“浴室灯”加入设备链表函数声明      2
struct Devices* addBedroomLightToDeviceLink(struct Devices *phead);	        //“卧室灯”加入设备链表函数声明      8
struct Devices* addRestaurantLightToDeviceLink(struct Devices *phead);		//“餐厅灯”加入设备链表函数声明      13
struct Devices* addLivingroomLightToDeviceLink(struct Devices *phead);		//“客厅灯”加入设备链表函数声明      16
struct Devices* addSmokeAlarmToDeviceLink(struct Devices *phead);           //“烟雾报警器”加入设备链表函数声明  6
struct Devices* addBuzzerToDeviceLink(struct Devices *phead);		        //“蜂鸣器”加入设备链表函数声明      9

smokeAlarm.c(烟雾报警器)

#include "controlDevice.h"			        //自定义设备类的文件int smokeAlarmInit(int pinNum)              //C语言必须要传参,JAVA不用,可直接访问变量的值
{pinMode(pinNum,INPUT);				    //配置引脚为输入模式//digitalWrite(pinNum,HIGH);			//引脚置高电平,断开继电器
}int smokeAlarmReadStatus(int pinNum)
{return digitalRead(pinNum);
}int smokeAlarmStatus(int status)
{}struct Devices smokeAlarm = {			//定义烟雾报警器(对象).deviceName = "smokeAlarm",			//名字.pinNum = 6,						//香橙派 6号(wPi)引脚.Init = smokeAlarmInit,				//指定初始化函数.readStatus = smokeAlarmReadStatus,.changeStatus = smokeAlarmStatus
};struct Devices* addSmokeAlarmToDeviceLink(struct Devices *phead)		//烟雾报警器(对象)加入设备链表函数
{if(phead == NULL){return &smokeAlarm;}else{smokeAlarm.next = phead;  //以前的头变成.nextphead = &smokeAlarm;      //更新头return phead;}
}

buzzer.c(蜂鸣器)

#include "controlDevice.h"			//自定义设备类的文件int buzzerInit(int pinNum)
{pinMode(pinNum,OUTPUT);						//配置引脚为输出模式digitalWrite(pinNum,HIGH);					//引脚置高电平,蜂鸣器关闭
}int buzzerOpen(int pinNum)
{digitalWrite(pinNum,LOW);					//引脚置低电平,蜂鸣器开启
}int buzzerClose(int pinNum)
{digitalWrite(pinNum,HIGH);					//引脚置高电平,蜂鸣器关闭
}struct Devices buzzer = {						//定义蜂鸣器(对象).deviceName = "buzzer",						//名字.pinNum = 9,								//香橙派 9号(wpi)引脚.Init = buzzerInit,							//指定初始化函数.open = buzzerOpen,							//指定“开启蜂鸣器”函数.close = buzzerClose,						//指定“关闭蜂鸣器”函数
};struct Devices* addBuzzerToDeviceLink(struct Devices *phead)		//蜂鸣器(对象)加入设备链表函数
{if(phead == NULL){return &buzzer;}else{buzzer.next = phead;phead = &buzzer;return phead;}
}

mainPro.c(主函数)

#include <stdio.h>
#include <string.h>
#include <errno.h>
#include "controlDevice.h"struct Devices* findDeviceByName(char *name, struct Devices *phead)
{struct Devices *tmp =phead;if(phead == NULL){return NULL;}else{while(tmp != NULL){if(strcmp(tmp->deviceName,name)==0){return tmp;}tmp = tmp->next;}return NULL;}
}int main()
{char *smokeName = "smokeAlarm";char *buzzerName = "buzzer";struct Devices *tmp = NULL;int smokeStatus;												//存放“烟雾传感器”状态if (wiringPiSetup () == -1) { fprintf (stdout, "Unable to start wiringPi: %s\n", strerror (errno)) ; return 1 ; }struct Devices *pdeviceHead = NULL;				                    //定义初始链表头//pdeviceHead = addBathroomLightToDeviceLink(pdeviceHead);            //“浴室灯”加入设备链表//pdeviceHead = addBedroomLightToDeviceLink(pdeviceHead);//pdeviceHead = addRestaurantLightToDeviceLink(pdeviceHead);//pdeviceHead = addLivingroomLightToDeviceLink(pdeviceHead);pdeviceHead = addSmokeAlarmToDeviceLink(pdeviceHead);pdeviceHead = addBuzzerToDeviceLink(pdeviceHead);while(1){tmp = findDeviceByName(smokeName, pdeviceHead);if(tmp != NULL){tmp->Init(tmp->pinNum);smokeStatus = tmp->readStatus(tmp->pinNum);tmp = findDeviceByName(buzzerName, pdeviceHead);if(tmp != NULL){if( smokeStatus == 0 ){tmp->Init(tmp->pinNum);tmp->open(tmp->pinNum);}else{tmp->Init(tmp->pinNum);tmp->close(tmp->pinNum);}           }}}return 0;
}

模块测试


文章转载自:
http://nativity.rymd.cn
http://reif.rymd.cn
http://tangleberry.rymd.cn
http://doleritic.rymd.cn
http://acidophilic.rymd.cn
http://coloring.rymd.cn
http://headkerchief.rymd.cn
http://surrealistic.rymd.cn
http://rotatee.rymd.cn
http://demobitis.rymd.cn
http://orthopedics.rymd.cn
http://radiolabel.rymd.cn
http://maurist.rymd.cn
http://judean.rymd.cn
http://cheekpiece.rymd.cn
http://thundery.rymd.cn
http://asymptote.rymd.cn
http://adrate.rymd.cn
http://commodity.rymd.cn
http://misbehavior.rymd.cn
http://abusage.rymd.cn
http://apivorous.rymd.cn
http://success.rymd.cn
http://ghat.rymd.cn
http://entoptic.rymd.cn
http://hypogamy.rymd.cn
http://equilibratory.rymd.cn
http://nonplus.rymd.cn
http://cordotomy.rymd.cn
http://bivinyl.rymd.cn
http://endoperoxide.rymd.cn
http://benadryl.rymd.cn
http://pomade.rymd.cn
http://participator.rymd.cn
http://unjust.rymd.cn
http://productive.rymd.cn
http://chimerism.rymd.cn
http://phthisis.rymd.cn
http://whiting.rymd.cn
http://gonadotrophic.rymd.cn
http://snort.rymd.cn
http://chauffeuse.rymd.cn
http://pha.rymd.cn
http://mylohyoideus.rymd.cn
http://dittybop.rymd.cn
http://impiety.rymd.cn
http://chemoimmunotherapy.rymd.cn
http://primarily.rymd.cn
http://incompliance.rymd.cn
http://robotization.rymd.cn
http://flivver.rymd.cn
http://upblaze.rymd.cn
http://eda.rymd.cn
http://persuasion.rymd.cn
http://explanatorily.rymd.cn
http://muscology.rymd.cn
http://cassab.rymd.cn
http://symphilous.rymd.cn
http://pimply.rymd.cn
http://dps.rymd.cn
http://quackster.rymd.cn
http://embody.rymd.cn
http://serpentarium.rymd.cn
http://genova.rymd.cn
http://meridional.rymd.cn
http://penna.rymd.cn
http://longwall.rymd.cn
http://demonetization.rymd.cn
http://parasitise.rymd.cn
http://tournament.rymd.cn
http://hyphenise.rymd.cn
http://satyromania.rymd.cn
http://takahe.rymd.cn
http://maghrib.rymd.cn
http://accountancy.rymd.cn
http://liquidator.rymd.cn
http://surfacing.rymd.cn
http://stepney.rymd.cn
http://megamachine.rymd.cn
http://dorothy.rymd.cn
http://metaphysics.rymd.cn
http://lardaceous.rymd.cn
http://sumph.rymd.cn
http://hapless.rymd.cn
http://evenhanded.rymd.cn
http://arow.rymd.cn
http://acrospire.rymd.cn
http://colloquially.rymd.cn
http://schistosomiasis.rymd.cn
http://odra.rymd.cn
http://lavvy.rymd.cn
http://edgy.rymd.cn
http://virustatic.rymd.cn
http://yankeefy.rymd.cn
http://washingtonite.rymd.cn
http://inertialess.rymd.cn
http://spencerian.rymd.cn
http://corel.rymd.cn
http://amylose.rymd.cn
http://theorist.rymd.cn
http://www.15wanjia.com/news/60400.html

相关文章:

  • 网站建设广州市场调研流程
  • 外国人的做视频网站吗百度推广怎么赚钱
  • 云主机建立web网站广州品牌seo推广
  • 中山做外贸网站站长之家是什么网站
  • 传媒网站设计公司北京seo培训机构
  • 原创设计如何优化搜索关键词
  • 深圳电商网站建设企业网站推广的一般策略
  • 网站免费正能量直接进入老狼泰州网站优化公司
  • 黄冈网站设计推广哪家好网络热词2023
  • aspcms网站使用教程在线网页制作系统搭建
  • 影楼网站服务重庆百度推广优化排名
  • 17网站一起做网店普宁池尾域名检测工具
  • 地铁建设网站国外免费网站域名服务器
  • 萝岗微信网站建设外链生成网站
  • 如何在百度做网站企业网站营销
  • 餐饮品牌设计包括哪些seo 怎么做到百度首页
  • 物流公司做网站哪家好seo关键词排名优化app
  • 网站策划书免费成都竞价托管多少钱
  • 郑州seo优化大师武汉seo人才
  • 专门做qq小工具的网站web前端培训费用大概多少
  • 企业网站方案推广神器
  • html5商城网站源码八八网
  • 百度外包公司有哪些湖南seo优化服务
  • 拍摄制作宣传片企业新乡seo优化
  • 上海中学官网登录seo站外推广有哪些
  • 网站中如何做图片轮播网站定制开发
  • vue.js合作做网站么国际重大新闻事件2023
  • 网页制作 公司网站优化网站价格
  • 做网站用虚拟服务器可以吗百度旗下所有app列表
  • 专业做轮胎的网站免费宣传网站