19159| 11
|
[项目] Galileo网络温度计 |
nille程晨 顺手智造 Wyliodrin中文第一帖 其实这篇文章是试用手上Galileo的时候顺手写的,测温度这活其实温度计就能干,希望大家不要吐槽这个网络温度计。 这个网络温度计使用的硬件很简单,列表如下 1、Galileo Gen 2 (需在SD卡中装好适用于Galileo的完整版Linux) 2、DFRobot的LCD液晶扩展板(货号:DFR0009) 3、网线和电源线 所实现的功能是间隔一段时间自动从网络获取某一个城市的温度,然后显示在液晶上,同时,如果温度低于某个值的时候会发送一封邮件。 选用的编程方式是Wyliodrin,Wyliodrin是一个基于网络的图形化开发工具,目前可支持Galileo的开发,使用时不用安装任何的软件,只需要浏览器和网络连接就可以。 首先打开Wyliodrin的主页www.wyliodrin.com。想要编程的话需要登录,使用Facebook、GitHub或是google+的账户都可以直接登录。 登录成功后选中右侧上方灰色的区域的Add new board来添加物联网设备Galileo。 在New Board对话框中Wyliodrin要求我们给添加的板子起个名字,这里我给Galileo命名为Galen,模块是Intel Galileo,然后选择Next继续。 Wyliodrin接下来会询问我们连接Galileo的方式,如图27所示,我是直接网线连接的,所以直接选择Submit继续。 接下来wyliodrin会提供一个名为wyliodrin.json的文件,我们下载下来后要将这个文件拷贝到Galileo系统SD卡的根目录下,如上图所示。 此时网页中的设备区就会多一个名叫Galen的设备,设备类型是Intel Galileo,不过此时设备状态是Offline。 将microSD卡插入Galileo上的SD卡插槽,把LCD按键扩展板插到Galileo上,给Galileo接上网线和电源。如上图所示,这里液晶上显示着Hey Wyliodrin是因为之前写了一个显示Hey Wyliodrin的程序。 等待几分钟后,网页中的设备状态就变成了Online。此时我们就能开发网络端的Galileo了。 开发之前我们要更新一下Galileo上针对wyliodrin的库文件,选择Online后面的小齿轮,在弹出的列表中分别选择Extra libraries和Update Image进行升级。更新过程可能要花费一些时间,请耐性等待。 更新完成后,选择Creat new application新建一个项目,新建项目如下图所示,同样我们需要给项目取个名字,这里我取名为weather;项目描述中可以写一些对项目的介绍,这里我什么也没写;编程语言中我们选择New Project—Visual Programming,表示我们采用图形化编程。 项目打开后右侧整个区域都变成了编程区,在编程区的左侧是很多的编程块的选择区,这个区域内将编程块分成了很多的种类,我们要根据自己的需要选择不同的编程块。 在Peripherals下的LCD,我们能够看到与LCD模块相关的各个编程模块,如图所示。 第一个较大的模块是初始化1602的LCD液晶, 第二个模块Clear LCD的功能是清除LCD上的内容, 第三个模块Reset Position on LCD的功能是复位光标位置, 第四个模块的功能是设置光标位置, 最后一个模块的功能是在屏幕上显示字符串。 我们先选择第一个初始化1602LCD液晶的模块,这里要查阅一下LCD液晶扩展板的资料,通过资料我们能了解到板子与液晶模块的连接关系, Galileo上Arduino标准接口的PIN4、PIN5、PIN6、PIN7对应液晶模块的数据线Data1、Data2、Data3、Data4; PIN8对应寄存器选择RS; PIN9对应使能E。 根据这个关系调整模块后面的对应的参数,从上往下分别是8、9、4、5、6、7,完成后如上图所示。 这个操作相当于Arduino代码中的LiquidCrystal lcd(8,9,4,5,6,7)。 接着清除屏幕,设置坐标在第一行第一列,从这个位置开始显示字符串“BJ’s temperature”。接着将光标移动到第二行,在第二行显示获取的温度值,这里用到了一个Get temperature from ...的编程块,这个编程块在Internet—>Services—>Weather下可以找到,功能是通过网络获取参数中城市的温度,这里城市的地方我们填写的是beijing。 现在就可以点击界面左侧的Galen边上的Stopped。我们可以看到在这个方框的上方写着“Run application on:”,表示编写的程序会运行在Galen这个硬件上。经过一个校验编译的过程后,我们就能在电脑端看到如下的界面。 因为我们的程序执行完显示字符串和温度的功能之后就停止了,所以在弹出的shell中会显示Project stopped。此时Galileo上的液晶模块已经显示了北京的温度,如下图所示。 接下来我们想让设备定时的检测北京的温度然后更新在液晶上,所以我们添加了循环结构和延时模块,循环结构在Program—>loops下,而延时模块在Program—>Timing下,延时模块的参数单位我们选择秒。 另外前面说过了,我们希望温度低于一定值的时候设备会发一封邮件给我们,所以还添加了发送邮件的编程块。 邮件相关的编程块在Social—>Mail中,有三个编程块,第一个是设置发送邮件的邮箱,需要告诉设备发送邮箱的用户名和密码,这个编程块通常放在程序的前面;第二个和第三个编程块是执行发送邮件的操作,需要填写对方的邮箱和内容,两者不同的是一个包含附件,一个没有。 添加了这些内容后的程序如下图所示,程序中我们延时的时间是3600秒,即1个小时更新一次,而温度的阈值是-10度,当低于-10度的时候就会发送邮件。 这样我们的Galileo网络温度计就完成了,最后再说一点,Wyliodrin还会将图形化的代码转换成Python或Javascript的代码,我们可以通过点击编程区右侧的Show code来显示代码,如下图所示,此时弹出的代码区占据屏幕右侧。如果你想学些这两方面的代码,这是一个非常有用的功能。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed