[项目]Galileo网络温度计 精华

2014-10-19 22:00:49 [显示全部楼层]
19159浏览
查看: 19159|回复: 11

[项目] Galileo网络温度计

[复制链接]
nille程晨  顺手智造  Wyliodrin中文第一帖

其实这篇文章是试用手上Galileo的时候顺手写的,测温度这活其实温度计就能干,希望大家不要吐槽这个网络温度计。

这个网络温度计使用的硬件很简单,列表如下
1、Galileo Gen 2 (需在SD卡中装好适用于Galileo的完整版Linux)
2、DFRobot的LCD液晶扩展板(货号:DFR0009)
3、网线和电源线

Galileo网络温度计图20

所实现的功能是间隔一段时间自动从网络获取某一个城市的温度,然后显示在液晶上,同时,如果温度低于某个值的时候会发送一封邮件

选用的编程方式是Wyliodrin,Wyliodrin是一个基于网络的图形化开发工具,目前可支持Galileo的开发,使用时不用安装任何的软件,只需要浏览器和网络连接就可以。

Galileo网络温度计图1

首先打开Wyliodrin的主页www.wyliodrin.com。想要编程的话需要登录,使用FacebookGitHub或是google+的账户都可以直接登录。

Galileo网络温度计图2

登录成功后选中右侧上方灰色的区域的Add new board来添加物联网设备Galileo

Galileo网络温度计图3

New Board对话框中Wyliodrin要求我们给添加的板子起个名字,这里我给Galileo命名为Galen,模块是Intel Galileo,然后选择Next继续。

Galileo网络温度计图4

Wyliodrin接下来会询问我们连接Galileo的方式,如图27所示,我是直接网线连接的,所以直接选择Submit继续。

Galileo网络温度计图5

接下来wyliodrin会提供一个名为wyliodrin.json的文件,我们下载下来后要将这个文件拷贝到Galileo系统SD卡的根目录下,如上图所示。

此时网页中的设备区就会多一个名叫Galen的设备,设备类型是Intel Galileo,不过此时设备状态是Offline

Galileo网络温度计图6

microSD卡插入Galileo上的SD卡插槽,把LCD按键扩展板插到Galileo上,给Galileo接上网线和电源。如上图所示,这里液晶上显示着Hey Wyliodrin是因为之前写了一个显示Hey Wyliodrin的程序。

Galileo网络温度计图7

等待几分钟后,网页中的设备状态就变成了Online。此时我们就能开发网络端的Galileo了。

Galileo网络温度计图8

开发之前我们要更新一下Galileo上针对wyliodrin的库文件,选择Online后面的小齿轮,在弹出的列表中分别选择Extra librariesUpdate Image进行升级。更新过程可能要花费一些时间,请耐性等待。

Galileo网络温度计图9

更新完成后,选择Creat new application新建一个项目,新建项目如下图所示,同样我们需要给项目取个名字,这里我取名为weather;项目描述中可以写一些对项目的介绍,这里我什么也没写;编程语言中我们选择New ProjectVisual Programming,表示我们采用图形化编程。

Galileo网络温度计图10

项目打开后右侧整个区域都变成了编程区,在编程区的左侧是很多的编程块的选择区,这个区域内将编程块分成了很多的种类,我们要根据自己的需要选择不同的编程块。

Galileo网络温度计图11

Peripherals下的LCD,我们能够看到与LCD模块相关的各个编程模块,如图所示。
第一个较大的模块是初始化1602LCD液晶,
第二个模块Clear LCD的功能是清除LCD上的内容,
第三个模块Reset Position on LCD的功能是复位光标位置,
第四个模块的功能是设置光标位置,
最后一个模块的功能是在屏幕上显示字符串。

Galileo网络温度计图12

我们先选择第一个初始化1602LCD液晶的模块,这里要查阅一下LCD液晶扩展板的资料,通过资料我们能了解到板子与液晶模块的连接关系,
GalileoArduino标准接口的PIN4PIN5PIN6PIN7对应液晶模块的数据线Data1Data2Data3Data4
PIN8对应寄存器选择RS
PIN9对应使能E

根据这个关系调整模块后面的对应的参数,从上往下分别是894567,完成后如上图所示。
这个操作相当于Arduino代码中的LiquidCrystal lcd(8,9,4,5,6,7)

Galileo网络温度计图13

接着清除屏幕,设置坐标在第一行第一列,从这个位置开始显示字符串“BJ’s temperature”。接着将光标移动到第二行,在第二行显示获取的温度值,这里用到了一个Get temperature from ...的编程块,这个编程块在Internet>Services>Weather下可以找到,功能是通过网络获取参数中城市的温度,这里城市的地方我们填写的是beijing

现在就可以点击界面左侧的Galen边上的Stopped。我们可以看到在这个方框的上方写着“Run application on:”,表示编写的程序会运行在Galen这个硬件上。经过一个校验编译的过程后,我们就能在电脑端看到如下的界面。

Galileo网络温度计图14

因为我们的程序执行完显示字符串和温度的功能之后就停止了,所以在弹出的shell中会显示Project stopped。此时Galileo上的液晶模块已经显示了北京的温度,如下图所示。

Galileo网络温度计图19

接下来我们想让设备定时的检测北京的温度然后更新在液晶上,所以我们添加了循环结构和延时模块,循环结构在Program>loops下,而延时模块在Program>Timing下,延时模块的参数单位我们选择秒。

Galileo网络温度计图15     

Galileo网络温度计图16




另外前面说过了,我们希望温度低于一定值的时候设备会发一封邮件给我们,所以还添加了发送邮件的编程块。

Galileo网络温度计图17

邮件相关的编程块在Social>Mail中,有三个编程块,第一个是设置发送邮件的邮箱,需要告诉设备发送邮箱的用户名和密码,这个编程块通常放在程序的前面;第二个和第三个编程块是执行发送邮件的操作,需要填写对方的邮箱和内容,两者不同的是一个包含附件,一个没有。

添加了这些内容后的程序如下图所示,程序中我们延时的时间是3600秒,即1个小时更新一次,而温度的阈值是-10度,当低于-10度的时候就会发送邮件。

Galileo网络温度计图18

这样我们的Galileo网络温度计就完成了,最后再说一点,Wyliodrin还会将图形化的代码转换成Python或Javascript的代码,我们可以通过点击编程区右侧的Show code来显示代码,如下图所示,此时弹出的代码区占据屏幕右侧。如果你想学些这两方面的代码,这是一个非常有用的功能。

Galileo网络温度计图21


Rockets  NPC

发表于 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(米思齐)吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail