基于Linux服务器网络温度控制系统设计论文.docx
- 文档编号:27060278
- 上传时间:2023-06-26
- 格式:DOCX
- 页数:62
- 大小:1.03MB
基于Linux服务器网络温度控制系统设计论文.docx
《基于Linux服务器网络温度控制系统设计论文.docx》由会员分享,可在线阅读,更多相关《基于Linux服务器网络温度控制系统设计论文.docx(62页珍藏版)》请在冰豆网上搜索。
基于Linux服务器网络温度控制系统设计论文
本科毕业设计(论文)
论文题目:
基于Linux服务器网络温度控制系统
摘要
随着嵌入式linux系统的高速发展,越来越多电子产品采用嵌入式Linux系统为控制中心,并且linux服务端为多用户、多任务操作,并且具有多种I\O模式和对于共享资源的处理,采用多线程、多进程模式,客户端可以通过网络套接字TCP\IP协议连接主服务器,阻塞或非阻塞及轮询方式等操作控制,显示并控制采集端和服务器,并且添加了精简版的数据库sqlite3,用于保存用户登录信息和采集温度的历史记录。
此毕业设计将设计一个基于嵌入式Linux服务器的网络温度控制系统,安卓客户端作为显示控制端,18B20为采集数据端。
关键词嵌入式Linux;温度;网络服务器;Android
Abstract
WiththerapiddevelopmentofembeddedonLinuxsystem,moreandmoreelectronicproductsusestheembeddedLinuxsystemforthecontrolcenter.AndLinuxserverformultipleusers,multitaskingoperatingadopt,TheclientcanthroughTCP/IPprotoclonetworksocketconnectionmasterserver,blockingornon-blockingandpollingmodeoperationcontrol,displayandcontroloftheclientandserver,Andaddtheliteversinofthedatabasesqlite3,usedtoholdtheuserlogininformationandcollentinghistoricalrecordofthetemperature,thegraduatiomdesignwilldesignatemperaturecontrolnetworksystembasedonembeddedlinuxserver,theandroidclientasadisplaycontrolterminal,18b20forcollectingthedata.
KeywordsembededLinux;Temperature;Thewebserver;Android
4.1.2sqlite3程序的编写14
第1章绪论
1.1课题研究背景和意义
在当今手机迅速的普及下,手机在人们的日常生活中早已成为了不可缺少的工具,在如此普及的情况下,如果增加更多的功能在上面,便会方便、快捷、高效的改善我们的生活,在手机快速发展迭代的情况下,它也不仅仅只是简单的作为通信设备来使用,它的功能更为的强大和多功能化,手机的快速发展导致许多应用偏向微型电脑化,智能化和多功能化。
比如:
视频聊天、邮件收发、智能拍照、商务及办公智能化。
以嵌入式服务器为核心的温度监控系统是监控系统中主流的研究现状,把采集的温度信息显示在安卓客户端手持设备中,可以方便地接入计算机网络,也可以接入Web网页访问界面。
用户只需简单通过登录Web访问界面就可以方便地观看Web服务器上的温度信息。
通过手持设备来控制显示设置终端,检测温度装置,方便快捷,并且可监控的范围极广,系统扩展功能强,与传统的采集装置相比,具有更好的移植性,通过不同的平台移植,可以实现多功能监控系统,并且性能很稳定,可维护性也很高。
嵌入式系统是一个专用的系统。
以应用为主,软件可以修改裁剪。
硬件大小也可控制,对于专用的应用可以取特定的功能,就是一个专用的控制系统。
减少了不必要的模块,例如多余的硬件和软件等。
因此成本较低,后期的维护也很方便,功能可以灵活选择。
灵巧方便,适用于社会的多方面,例如工农业,教育科学,航空航天等各方面都有非常好的应用,整个社会的快速发展离不开嵌入式的发展。
生活中也有许多嵌入式产品。
例如:
各种手持设备,手机、mp3、平板电脑、家庭里用于上网的路由器、多功能电视机,汽车行业的各种设备,导航仪等汽车专用设备。
PC电脑等,工业控制中的自动控制系统,以及各种制造业的专用机器等。
嵌入式系统无处不在。
作为当代大学生,应当学习先进的技术和科学,以嵌入式为例,突破51单片机,做到功能更为强大的系统,和学习多方面的知识。
此论文就是设计基于Android/Web和Linux平台设计与实现的网络温度控制系统。
鉴于以上情况,该课题的研究、开发具有重要的理论和实践意义。
1.2嵌入式系统发展和现状
1.2.1嵌入式操作系统
在各种大型嵌入式应用系统中,通过各种模块化的编程,集中整合成一个安全、高效又稳定的控制系统。
使得嵌入式开发更方便,来管理内存分配、中断处理、任务间通信等功能,这就是嵌入式操作系统。
嵌入式操作系统的引入大大提高了嵌入式系统的功能,方便应用程序的设计,但占用更多的系统资源,所以大型系统的开发就需要用到嵌入式开发。
因为嵌入式操作系统往往都是在立即响应的情况下工作,不应当有高延迟的存在,所以需要很高的实时性,即嵌入式系统基本都属于实时操作系统。
通过中断处理,来调度优先级高的进程,实现多任务处理。
并且在软件和硬件的改进下,使得系统响应速度更快,用调度可以调用一切的资源来实现控制任务,因此保证了具有很高的实时性。
实时性很高,但由此也有一系列弊端,即软件模块开发难度较大,并且需要专用的开发工具:
仿真器、编译器和调试器等。
实时操作系统经历了三个发展阶段,1、早期的实时操作系统。
它并不能称为实时操作系统,仅能提供简单的时钟管理及对系统的初始化管理;2、专用实时操作系统。
与需要的硬件相关联。
但是在特有的情况下才能够使用,并且它的可移植性也不好;3、通用实时操作系统。
雷同的多任务机制是可以共享的,所以能够把这部分的模块连接起来,就可以构成及时的操作系统内核,底层的特性可以关闭掉。
许多传统操作系统的特征,包含任务办理、任务间通信、同步互斥、中断控制、内存管理等功能、许多大型公司看到了嵌入式发展的无限美好于是随后出现了VxWorks、QNU公司的QNX、PalmOS、WinCE、嵌入式Linux,以及国内的DeltaOS和麒麟系统等嵌入式操作系统。
实时操作系统具有支持异步通信的功能,可以对于程序优先级的高低来判断进行调度使用,多个用户也可以同时访问和使用,以及多进程使用等。
随着智能化、微型化操作系统的发展,有三大系统基本占据了整个手持式嵌入式设备当中:
如07年苹果公司发布的iOS系统;08年谷歌又发布了Andriod操作系统;10和12年,微软也分别发布了WindowsPhone7和WindowsPhone8系统。
这几年里,伴随着这三大智能系统的迅速发展,一系列智能化的手持式、微型化的设备快速增长,并且迅速的更新迭代。
进入了大信息化时代,人们的生活也大为改观,人们之间的通信聊天,娱乐放松、学习办公、以及商务运用的得到了极大的变化,使得智能手机、平板与PC基本没有界限之分,社会的科技先进性也因此得到了极大的进步。
除此之外,基于Linux开发而来的三星和Ubuntu等都开发了属于自己的操作系统和手机。
辉煌了近十年的Symbian、黑莓OS淡出了历史的舞台,安卓系统的不断发展,一方面是因为隶属于开源的嵌入式Linux系统,但它又不是纯粹的开源系统,运用多了一层的硬件板级支持包,将代码重要的逻辑部分与开源的部分相分离,做到商业化,而真正的如Ubuntu等就属于完全开源系统,因此基于Linux开发的系统适合小型厂商和个人的开发。
1.2.2嵌入式Linux
Linux是目前发展最快、应用最为广泛的操作系统之一,已成为全球第二大操作系统。
20世纪60年代初,大部分计算机都是采用批处理的方式,为了改变这种现状,美国的电报及电话公司、通用电气公司及麻省理工学院开始计划合作开发多用户分时及多任务的操作系统,也就是MUTICS。
1969年2月,贝尔实验室的成员通过使用汇编语言,写了一个简单的操作系统Unixs,也就是后来UNIX的最初的原型。
之后用C来重写,UNIX开始广泛流行。
之后RichardStallman又于1984年创办了GNU(即GNU’sNotUNIX),该目标是创建一套完全自由的操作系统。
1991年一个叫做LinusTorvals的芬兰大学生出现了,开始编写自己的类UNIX操作系统,也就是后来的Linux,随着它的伟大产生,李纳斯也被誉为“Linux之父”。
之后,越来越多的爱好者们加入进来,不断的通过自己的努力和爱好,在网络、社区、邮件等方式来给Linux出谋划策,增砖添瓦。
Linux逐渐壮大起来,功能也愈加完善。
最终成为了最具影响力的嵌入式操作系统。
Linux作为嵌入式操作系统由下述几大优势:
1、它的开发成本很低;2、适用于多种操作系统;3、它的内核可以自己定义封装;4、性能非常优异,扩展功能特性强,支持网络服务。
Linux属于GNU系统,因此必须采用GPL(公共开源许可证),必须保证源代码的公开,于是许多公司在源代码的基础上进行一些加工,形成属于自己的操作系统,如:
美国RedHatLinux,法国的MandrakeLinux,德国的SUSELinux,我国国内也有中文版的Linux,红旗Linux,以及最新的麒麟系统。
一些常见的unix和类unix版本:
Solaris、IBMAIX、RedHat、SUSE、Ubuntu、FreeBSD等等。
由于本设计采用Ubuntu操作系统设计完成,因此简单介绍一下Ubuntu系统,Ubuntu系统主要是以桌面服务应用为中心。
“Uhuntu”的意思翻译过来是指“人性”,就像我国先秦时期所提倡的“仁爱”,Ubuntu基于Debian发行版和桌面系统,Ubuntu给用户提供自由的编程思想和环境,内核完全开源。
可以自由的修改和使用。
1.2.3ARM简介
人们最初听到ARM时,都不知道是什么,它会用来做什么?
是和单片机一样的吗?
原本ARM(AdvancedRISCMachines)是分3种意思的:
1、是一个公司的名字;2、也是一类微处理器的统称;3、更是一种技术的名称。
ARM公司与1991年成立于英国剑桥的ARM公司,该公司是主要研究技术,芯片是由其他公司去生产,他们主要卖自己研发的技术。
采用ARM技术的微处理器的应用占据了大多数的市场份额,并且在手机市场,更是有着垄断地位。
按照处理器内核的体系结构,可以将嵌入式处理器分为:
MIPS处理器、ARM处理器、PowerPC处理器、ColdFire/68K处理器等。
ARM架构处理器功耗低、性能优异、成本低廉的特点等。
因此在嵌入式应用领域中具有领先地位。
ARM微处理器选用的是RISC(精简指令集)体系结构。
主要特征为有着大量的寄存器,采用Load/Store体系结构,并通过单时钟周期扩展了ARM指令集。
ARM处理器有如下几个系列:
ARM7、ARM9、ARM9E、ARM10E、ARM11、Cortex-A8、Cortex-A9、Cortex-A15等。
ARM7内核采用冯.诺依曼体系结构,数据和指令采用同一条总线,内核采用3级流水线。
3级则只有取指-译码-执行。
英特尔生产了全球大量的PC处理器,但是随着ARM的发展,英特尔市场份额处理器出现了下滑,ARM处理器却稳步上升,牢牢占据了手机平板的市场。
1.2.4Android简介
当今手机操作系统有iOS、WindowsPhone、黑莓和塞班系统等,但是后两者已经被市场淘汰,目前基本只有iOS和Android两种操作系统主要承担着手持式设备的市场。
本文基于Android设计显示控制终端界面,因此,着重讲解Android系统。
Android最初是由谷歌公司发布,也是基于Linux内核开发的专用小型化,手持式设备系统中。
是21实际极为重要的电子产品发明。
1.3主要研究内容及结构
1.3.1研究内容
本毕业设计在宿主机VMwareWorkstation虚拟机中安装Ubuntu操作系统下通过shell编写主代码,然后编译,并通过串口连接单片机18b20采集温度,由安卓客户端APP显示并控制显示终端。
本课题的主要研究内容包括:
(1)了解嵌入式Linux系统的开发流程;
(2)搭建开发平台:
搭建xshell控制终端,配置环境变量;
(3)主服务器中多线程的使用;
(4)搭建连接客户端的套接字网络编程;
(5)掌握嵌入式Linux的程序开发,以及编译、调试方法和步骤。
需要解决的关键性问题:
(1)网络通信模块的建立;
(2)主服务器逻辑关系,线程间通信设计;
(3)Sqlite3数据库的建立;
1.3.2论文结构
本论文共六章:
第一章,主要讲课题的研究目的及意义,课题现状以及作者所做的工作进行简略的介绍;对嵌入式操作系统进行梳理和介绍和以比较;对51单片机和采集温度期间18b20做简单详解;对Android界面开发进行基本的介绍。
第二章主要搭建嵌入式开发平台。
介绍Ubuntu、VMwareWorkStation及其相关的使用和技巧
第三章主要介绍了本系统的硬件平台。
先简单介绍了系统的整体架构,之后对硬件开发板做简单介绍。
第四章主要是详细介绍系统的设计流程,包括数据库、网络套接字的建立,设计主服务器的逻辑功能代码。
第五章主要是用于调试和解决编译过程中出现的问题。
第六章是总结与体会,本设计的一些个人感想以及学习到的知识的理解。
第二章Linux开发平台
2.1开发环境的搭建概述
2.1.1硬件平台
X86、,局域网、18B20、单片机。
2.1.2软件平台
(1)操作系统
本次毕业设计使用虚拟化平台VMwareWorkstation,并在其中建立虚拟机,进而在该虚拟机之中安装linux3.0、ubuntu系统。
(2)安卓开发环境
用到java、Eclipse、android、ADT等开发安卓app。
编译器:
lsqlite3、gcc、makefile工具、库函数等。
(3).主机和硬件采集端相连接的串口
2.2软件平台的安装和搭建开发环境
2.2.1虚拟化平台简介和安装
毕业设计中的开发平台是Linux操作系统,其是安装在VMwareStation9.0这个虚拟化平台中的,可以方便的与Windows操作系统进行数据共享和传输。
VMwareWorkstation功能非常强大,可以给主机提供虚拟机功能,即在一台主机上同时可以运行两个不同系统,而不需要重新启动主机。
可以很方便的在主机系统中运行虚拟机进行软件的开发,并且也可以支持交叉编译,提供很好的解决办法。
非常灵活,比其他的虚拟化软件平台无论是在技术还是在功能完善性上面好很多。
通过使用这款软件,多个虚拟机可以建立在主机上。
虚拟机是运行在同样的操作系统底层硬件环境中,就是和主机共用。
Linux是类似于UNIX系统的系统。
Linux操作系统内核的名字也是“Linux”。
Linux操作系统同时也是自由软件运动中和开放源代码社区发展中最著名的例子。
先新建一个虚拟机
图2.1新建虚拟机
之后选择Linux系统,配置虚拟机保存路径如图表示虚拟机设定完毕
图2.2虚拟机配置完毕
2.2.2ubuntu介绍和在vmware中安装
简单介绍一下Ubuntu系统,Ubuntu主要开发桌面应用程序,有着良好的人机交互界面,和控制终端shell界面。
它的一些命令,对于专业的开发人员非常好用。
“Uhuntu”可以当作中文的“人性”,可“宽容”,Ubuntu基于Debian发行版和GNOME桌面环境,Ubuntu在于给用户提供稳定的,自由的开发平台。
先利用系统镜像安装UBbuntu系统,之后选择Linux版本,并设置Ubuntu系统将硬盘大小,并对磁盘进行分区,分区完成之后点击安装,设置登录名、机器名和密码耐心等待安装完成,之后会出现RestartNow按钮,点击重启,下图为重启之后的登录界面:
图2.3登录界面
2.2.3配置vmware
点击编辑虚拟机设置,内存配置大小因主机配置而定,一般设为1G或2G,如图所示:
图2.4配置vmware
之后会用的非常有用的共享文件夹及虚拟机与主机可以很方便的进行文件共享,即设置共享文件夹
点击虚拟机设置->选项->共享文件夹,点击总是启用,并设置桌面路径,之后点击确定。
图2.5共享文件夹的配置
2.2.4安装VMwareTools
点击虚拟机的VM选项,点击“VM”下载安装“InstallVMwareTools”,会自动下载该软件,前提是需要连接网络,从最开始的配置网络端口,连到主机网端。
本设计版本是VMwareTools-8.1.4-227600.tar.gz
VMwareTools是VMware虚拟机中的工具,是VMware用来使得显卡的性能更为优异,以及让虚拟机同步主机时钟的程序。
只有安装好了VMwareTools,才能实现主机与虚拟机间的文件共享,如果不安装这个工具,有些功能无法使用,比如鼠标拖不出虚拟机界面,否则就需要按Ctrl+Alt,也可以是的虚拟机的屏幕最大化。
共享文件夹非常有用,方便在windows下编写代码,然后放在共享文件下通过linux来编译运行,就很方便编程。
点击虚拟机工具栏的设置按钮,选择共享文件夹常开,之后在Linux界面,添加共享文件夹的目录。
建立好共享文件以后,就可以在目录为/mnt/hgfs/gx目录下可以查看到共享的文件。
下面讲述如何详细装VMwareTools的过程:
(1)点击菜单“VM”选项卡,选择Installvmwaretools
之后安装的.gz格式的压缩文件包
(2)cd/media/VMware\Tools/
就会看见这个压缩包
(3)tar-zxvfVMwareTools-8.1.4-227600.tar.gz/tmp/
解压该压缩包到/tmp目录下面
(4)cd/tmp/vmware-tools-distrib/
(5)./vmware-install.pl
这样就进入安装vmware-tools的界面了,之后一直按回车就可以安装完成。
(6)安装完VMTool之后,再进入/mnt/hgfs/目录下,就可以看到已经共享的文件了。
第3章系统总体方案设计
3.1系统框架概述
根据网络服务器温度采集系统的需求分析,本文选择了基于18b20和51单片机来作为采集端采集温度值,下文将对其中硬件设备做介绍。
软件平台选择Linux操作系统。
毕业设计中的开发平台是Ubuntu操作系统,其是安装在VMwareStation9.0虚拟化平台中的,可以方便的与Windows操作系统进行数据共享和传输,通过共享文件夹与主机进行文件共享。
3.2整体框架流程图
图3.2整体流程图
第四章系统详细设计
4.1数据库的建立
4.1.1sqlite3简介和使用
在http:
//www.sqlite.org/download.html网址上下载数据库源代码。
VMwareTools-8.1.4-227600.tar.gz之后再Linux服务器上通过命令解压并安装成功
Sqlite由于具有体积小、操作方便、管理简单并且易于移植等种种优点,成为了目前最流行的嵌入式开源数据库,并且很方便的能够嵌入到应用程序中,成为了手机等微型的设备中最受欢迎的小型化数据库,sqlite数据库与BerkeleyDB和MemBASE比较起来,对于关系型的数据库有非常好的支持,sqlite很灵巧,并且执行速度非常快,它没有高并发、细粒度访问控制、存储控制和SQL语句运用等这些功能,因此换来了属于它专属的功能特性。
Sqlite具有一致性的文件格式,适合嵌入式移动设备的运用,并且还具有很好的数据分析特性,但它也有不可避免的劣势,一、由于sqlite依赖OS的文件系统,所以如果多个客户端来连接的话,效率就会很低;二、同样对于数据量较大时,效率也不高;三、数据锁粒度很低,所以对于高并发不是支持。
sqlite的核心接口:
1、sqlite3_open,通过该函数打开已存在的数据库文件,如果没有的话就会建立一个新的数据库文件在制定的目录下;2、sqlite3_prepare将SQL文本转化为prepare_statement对象,并且返回一个指向该对象指针;3、sqlite3_step执行完以后将会返回该对象的第一句,可以通过不断调用来迭代后面的数据行;4、sqlite3_column用来获取当前行指定的数据列的内容,对于有多种不同的函数用来返回不同的数据类型。
4.1.2sqlite3程序的编写
先宏定义两个数据库表,用户信息表和历史记录存放表,之后定义一个结构体,该结构体包含用户名(日期)及用户密码(温度值)。
取结构体的别名为DB_T
之后在主程序中开辟一个64K大小的空间,用来存放发送给客户端的历史记录数据格式,如下:
建立数据库的一些函数接口,用于实现数据库的功能:
打开数据库
关闭数据库:
在本设计书后附有详细代码详解数据库的功能函数的实现,其中插入和查询最重要的两个数据库实现具有相同类似性,即调用sqlite3_exec()函数来执行相应的功能,此处用以详细讲解,以免发生混淆。
在查询数据库sql_search()函数中,需要重复调用一个回调函数,即对intSelectCallBackHis(void*para,intf_num,char**f_value,char**f_name);函数的调用f_value作为一个指针的指针,具有两个值,我们分别把它用作D开头的作为DATA日期格式,T是温度值,用格式化语句实现,
sprintf(temp,"D%03d:
%s,T%03d:
%s,",i,f_value[0],i,f_value[1]);
之后用strcat(result,temp);语句将历史记录打包,发给客户端,在发送时也会涉及到两个问题,即先发送数据的长度,让客户端可以很好的解析数据,然后在发送实际的数据值,实现功能代码如下:
其中用线程锁将资源保护起来,后面会讲到共享资源的保护,还会涉及。
其二还有一个回调函数用于不断查询用户信息的函数,与历史记录回调函数相似,即
intSelectCallBack(void*para,intf_num,char**f_value,char**f_name)区别在于申明这个函数,历史记录回调函数是SelectCallBackHis,参数一样,但表示的意义不同,这个函数的f_value[0]和f_value[1]分别表示用户名和密码信息。
其次就是更新用户名和密码的函数
当采集温度以后,会将此温度值和时间日期值作为两个参数存放到历史记录表中,实现这部分功能的代码如下:
其中非常重要的日期转化格式实现代码为:
4.2主服务器的接口函数实现
4.2.1外部接口
串口:
套接字:
4.2.1内部接口
数据库函数的接口:
需要创建客户端连接及实现函数功能的一些接口函数:
4.3多线程模式及共享资源的保护
由于采用多进程模式需要各程序模块具有良好的独立性,之间交互信息较少,而本
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Linux 服务器 网络 温度 控制系统 设计 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)