ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:2.40MB ,
资源ID:4515813      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4515813.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(基于RaspberryPi实现的智能家居36.docx)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于RaspberryPi实现的智能家居36.docx

1、 摘 要本文以树莓派为载体进行智能家居控制器的设计。在对现在三种市面上的网络电视的比拟中引出毕设的主角树莓派。首先是LINUX系统常识性的介绍;然后是在ARM/LINUX平台上面开发应用的两种方法:调用系统已有资源、做程序C经典法、PYTHON快捷法;然后通过简单的对于GPIO口的使用点亮LED,建立家庭内无线局域网和网络电视的配置展示了本地应用的种种可能;随后简略介绍了根本网络协议TCP/IP,并在此根底上比拟了五种不同效劳器的优缺点,并将我们的效劳器暴露给外部网络,介绍了实现远程视频监控的两种方法及其比拟;最后是软件源的建立及其意义。在结论中详细罗列了自己对于整个平台的总体认识。关键字 :

2、智能家居;树莓派;Arm ;Linux Abstract The whole work of my graduation project is related to Raspberry Pi , an Arm & Linux development platform . As an introduction , the first two chapters show out some methods of smart home application development on this platform and the capability of Raspberry Pi by ticki

3、ng the GPIO ports and setting up a home-scale local wireless network. Then a briefly description of several primary internet protocol ,comparing 5 different ways of web-server building , putting forward web-server to the outside world .Finally , my judgment about the entire development platform .Key

4、words ::Smart Home;Raspberry Pi;Arm;Linux 目 录摘 要IAbstractII目 录III第1章 绪论11.1 课题背景、目的和意义1课题背景1课题目的2课题意义223第2章 控制器平台介绍442.2 设计方法82.3 设计功能12第3章 本地应用设计133.1 GPIO引脚控制13143.3 网络电视的配置17第4章 网络应用设计184.1 树莓派网络连接184.2 效劳器和Pagekite204.3 Webiopi配置214.4 Motion的配置22第5章 软件源的制作24结 论26致 谢28参考文献29附 录30第1章 绪论1.1 课题背景、目的

5、和意义课题背景首先从我的亲身经历说起。今年4月,考研复试结束之后始耐心做毕业设计,某一天卢老师找我去给他家安装无线路由器。学校网络比校外网络收费高,许多用户转而使用学校外面的电信网络。另外家庭内网络终端,如笔记本电脑、上网本、平板电脑、智能 ,逐渐增多,如何能够让多个终端同时接入网络是一个问题。校方或者说网络中心,引进了新的校园网客户端,正是为了鼓励大家建立家庭内无线局域网,解决多终端上网问题。那天在他家安装TP-LINK无线路由器很简单的建立起了家庭无线网。缺乏之处是:新的校园网客户端要求必须有一个上网终端连接TP-LINK并始终运行认证程序,其他网络终端才可以分享无线网。卢老师家的台式电脑

6、从此以后365天24小时开着,费电不说,像这种家庭用普通台式机持续运行几个月恐怕就要瘫痪了。后来在树莓派官方论坛上看到了几篇关于树莓派连接无线网络的帖子,给了我不少启发。树莓派完全可以将上述台式机客户端认证和TP-LINK无线路由器的功能和二为一。后文有关于实现过程的详细介绍,尽管没有什么技术含量,确实显示出树莓派或者嵌入式系统在智能家居方面是可以有所作为的。另外一件事情是有关三网合一、网络电视机顶盒。下面是三那么广告:小米高清互联网电视盒299元上海、杭州、长沙三地市销售进行中;PPTV5月18日零点开放800台工程版PPBOX的网络预售,价格仅为199元;乐视盒子C1S再次改变你的电视。自

7、己曾经试着在树莓上面安装XBMC实现了网络电视的功能,树莓派又可以添加一个功能。还有一件我曾经有切身感受的事情,在我上初中三级的一个下午,奶奶在家突法心肌堵塞,当时她的身边只有刚上幼儿园的小弟,小弟惊慌失措,不知该如何是好。等到其他家庭成员发现情况,着手施救时,为时已晚。如果当时她身边有人能帮一把,或者及时的告知家里的其他成员,也许奶奶还有时机看看曾孙。你或者你周围的人总是会有家庭财务失窃的经历。主人不在,紧闭的平安门形同虚设,不良分子乘虚而入对我们的个人隐私甚至家庭财产造成损害。其时假设能有一个忠诚的管家为我们及时的侦测到不法分子的侵入,通知主人,或者求助于公安民警,便可以及时的防止损失。另

8、一方面,许多人的智能 都已经更换了好几部。看那所谓的智能 ,配置动那么1GHZ主频的处理器,1GB的内存,等等之类硬件配置何其出众。而现在就是这样一个小小的板子,700HZ主频512MB内存,已经显示出巨大的潜能。那么是否可以通过某种方式把智能 的潜能也发挥出来呢?在传统的上网聊天,拍照玩游戏之外是否也是可以有所作为的呢?课题目的本文所要实现的功能,在市面上都已经有成型的产品。我所做的是要把几个有关智能家庭应用的独立功能同时在一块板子上面实现,并试着扩展自己的功能。在这个过程中,为其他人学习ARM/LINUX开发,或者说在树莓派上面的开发厘清一条道路。同时尝试扩展智能 的功能。课题意义本文并没

9、有多少前瞻性的东西,所提到的智能家居的各个方面市面上都已经有了成型的产品。自己感觉比拟有意义的是:为我们学校家属区建立家庭无线网提供了一点参考;为测控专业相关课程的开展和自动化协会的开展建立一个巩固的根底;为开源/自由软件的事业做出了一点个人奉献,这个是最重要的。从个人生活经历来看,智能家居还是一个遥远的词汇,大多数老百姓还没有接触到这些东西。不知道是价格的原因,亦或现在的智能家居还只概念炒作,行业的大方向此处不做过多评论。现仅就上面提到的乐视、小米、PPTV不过一年左右时间连续发布的价位功能相近的三款扩展普通电视为网络电视的数字机顶盒做一下简单介绍和比拟:首先是小米盒子,高清互联网电视,迄今

10、为止小米 最发烧友的配件,硬件价格299元,视频来源为央视正版授权高清内容,标配遥控器或者小米 来控制控,体积类似于大屏智能 ,HDMI接口;Coretex-A9处理器,主频800MHZ,内存1G 、H.264、VC-1、WMV-HD、MPEG1/2/4最大至1080p30帧/秒,10/100M自适应RJ45接口, Micro-USB接口;其次是PPBOX,1GHZ主频处理器、1GB内存、4G闪存,支持DLNA和Airplay多屏互动,售价299元,HDMI接口、wifi、蓝牙、音频输出;最后是乐视盒子,硬件免费,内容收费;乐视网TV版12个月效劳费价格490元,6个月效劳费价格290元。CO

11、RETEX-A9架构双核处理器,无线连接功能,并其集成无线路由器功能,流畅播放1080P高清电影,内容来源乐视网正版资源。无论从硬件还是内容资源的角度来看,乐视盒子都更胜一筹,费用自然也是最高的。我想网络电视的本质还是电视,或者说视频内容,如果让我为家里面配备一台这样的设备的话,肯定是要以内容为主要考虑。所以尽管价格高一些,我还是会选择乐视盒子。虽然安装XBMC的树莓派硬件功能不比这三者差,但是没有内容资源的支持就是无源之水,没有实用价值。从另外一个角度来说,如此的价格去电影院看电影会有更好些的试听享受,并且对普通家庭用户而言肥皂剧和新闻联播也是要看的,大家的需求未必就是每天欧美大片,这样乐视

12、的优势就不会那么明显了。本文首先介绍了树莓派开发平台的软硬件资源以及在ARM/LINUX平台开发应用的一般方法,提出我将要实现的功能第二章;然后是智能家居控制器本地开发第三章和网络开发第四章,最后是树莓派软件源的制作和蔼后工作第五章。第2章 控制器平台介绍树莓派是英国树莓派基金会推出的一款旨在推动学校计算机科学教育的信用卡大小的单板电脑。由于其强大的计算能力,丰富的外部扩展和低廉的价格而被选作本毕业设计的开发平台。下面是树莓派宏观接口图:图2-1:树莓派B型板的宏观结构图树莓派就相当于是一块计算机主板。居于长方形板面中心的是一块BCM2835片上系统,其上包括了一个ARM1176JZF-S 7

13、00MHZ 的处理器可以超频至1GHZ,和一块VideoCore IV GPU , 还有 512M RAMA型板内存为256M。板子上面没有内置的长期存储设备,但是提供一个SD插槽,用户可以将自己的SD卡插入作为硬盘使用。SD插槽的旁边是一个Micro-USB电源插孔,由此引入5V的电源,也可以通过GPIO接口的2号VCC和3号GND引脚提供5V电源。在SD插槽的另一边是26针的扩展接口,其中2脚可以接入或给出5V电源,1脚给出3.3V电源,第12脚可以提供PWM,另外包括一组UART,一组SPI,一组I2C,8个GPIO引脚。扩展接口还算丰富。两种视频接口方式。其一是HDMI,HDMI兼容的

14、电视或者显示器可以直接通过这个接口获得输出的视频信号,VGA显示器可以通过HDMI-VGA转换器得到VGA信号。在HDMI相反方向是一个RCA接口,可以输出模拟视频信号供旧式电视使用。非常显眼的可以看到叠在一起的两个USB接口A型板只有一个USB接口,可以用来连接鼠标和键盘,总是会遇到USB接口不够用的时候,这是就需要我们通过USB-HUB来进行扩展。在USB接口旁边是10/100 M 以太网接口,作用不言自明。另外有三个不长用的外设。一是,USB口和RCA接口之间的音响/测试接口;二是,板上面的类似于扩展接口的JTAG接口;三是,TFT触摸屏接口。核心芯片BCM2835:高清嵌入式多媒体应用

15、处理器BCM2835是一种低本钱,全高清多媒体应用处理器,适用于需要高品质多媒体性能的移动和嵌入式应用设备。产品设计充分考虑了电池使用效率,并进行了相关优化。BCM2835使用博通公司的第四代VideoCore技术来使能应用程序中的各种图像、视频处理。*低功耗ARM1176JZ-F 应用处理器*双核第四代VideoCore多媒体协同处理器*1080P30帧每秒全高清视编码/解码*高性能视频输出。1080P60帧每秒持续高分辨率LCD、HDMI输出*低功耗,高性能VideoCoreGPU*先进的图像传感器流水线ISP长达20万像素的摄像头高达220万 像素每秒下面是该芯片的内部结构图:图2-2

16、BCM2835内部结构图总的来说,树莓派板子的外部接口还算丰富,处理器、存储设备不够强大。但因其低廉的价格B型板35美元,A型板25美元,在8051单片机和个人电脑之间为我们提供了一个理想的嵌入式开发平台。软件方面,毫无疑问选择GNU/LINUX平台。做为开源软件平台,GNU/LINUX给予用户以免费或者较低的价格获取操作系统和软件的源代码的权力。这使得用户可以根据自己的需要编辑、修改源代码,分发自己的代码,鼓励人们互相分享。其开放、共享的精神受到了许多科技人员的喜爱。在本毕业设计中笔者使用的操作系统是Raspbian,一款基于Debian并根据树莓派硬件条件进行修改的操作系统。如下是维基百科

17、中关于Debain的描述:Debian是由GPL和其他自由软件许可协议授权的自由软件组成的操作系统,由Debian方案Debian Project组织维护。Debian方案是一个独立的、分散的组织,由3000人志愿者组成,接受世界多个非盈利组织的资金支持,Software in the Public Interest提供支持并持有商标作为保护机构。Debian以其坚守Unix和自由软件的精神,以及其给予用户的众多项选择择而闻名。现时Debian包括了超过37,500个软件包并支持12个计算机系统结构i386、amd64、arm、mips、IBM等等。Debian是一个大的系统组织框架,在这个框

18、架下有多种不同操作系统核心的分支方案,主要为采用Linux核心的Debian GNU/Linux系统,其他还有采用GNU Hurd核心的Debian GNU/Hurd系统、采用FreeBSD核心的Debian GNU/kFreeBSD系统,以及采用NetBSD核心的Debian GNU/NetBSD系统。甚至还有应用Debian的系统架构和工具,采用OpenSolaris核心构建而成的Nexenta OS系统。在这些Debian系统中,以采用Linux核心的Debian GNU/Linux最为著名。众多的Linux发布版,例如Ubuntu、Knoppix和Linspire及Xandros等,都

19、基于Debian GNU/Linux。笔者使用GNU/LINUX Debian已经有三年时间了,深刻的感觉到Debian的强大。针对于嵌入式而言,采用Debian系统有三大优势:1、丰富的软件包和强大简便的软件包管理器2、通用操作系统,支持多种计算机系统架构3、强大的志愿者/开发人员组织如下文所说,对于习惯了微软操作系统的用户来说,一些GNU/LINUX版本绚丽的桌面环境也许会让你感到惊艳,但是相信我GNU/LINUX的精华来源于黑纸白字的文本界面。作为一名嵌入式开发者,应该熟练的使用文本界面解决问题,那样更能节省珍贵的系统资源并且更接近硬件或软件的本质。由于知识过于庞杂,这里仅就个人认识对G

20、NU/LINUX的特色文件系统,做简要介绍。文件系统主要包括两局部:文件、目录。文件系统将枯燥的物理细节在硬盘或者SD卡中实际就是0和1的排列组合包装成为操作系统易于读写的形象,也就是用户可见的文件,或者说普通文件。而目录,其本质是仍是文件,或者说特殊的文件,亦即储存其他文件的文件。可以将文件理解为实际的物理存储空间,而目录那么包含了指向这些空间的“指针。记住一个非常重要的概念,GNU/LINUX是建立在文件系统之上的,系统将外部设备甚至网络设备也当做文件进行读写!在LINUX系统的 / 根目录下面有:bin boot dev etc home media mnt opt proc root

21、sbin selinux srv sys user varbin:本目录下面是常用的命令,如文件的删除、建立、压缩,目录的建立、删除,文件权限的更改,磁盘读写刻录,内存查看等等。 对本目录里面的内容应该熟练掌握,其他命令程序无特别需要建立概念即可,命令的查阅参见,。 boot:本目录存储系统启动有关的信息,如系统内核,CPU和GPU关于内存的分配。我们将看到在树莓派的boot目录下面有cmdline.txt这个文件。这个文件控制着树莓派UART是否输出系统信息。dev:device , 即设备。光驱cdrom,优盘ttyUSB,串口ttyS0,终端tty*在这儿都有表达。有几个非常有趣的设备z

22、ero 、null、random.以后你会发现他们的妙用。etc:包含运行在系统上所有程序的配置文件。这个目录很重要,经常用!home:主目录,GNU/LINUX作为多用户操作系统,每一个用户都有各自目录以存储个人信息。这就要引申出文件权限的概念。参考下面的连接:。proc:该目录下面存放一些系统运行状态信息。如查看lscpu、lsusb、lspci、查看系统登陆用户的一些命令,实际是读取的本目录下面文件的内容。 var:这个目录很有意思,如我们的网络文件储存在/var/www下面。在/var/log 目录下存储各种日志,用户登录,系统运行,开机信息,网络连接信息,内核运行信息等。如果系统运行

23、出现问题应该首先到这里寻找灵感。2.2 设计方法接上节,我们将要在ARM + LINUX平台上面实现自己的功能。实现的方法有两种:其一,自己动手写代码;其二,调用系统已有的命令、程序。首先如果自己动手的话,Raspbian 作为一个完整的操作系统,可以编译并执行如C、C+、PHP、Python、java等各种编程语言构建的程序。笔者主要用到C、Python两种语言。C语言是根底,开发周期长,执行效率高。Python是一种面向对象的高级语言,有许多针对特定应用的库函数可控调用,开发周期短,执行效率低Raspberry Pi中Pi是python的缩写。其次是调用系统已有的命令、程序,GNU/LIN

24、UX内置的命令程序都是经受过历史考验的,尤其是是Debain这样一个以稳定性为特色的操作系统。大多数命令、程序都可以接受用户的参数做出相应的动作,来完成用户的要求。笔者认为,在实际开发过程中,应该尽量首先使用系统自带的资源,其次是自己编写程序,而在编程语言中优先选择Python 语言,其次是C语言。然而,从学习的角度来说,应该把C语言放在最前面,Python语言或者直接调用系统集成好的工具会把许多细节蒙蔽掉,限制了用户的权力。另外,对于嵌入式系统,从资源和效率的角度考虑,也应该多使用C语言。嵌入式开发,尤其是在GNU/LINUX + ARM下面,还有一项非常重要的工具:文本编辑器。编辑器之所以

25、重要,是因为首先很多系统配置文件都是以*.conf 的形式储存在文件系统中,我们可以通过文本编辑器方便的修改;其次,使用文本编辑器而非图形IDE可以节省许多珍贵的系统资源,熟练掌握文本编辑器之后可以极大的提高我们编写代码的质量和速度。常用编辑器由三款:Nano、Vim和Emacs 。相比拟而言,Nano 使用非常简单,同时功能无几,适合入门级用户使用。Vim和Emacs是GNU/LINUX 系统中最为著名的两款文本编辑神器。笔者使用Vim两年有余,深刻的被Vim的强大所折服,通过按键的组合和插件的使用,Vim赋予机械的二极管、门电路生机和活力。当然Emacs也是非常强大的一款编辑器。对于经常使

26、用GNU/LINUX,或者做嵌入式开发的人来说,Vim、Emacs应该熟练掌握一种。Vim更加轻盈,所有的GNU/LINUX 操作系统默认安装ViVim的前身。相比拟而言Emacs更加灵活。简单根据兴趣爱好来讲,底层开发人员硬件到操作系统适宜使用Vim,上层开发人员操作系统到网络使用Emacs。通常嵌入式设备,例如树莓派资源有限,我们总是在个人电脑上完成开发过程然后向嵌入式设备移植,另外我们也需要借助个人电脑的一些外设,如键盘和鼠标,完成一些工作。几个工具可以帮助我们远程控制目标机器或者方便调试:SSH、VNC、USB转串口、Minicom/Gtkterm 。 SSH,Secure Shell

27、 平安壳协议,一项创立在应用层和传输层根底上的平安协议,为计算机上的Shell壳层或者命令解释器提供平安的传输和使用环境。SSH可以使得我们获得远程运行LINUX系统命令行的能力,另外SCP命令可以进行文件传输。VNC,Virtual Network Computing,一种使用RFB协定的屏幕画面分享及远程操作软件。此软件借由网络,可以传送键盘与鼠标的动作及实时的屏幕画面。例如,笔者使用的是Tightvnc,正确安装并配置之后,便可以在个人电脑上虚拟树莓派的桌面环境,节省了用于购置鼠标和键盘的费用,同时方便的进行远程操作桌面。SSH只能提供应用户命令行工具,更加节省资源,而Tightvnc的

28、图形界面,更易于新手使用,并且有极少数工作也只能在图形界面下完成,故而也是很有价值的。下面是USB转串口和Minicom/Gtkterm ,在无法连接网络或者系统出现故障时,我们还可以通过树莓派的串口,对它进行调试。为了方便在个人电脑上显示串口窗口,我们需要将串口桥接至USB接口。这就要用到PL2303芯片。PL2303将USB端口和标准RS232端口连接起来,两块大的片上缓存调配两个方向的数据流,为了提高传输速率采用了USB块状数据,串口自动进行信号握手。这使之获得了比传统UART控制器更高的信息传送速率。将树莓派的第6脚地,8脚、10脚UART收发分别与模块的相应引脚相连,USB口接电脑,

29、树莓派默认将内核启动信息从UART口输出,同时正常工作时UART也可以作为调试和控制窗口。如下列图示笔者的串口连接方法: 图2-3 USB转串口连接笔记本另外注意,树莓派可以通过对GPIO第2脚+5V来供电,而PL2303也正好有一个+5V引脚,如果树莓派外接设备不是很多的话如只接网线,我们可以直接将上述的+5V对应连接,使树莓派正常工作。上图,是笔者总结出的树莓派最简工作方式。下面需要一款程序查看串口发送来的信息,这就要用到Minicom/Gtkterm 。Minicom是一种文本模式的串口通信工具,类似于微软系统的超级终端,可以模拟ANSI和VT102终端。功能强大,应用稍显复杂。Gtkt

30、rem是基于GTK+开发的串口调试程序,图像界面,简单实用。笔者使用的是Gtkterm,感觉不错,但是Minicom的文本操作模式更适合GNU/LINUX环境。如果个人电脑安装的是微软系统的话,可以是使用超级终端。虽然最近几年GNU/LINUX系统特别是UBUNTU发行版,在图形界面方面已经做的相当花哨,但是对于一名高手或者针对嵌入式开发来说,我们应该熟练掌握文本界面的使用,甚至在文本里面浏览网页。这里要提到两款比拟著名的文本浏览器Lynx和W3m。Lynx是纯文本网页浏览器,可以在UNIX/LINUX/MAC系统中使用,历史悠久,并且仍在积极的开发之中。用户众多,功能强大。W3m是一款基于文

31、本的网页浏览器,支持多种操作系统,在命令行终端可以很好的支持中文,和Emacs有一定渊源。这里不做详细介绍。另外要提及一个GNU/LINUX下的图形界面开发工具,GTK+。GTK+,GIMP ToolKit ,一个生成跨平台的图形界面开发工具。GTK+提供一整套开发控件,使得我们可以使用他来开发小到“HelloWorld!大至Gnome桌面的各种应用。由于其跨平台性,GTK+开发的工具在GNU/LINUX,微软系统上都可以运行。尽管GTK+自身采用C语言开发,在其设计之初就考虑到了对于多种语言的支持,如C+、java、python等。下列图是笔者的Debian桌面:图2-4 笔者漂亮的Gnom

32、e桌面补充一点内容,尽管笔者在设计过程中没有用到,还是比拟有意义的一个开源软硬件平台Arduino。Arduino是一个开源的单片机控制器,它使用Atmel AVR 单片机,采用了开放源代码的软硬件平台,并且使用类似JAVA、C语言的Processing/Wiring开发环境。与8051单片机不同,其集成开发环境可以非常方便的帮助我们实现USB读写、图像采集等功能。树莓派硬件操作的实时性不好,而Arduino的网络通信和计算能力不够,二者结合,以树莓派作为上位机进行网络通信处理大量数据,使用Arduino作为下位机控制外部器件,是一个不错的组合当然可以换成如UDOO之类的高级ARM板子。下列图

33、是Arduino开发环境的简图:图2-5 Arduino IDE 展示2.3 设计功能在ARM+GNU/LINUX软硬件平台下面,我们可以实现各种功能,简单来说可以分为本地应用、网络应用。本地应用主要包括GPIO口、串口、SPI和I2C的使用,用来控制外部引脚的上下电平或者数据流以控制外部器件。还能建立家庭无线局域网,将树莓派打造成为网络视频播放器。网络应用,主要包括建立效劳器、效劳器开放以及软件源的制作。 第3章 本地应用设计3.1 GPIO引脚控制本地应用开发主要有三种方法,介绍如下。1、经典法的C语言开发:首先下载并安装airspayce网站BCM2835有关输入输出的库函数,编译并安装

34、。该库函数提供了各种端口操作函数可供使用,主要有:GPIO 引脚、SPI 、I2C、系统时钟。附录里面有SPI测试程序可供参考。其中缺少串口函数,但是各种外设,例如笔者曾经在树莓派上用到的心电采集模块、北斗模块、与上位机或者Arduino通信等等,都需要用到串口,所以串口非常重要。另外,树莓派以及一些嵌入式系统默认的会将启动信息通过串口输出,串口也可以被当做调试终端来使用。如果要把串口回归其本性,我们需要修改一些设置。将/boot/cmdline.txt 和ttyAMA0有关的信息删除,并将/etc/inttab文件找到包含/ttyAMA0/ 的行,在前面加“#将该项注释掉。2、简洁的Pyth

35、on语言开发:上面我们提到的是传统的经典的C语言开发方法,而是用Python可以极大的提高我们的开发效率。Python是面向对象的高级编程语言,使用它可以加速开发,高效的与系统整合,效率高且维护费用低,跨平台、开源。在使用的过程中我们会发现Python表达在树莓派的方方面面。下面的例子Bl,简单展示了一个Python脚本,其简练可见一斑:import wiringpi from time import sleep io = wiringpi.GPIO(wiringpi.GPIO.WPI_MODE_SYS) io.pinMode(18,io.OUTPUT) #Setup pin 18 (GPIO

36、1) while True: io.digitalWrite(18,io.HIGH) # Turn on light sleep(2) io.digitalWrite(18,io.LOW) # Turn off sleep(2)对于电脑初学者来说,Python有不可抗拒的魅力。注意,篇幅有限,本文没有对具体GPIO引脚的编程进行详尽的说明。3、功能强大的Shell编程:但凡使用过GNU/LINUX肯定对于Shell非常熟悉,它不仅是一个命令解释器,其内置的命令可以非常方便帮助我们完成系统各种日常维护、编辑文件、查看网络等等工作。在Shell双击TAB系统会提示你是否输出各种命令,例如在我的De

37、bian系统中显示有2756个命令可用。Python编程和Shell编程非常类似,这里不做详细介绍,在用户熟练使用LINUX之后应该试着学习Shell解决日常工作。硬件编程之外我们需要注意一些事情。树莓派GPIO口默认除电源脚为+5v,其他引脚均为+3.3v高,0V低。上面提到的Arduino默认为+5v高,0v低,二者不可直接相连,最好使用三极管电路将3.3V电平转成5V。如果外部设备需要较大电流的话,也需要可虑各个引脚的负载能力。切记,切记!树莓派GPIO引脚内部没有保护电路,千万不要不将+5V与地短路,后果很严重。如果使用电池供电的话,需要用到线性电源或者开关电源。相比拟而言线性电源效率

38、低但噪声小,开关电源效率高但噪声大。两种电源笔者都曾经使用过,因为自己所连接的外设需要的电流较大总电流大于,使用7805做线性电源自身功耗相当大,散热效果很差。后来改用LM2576做开关电源,效果明显好转。开关电源核心是LM2576芯片,外加几个电容、二极管、电感即可,考虑到兼容性采用USB接口输出+5V。下列图笔者自制的开关电源外形图:图3-1 LM2576开关电源 树莓派自身连接有线网络参看下一章,通过外接无线模块,建立无线局域网。本工程所使用的无线模块是RT5370,主要是RT5370 的配置:我们要用到两款软件Hostapd 、Udhcp。Hostapd是、RADIUS客户端和EPA认

39、证效劳器。Udhcp是一款专用于嵌入式设备的DHCP软件,功能比个人电脑上面的DHCP程序弱,使用简单方便。在这里我们只用到udhcpd,亦即dhcp客户端程序。1、连接各个外设启动树莓派,运行下面命令查看RT5370是否被正确识别。$ sudo lsusb Bus 001 *Bus 001 *Bus 001 *Bus 001 Device 007 :ID 148f:5370 Ralink Technology , Corp, RT5370 2、本机识别正常,安装相关软件:$ sudo apt-get install hostapd udhcpd 3、下面配置DHCP效劳器,编辑文件 /etc

40、/udhcpd.conf , 添加如下内容:start 192.168.42.2 #DHCP可分配的IP地址空间 end 192.168.42.15#应为是在家庭内使用,数量不必过多 interface wlan0 # Udhcp效劳器的工作设备remaining yesopt dns .8 4.2.2.2# DHCP客户端设备使用的DNS效劳器opt subnet 255.255.255.0# 子网掩码opt router 192.168.42.1 # 无线网的网关,即树莓派的无线IP地址 opt lease 864000# DHCP效劳器默认运行时间,10天后自动关闭4、 使能DHCP效劳

41、器开机运行,修改/etc/default/udhcpd 将DHCP_ENABLED=no改为:#DHCP_ENABLED=no5、 将/etc/network/interface 添加或者对相应行做如下修改:iface wlan0 inet static#固定树莓派的无线地址作为局域无线网的网关 addres#allow-hotplug wlan0#iface default inet dhcp6、配置hostapd。可以参看/etc/hostapd/examples/hostapd.conf.gz 中的内容。编辑或者生成文件/etc/hostapd/hostapd.conf 添加以下内容:i

42、nterface=wlan0#要使用的网卡driver=nl80211# 驱动名称ssid=My_AP# 无线局域网的名称hw_mode=g#channel=6# hostapd 运作的频率macaddr_acl=0auth_algs=1ignore_broadcast_ssid=0wpa=2wpa_passphrase=My_Passphrase# 无线网的密码wpa_key_mgmt=WPA-PSKwpa_pairwise=TKIPrsn_pairwise=CCMP修改完上述文件后,编辑文件/etc/default/hostapd 将#DAEMON_CONF=改为:DAEMON_CONF=

43、/etc/hostapd/hostapd.conf7、配置网络地址转换NAT,该技术可以使几台终端设备通过一根网线连接网络。首先修改/etc/sysctl.conf 文件找到行 net.ipv4.ip_forward = 1 ,去掉前面的“# 将该选项使能。为了将NAT在linux内核中使能运行一下命令,修改防火墙设置:$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE$ sudo iptables -A FORWARD -i eth0 -o wlan0 -m state -state RELATED,ESTABLISHED

44、-j ACCEPT$ sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT现在树莓派就可以进行NAT了,当然我们想把刚刚的设置选项永久保存,运行下面的命令将现在的防火墙设置生成文件:$ sudo sh -c iptables-save /etc/iptables.ipv4.nat设置开机启动时加载上面的防火墙设置,在/etc/network/interfaces 文件底部添加下面的一行:8 现在我们就可以建立无线局域网了,设置hostapd和udhcpd开机自启动:$ sudo update-rc.d hostapd enable$ sudo

45、update-rc.d udhcpd enable树莓派开机重启,使用 或者电脑可以检测到我们刚刚建立的无线信号。3.3 网络电视的配置添加下面的内容:deb wheezy contrib 然后导入存档签名秘钥:$sudo apt-key adv -keyserver keyserver.ubuntu -recv-key 5243CDED完成之后,更新系统:$ sudo apt-get update安装网络电视软件:$ sudo apt-get install xbmc速度较慢,完成之后,关机重启,进入xbmc.更改系统设置正常显示中文,安装相应的ZIP文件,添加对于youku、toudu、q

46、iyi等国内视频网站的支持。如下列图是作者通过树莓派的网络电视观看“舌尖上的中国:图3-2 XBMC观看舌尖上的中国第4章 网络应用设计在我的理解中,从一个整体的角度考虑computing , 硬件资源是土地,驱动程序是地基,操作系统便是我们的建筑物,应用程序是我们房子的装饰品,而网络那么是这样一个家庭和外界进行沟通的邮政系统。对亲朋好友的祝福与问候是书信的内容。而假设要合理地投送我们的真情惬意的话,需要Tcp/Ip/Udp等通信协议作为信封,将地址,发件人,收件人,时间等一一表述。现在已经很少有人写信了,网络通信却越来愈多。如果要写出高质量的网络应用或者自己要实现特殊的功能如Pagekite

47、反向代理效劳器应该对于网络底层细节有一定的认识。因为所涉及的内容较多,这里仅仅就常见的几个通信协议TCP/UDP/IP/DNS做简要介绍。TCP,Transmission Control Protocol, 传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。UDP,User Datagram Protocol,用户数据报协议,相比拟而言,UDP协议只是简单的将信息打包按照目的地址往外传输。邮件只是简单的送到邮筒里面,任其自生自灭。当然他也是有特殊用途的,例如DNS效劳就是采用的UDP协议。IP,Internet Procotol,网络通信协议,为计算机网络相互连接进行通信而设计的协议。简单来说就是,信封上面的发件人地址和收件人地址,或者说本机和目标机器在英特网上面的位置坐标。DNS,Domain Name

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服