聚丰项目 > 基于Intel Edison智能书房自动优化学习环境

基于Intel Edison智能书房自动优化学习环境

智能家居最近抄的热火曹天,我这里也实现一个智能书房自动控制环境。使用传感器来监控书房环境,从而优化你的书房环境及孩子的学习环境。

anger0925 anger0925

分享
4 喜欢这个项目
团队介绍

anger0925 anger0925

团队成员

王安国 工程师

分享
项目简介
智能家居最近抄的热火曹天,我这里也实现一个智能书房自动控制环境。使用传感器来监控书房环境,从而优化你的书房环境及孩子的学习环境。
硬件说明

1Grove -  buzzer接到扩展版的D8上;

2Grove Relay接到扩展版的D7上;

3Grove Serial LCD接到扩展版的任意一个I2C接口上;

4Grove Temperature Sensor接到模拟接口A1上。

5Grove LED socket接到扩展版的D6上;

6Grove Light Sensor接到模拟接口A0上。

7Grove -  button按键接D4上。



软件说明

软件开发与调试

1,初始化:

初始化RGB LCD显示;

初始化LED端口D6为输出;

初始化继电器控制端口D7为输出;

初始化蜂鸣器端口D8为输出;

初始化A0接口接光传感器,A1接口接温度传感器。

2,实现周期性回调函数

利用时间函数millis()实现周期性回调函数。

添加周期性任务事件。

3,实现周期性读取温度传感器值,温度过低时,打开加热器;温度过高时,关闭加热器。门槛值30摄氏度,低于10时,打开加热器。高于30时,关闭加热器,这里我使用继电器来模拟实现。

{0, 100, Tem_Sensor},

表示100ms读取一次。

Relay_Control_Handle就是实现温度对书房环境的优化控制,我这里首先使用Grove Relay继电器实现,加热器的电源接在继电器,随着温度的变化,实现自动控制加热器,从而保证书房适宜的温度。

4,读取光传感器值,监控书房环境光。若环境比较明亮,关闭LED等,若比较暗,打开LED灯。

{0, 100, Light_Sensor},

100ms读取一次。

Light_Sensor_Handle函数实现光照强度对书房环境的优化。设置光强门槛值为400,高于400时关闭LED灯;低于400时打开LED灯。

5,首先我准备手机实时监控书房环境,那么就需要手机端APP。但是要自己开发手机APP,对于我来说是非常难的,还好有Blynk,免费使用,        快速创建自己的APP

Blynk相关知识,参照Blynk官网:http://www.blynk.cc/APP也可以在官网上下载,也可以在个应用市场搜索下载。

使用Intel Edision内嵌的wifi很容易的与手机联系起来。

1)在Blynk官网下载APP,并安装到手机上。

2)下载Blynk固件库,我使用Arduino IDE。下载地址:https://github.com/blynkkk

3)在手机上运行Blynk,第一次运行时,需要登陆,输入邮箱和密码完成登陆。

4)点击“+”弹出创建一个新项目的对话框

输入的项目名称,可以定义自己喜欢的,硬件模块现在Intel Edison。然后点击 “E-mail” ,会有一封邮件发到你登陆的邮箱,主要发送认证令牌到邮箱。

5)点击Create完成创建。

6)点击上图标识为“1”的菱形处可以实现项目的修改。

7)点击“2”处的“+”进入 “Widget Box”,创建应用,我这里实现实时显示温度值和光照强度值。还有几个按键。

8)创建两个Graph。点击Graph添加。

创建三个Button,点击Button创建。

9)点击创建的Graph修改参数

名称,光传感器,引脚定义,这里选择V1主要是实现程序与APP之间的数据交互,引脚定义后面的是定义数据范围,接下来是显示周期,最后是显示形式,柱状或线状。同样定义温度显示定义。

然后定义按键

定义完成之后的引用界面,按键定义后续使用。

10)点击三角形开始运行。

6,编程与APP进行交互

把下载好的Blynk的库放到Arduino目录下。

添加头文件。

Auth定义认证令牌,在app上创建项目时发到你邮箱的数据。

SSIDwifi用户名。

Passwifi密码。

setup()中添加Blynk.begin(auth, ssid, pass);,初始化网络,接入wifi网络。

loop中添加Blynk.run();

这样就完成了Blynk的引用。

接下来上传数据到app

{0, 500, Blynk_Wifi_handle},

500ms上传一次。

参数中的sensorValue是光传感器值,temperature是温度传感器值。实时上传温度值和光照强度值到APP上,实时实现远程监控。

现在编译下载,运行。打开APP

下面实现按键数据交互:

在项目文件添加BLYNK_WRITE函数,实现实时监听APP按键状态,相当于按键中断出来函数。

relayControl函数实现控制led灯的开和关。

pinLed定义的输出接口,在APP中设置对应接口。接下来就可以控制了。我这里先使用LED测试。

7RGB LED上实时显示传感器数据,一个是温度值,一个是光照强度值。

{0, 2000, RGB_LCD_Display}

添加显示事件任务。RGB_LCD_Display实现2秒显示温度值,两秒显示光强值,周期切换显示。

8,书房学习环境控制编程

1)开始学习后,学习30分钟,休息10分。

当短按键时,开始学习;长按键时,完成学习。期间周期学习与休息循环,时间到语言提示。

按键处理:

循环处理:


演示效果

试用验证与结果:

先来一张上述的结果及安装。

接住验证远程实时监控书房环境数据,通过手机app远程查看。

从数据来看,光线比较暗,温度比较高,说明我的工作环境比较恶劣。

使用我的红外笔照射光传感器,可以看见光强值升高。

接下来展示app控制led灯的开关。

还有一个最重要的环节就是学习过程。为了方便测试,我修改为短按键开始学习,学习一分钟,休息一分钟,这样循环学习,直到长按键,学习结束。我录制了一段视频看能否上传。好像不能直接上传本地视频。先来两张特写吧。


评论区(0 )