Galileo网络温度计

2014-10-193万
精华项目
AI 快速预览详细 收起
本文介绍了如何使用Galileo Gen 2和DFRobot的LCD液晶扩展板制作一个网络温度计。通过Wyliodrin图形化编程工具,可以自动从网络获取指定城市的温度,并在液晶屏上显示。如果温度低于设定值,还会发送邮件提醒。整个过程无需安装任何软件,只需浏览器和网络连接即可完成。这个项目适合初学者和STEM教育场景,帮助用户轻松掌握物联网技术。
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


创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(9)
mind+用户
mind+用户
牛!PS:没人用Mixly(米思齐)吗?
再粗点再大点
再粗点再大点
顶起,学习了
hnyzcj
hnyzcj
顶起,有空我也去搞来玩玩。大神
FuKin
FuKin
伽利略诶,赞!
amyl
amyl
好详细的教程贴~
XinYuProtector
XinYuProtector
学习学习。
maiconi
maiconi
很好,学习中
我爱小宇宙
我爱小宇宙
这么爽~有空我也玩玩去
微笑的rockets
微笑的rockets
图形化编程?有点意思,这个可以有。
nille
nille
作者
回复微笑的rockets
还可以支持edison哦。
- 没有更多了 -