Arduino毕业设计说明书(论文)模板示例_第1页
Arduino毕业设计说明书(论文)模板示例_第2页
Arduino毕业设计说明书(论文)模板示例_第3页
Arduino毕业设计说明书(论文)模板示例_第4页
Arduino毕业设计说明书(论文)模板示例_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计说明书摘 要本文针对Arduino能通过各种传感器感知环境的功能,对现有的物联网技术进行了分析和研究,详细介绍了Arduino平台下植物状态监测系统的设计与实现。文章首先分析了物联网技术的背景和意义。然后在第一章和第二章简单介绍了单片机和Arduino的相关信息,第三章介绍了本次设计所需要的器材,从第四章到第六章中详细描述了关键的数据上传和实时监控部分,包括:如何采集数据,如何进行数据上传,将从传感器上获取的数据上传到后台WEB,以及上传之后处理数据,设置预警等。最后本文还分析了在数据上传和处理数据时遇到的一些问题和解决方案,展望了一些扩展功能。【关键词】 物联网 Arduino 植物

2、状态 监测AbstractAccording to the Arduino through a variety of sensors to perceive the environment function, the existing networking technology for analysis and research, introduces the design and implementation of plant condition monitoring system based on Arduino platform.This paper analyzes the backg

3、round and significance of the technology of IOT firstly. And then, from the fourth chapter to the sixth chapter, the key data upload and real-time monitoring parts are described in detail, including: How to upload data, upload the data from the sensor to the background WEB, and processing data, set

4、the alarm, etc. Finally, this paper also analyzes some problems in data processing and data upload and solutions.【Key Words】 IOT Arduino plant condition monitoring目 录摘要IAbstractII目录III前言11单片机为核心器件Arduino21.1单片机定义21.2单片机和个人计算机之间的异同21.3单片机的功能21.4单视图22 Arduino的基本组成32.1 Arduino定义32.2 Arduino的诞生32.3 Ardu

5、ino语言32.3.1 关键字42.3.2 语法符号42.3.3 运算符42.3.4 数据类型52.3.5 常 量52.3.6 结 构62.3.7 功 能63 本次设计所需的硬件与软件73.1 Arduino UNO73.1.1 Arduino uno基本概要83.1.2 通信接口83.1.3 下载程序93.1.4 注意要点93.2 DHT11传感器和LY-6993.3 开发环境114 植物生长状态监测系统介绍124.1 设计思路124.2设计步骤134.2.1设置网络134.2.2获取数据134.2.3数据分析134.2.4处理分析结果134.2.5设置预警134.2.6与用户交互135植物

6、生长状态监测系统概要设计135.1工作原理135.2工作流程图156植物生长状态监测系统详细设计166.1设计目的166.2功能模块设计166.2.1网络连接166.2.2获取数据176.3系统调试196.3.1编译程序196.3.2上传程序207运行环境与结论247.1硬件环境247.2软件环境247.3运行环境247.4运行结果24存在的问题和不足28总结29致谢30参考文献31毕业设计说明书前 言物联网是新一代信息技术的重要组成部分,也是信息化时代的重要发展阶段。其中Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(Arduino I

7、DE)。它是一个基于开放原始码的软硬件平台,构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。Arduino包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则 是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。随着社会的发展,生产技术的更新,物联网理念如今已经逐渐深入人心,并随着传感器技术、通信技术和物联网技术的发展逐渐触及社会的每一个角落。不论在农业生产与个人生活中都可以用物

8、联网技术让其变得更好。在农业生产和个人生活中,当某些植物的养殖价值昂贵时,对其的实时监控就变得十分必要,而土壤湿度是植物生长状态的一项重要指标。例如郁金香的生长期适温为5-20,最佳温度为15-18,植株的生育温度应保持在0-25。郁金香根系的生长温度宜在5以上,14以下,尤为10左右最佳。花芽分化的适温为17-23,超过35时,花芽分化会受到抑制。另外,郁金香有极强的耐寒性,冬季可耐-35的低温,当温度保持在8以上时开始生长。本系统主要是完成了对土壤湿度的实时监测,并根据所需RH范围与实际RH比较,出现异常情况及时的提醒用户以及记录。其中对于系统来说最重要的就是数据的实时上传和与用户的交互。

9、1单片机为核心器件ArduinoDefinition 2.1 MCU1.1单片机定义The microcontroller, monolithic microcomputer (English: Single-ChipMicrocomputer), also known as micro controller (Microcontroller), is the central processor, memory, timer / counter (Timer/Counter), all the input and output interface are integrated in a mic

10、ro computer on an integrated circuit chip.单片机,单片微型计算机(英语:单片机),也被称为微控制器(单片机),是中央处理器,存储器,定时器/计数器(定时器/计数器),所有的输入和输出接口都集成在集成电路芯片上的微型计算机。The similarities and differences between the 2.2 microcontroller and personal computer1.2单片机和个人计算机之间的异同A computer that works to have the following parts: the central pr

11、ocessing unit CPU (operation, control) and random access memory RAM (data storage), read-only memory (ROM memory), input / output devices I/O (serial and parallel output port etc.). In the personal computer (PC) these parts are divided into several chips, mounted on a printed circuit board called on

12、 the motherboard. In SCM, these are all part of a piece of integrated circuit chip, therefore is called monolithic (single chip microcomputer) machine, and some in addition to the above part, is also integrated with other parts such as analog / digital conversion (A/D) and analog / digital conversio

13、n (D/A) etc. The application of computer in the high-end, in the low-end microcontroller applications, the two have their own living space, at least in the short term there will be one to replace another kind of situation.计算机工程有以下几部分组成:中央处理单元(CPU运行,控制)和随机存取存储器RAM(数据存储),只读存储器(ROM),输入/输出设备I/O(串行和并行输出端

14、口等)。在个人电脑(PC)这些部分被分成几片,安装在印刷电路板称为主板上。在供应链管理中,这些都是一块集成电路芯片的一部分,所以称为单片机(单片机),和一些除了以上部分,还结合其他部位如模拟/数字转换(A/D)和模拟/数字转换(A/D)等。计算机在高端应用,中低端单片机的应用,两者都有各自的生活空间,至少在短期内会有一个替代的另一种情况。2.3 MCU function1.3单片机的功能In the actual work where the computer is not any need for a high performance computer, a computer can con

15、trol the refrigerator temperature for core processor? The key is to see whether enough, whether there is a good cost performance ratio. If a refrigerator are needed to deal with core temperature control, the price is the price. MCU control, commonly used in industrial production and life related pro

16、cedures and controls (such as: electronic organ, refrigerators, air conditioners and other intelligence).在计算机不需要任何高性能计算机的实际工作中,计算机可以控制为核心处理器的冰箱的温度?关键是看是否足够,是否有良好的性能价格比。如果冰箱需要处理核心的温度控制,价格价格。单片机控制,常用于工业生产和生活有关的程序和控制(如:电子琴,冰箱,空调和其他情报)。2.4 single view1.4单视图This is an Atmega328P-PU microcontroller, 8 bit

17、 processor, AVR instruction set based on the frequency of 20MHz, memory of 32KB.这是一个atmega328p PU微控制器,8位处理器,基于20MHz频率AVR指令集,内存32KB。图1-1 Atmega328P-PU单片机2 Arduino的基本组成2.1 Arduino定义Arduino,是一个开放源代码的计算机控制器,基于开放源代码软件的硬件和软件平台,基于开放源代码的简单接口的I / O版本,并有一个类似的Java,C语言的开发环境,处理/接线。2.2 Arduino的诞生2005冬,马西莫Banzi和戴维

18、Cuartielles讨论学生抱怨微控制器问题缺乏是便宜和容易使用,讨论决定设计自己的电路板,电路板通过班齐戴维Mellis.设计学生的编程语言。两天后,戴维Mellis.写代码。三天以后,董事会是完整的。电路板被命名为Arduino。随后Banzi,Cuartielles,和Mellis把原理图在线。保持开源理念的设计,因为著作权法律监督是开源软件,但它是很难使用的硬件,他们决定采用创作共用许可证。在Creative Commons许可,任何人不得生产电路板的复制品,但也重新设计,甚至原设计销售文案。你不需要支付使用费,甚至不允许获得Arduino团队。只保留名称Arduino。它是作为商标

19、注册。2.3 Arduino语言Arduino语言是建立在C / C + +的基础,也是基于C语言。2.3.1 关键字 if · if.else · for · switch case · while · do. while · break · continue · return · goto 2.3.2 语法符号 · ; · · / · /* */ 2.3.3 运算符 · = · + · - · * · / 

20、83; % · = · < · > · <= · >= · && · | · ! · + · - · += · -= · *= · /= 2.3.4 数据类型 · boolean 布尔类型 · char 字符类型 · byte 字节类型 · int 整数类型 · unsigned int 无符号整型 · long 长整型 · unsigned lo

21、ng 无符号长整型 · float 实数类型 · double · string · array · void 2.3.5 常 量 · HIGH | LOW 表示数字IO 口的电平,HIGH 表示高电平(1),LOW 表示低电平(0)。 · INPUT | OUTPUT 表示数字IO口的方向,INPUT 表示输入(高阻态),OUTPUT 表示输出(AVR能提供 5V电压 40mA 电流)。 · true | false true 表示真(1),false表示假(0)。 以上为基础C语言的关键字和符号,大家可以了解,

22、具体使用可以结合实验的程序。2.3.6 结 构· void setup() 初始化发量,管脚模式,调用库函数等 · void loop() 连续执行函数内的语句 2.3.7 功 能数字 I/O· pinMode(pin, mode) 数字IO口输入输出模式定义函数,pin表示为013,mode表示为INPUT或OUTPUT。· digitalWrite(pin, value) 数字IO口辒出电平定义函数,pin表示为013,value表示为HIGH或LOW。比如定义HIGH可以驱动LED。· int digitalRead(pin) 数字IO口

23、读输入电平函数,pin表示为013,value表示为HIGH或LOW。比如可以读数字传感器。模拟I/Oint analogRead(pin) 模拟IO口读函数,pin表示为05(Arduino Diecimila 为 05(Arduino nano为07)。比如,可以读模拟传感器(10位AD,05V表示为01023)。 · analogWrite(pin, value)-PWM 数字IO口PWM输出函数,Arduino数字IO口标注了PWM的IO口可使用该函数。pin表示3,5,6,9,10,11,value 表示为0255。比如,可用于电机PWM调速或音乐播放。 时间函数 

24、3; delay(ms) 延时函数(单位ms)。 · delayMicroseconds(us) 延时函数(单位 us)。数学函数 · min(x,y) 求最小值 · max(x,y) 求最大值 · abs(x) 计算绝对值 · constrain(x,a,b) 约束函数,下限a,上限b,x必须在ab之间才能返回。 · map(value,fromLow,fromHigh,toLow,toHigh) 约束函数,value必须在fromLow与toLow之间和fromHigh与toHigh之间。 · pow(base,expo

25、nent) 开方函数,base的exponent次方。 · sq(x) 平方 · sqrt(x) 开根号3 本次设计所需的硬件与软件实验器件数量Arduino uno1块EthernetW5100扩展板1块土壤湿度传感器1个DHT11温湿度传感器1个导线若干表3-13.1 Arduino UNOArduino Uno是Arduino接口USB系列的最新版本,如Arduino平台参考标准模板。乌诺处理器核心是ATmega328,14个数字输入/输出(包括6路PWM输出),6个模拟输入,一个16MHz晶体振荡器,一个USB端口,一个电源插座,一个扩展报头和复位按钮。联合国已经发

26、布了第三版,与前两版相比具有以下新的特点:In the AREF two pin SDA and SCL increase, increase IOREF and support the I2C interface; a reserved pin, future expansion should be compatible with 5V and 3.3V core board. This improves the reset circuit design, USB interface chip by ATmega16U2 instead of ATmega8U2. Figure 4-1 im

27、proved Arduino UNO.在任命两引脚SDA和SCL的增加,增加Ioref支持I2C接口;预留针,未来的发展应该与5V和3.3V的核心板兼容。这提高了复位电路的设计,USB接口芯片的atmega16u2代替atmega8u2。图3-1改进Arduino Uno。图3-1 Arduino UNO3.1.1 Arduino uno基本概要l 处理器 ATmega328 l 工作电压 5V l 输入电压(推荐) 7-12V l 输入电压(范围) 6-20V l 数字IO脚 14 (其中6路作为PWM输出) l 模拟输入脚 6 l IO脚直流电流 40 mA l 3.3V脚直流电流 50

28、mA l Flash Memory 32 KB (ATmega328,其中0.5 KB用于bootloader) l SRAM 2 KB (ATmega328) l EEPROM 1 KB (ATmega328) l 工作时钟 16 MHz 3.1.2 通信接口串口:ATmega328内置的UART可以通过数字口0(RX)和1(TX)与外部实现串口通信;ATmega16U2可以访问数字口实现USB上的虚拟串口。 TWI(兼容I2C)接口。SPI 接口。3.1.3 下载程序Arduino UNO上的ATmega328已经预置了bootloader程序,因此可以通过Arduino软件直接下载程序到

29、UNO中。 也可以直接通过UNO上ICSP header直接下载程序到ATmega328。 ATmega16U2的Firmware(固件)也可以通过DFU工具升级。 3.1.4 注意要点Arduino UNO上USB口附近有一个自恢复的保险丝,对电路起到保护作用。当电流超过500mA时会断开USB连接。 Arduino UNO提供了自动复位设计,可以通过PC主机复位。这样通过Arduino软件下在程序到UNO中,软件可以自动复位,不需要手动复位按钮。在印制板上丝印“RESET EN”处可以使能和禁止该功能。3.2 DHT11传感器和LY-69DHT11数字温湿度传感器是一款含有已校准熟悉信号输

30、出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在即为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测型号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为给类应用甚至最为苛刻的应用场合的最佳选择。产品为4针单排引脚封装,连接方便。 技术参数 供电电

31、压: 3.35.5V DC 输 出: 单总线数字信号 测量范围: 湿度20-90%RH, 温度050 测量精度: 湿度+-5%RH, 温度+-2 分 辨 率: 湿度1%RH, 温度1 互 换 性: 可完全互换 , 长期稳定性: <±1%RH/年 图3-2 DHT11LY-69土壤湿度传感器表面采用镀镍处理,有加宽的感应面积,可以提高导电性能,防止接触土壤容易生锈的问题,延长使用寿命;产品可以宽范围控制土壤的湿度,通过电位器调节控制相应阀值,湿度低于设定值时,DO输出高电平,高于设定值时,DO输出低电平;比较器采用LM393芯片,工作稳定,工作电压3.3V-5V,设有固定螺栓孔,

32、方便安装,PCB尺寸:3.2cm * 1.4m。 图3-3 LY-69/FC-283.3 开发环境本次设计使用的软件为Arduino开发环境Arduino-1.5.5-r2,如图3-4所示。图3-4 开发环境4 植物生长状态监测系统介绍4.1 设计思路对于植物养殖最重要的就是植物的养殖环境,环境的整体情况直接影响植物的生长。环境的整体情况可以从一些具体的数据体现,例如空气的温度,相对湿度,土壤的温度,相对湿度。我们可以用不同的传感器可以分别检测到这些数据。采集到数据后是最重要的分析数据,我们先把数据通过Arduino UNO和W5100扩展板上传到后台WEB平台,然后再WEB平台内设置相应的温

33、度,湿度正常值,最佳值和低于标准或高于标准的值。将他们和上传的数值相较,如果不正常的话做出相应的反应,例如低于或高于标准值的时候,发送短信、邮件和微博提醒。后台WEB平台设置相应的命令可以让我们在微信中使用,使用相应命令可以随时查看植物生长情况。4.2设计步骤4.2.1设置网络设置上传数据需要的网络环境。4.2.2获取数据利用DHT11和LY-69两个传感器分别检测出空气和土壤的温度和相对湿度。以Arduino板连接传感器获取检测出的数据。4.2.3数据分析将获取的不同数据,以不同的资源进行处理,根据数据做出对当时植物生长环境的判断。4.2.4处理分析结果将数据记录下来,随着时间推移形成曲线图

34、。4.2.5设置预警将温度、相对湿度数值的不同范围分别设置为正常、良好、非正常。4.2.6与用户交互用户可以通过微信随时查看植物生长环境情况,监测系统也会定时发送监测情况到相应微博,相应数值不正常时会通过短信、邮件提醒用户。5植物生长状态监测系统概要设计5.1工作原理用户将系统成品连接网线电源,放置于想要监控的植物旁,将土壤湿度传感器插入土壤就可以开始监控其生长环境。1) DHT11会采集空气中的温度和相对湿度,LY-69会采集土壤中的相对湿度。2) 通过W5100扩展板,会将采集的数据上传到后台WEB端。3) WEB端会记录接收到的数据,绘制曲线图;在特定的时间将监测到的情况以微博、邮件的形

35、式记录下来。如某时刻接受到的数据部在标准内,会发送短信提醒用户。用户可以通过微信随时查看监测到的情况。图51 监测系统工作图5.2工作流程图图 52 监测系统工作流程图6植物生长状态监测系统详细设计6.1设计目的当前很多人都有养殖一些花草类植物的爱好,在经过一些查找资料后会知道怎么去养好一种植物,但是大多数人的工作都是很繁忙的,他们没有太多时间去管理自己所养的植物,而又不想自己养的植物出现不良的生长状况。对于植物的实时监控就能解决这个问题。本设计题目为Arduino平台下植物状态监测,其用途就是用来对植物生长的环境进行监测,进而得到植物的状况。将得到的植物状况定时发送给用户,用户也可以随时查看

36、监测到的植物状况。6.2功能模块设计6.2.1网络连接设计思路本次设计采用的是Arduino物联网的技术,网络连接是必须的。经过查找资料后发现有很多连接网络的办法,有Arduino+以太网,蓝牙等方法,最后选择的是Arduino+w5100扩展板连接网络。实现方法将Aduino UNO 3与配套的Ethernet W5100扩展板连接到一起,以Aruidno UNO 3 来控制程序,Ethernet W5100扩展板连接网线通过路由器上网。以笔记本作为Router,网线一端直接连接到笔记本,另一端连接Ethernet W5100扩展板。笔记本需要将类似Router的

37、功能打开,将正在使用的网络适配器打开,设置Internet协议版本4(TCP/IPv6)设置DNS和主机的IP地址,子网掩码。再去Arduino 1.5.5-r2设置IPAddress ip,IPAddress mydns,IPAddress gw,IPAddress subnet。将网络的属性打开,共享属性里面勾选允许其他网络用户通过此计算机的INTERNET来连接,设置允许使用WEB服务器HTTP80端口。核心代码图6-16.2.2获取数据设计思路首先测试连接成功与否,成功则测试获取数据成功与否,成功输出到串口监视器,不成功则请检查针脚。实现方法1

38、) 获取DHT11的数据:设置数据接受引脚为3,将Arduino UNO3扩展板W5100上的电源5V和GND线连接到面包板上,将DHT11按照对应引脚连接到面包板,将DHT11在面包板上对应的数据引脚连接到Arduino UNO3扩展板W5100上3号引脚。设置好相应的数据接口名字。2) 获取LY-69的数据:将LY-69连接到控制板,控制板上有ACC、GND、DATA线,分别按照方法1)的连接方法连接到面包板,将Arduino UNO3扩展板W5100上数据引脚3号连接到面包板,再把LY-69控制板的DATA线连接到面包板对应的引脚中。设置好相应的数据接口名字。核心代码1)图

39、6-22)图6-36.3系统调试6.3.1编译程序点击编译按钮,编译按钮会发成黄色,下面出现正在编译sketch.,这表示软件正在对你所写的程序进行编译,如图6-4所示。图6-4 编译程序 等待一会,会看到编译按钮恢复原来的状态,下面出现编译完成,这表明,程序编译成功,并且没有语法上的错误。如图6-5所示。图6-5 编译完成6.3.2上传程序上传程序前先将板子型号和com口选好。点击工具->板选择开发板型号,如图6-6所示。图6-6 选择板型查看串口,然后选择正确的串口,选择过后串口前面会打钩,如图6-7所示。图6-7选择串口点击上传按钮,同时板子上标有TX和RX的灯会亮,如图6-8所示

40、。图6-8 上传程序查看串口,连接成功如图6-9所示。图6-9 串口查看7运行环境与结论7.1硬件环境处理器:Intel(R) Core(TM) i3 CPU M370内存(RAM):4GB7.2软件环境操作系统:Windows 7 professional (Service Pack1)系统类型:64位操作系统编程语言:arduino/c开发工具:Arduino 1.5.5-r27.3运行环境软件要求:Windows XP(须安装Microsoft .NET Framework SDK),Windows 7(Microsoft .NET Framework SDK),Linux(须安装Mon

41、o)硬件要求:CPU :Intel Pentium IV(或更高)内存:512MB(或更高)7.4运行结果经过多次的测试,该程序能够准确的采集数据并在串口显示,能够实现任务书要求的功能,基本满足植物状态监测的整体要求,运行结果如图。图7-1 运行结果图1图7-2 运行结果图2图7-3 运行结果图3图7-4 运行结果图4图7-5 实物图存在的问题和不足在设计之初需求分析做的太简单,对于很多问题没有考虑到。遇到的问题其实很多,就不一一举例,简单说几个遇到的问题。面包板的选择问题,开始用的买Aduino uno送的面包板并不是很好用,经常出现断开的情况,后来又专门买了一款开发用的面包板解决了问题。在

42、连接网络的时候也出现了问题,开始觉得应该只要能上网的网络应该都能连接上,能够实现数据上传,结果并不是如此,有些网络对于后台WEB端根本就连接不上,导致的数据上传失败,例如铁通网络在上传到乐联网的时候就无法上传,铁通能够登陆乐联网,但是不能上传。通过查找资料,发现乐联网所用的是阿里云BGP数据中心,是电信网通双线接入,并没有铁通的,铁通网络不能对其上传数据。最后是换成了电信宽带才成功上传。在写代码的过程中,开始对于几个传感器是分开写的,没有整合在一起,虽然分开的时候每个传感器都没有问题,可以实现采集与上传,但是整合在一起后发现Arduino中格式化输出也不能随便写,会导致连接问题,这个问题困扰了很久,最后控制了格式后,才能成功将几个传感器的采集数值都用格式化输出显示。做设计的时候也存在很多不足,自己对于知识掌握度比较浅的问题也尤为突出,在做自己不擅长或者说没接触过的领域时,功课做的不够就草率开始,让自己犯了很多可以避免的错误。以后的学习生活中当尽量避免这次犯的错误。总结此

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论