完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
智能家居最近抄的热火曹天,我这里也实现一个智能书房自动控制环境。使用传感器来监控书房环境,从而优化你的书房环境及孩子的学习环境。 一,实现目标: 1,学习和休息时间:这个主要是实现提示学习时间注意休息,主要是提醒孩子。使用一个计数器,学习30分钟,休息10分钟,这样循环进行,直到你的学习任务完成。通过蜂鸣器提醒你应该学习或休息。 2,温度控制:使用一个温度传感器,监控书房环境温度,如果房间太冷打开加热器,若房间太热,关闭加热器。 3,LED灯控制:使用一个光传感器,监控环境光。若环境比较明亮,关闭LED等,若比较暗,打开LED灯。 4,显示:温度和光强实时显示在LCD屏幕上。 5,通过学习,提示你对窗户和窗帘的操作。若房间太热,光线比较暗,则打开窗户和窗帘,打开LED灯;若太冷,光线暗,则关闭窗户,打开LED灯等。 6,LED灯可以按键开关,也可以使用app控制。 7,书房传感器数据实时显示在APP上,实现实时远程监控。 8,LED灯状态实时上传到APP上,人不在家时,可以远程查看书房LED是否关闭状态。 二,材料 1,intel edison Arduino开发套件; 2,Grove - 扩展版; 3,Grove – Relay继电器; 4,Grove – Serial LCD显示屏; 5,Grove – Temperature Senso温度传感器; 6,Grove –LED ; 7,Grove – Light Sensor光传感器; 8,Grove - buzzer蜂鸣器; 9,Grove - button按键; 10,DC12V电源、一些杜邦线。 三,硬件组装 1,Grove - buzzer接到扩展版的D8上; 2,Grove – Relay接到扩展版的D7上; 3,Grove – Serial LCD接到扩展版的任意一个I2C接口上; 4,Grove – Temperature Sensor接到模拟接口A1上。 5,Grove –LED socket接到扩展版的D6上; 6,Grove – Light Sensor接到模拟接口A0上。 7,Grove - 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上创建项目时发到你邮箱的数据。 SSID:wifi用户名。 Pass:wifi密码。 在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测试。 7,RGB LED上实时显示传感器数据,一个是温度值,一个是光照强度值。 {0, 2000, RGB_LCD_Display} 添加显示事件任务。RGB_LCD_Display实现2秒显示温度值,两秒显示光强值,周期切换显示。 8,书房学习环境控制编程 1)开始学习后,学习30分钟,休息10分。 当短按键时,开始学习;长按键时,完成学习。期间周期学习与休息循环,时间到语言提示。 按键处理: |
|
相关推荐
5 个讨论
|
|
只有小组成员才能发言,加入小组>>
1210个成员聚集在这个小组
加入小组2853 浏览 2 评论
【下载】《物联网设计:从原型到产品》——从技术设想到实现成品
102356 浏览 804 评论
6497 浏览 9 评论
12112 浏览 24 评论
5011 浏览 8 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 15:23 , Processed in 0.915397 second(s), Total 76, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号