查看: 4338|回复: 4

Galileo网络温度计

[复制链接]
  • TA的每日心情
    慵懒
    2015-8-5 08:38
  • 签到天数: 12 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2014-11-7 14:43:53 | 显示全部楼层 |阅读模式
    分享到:
    测温度这活其实温度计就能干,希望大家不要吐槽这个网络温度计。
    这个网络温度计使用的硬件很简单,列表如下
    1、Galileo Gen 2 (需在SD卡中装好适用于Galileo的完整版Linux)
    2、DFRobot的LCD液晶扩展板(货号:DFR0009)
    3、网线和电源线

    210511apgq6hjlhp5eeg74.jpg

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

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

    1.jpg

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

    2.jpg

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

    3.jpg

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

    4.jpg

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

    5.jpg

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

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

    6.jpg

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

    7.jpg

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

    8.jpg

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

    9.jpg

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

    10.jpg

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

    11.jpg

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

    12.jpg

    我们先选择第一个初始化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)。

    13.jpg

    接着清除屏幕,设置坐标在第一行第一列,从这个位置开始显示字符串“BJ’s temperature”。接着将光标移动到第二行,在第二行显示获取的温度值,这里用到了一个Get temperature from ...的编程块,这个编程块在Internet—>Services—>Weather下可以找到,功能是通过网络获取参数中城市的温度,这里城市的地方我们填写的是beijing。
    现在就可以点击界面左侧的Galen边上的Stopped。我们可以看到在这个方框的上方写着“Run application on:”,表示编写的程序会运行在Galen这个硬件上。经过一个校验编译的过程后,我们就能在电脑端看到如下的界面。

    14.jpg

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

    IMG_20141016_211100.jpg

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

    15.jpg
    16.jpg       

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

    17.jpg

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

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

    18.jpg

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

    19.jpg
    回复

    使用道具 举报

    该用户从未签到

    发表于 2014-11-7 16:03:06 | 显示全部楼层
    貌似可玩性不强哦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-10-8 09:49
  • 签到天数: 430 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2014-11-8 08:11:42 | 显示全部楼层
    不错,很适合小孩子学习编程。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-12-6 17:33
  • 签到天数: 853 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2014-11-9 12:45:26 | 显示全部楼层
    支持一个哈
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-4-13 14:40:12 | 显示全部楼层
    初学者路过,学习了
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-18 21:06 , Processed in 0.156892 second(s), 25 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.