打印

【Intel Edison试用体验】+智能书房自动优化学习环境(项目)

[复制链接]
6667|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jcky001|  楼主 | 2021-8-21 09:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
智能家居最近抄的热火曹天,我这里也实现一个智能书房自动控制环境。使用传感器监控书房环境,从而优化你的书房环境及孩子的学习环境。
一,实现目标:
1,学习和休息时间:这个主要是实现提示学习时间注意休息,主要是提醒孩子。使用一个计数器,学习30分钟,休息10分钟,这样循环进行,直到你的学习任务完成。通过蜂鸣器提醒你应该学习或休息。
2,温度控制:使用一个温度传感器,监控书房环境温度,如果房间太冷打开加热器,若房间太热,关闭加热器。
3LED灯控制:使用一个光传感器,监控环境光。若环境比较明亮,关闭LED等,若比较暗,打开LED灯。
4,显示:温度和光强实时显示在LCD屏幕上。
5,通过学习,提示你对窗户和窗帘的操作。若房间太热,光线比较暗,则打开窗户和窗帘,打开LED灯;若太冷,光线暗,则关闭窗户,打开LED灯等。
6LED灯可以按键开关,也可以使用app控制。
7,书房传感器数据实时显示在APP上,实现实时远程监控。
8LED灯状态实时上传到APP上,人不在家时,可以远程查看书房LED是否关闭状态。
二,材料
1intel edison Arduino开发套件
2Grove -  扩展版;
3Grove Relay继电器
4Grove Serial LCD显示屏;
5Grove Temperature Senso温度传感器;
6Grove LED
7Grove Light Sensor光传感器;
8Grove -  buzzer蜂鸣器;
9Grove -  button按键;
10dc12v电源、一些杜邦线。
三,硬件组装
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灯的开关。



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































使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1505

主题

4522

帖子

6

粉丝