吉林大学仅器科学与电气工程学院2015年下半年中文论文集 接通电视机和健盘, 就能执行如电子表格、文字处 将灯和开关按图3接入Raspberry Pi。在这里 理、玩游戏、播放高清视频等诸多功能。Raspberry 我们采用5V继电器将使用220V交流电供电的电灯 P只提供申脑板,无内存、电源、键盘、机箱或连 泡接入电路中,通过控制继电器来控制灯泡。 线。总的来说,树莓派板子的外部接口丰富,处理 器、存储设备不够强大,但其价格低廉,为我们提 供了 个理想的嵌入式开发平台。 图3灯光模块控制电路 Fig.3.Light module control circuit 2.1.2控制方式 2.1.2.1普通开关控制 开关是对R Raspberry Pi输入信号,因此要使用 GPIO的输入功能,在中断方式下编写python程序 使用时,运行灯光控制程序,即可利用开关控制灯 图1 Raspberry P:B型板的宏现结构图 的亮灭。按下开关时,灯亮,再按一下开关,灯灭。 Fig 1.The macro-structure of the Raspberry PiB plate 2.1.2.2电脑控制 运行puty软件,在命令行中输入python指令 2智能家居系统 控制GPI025(即Pin22)电平的高低,进而灯光的亮 灭。 该系统包含打光模块、窗帘模块、音乐模块 在对灯进行操作之前,要将GPIO25设置为输 测温模块、电水壶模块、报警模块和监控模块等, 出方式,即 我们已实现了电脑和手机对以上模块的远程控制 利用puy软件还可以查看相关的程序 GPIO.sp(25.GPIO.OUT) 方便编程爱 点亮灯光的指令为: 好者作进一步开发。基本原理框图如图2 >GPIO.output(25.GPIO.HIGH) 关闭灯光的指令为: >>>GPIO.output(25.GPIO.LOW) 2.123WEB10控制 用浏览器打开P地址访问管理界面,若 Raspberry Pi的ip地址为192.168.137.200,则打开 枝心控制单元 电脑控制 hp∥192.168.137,200:8000 webiop业,打开的页面如 图4所示: 手机制 图2智能家居系统原理框图 Block diagram of th smart home ystem 2.1灯光模块 2.1.1硬件连接图
吉林大学仪器科学与电气工程学院 2015 年下半年中文论文集 28 接通电视机和键盘,就能执行如电子表格、文字处 理、玩游戏、播放高清视频等诸多功能。 Raspberry Pi 只提供电脑板,无内存、电源、键盘、机箱或连 线。总的来说,树莓派板子的外部接口丰富,处理 器、存储设备不够强大,但其价格低廉,为我们提 供了一个理想的嵌入式开发平台。 图 1 Raspberry Pi B 型板的宏观结构图 Fig. 1. The macro-structure of the Raspberry Pi B plate 2 智能家居系统 该系统包含灯光模块、窗帘模块、音乐模块、 测温模块、电水壶模块、报警模块和监控模块等, 我们已实现了电脑和手机对以上模块的远程控制, 利用 putty 软件还可以查看相关的程序,方便编程爱 好者作进一步开发。基本原理框图如图 2: 图 2 智能家居系统原理框图 Fig. 2. Block diagram of the smart home system 2.1 灯光模块 2.1.1 硬件连接图 将灯和开关按图 3 接入 Raspberry Pi。在这里, 我们采用5V继电器将使用220V交流电供电的电灯 泡接入电路中,通过控制继电器来控制灯泡。 图 3 灯光模块控制电路 Fig. 3. Light module control circuit 2.1.2 控制方式 2.1.2.1 普通开关控制 开关是对 Raspberry Pi 输入信号,因此要使用 GPIO的输入功能,在中断方式下编写python程序。 使用时,运行灯光控制程序,即可利用开关控制灯 的亮灭。按下开关时,灯亮,再按一下开关,灯灭。 2.1.2.2 电脑控制 运行 putty 软件,在命令行中输入 python 指令 控制 GPIO 25(即 Pin22)电平的高低,进而灯光的亮 灭。 在对灯进行操作之前,要将 GPIO25 设置为输 出方式,即 >>>GPIO.setup(25,GPIO.OUT) 点亮灯光的指令为: >>>GPIO.output(25,GPIO.HIGH) 关闭灯光的指令为: >>>GPIO.output(25,GPIO.LOW) 2.1.2.3 WEBIO 控制 用浏览器打开 IP 地址访问管理界面,若 Raspberry Pi 的 ip 地址为 192.168.137.200,则打开 http://192.168.137.200:8000/webiopi/,打开的页面如 图 4 所示:
刘纪伟等:基于Raspberry Pi的智能家居系统 节窗帘拉开的幅度,使本设计具有更强的自由度 使设计更智能化,人性化。 2.3电水壶模块 2x1 利用GPO接口控制由水壶开关的通撕。当 7 TO T GO接口为高电平时,申水壶开关打开,电水壶 9 10 1018 u元 的电阻加热, 电水壶执行烧水功能, 利用Ds18B20 检测温度,当温度达到1O0C时,GP1IO接口自动 净102215 为低电平,电水壶开关自动断开,停止烧水,执行 IN 保温功能,并启动报警功能,提醒主人水已烧开。 当GPO接口为低电平时,则不执行烧水功能。 2.4音乐模块 25269 本模块借助Giub上的一个开源项目修改而 来,可以实现利用豆瓣FM播放音乐,操作简单 图4WEB10界面 把树莓派作为一个低功耗音乐电台使用,为家庭生 Fig.4.WEBIO interface 活增添欢乐气息。播放器界面如图6。 点击外侧的“N/OUT”切换GPIO的工作模式 为输入还是输出,因此应将GPI025切换 OUT 点击内侧的数 当25变亮 ,GPIO25被置 高电平,此时灯被点亮:当25炮灭时,GPIO25被 置为低电平,此时灯也跟着熄灭。 2.1.2.4手机终端控制 通过手机终端软件来控制灯的亮灭, 2.2窗帘模块 本模块采用步进电机驱动,在窗帘的驱动导轨 内放置一个步进电机,通过控制步进电机的步进方 向和转动步数来控制窗帘的升降。通过python程序 图6播放器界面 控制步进电机的转动方向以及速度。 步进电机采用的驱动芯片是ULN2803A,因此 可用ULN2803A设计 个驱动板,驱动板上有4个 道、标记和取消喜欢的音乐,播放下 一首,还可 输入口:N1N4,这4个口用来接树莓派的4个 设置循环模式,使家居生活更加智能化。 GPIO口,利用Pi2给步进电机提供5V电源。依 2.5测温模块 次把取动板的NI~N4置为高电平,就可以驱动牙 本模块采用温度传感器DS18S20感知常内温 进电机,也就是说,要把树莓派的4个GPIO输出 度,并将其转换为数字输出。 该传感器采用美国 口依次置为高电平。具体实现电路如图5 DALLAS公司生产的DS18S20可组网数字温度代 感器芯片封装而成,具有耐磨耐碰,体积小,使用 方便,封装形式多样的特点,适用于各种狭小空间 设备数字测温和控制领域。它使用单线总线数字接 口,所以不需要AD转换款片。实际则量时,我 发现DS18S20具有2℃的温漂,因此我们在程片 果中减掉2℃作为温度补偿。具体实现电路如图7 图5步进电机控制电路 通过终端发送运行指令, 米完成 一次拉开或关 闭窗帘的动作。并且还可以通过改变输入参量来调 29
点击外 为输入还是 点击内侧的 高电平,此 置为低电平 2.1.2.4 手机 通过手 2.2 窗帘模块 本模块 内放置一个 向和转动步 控制步进电 步进电 可用 ULN28 输入口:IN GPIO 口,利 次把驱动板 进电机,也 口依次置为 Fi 通过终 闭窗帘的动 图 4 Fig. 4. W 侧的“IN/OU 是输出,因此 数字 25,当 时灯被点亮 ,此时灯也跟 机终端控制 机终端软件来 块 采用步进电机 步进电机,通 数来控制窗帘 机的转动方 机采用的驱动 803A 设计一 N1~IN4,这 4 利用 Pin2 给步 的 IN1~IN4 就是说,要把 高电平。具体 图 5 步进 ig. 5. Stepping 端发送运行指 作。并且还可 刘 WEBIO 界面 WEBIO interfac UT”切换 G 应将 GPIO 2 25 变亮时, ;当 25 熄灭 跟着熄灭。 来控制灯的亮 机驱动,在窗 通过控制步进 帘的升降。通 向以及速度。 动芯片是 UL 一个驱动板,驱 4 个口用来接 步进电机提供 置为高电平 把树莓派的 体实现电路如 进电机控制电路 g motor driving 指令,来完成 可以通过改变 刘纪伟等:基于 e PIO 的工作模 25 切换为 OU GPIO25 被置 灭时,GPIO2 亮灭。 窗帘的驱动导 进电机的步进 通过 python 程 。 LN2803A,因 驱动板上有 4 接树莓派的 4 供 5V 电源。 ,就可以驱动 4 个 GPIO 输 如图 5。 路 g circuit 成一次拉开或 变输入参量来 窗帘 于 Raspberry Pi 模式 UT, 置为 5 被 导轨 进方 程序 因此 4 个 4 个 依 动步 输出 或关 来调 节窗 使设 2.3 GPI 的电 检测 为低 保温 当 G 2.4 来, 把树 活增 道、 设置 2.5 度, DA 感器 方便 设备 口, 发现 果中 的智能家居系 窗帘拉开的幅 设计更智能化 3 电水壶模块 利用 GPIO IO 接口为高 电阻加热,电 测温度,当温 低电平,电水 温功能,并启 GPIO 接口为 4 音乐模块 本模块借助 可以实现利 树莓派作为一 增添欢乐气息 该播放器允 、标记和取消 置循环模式, 5 测温模块 本模块采用 并将其转换 ALLAS 公司生 器芯片封装而 便,封装形式 备数字测温和 所以不需要 现 DS18S20 具 中减掉 2℃作 统 幅度,使本设 化,人性化。 块 O 接口控制电 高电平时,电水 电水壶执行烧 温度达到 100 水壶开关自动 启动报警功能 为低电平时, 助 GitHub 上的 利用豆瓣 FM 一个低功耗音 息。播放器界 图 6 播放 Fig. 6. Playe 允许用户根据 消喜欢的音乐 使家居生活 用温度传感器 换为数字输出 生产的 DS18 而成,具有耐 式多样的特点 和控制领域。 要 A/D 转换芯 具有 2℃的温 作为温度补偿 设计具有更强 电水壶开关的 水壶开关打开 烧水功能,利 0℃时,GPIO 动断开,停止 能,提醒主人 则不执行烧 的一个开源项 M 播放音乐, 音乐电台使用 界面如图 6。 放器界面 er interface 据不同喜好来 乐,播放下一 活更加智能化 器 DS18S20 感 出。该传感器 8S20 可组网数 耐磨耐碰,体 点,适用于各 它使用单线 芯片。实际测 温漂,因此我 偿。具体实现 29 强的自由度。 的通断。当 开,电水壶 利用 DS18B20 O 接口自动变 止烧水,执行 人水已烧开。 烧水功能。 项目修改而 操作简单, 用,为家庭生 来选择不同频 一首,还可以 化。 感知室内温 器采用美国 数字温度传 体积小,使用 各种狭小空间 线总线数字接 测量时,我们 我们在程序结 现电路如图 7。 9 0 变 行 生 频 以 用 间 接 们 结
吉林大学仅器科学与电气工程学院2015年下半年中文论文集 浏览器控制:将网络摄像头接入Raspberry Pi 打开浏览器,在地址栏内输入http:/∥192.168.137200 R1 8081,其中,192.168.137.200为Raspberry Pi的 VCC 27.0 P地址。打开上述网址,在网页上即可看到一个 GND O 的动480像素的窗口,窗口内即为网络摄像头拍摄 DS18S20 2.8远程控制 鉴于现在市面上Android手机比较普遍,在手 图7测温模块控制电路 机端远程控制方面,我们选择Android手机作为实 Fig.7.Temperature Module Cirui 验平台。通讨Raspherr y Pi Command和 2.5.1电脑控制 DD. 可以轻松实现手机端 在puy软件下运行温度控制程序,显示屏上每 并且实现 键发送 隔1s显示当前的环境温度值。 先设置好的指令,以完成复杂任务。并且这些APF 2.5.2手机控制 具有可编程性,可以根据自身需求来修改指令,从 通过运行手机客户端软件来实现温度检测。 而满足不同人的不同需求。 2.6报警模块 通手机端,可以远程控制电灯的点灭控 本模块采用人体红外感应模块HCSR501 本 窗帘拉开或者关上,插放豆瓣FM 或者是控制 模块的核心器件是人体红外热释电传感器。红外热 水壶烧水,从而大大方便了使用者的生活,解放了 释电传感器由一种高热电系数的材料组成,可以测 双腿,使生活更智能化。 出10-20米范围内人的行动。将红外热释电传感器 与蜂鸣器连成图8所示电路: 3软件源 Linux系统是 一个开源的系统,它用很少的程 序代码就可以实现一个完整的操作系统,适合作为 家电或申子用品的操作系统,即“嵌入式”系统。 Lix主机上可以同时允许多人上线工作并且资源 HC-SR501红外N感应相 分配较为公平,这正好迎合了Raspberry Pi多用户 多任务的需求。Raspberry Pi的灵魂是Linux系统 Debian系统是Linux系统的一个重要的分支, Raspberry Pi搭载Debian系统形成的Raspbian系统, 是宫方推荐Raspberry Pi的首选操作系统。Python 语言具有完全免费、面向对象、简单易学、可移植 Re1000 鸣器 性强等特点,并且可实现 对硬件底层的访问和控制, 是基于Raspberry Pi控制硬件的不二选择。 图8报警电路 Fig 8.Alarm circuit 4系统测试结果 运行python程序后,红外感应模块每隔一定时 间检测 如有人远 蜂鸣器则发出报警声,并在 我们实现的功能有: 屏打印提示有人靠 人若离开 则停止鸣叫 灯光模块:通过普通开关、电脑、手机控制灯 屏幕上显示没有人靠近。 光的亮灭: 2.7监控模块 窗帘模块:通过手机、电脑远程控制步进电机 本模块使用USB接口的网络摄像头,网络摄像 的转动,步进电机带动窗帘升起、降落: 头在Raspberry Pi的控制下拍摄连续的照片,并将 电水壶模块:通过手机、电脑远程控制电水壶 照片信息以数据的形式返回给 Ras pberry Pi 进行加水与烧水动作,以及水开后的报 功能 Raspberry Pi将数据信息传输到网络,并将数据信总 音乐模块:使用Raspberry Pi自主播放音乐 还原为图像,在显示屏上即可看到实时监控的图像。 测温模块:Raspberry Pi控制DS18S20测量温
吉林大学仪器科学与电气工程学院 2015 年下半年中文论文集 30 图 7 测温模块控制电路 Fig. 7. Temperature Module Circuit 2.5.1 电脑控制 在 putty 软件下运行温度控制程序,显示屏上每 隔 1s 显示当前的环境温度值。 2.5.2 手机控制 通过运行手机客户端软件来实现温度检测。 2.6 报警模块 本模块采用人体红外感应模块 HC-SR501,本 模块的核心器件是人体红外热释电传感器。红外热 释电传感器由一种高热电系数的材料组成,可以测 出 10~20 米范围内人的行动。将红外热释电传感器 与蜂鸣器连成图 8 所示电路: 图 8 报警电路 Fig. 8. Alarm circuit 运行 python 程序后,红外感应模块每隔一定时 间检测,如有人靠近,蜂鸣器则发出报警声,并在 屏幕打印提示有人靠近,人若离开,则停止鸣叫, 屏幕上显示没有人靠近。 2.7 监控模块 本模块使用 USB 接口的网络摄像头,网络摄像 头在 Raspberry Pi 的控制下拍摄连续的照片,并将 照片信息以数据的形式返回给 Raspberry Pi, Raspberry Pi 将数据信息传输到网络,并将数据信息 还原为图像,在显示屏上即可看到实时监控的图像。 浏览器控制:将网络摄像头接入 Raspberry Pi, 打开浏览器,在地址栏内输入http://192.168.137.200: 8081,其中,192.168.137.200 为 Raspberry Pi 的 IP 地址。打开上述网址,在网页上即可看到一个 640*480 像素的窗口,窗口内即为网络摄像头拍摄 的动态画面。 2.8 远程控制 鉴于现在市面上 Android 手机比较普遍,在手 机端远程控制方面,我们选择 Android 手机作为实 验平台。通过 Raspberry Pi Command 和 RPi_Automation 手机端 APP,可以轻松实现手机端 对树莓派 GPIO 电平的控制,并且实现一键发送预 先设置好的指令,以完成复杂任务。并且这些 APP 具有可编程性,可以根据自身需求来修改指令,从 而满足不同人的不同需求。 通过手机端,可以远程控制电灯的亮灭,控制 窗帘拉开或者关上,播放豆瓣 FM,或者是控制热 水壶烧水,从而大大方便了使用者的生活,解放了 双腿,使生活更智能化。 3 软件源 Linux 系统是一个开源的系统,它用很少的程 序代码就可以实现一个完整的操作系统,适合作为 家电或电子用品的操作系统,即“嵌入式”系统。 Linux 主机上可以同时允许多人上线工作,并且资源 分配较为公平,这正好迎合了 Raspberry Pi 多用户 多任务的需求。Raspberry Pi 的灵魂是 Linux 系统, Debian 系统是 Linux 系统的一个重要的分支, Raspberry Pi搭载Debian系统形成的Raspbian系统, 是官方推荐 Raspberry Pi 的首选操作系统。Python 语言具有完全免费、面向对象、简单易学、可移植 性强等特点,并且可实现对硬件底层的访问和控制, 是基于 Raspberry Pi 控制硬件的不二选择。 4 系统测试结果 我们实现的功能有: 灯光模块:通过普通开关、电脑、手机控制灯 光的亮灭; 窗帘模块:通过手机、电脑远程控制步进电机 的转动,步进电机带动窗帘升起、降落; 电水壶模块:通过手机、电脑远程控制电水壶 进行加水与烧水动作,以及水开后的报警功能; 音乐模块:使用 Raspberry Pi 自主播放音乐; 测温模块:Raspberry Pi 控制 DS18S20 测量温
刘纪伟等:基于Raspberry Pi的智能家居系统 度,并通过手机、电脑查看当前温度值 播放网络音频和监控报警功能,将智能家居的理念 报警模块:Raspberry Pi控制红外热释电传感器 做到了实处。在软件方面,我们以python语言为 检测人体红外信号,有人靠近时蜂鸣器发出报警声: 具,以Linux系统和Raspberry Pi为平台,通过综 监控模块:Raspberry pi控制网络摄像头对室内 写python程序成功实现了对硬件的控制。实践证明, 讲行实时监控,并可诵讨手机、电脑查看监控画面。 我们的理论是正确的,可行的。 下图为作品实物图以及我们使用的手机软件截图 心得体会 桶过本次实验,给我们的感触烦多。在探索科 学的道路上没有捷径,只有不断的求知、探索、寻 觅、不抛弃、不放弃,踏踏实实的的钻研每一个细 节,这样我们才能成功 取得想 的成果。在我们制作最艰难的那段时间,我充分感 受到了团队的力量是无穷的。每每遇到攻克不了的 难关,我们就会一起研究商讨,这是这个过程,促 讲我们完成所有的预期任务,促成了我们产品的成 功。 图9实物图 致谢 Fig.9.Real Products 中国多动4G 号l96%2156 我们的作品是在李哲老师的亲切关怀和悉心指 Raspberry PI Commands 导下完成的。首先要感谢老师的宽容, 绘我提 很多自由发挥的空间。 其次 个制作过程中 SSH Active: 每每遇到解决不了的难避,都是李哲老师给予正矿 的指导,循循善诱,帮助我们自主地解决问题,最 终完成作品。 Shutdown Restart 同时还要对徐凯、Grant Van Skiver、Lukasz Skalski GuoYu (turingou Mike Haldas提供的 关窗帘 开窗帘 帮助表示感谢,正是在这些前辈的帮助下,我们的 作品才能不断完善,才能一步步成形。感谢以上前 辈提供的帮助。 开灯 关灯 参考文献 Edit Pi Scttings Edit Button Settings L,陈建皓.Raspberry Pi入门指南M北京:人民邮电出版 图10手机客户端软件 社,2014 Fig.10.Android APP 2. Brendan Horan..Raspberry Pi树莓派实作应用M北京 人民邮电出版社,2014 5总结 3.李龙棋,方芙发,唐晓胨.树莓派平台下的实时监控系统 本文充分展现了家居智能化的概念,总体来说, 开发0闺江学院学报,2014(05), 我们成功搭建了一个智能家居模型和软件平台。在 4. 郑世压,徐虹基于Raspberry Pi的远程监测系统的设计 硬件方面,我们做到了以Raspberry Pi为控制器 与实现,微型机与应用.201419). 以电脑和手机等不同终端的控制方式,成功实现了 5.Simon Monk Raspberry Pi Python编程入门M.北京:科 对灯光、窗帘、电水壶的控制,并且实现了测温
刘纪伟等:基于 Raspberry Pi 的智能家居系统 31 度,并通过手机、电脑查看当前温度值; 报警模块:Raspberry Pi 控制红外热释电传感器 检测人体红外信号,有人靠近时蜂鸣器发出报警声; 监控模块:Raspberry Pi 控制网络摄像头对室内 进行实时监控,并可通过手机、电脑查看监控画面。 下图为作品实物图以及我们使用的手机软件截图: 图 9 实物图 Fig. 9. Real Products 图 10 手机客户端软件 Fig. 10. Android APP 5 总结 本文充分展现了家居智能化的概念,总体来说, 我们成功搭建了一个智能家居模型和软件平台。在 硬件方面,我们做到了以 Raspberry Pi 为控制器, 以电脑和手机等不同终端的控制方式,成功实现了 对灯光、窗帘、电水壶的控制,并且实现了测温、 播放网络音频和监控报警功能,将智能家居的理念 做到了实处。在软件方面,我们以 python 语言为工 具,以 Linux 系统和 Raspberry Pi 为平台,通过编 写python程序成功实现了对硬件的控制。实践证明, 我们的理论是正确的,可行的。 心得体会 通过本次实验,给我们的感触颇多。在探索科 学的道路上没有捷径,只有不断的求知、探索、寻 觅、不抛弃、不放弃,踏踏实实的的钻研每一个细 节,这样我们才能成功攻关,克服困难,取得想要 的成果。在我们制作最艰难的那段时间,我充分感 受到了团队的力量是无穷的。每每遇到攻克不了的 难关,我们就会一起研究商讨,这是这个过程,促 进我们完成所有的预期任务,促成了我们产品的成 功。 致谢 我们的作品是在李哲老师的亲切关怀和悉心指 导下完成的。首先要感谢老师的宽容,给我提供了 很多自由发挥的空间。其次,在整个制作过程中, 每每遇到解决不了的难题,都是李哲老师给予正确 的指导,循循善诱,帮助我们自主地解决问题,最 终完成作品。 同时还要对徐凯、Grant Van Skiver、Lukasz Skalski、GuoYu(turingou) 、Mike Haldas 提供的 帮助表示感谢,正是在这些前辈的帮助下,我们的 作品才能不断完善,才能一步步成形。感谢以上前 辈提供的帮助。 参考文献 1. 陈建皓.Raspberry Pi 入门指南[M].北京:人民邮电出版 社,2014. 2. Brendan Horan. Raspberry Pi 树莓派实作应用[M].北京: 人民邮电出版社,2014. 3. 李龙棋,方美发,唐晓腾.树莓派平台下的实时监控系统 开发[J].闽江学院学报,2014 (05). 4. 郑世珏,徐虹.基于 Raspberry Pi 的远程监测系统的设计 与实现[J].微型机与应用, 2014(19). 5. Simon Monk.Raspberry Pi Python 编程入门[M].北京∶科
吉林大学仅器科学与电气工程学院2015年下半年中文论文集 学出版社,2014. 6. 佚名.Atiny and smart iplayer of douban fm n Node [EB/OL].https:/github.com/turingou/douban.fim 7.佚名.又一个让树撑派开机运行Python即本的方法 [EB/OL].http://shumeipai.nxez.com/2015/02/09/run-pytho -script-when-the-raspberry-pi-startm 32
吉林大学仪器科学与电气工程学院 2015 年下半年中文论文集 32 学出版社,2014. 6. 佚名.A tiny and smart cli player of douban.fm in Node [EB/OL].https://github.com/turingou/douban.fm 7. 佚名.又一个让树莓派开机运行 Python 脚本的方法 [EB/OL].http://shumeipai.nxez.com/2015/02/09/run-pytho n-script-when-the-raspberry-pi-start.html