nille 发表于 2014-10-19 22:00:49

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来显示代码,如下图所示,此时弹出的代码区占据屏幕右侧。如果你想学些这两方面的代码,这是一个非常有用的功能。



Rockets 发表于 2014-10-22 13:39:42

图形化编程?有点意思,这个可以有。

nille 发表于 2014-10-23 14:53:57

Rockets 发表于 2014-10-22 13:39
图形化编程?有点意思,这个可以有。

还可以支持edison哦。

Eric 发表于 2014-10-24 18:27:33

这么爽~有空我也玩玩去

maiconi 发表于 2014-10-25 17:37:19

很好,学习中

XinYuProtector 发表于 2014-10-29 11:31:33

学习学习。

海绵宝宝 发表于 2014-11-17 17:27:04

amy.liao 发表于 2014-12-11 18:30:27

好详细的教程贴~

KinFu 发表于 2014-12-23 15:29:50

伽利略诶,赞!

hnyzcj 发表于 2014-12-30 20:33:58

顶起,有空我也去搞来玩玩。大神

再粗点再大点 发表于 2018-7-15 13:12:16

顶起,学习了

mind+用户 发表于 2023-2-24 10:01:19

牛!PS:没人用Mixly(米思齐)吗?
页: [1]
查看完整版本: Galileo网络温度计