
出版社: 清华大学
原售价: 79.00
折扣价: 56.10
折扣购买: Arduino案例实战(卷Ⅵ北京邮电大学精品教材)/清华开发者书库
ISBN: 9787302505228
李永华,现执教于北京邮电大学,拥有超过10年的嵌入式开发经验,致力于物联网和智能硬件的研究开发工作。在教学中以兴趣为导向,激发学生的创造性;以素质为基础,提高自身教学水平;以科研为手段,促进教学理念转变。通过信息工程专业综合改革,探索了以“学生学为中心”的教学模式,营造生动活泼的学习方法,提高学生独立思考问题、发现问题、解决问题的能力,激发学生的创造**。在研发及教学实践中指导学生实现200余个创新案例,并指导着一支物联网开发团队,曾在物联网、开源硬件等技术领域进行了多场学术报告,并且出版了《AllJoyn技术原理及物联网程序开发指南》《Arduino实战指南——游戏开发、智能硬件、人机交互、智能家居与物联网设计30例》《Arduino软硬件协同设计实战指南》等多部物联网技术方向的著作。
第3章 小花的饮料机项目设计 3.1项目背景 本章根据褚建红、陶曦的项目设计整理而成。 在宿舍里养绿植小花时,总是因为忘记浇水或者是不了解它的需求,而使绿植小花不能盛开。于是,本项目决定开发一款基于Arduino的自动浇花系统,方便浇灌绿植。 3.2创新描述 搭建多个土壤湿度传感器和水管接口,满足用户实现对多盆植物同时浇灌的需求; 还搭建了多个液体源,对不同植物的需求进行不同成分液体的灌溉; 该系统可以实现无人控制的自动灌溉,同时采用了YK04模块,通过红外遥控器传送命令,从而手动控制对电磁阀的开关控制,实现智能浇花。基于本项目的功能实现,将该系统命名为“小花的饮料机”。 3.3功能及总体设计 本系统主要实现对植物的实时监控,并控制继电器和电磁阀完成不同植物的浇灌功能,并添加了红外遥控、土壤湿度控制、温湿度传感功能。 3.3.1功能介绍 要实现上述功能,本项目采用Arduino UNO开发板和扩展板Arduino Sensor Shield V5.0作为电路板和土壤湿度传感器。设置好需要浇花的湿度,使传感器端口返回一个高电平信号,对继电器进行控制,*控电磁阀的开关,这样可以实现在无人管理的情况下自动灌溉。同时,也可以通过红外遥控模块直接控制电磁阀的开关,实现对植物的针对性灌溉(针对植物特需的成分)。本项目搭建了多条这样的灌溉线路,以实现对多盆植物的浇灌,并且通过LCD显示屏实时显示系统和小花的状况。 3.3.2总体设计 要实现上述功能需要将作品分成三部分进行设计,包括湿度读取控制、红外遥控控制和LCD显示。 1. 整体框架图 项目整体框架如图31所示。 图31系统框架图 2. 系统流程图 系统流程图如图32所示。 图32系统流程图 3. 总电路图 系统总电路图如图33所示,模块引脚连线如表31和表32所示,“_”表示不接线。土壤湿度传感器从下到上编号0~2; LED由左向右编号1~7; 电磁阀由左向右编号1~3; 继电器由左向右编号1~3。 3.3.3模块介绍 1. 湿度控制模块 1) 功能介绍 通过湿度传感器检测盆中土壤湿度,若湿度值未达到所设条件值,则传感器口返回一个高电平,控制继电器; 再由继电器控制对应灌溉源口的电磁阀进行浇灌; 一定时间后,关闭电磁阀,浇水完成。电路图如图34所示,传感器实物如图35所示,引脚连线如表33所示。 图33总电路图 表31引脚连线(一) Arduino UNO引脚土壤湿度 传感器0土壤湿度 传感器1土壤湿度 传感器2DHT11LEDLCD1602 显示屏 SCL—————SCL SDA—————SDA A0A0————— A1—A0———— A2——A0——— 2D0————— 3—D0———— 4——D0——— 5———OUT—— 6————LED4正极— 7————LED3正极— 8————LED2正极— 9————LED7正极— 10————LED6正极— 11————LED5正极— GNDGNDGNDGNDGND负极GND VCCVCCVCCVCCVCC—VCC 表32引脚连线(二) 继 电 器 1继 电 器 2继 电 器 3电磁阀1~3遥控接收板 GND接GND; VCC接VCC; OUT接LED4正极; 常开端接12V电源正极; 公共端接到电磁阀的正极GND接GND; VCC接VCC; OUT接LED3正极; 常开端接12V电源正极; 公共端接到电磁阀的正极GND接GND; VCC接VCC; OUT接LED2正极; 常开端接12V电源正极; 公共端接到电磁阀的正极正极接公共端; 负极接到外电源的负极VT接LED1正极; D0接LED2正极; D1接LED3正极; D2接LED4正极; GND接GND; VCC接VCC 图34土壤湿度传感器电路图 图35土壤湿度传感器 表33湿度控制模块引脚连线 土壤传感器引脚VCCGNDA0D0 Arduino UNO引脚5VGNDA0(接A0~A5均可)3(2~13均可) 2) 相关代码 //通过D0的值控制Arduino引脚3~5,置高电平时打开电磁阀 int a = analogRead(Moisture0); int b = analogRead(Moisture1); int c = analogRead(Moisture2); float d = 100*(1023-a)/1023; float e = 100*(1023-b)/1023; float f = 100*(1023-c)/1023;//计算湿度的百分比 if(d<=50||(float)DHT11.humidity<=20.00||(float)DHT11.temperature>=30.00){ digitalWrite(5,HIGH); //当土壤湿度或空气温湿度达到临界值时,将继电器置高电位,打开电磁阀,以下同理 } else digitalWrite(5,LOW); if(e<=50||(float)DHT11.humidity<=20.00||(float)DHT11.temperature>=30.00){ digitalWrite(4,HIGH); } else digitalWrite(4,LOW); if(f<=50||(float)DHT11.humidity<=20.00||(float)DHT11.temperature>=30.00){ digitalWrite(3,HIGH); } else digitalWrite(3,LOW); 2. 红外遥控模块 由YK04接收卡接收遥控器发出的指令,选择不同的线路输出高电平到继电器,从而控制各继电器下游电磁阀,实现浇灌。电路如图36所示,实物如图37所示,引脚连线如表34所示。本部分不用编写代码,接收板与遥控器配套,按下不同的按键时,相应的引脚被置成高电平。遥控器的按键A、B、C、D分别控制接收板的D0~D3; 当按键被按下时,相应的接口被置成高电平; VT用于监测信号是否有效,信号有效时被置成高电平 "从构思、设计到实现,深入理解Arduino项目开发 《Arduino案例实战》系统论述了Arduino开源硬件的开发方法和技术。书中以丰富的Arduino设计实例,介绍了智能硬件的物联网应用。在处理嵌入式系统的开发过程中,使用Arduino开源平台,将事半功倍,极大提高效率。 本书突出的特点 ? 典型场景的创新应用 ? 智能开源的编程实践 ? 不同领域的经典案例 ? 多种产品的功能实现 注:本书提供配套学习资源,下载地址为清华大学出版社本书页面。 "