极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 43849|回复: 23

Arduino DUE+MSP430自制室外空气探测+热水器控制+网络电能表

[复制链接]
发表于 2013-9-5 09:06:29 | 显示全部楼层 |阅读模式
本帖最后由 kasimir 于 2013-9-5 09:51 编辑

起初做这个项目的念头在2013年3月,当时觉得北京的空气实在是太差了,需要做一个设备放在窗外做实时提醒用,所以就用饭盒+MSP430打造了一个室外空气探测器,后来又发现物联网网站不错,可以把数据上传到物联网上,于是饭盒加上了蓝牙,用PC来上传数据。5月份的时候感觉PC整天开着太费电了,于是想用Arduino来完成上传的功能,于是把无线链接换成了NRF24L01。6月突发奇想,想给家里省点电,于是在家中的电热水器上加上了MSP430做的另一个节点,7月参加了乐联网的网络电表计划,于是整套系统里面有了第三个节点。

下面是盒子的功能介绍:

裸板是一片MSP430的转接板+洞洞板,板上有一片MSP430+SPI Flash用作数据存储
有一片RTC时钟用于记录时间,还有一颗电池,和JTAG调试口。


颗粒物监测器初期使用的是DSM501和DDP42NS,后来感觉这两颗不够稳定,数据也不太精确,然后换成了日货……
Sharp的gp2y1010au。夏普这颗电路控制比较复杂,但精度确实不错,而且很省电。
下图是早起用的DSM501的版本


因为空气探测器是放在室外的,为了整体防泼水,所以用了乐扣乐扣的饭盒,工作半年以来抗大雨无数,完全没问题。

但是密闭和检测空气颗粒物是矛盾的,所以在盒子的隐蔽处有进风口和出风口,有一颗微小的风扇来提供空气流
这颗风扇真的很小,而且只有5V 22mA的耗电。


这是传感器组,温湿度传感器是DHT22,环境光传感器是BH1750FVI,大气压力和温度传感器是BMP085
GPS是SIRF3貌似。电池是一颗3700mah的锂电,板上自带1A的3段充电电路


最早做项目的时候曾经想过用PC和Android手机来提交数据,所以还写了PC和安卓的客户端app



下面是热水器模组的介绍:
模组是安装在热水器里面的,海尔电热水器的侧面板很好拆,于是就直接装在泡沫里面了。
此控制器装有一个NRF24无线通信模块,另外有一只DS18B20温度传感器粘在金属内胆上面读取温度(数据有一定迟滞)
单片机有一根GPIO接在热水器的开关按键上面,所有的过热保护措置还由热水器自身实现,模块只控制开关



下面是电能表模块的介绍:
模块是乐联网团购的,能测量功率因数,电压,电流,总功率,总耗电等……
外部通信板还是MSP430+NRF24,并且还有一颗DS18B20用来读取电表箱外侧的温度




下面是Arduino主控的介绍:
买过多块Arduino,最初是Leonardo,但是写着写着发现存储空间不够了,后来换了MEGA2560,
代码空间够了,但发现运行不稳定,大概4-5个小时就会自动重启,又入了DUE,发现每隔20多小时还是自动重启……
无奈了于是作罢。
主控带有:1、红外感应器,用于检测家中人的活动状况,然后自动控制热水器水温
2、DHT22,检测家中温湿度
3、光照度感应器,检测家中光照
4、带有一只EEPROM,用来存储一些掉电可能会丢的数据(因为总是20多个小时就莫名重启了)






由于arduino可以跑多段代码,同时上传数据到yeelink和乐联网,所以两边网站上都可以查询数据

乐联网的网关地址:
http://www.lewei50.com/u/g/1106

yeelink的网关地址:
http://www.yeelink.net/devices/4096
http://www.yeelink.net/devices/2109
http://www.yeelink.net/devices/3482


附档还有所有程序的源码,因为是个人兴趣项目,本人也不是专业软件工程师(其实是硬件工程师啦)
所以基本都没怎么写注释…… 各位凑合着看啦
所有的pin定义都在各工程的pinmap.h里面
所有的全局变量和全局函数都在variabledefine.h里面
工程请用IAR Embedded Workshop for MSP430打开

Arduino的工程说明:
HomeController.ino是变量声明和初始化函数
HTTPServer.ino是HTTP Server的主要工程,提供了web界面来查看各传感器参数
LeWei50.ino是乐联网的提交模块
Misc.ino是一些杂七杂八的东东
NetProtocol.ino是NRF24L01各节点中间的通信协议解析,我比较偷懒,没弄什么自动组网之类的,各节点编号都是写死的
NRF24L01.ino是NRF24的功能函数
NTPClient.ino是NTP时间校准,负责从NTP Server取回当前时间
Sensors.ino是所有Arduino板上的传感器函数
SubmitData.ino是yeelink的提交函数,以及去各节点的定时读取函数
YeeLight.ino里面是yeelight的控制函数,根据人的活动以及热水器水温来控制yeelight当个小夜灯

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-9-5 09:29:23 | 显示全部楼层
必须顶一下
回复 支持 反对

使用道具 举报

发表于 2013-9-5 10:01:30 | 显示全部楼层
这个设备真全。
回复 支持 反对

使用道具 举报

发表于 2013-9-5 13:05:02 | 显示全部楼层
好强,顶一下.
回复 支持 反对

使用道具 举报

发表于 2013-9-5 16:15:12 | 显示全部楼层
太全了,还有MSP430就不会玩了。
回复 支持 反对

使用道具 举报

发表于 2013-9-5 17:51:15 | 显示全部楼层
支持,顶一个。
回复 支持 反对

使用道具 举报

发表于 2013-9-5 21:33:08 | 显示全部楼层
这个要顶!! 楼主
回复 支持 反对

使用道具 举报

发表于 2013-9-7 09:10:07 | 显示全部楼层
楼主很多设备啊!能完完全全做完一个项目,真的不容易!顶!
回复 支持 反对

使用道具 举报

发表于 2013-9-8 13:26:15 | 显示全部楼层
完完全全做完一个项目,真的不容易!顶
回复 支持 反对

使用道具 举报

发表于 2013-9-14 12:23:27 | 显示全部楼层
仰慕啊。。。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2013-10-4 17:02:03 | 显示全部楼层
真棒,棒极了,无限遐想
回复 支持 反对

使用道具 举报

发表于 2013-10-11 17:56:20 | 显示全部楼层
好牛叉呀,膜拜啊!!!
回复 支持 反对

使用道具 举报

发表于 2014-2-25 13:55:06 | 显示全部楼层
感谢分享!
回复 支持 反对

使用道具 举报

发表于 2014-3-3 13:45:05 | 显示全部楼层
收藏,精华啊!
回复 支持 反对

使用道具 举报

发表于 2014-4-17 17:08:34 | 显示全部楼层
好牛啊,仰慕中
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-24 20:45 , Processed in 0.045203 second(s), 33 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表